Re: [dm-devel] [RFC PATCH 2/2] mm, mempool: do not throttle PF_LESS_THROTTLE tasks

From: Mikulas Patocka
Date: Wed Aug 03 2016 - 08:54:13 EST




On Thu, 28 Jul 2016, Michal Hocko wrote:

> > >> I think we'd end up with cleaner code if we removed the cute-hacks. And
> > >> we'd be able to use 6 more GFP flags!! (though I do wonder if we really
> > >> need all those 26).
> > >
> > > Well, maybe we are able to remove those hacks, I wouldn't definitely
> > > be opposed. But right now I am not even convinced that the mempool
> > > specific gfp flags is the right way to go.
> >
> > I'm not suggesting a mempool-specific gfp flag. I'm suggesting a
> > transient-allocation gfp flag, which would be quite useful for mempool.
> >
> > Can you give more details on why using a gfp flag isn't your first choice
> > for guiding what happens when the system is trying to get a free page
> > :-?
>
> If we get rid of throttle_vm_writeout then I guess it might turn out to
> be unnecessary. There are other places which will still throttle but I
> believe those should be kept regardless of who is doing the allocation
> because they are helping the LRU scanning sane. I might be wrong here
> and bailing out from the reclaim rather than waiting would turn out
> better for some users but I would like to see whether the first approach
> works reasonably well.

If we are swapping to a dm-crypt device, the dm-crypt device is congested
and the underlying block device is not congested, we should not throttle
mempool allocations made from the dm-crypt workqueue. Not even a little
bit.

So, I think, mempool_alloc should set PF_NO_THROTTLE (or
__GFP_NO_THROTTLE).

Mikulas

> --
> Michal Hocko
> SUSE Labs
>