Thanks for reminding us this interesting stuff. And yes, IP route cache could use
same algo. That is particularly interesting because it has a /proc/net/rt_cache
accessor that needs to sequentially scan this hash table (potentialy with
many empty slots), while dcache doesnt have such killer.
Here we probably want to use a hashdist/NUMA enabled vmalloc().
That is, regardless of current numa policy of *this* thread,
we want to spread hash table on all nodes.
Also, struct dcache_hash being very small, you want to force it to
use an exclusive cache line, to be sure it wont share it with some
higly modified data...
struct dcache_hash {
struct hlist_head *table;
unsigned int shift;
unsigned int mask;
} __cacheline_aligned_in_smp;
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html