I think the ext4 block groups are locked with the blockgroup_lock that has about the same number of locks as the number of cores, with a max of 128, IIRC. See blockgroup_lock.h. While there is some chance of contention, it is also unlikely that all of the cores are locking this area at the same time. Cheers, Andreas > On Jan 24, 2014, at 14:38, Andi Kleen <andi@xxxxxxxxxxxxxx> wrote: > > T Makphaibulchoke <tmac@xxxxxx> writes: > >> The patch consists of three parts. >> >> The first part changes the implementation of both the block and hash chains of >> an mb_cache from list_head to hlist_bl_head and also introduces new members, >> including a spinlock to mb_cache_entry, as required by the second part. > > spinlock per entry is usually overkill for larger hash tables. > > Can you use a second smaller lock table that just has locks and is > indexed by a subset of the hash key. Most likely a very small > table is good enough. > > Also I would be good to have some data on the additional memory consumption. > > -Andi > > -- > ak@xxxxxxxxxxxxxxx -- Speaking for myself only -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html