Removing GFP_NOFS

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

 



Do we have a strategy for eliminating GFP_NOFS?

As I understand it, our intent is to mark the areas in individual
filesystems that can't be reentered with memalloc_nofs_save()/restore()
pairs.  Once they're all done, then we can replace all the GFP_NOFS
users with GFP_KERNEL.

How will we know when we're done and can kill GFP_NOFS?  I was thinking
that we could put a warning in slab/page_alloc that fires when __GFP_IO
is set, __GFP_FS is clear and PF_MEMALLOC_NOFS is clear.  That would
catch every place that uses GFP_NOFS without using memalloc_nofs_save().

Unfortunately (and this is sort of the point), there's a lot of places
which use GFP_NOFS as a precaution; that is, they can be called from
places which both are and aren't in a nofs path.  So we'd have to pass
in GFP flags.  Which would be a lot of stupid churn.

I don't have a good solution here.  Maybe this is a good discussion
topic for LSFMM, or maybe there's already a good solution I'm overlooking.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux