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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 11, 2006 at 11:42:50PM -0400, Rik van Riel ([email protected]) wrote:
> >Dropping these non-essential packets makes sure the reserve memory 
> >doesn't get stuck in some random blocked user-space process, hence
> >you can make progress.
> 
> In short:
>  - every incoming packet needs to be received at the packet level
>  - when memory is low, we only deliver data to memory critical sockets
>  - packets to other sockets get dropped, so the memory can be reused
>    for receiving other packets, including the packets needed for the
>    memory critical sockets to make progress
> 
> Forwarding packets while in low memory mode should not be a problem
> at all, since forwarded packets get freed quickly.
> 
> The memory pool for receiving packets does not need much accounting
> of any kind, since every packet will end up coming from that pool
> when normal allocations start failing.   Maybe Evgeniy's allocator
> can do something smarter internally, and mark skbuffs as MEMALLOC
> when the number of available skbuffs is getting low?

As you described above, memory for each packet must be allocated (either
from SLAB or from reserve), so network needs special allocator in OOM
condition, and that allocator should be separated from SLAB's one which 
got OOM, so my purpose is just to use that different allocator (with
additional features) for netroking always. Since every piece of
networking is limited (socket queues, socket numbers, hardware queues,
hardware wire speeds an so on) there is always a maximum amount of
memory it can consume and can never exceed, so if network allocator will 
get that amount of memory at the begining, it will never meet OOM, 
so it will _always_ work and thus can allow to make slow progress for 
OOM-capable things like block devices and swap issues. 
There are no special reserve and no need to switch to/from it and 
no possibility to have OOM by design.

-- 
	Evgeniy Polyakov
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux