Hi,
On Thu, 28 Dec 2000, David S. Miller wrote:
> Date: Thu, 28 Dec 2000 23:17:22 +0100
> From: Andi Kleen <[EMAIL PROTECTED]>
>
> Would you consider patches for any of these points?
>
> To me it seems just as important to make sure struct page is
> a power of 2 in size, with the waitq debugging turned off this
> is true for both 32-bit and 64-bit hosts last time I checked.
Checking test11 (which I'm running here), even with waitq debugging
turned off, on 32-bit (IA32) the struct page is 68bytes (since
the "age" member was re-introduced a while back).
For my development testing, I'm running a _heavily_ hacked kernel. One
of these hacks is to pull the wait_queue_head out of struct page; the
waitq-heads are in a separate allocated area of memory, with a waitq-head
pointer embedded in the page structure (allocated/initialised in
free_area_init_core()). This gives a page structure of 60bytes, giving me
one free double-word to play with (which I'm using as a pointer to a
release function).
Infact, there doesn't need to be a waitq-head allocated for each page
structure - they can share; with a performance overhead on a false
wakeup in __wait_on_page().
Note, for those of us running on 32bit with lots of physical memory, the
available virtual address-space is of major consideration. Reducing the
size of the page structure is more than just reducing cache misses - it
gives us more virtual to play with...
Mark
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/