On 5/13/24 21:07, David Hildenbrand wrote: > On 12.05.24 14:35, Chen Taotao wrote: >> When a folio belongs exclusively to one process after a COW event, >> folio_move_anon_rmap() always moves the folio into the anon_vma >> belongs only to this process. >> >> However, if the folio already belongs to the anon_vma of the this >> process, we don't need to move it again. In this case, we first >> check if the folio already belongs to the anna_vma of the this >> process, and only move it if it does not. >> >> The above changes may improve the performance of vm faults in some >> scenarios, because the performance loss caused by WRITE_ONCE() is >> much more than the performance loss caused by add a judgment. > > Please proof that by real numbers. I don't think it will make a real difference, and we likely don't want that change. Agreed, only scenarios when pre-condition check makes any sense is if subsequent actions are expensive such as writing into registers etc. But in this case both 'if' and 'WRITE_ONCE' statements are of comparable cost, hence adding additional conditional check is only going to increase the cost on average i.e when both gets executed.