On Sun, 28 Jan 2007 15:11:34 +0100
Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
I really don't recall any performance problems being reported out of that
code in recent years.
As Christoph says, it's very much preferred that code be migrated over to
kmap_atomic(). Partly because kmap() is deadlockable in situations where a
large number of threads are trying to take two kmaps at the same time and
we run out. This happened in the past, but incidences have gone away,
probably because of kmap->kmap_atomic conversions.
Have you verified that all architectures which can implement
WANT_PAGE_VIRTUAL also implement cmpxchg?
Have you verified that sufficient headers are included for this to compile
correctly on all WANT_PAGE_VIRTUAL-enabling architectures on all configs?
I don't see asm/system.h being included in mm.h and if I get yet another
damned it-wont-compile patch I might do something irreversible.
The old code used masking.
The new code does more-expensive modulus. Necessary?
This looks wrong. What happens if everyone else does their unmap between
the __set_current_state() and the add_wait_queue()?
-