On 8/19/20 10:09 AM, Alex Shi wrote: > > > 在 2020/8/19 下午3:57, Anshuman Khandual 写道: >> >> >> On 08/19/2020 11:17 AM, Alex Shi wrote: >>> Current pageblock_flags is only 4 bits, so it has to share a char size >>> in cmpxchg when get set, the false sharing cause perf drop. >>> >>> If we incrase the bits up to 8, false sharing would gone in cmpxchg. and >>> the only cost is half char per pageblock, which is half char per 128MB >>> on x86, 4 chars in 1 GB. >> >> Agreed that increase in memory utilization is negligible here but does >> this really improve performance ? >> > > It's no doubt in theory. and it would had a bad impact according to > commit e380bebe4771548 mm, compaction: keep migration source private to a single I don't think that commit is doing the test_and_set_skip() under lock to avoid false sharing. I think it's done to simply make the test and set protected against races without relying on e.g. a truly atomic test_and_set_bit(). It's still noted that it's just a hint so it's not protected to others calling set_pageblock_skip() from other contexts not under a lock. > but I do have some problem in running thpscale/mmtest. I'd like to see if anyone > could give a try. > > BTW, I naturally hate the false sharing even it's in theory. Anyone who doesn't? :) > > Thanks > Alex >