Skip to contentSkip to conversation

hashed waitqueues, somewhat cleaner

PATCH In review William Lee Irwin III 1 participant 2 messages Jan 7, 2002

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 hashed waitqueues, somewhat cleaner

Some new versions of the hashed waitqueues are now available:

ftp://ftp.kernel.org/pub/linux/kernel/people/wli/vm/struct_page/waitq-2.4.17-rmap10c-1

This includes:

(1) Manual common subexpression elimination of page_waitqueue() calls
(2) Use a 64-bit Fibonacci hashing prime conditional on BITS_PER_LONG
(3) Storing wait_table_shift instead of wait_table_bits to reduce arithmetic within the hash function
(4) Eliminating the masking operation within the hash function, as the shifting already zeroes the high-order bits.
(5) Eliminating explicit references to struct page ->wait outside of the VM.

Future directions:
(1) Using a non-linear function to size the waitqueue table given the size of a zone, as the demand for waitqueues does not appear to scale linearly with the size of memory.
(2) Finding bit-sparse Fibonacci hashing multipliers for machines with slow integer multiplies (so it can be optimized to shift/add sequences on those machines).

I'll followup shortly after rediffing against 2.4.17-mainline.

Cheers,
Bill

#1 lore raw
Quoted 1 line · William Lee Irwin III

I'll followup shortly after rediffing against 2.4.17-mainline.

I rediffed and did a test boot. Here it is:

ftp://ftp.kernel.org/pub/linux/kernel/people/wli/vm/struct_page/waitq-2.4.17-mainline-1

Enjoy,
Bill