Thread (128 messages) 128 messages, 16 authors, 2006-08-25

Re: [RFC][PATCH 0/9] Network receive deadlock prevention for NBD

From: Peter Zijlstra <hidden>
Date: 2006-08-12 15:23:31
Also in: lkml, netdev

On Sat, 2006-08-12 at 19:08 +0400, Evgeniy Polyakov wrote:
One must receive a packet to determine if that packet must be dropped
until tricky hardware with header split capabilities or MMIO copying is
used. 
True, that is done, but we then discard this packet at the very first
moment we know it's not for a special socket. This way we know this
piece of memory will not get stuck waiting on some unimportant blocked
process. So even though we allocate the packet we do not loose the
memory.
Peter uses special pool to get data from when system is in OOM (at
least in his latest patchset), so allocations are separated and thus
network code is not affected by OOM condition, which allows to make
forward progress.
I've done that throughout the patches, in various forms of brokenness.
Only with this full allocator could I implement all the semantics needed
for all skb operations though.

Previous attempts had some horrors build on alloc_pages() in there.
Critical flag can be setup through setsockopt() and checked in
tcp_v4_rcv().
I have looked at setsockopt(), but since I'm not sure I want to expose
this to userspace I chose to not do that.


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help