On 25/10/2016 17:49, Pranith Kumar wrote: > But we are taking the seqlock of only the head bucket, while the > readers are reading hashes/pointers of the chained buckets.
No, we aren't. See qht_lookup__slowpath. This patch: throughput base patch %change update 0 8.07 13.33 +65% 10 7.10 8.90 +25% 20 6.34 7.02 +10% 30 5.48 6.11 +9.6% 40 4.90 5.46 +11.42% Just doubling the cachesize: throughput base patch %change update 0 8.07 4.47 -45% ?!? 10 7.10 9.82 +38% 20 6.34 8.13 +28% 30 5.48 7.13 +30% 40 5.90 6.45 +30% It seems to me that your machine has 128-byte cachelines. Paolo