This ES7000 system is not NUMA. All memory is equidistant from all
processors,
with a full non-blocking crossbar interconnect, and the hardware guarantees
fairness under cacheline contention. So the processors aren't being starved
or treated unfairly by the hardware, just by the reader-preference locking
code.
It isn't obvious to me how to extend those queued to reader/writer locks if
you
have to allow recursive readers without incurring the same overhead of
tracking
which processors already have a reader lock.
If you do want to trigger recursive rw_locks, simply change the header file
to
make them normal spinlocks. Then whenever the kernel hangs, see where it
is.
Of course, this approach only finds all of them if you execute every code
path.
Does anyone want to chip in on why we need recursive r/w locks? Or why it
is hard to remove them? It doesn't sound like they are used much.
Kevin
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/