Messages in this thread | | | Date | Wed, 2 Aug 2023 10:59:32 +0800 | Subject | Re: [PATCH 4/5] mm/compaction: remove unnecessary cursor page in isolate_freepages_block | From | Baolin Wang <> |
| |
On 7/30/2023 1:43 AM, Kemeng Shi wrote: > The cursor is only used for page forward currently. We can simply move page > forward directly to remove unnecessary cursor. > > Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
LGTM. Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
> --- > mm/compaction.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/mm/compaction.c b/mm/compaction.c > index 65791a74c5e8..cfb661f4ce23 100644 > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -589,7 +589,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > bool strict) > { > int nr_scanned = 0, total_isolated = 0; > - struct page *cursor; > + struct page *page; > unsigned long flags = 0; > spinlock_t *locked = NULL; > unsigned long blockpfn = *start_pfn; > @@ -599,12 +599,11 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > if (strict) > stride = 1; > > - cursor = pfn_to_page(blockpfn); > + page = pfn_to_page(blockpfn); > > /* Isolate free pages. */ > - for (; blockpfn < end_pfn; blockpfn += stride, cursor += stride) { > + for (; blockpfn < end_pfn; blockpfn += stride, page += stride) { > int isolated; > - struct page *page = cursor; > > /* > * Periodically drop the lock (if held) regardless of its > @@ -628,7 +627,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > > if (likely(order <= MAX_ORDER)) { > blockpfn += (1UL << order) - 1; > - cursor += (1UL << order) - 1; > + page += (1UL << order) - 1; > nr_scanned += (1UL << order) - 1; > } > goto isolate_fail; > @@ -665,7 +664,7 @@ static unsigned long isolate_freepages_block(struct compact_control *cc, > } > /* Advance to the end of split page */ > blockpfn += isolated - 1; > - cursor += isolated - 1; > + page += isolated - 1; > continue; > > isolate_fail:
| |