[0/4] standardized waitqueue hashing

William Lee Irwin III
2004-08-28T05:26:38Z

On Thu, Aug 26, 2004 at 01:47:45AM -0700, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.9-rc1/2.6.9-rc1-mm1/
> - nicksched is still here. There has been very little feedback, except that
> it seems to slow some workloads on NUMA.
> - Added a __must_check to the x86 copy_*_user functions. This means that
> with a sufficiently recent gcc, all unchecked copy_*_user() calls will
> generate a warning.
> I fixed a few things, but binfmt_elf.c is a mess.
> It's not clear how to apply the same debug check to put_user() and
> friends.

The following patch series consolidates the various instances of
waitqueue hashing to use a uniform structure and share the per-zone
hashtable among all waitqueue hashers. This is expected to increase the
number of hashtable buckets available for waiting on bh's and inodes
and eliminate statically allocated kernel data structures for greater
node locality and reduced kernel image size. Some attempt was made to
look similar to Oleg Nesterov's suggested API in order to provide some
kind of credit for independent invention of something very similar (the
original versions of these patches predated my public postings on the
subject of filtered waitqueues).

These patches have the further benefit and intention of enabling aio
to use filtered wakeups by standardizing the data structure passed to
wake functions so that embedded waitqueue elements in aio structures
may be succesfully passed to the filtered wakeup wake functions, though
this patch series doesn't implement that particular functionality.

Successfully stress-tested on x86-64 and ia64.

-- wli