On 19/07/2023 19:23, Yu Zhao wrote: > On Wed, Jul 19, 2023 at 7:55 AM Ryan Roberts <ryan.roberts@xxxxxxx> wrote: >> >> Like page_remove_rmap() but batch-removes the rmap for a range of pages >> belonging to a folio. This can provide a small speedup due to less >> manipuation of the various counters. But more crucially, if removing the >> rmap for all pages of a folio in a batch, there is no need to >> (spuriously) add it to the deferred split list, which saves significant >> cost when there is contention for the split queue lock. >> >> All contained pages are accounted using the order-0 folio (or base page) >> scheme. >> >> Reviewed-by: Yin Fengwei <fengwei.yin@xxxxxxxxx> >> Reviewed-by: Zi Yan <ziy@xxxxxxxxxx> >> Signed-off-by: Ryan Roberts <ryan.roberts@xxxxxxx> > > I have asked for this before but let me be very clear this time: we > need to generalize the existing functions rather than add more > specialized functions. Otherwise it'd get even harder to maintain down > the road. Yeah fair enough, my fault; I wrote this before I had your feedback on the other rmap function and overlooked it when refactoring this. I'll fix it and repost. > > folio_remove_rmap_range() needs to replace page_remove_rmap(). IOW, > page_remove_rmap() is just a wrapper around folio_remove_rmap_range().