zfsonlinux/spl — pull request #161 by behlendorf (2012-08-23 04:27:23+00:00)
Title: Improved memory management

This patch stack improves the memory management in the SPL as follows:

* Emergency slab objects. These prevent the possibility of a deadlock in vmalloc() due to the kernel not honoring the gfp flags without the need for a kernel patch.

* Revert the use of PF_MEMALLOC which was the previous workaround for the vmalloc() deadlocks. Unfortunately, this fix resulted in side effects such as the depletion of critical memory zones.

* Added PF_NOFS flag to automate detection of sites where KM_PUSHPAGE must be used instead of KM_SLEEP.

* Added self-recursive mutex detection as additional paranoia.