]> granicus.if.org Git - spl/commit
Remove default GFP_NOFS allocations
authorBrian Behlendorf <behlendorf1@llnl.gov>
Sat, 19 Mar 2011 20:49:14 +0000 (13:49 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Sat, 19 Mar 2011 21:50:39 +0000 (14:50 -0700)
commitcb255ae57278be3206693b5116eff95e612e809a
treec5c344b1fb84957435807fda42bfed86571ad514
parent181a9b89988a00a3faa06203b94cc155f10fe1e7
Remove default GFP_NOFS allocations

As originally described in commit 82b8c8fa64737edfb203156b245b48840139d2c1
this was done to prevent certain deadlocks from occuring in the system.
However, as suspected the price for doing this proved to be too high.
The VM is having a hard time effectively reclaiming memory thus we are
reverting this change.

However, we still need to fundamentally handle the issue.  Under
Solaris the KM_PUSHPAGE mask is used commonly in I/O paths to ensure
a memory allocations will succeed.  We leverage this fact and redefine
KM_PUSHPAGE to include GFP_NOFS.  This ensures that in these common
I/O path we don't trigger additional reclaim.  This minimizes the
change to the Solaris code.
include/sys/kmem.h