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

From: Peter Zijlstra <[email-masked]>
Date: Sat, 12 Aug 2006 13:40:29 +0200

On Sat, 2006-08-12 at 14:42 +0400, Evgeniy Polyakov wrote:

> When network uses the same allocator, it depends on it, and thus it is
> possible to have (cut by you) a situation when reserve (which depends on
> SLAB and it's OOM too) is not filled or even does not exist.

No, the reserve does not depend on SLAB, and I totally short-circuit the
SLAB allocator for skbs and related on memory pressure.

The memalloc reserve is on the page allocator level and is only
accessable for PF_MEMALLOC processes or __GFP_MEMALLOC (new in my
patches) allocations. (arguably there could be some more deadlocks wrt.
PF_MEMALLOC where the code under PF_MEMALLOC is not properly bounded,
those would be bugs and should be fixed if present/found)

> If transferred to your implementation, then just steal some pages from
> SLAB when new network device is added and use them when OOM happens.
> It is much simpler and can help in the most of situations.

SLAB reclaim is painfull and has been tried by the time you OOM.