HomeFreeBSD

Modify KM_PUSHPAGE to use GFP_NOIO instead of GFP_NOFS

Description

Modify KM_PUSHPAGE to use GFP_NOIO instead of GFP_NOFS

The resolution of issue #31 made KM_PUSHPAGE imply GFP_NOFS. This
was done to prevent situations where filesystem operations which are
holding locks enter direct reclaim and attempt to reaquire those
same locks. This clearly will result in a deadlock.

This works for datasets which are implemented in terms for filesystem
operations. But unfortunately, swapping to a zvol will encounter
many of the same deadlocks and GFP_NOFS will not prevent this. As
such, it is appropriate to extend KM_PUSHPAGE to use the broader
GFP_NOIO mask to handle these non-filesystem cases.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue zfsonlinux/zfs#342
Closes #105

Details

Provenance
Richard Yao <ryao@cs.stonybrook.edu>Authored on May 1 2012, 1:34 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on May 7 2012, 7:05 PM
Parents
rGa9a7a01cf5a6: Add SPLAT test to exercise slab direct reclaim
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rGf90096c9056b: Modify KM_PUSHPAGE to use GFP_NOIO instead of GFP_NOFS (authored by Richard Yao <ryao@cs.stonybrook.edu>).May 7 2012, 7:05 PM