On 03.09.20 09:01, Alex Shi wrote: > pageblock_flags is used as long, since every pageblock_flags is just 4 > bits, 'long' size will include 8(32bit machine) or 16 pageblocks' flags, > that flag setting has to sync in cmpxchg with 7 or 15 other pageblock > flags. It would cause long waiting for sync. > > If we could change the pageblock_flags variable as char, we could use > char size cmpxchg, which just sync up with 2 pageblock flags. it could > relief the false sharing in cmpxchg. > > Signed-off-by: Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> > Cc: linux-mm@xxxxxxxxx > Cc: linux-kernel@xxxxxxxxxxxxxxx Could you please 1. Send a cover letter and indicate the changees between versions. I cannot find any in my mailbox or on -mm - is there any? (also, is there a patch 4 ?) 2. Report proper performance numbers as requested, especially, over multiple runs. This should go into patch 1/2. Are they buried somewhere? 3. Clarify what patch 3 does: Do we actually waste 8*sizeof(long) where we only need 4 bits? Also, breaking stuff in patch 1 and fixing it in patch 3 is not acceptable. This breaks git bisect. Skimming over the patches I think this is the case. I am not convinced yet that we need and want this. As Alex mentioned, we touch pageblock flags while holding the zone lock already in most cases - and as Mel mentiones, updates should be rare. -- Thanks, David / dhildenb