> The problem areas of scalability, for which no real solution is
> evident yet, involve the file name lookup tree data structures,
> ie. the dcache under Linux. All accesses here are tree based, and
> everyone starts from similar roots. So you can't per-node or
> per-branch lock as everyone traverses the same paths. Furthermore you
> can't use "special locks" as in #1 since this data structure is
> neither heavy reader nor heavy writer.
Yes. dbench on 4-way was showing d_lookup hurting us, but replacing
dcache_lock with a rw_lock (Anton Blanchard provided an atomic_dec_and_wlock)
and a separate lock for the unused list DIDN'T HELP ONE BIT.
Why? Because there's no contention on the lock! The problem is almost
entirely moving the cacheline around (which is the same for a rw lock).
I'd love to say that I can solve this with RCU, but it's vastly non-trivial
and I haven't got code, so I'm not going to say that. 8)
Rusty.
-- Anyone who quotes me is an idiot. -- Rusty Russell. - 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/