Re: [PATCH 1/4] mm: migrate: use a folio in add_page_for_migration()
From: Matthew Wilcox
Date: Thu Aug 03 2023 - 08:30:35 EST
On Thu, Aug 03, 2023 at 03:13:21PM +0800, Kefeng Wang wrote:
>
>
> On 2023/8/2 20:21, Matthew Wilcox wrote:
> > On Wed, Aug 02, 2023 at 05:53:43PM +0800, Kefeng Wang wrote:
> > > err = -EACCES;
> > > - if (page_mapcount(page) > 1 && !migrate_all)
> > > - goto out_putpage;
> > > + if (folio_estimated_sharers(folio) > 1 && !migrate_all)
> > > + goto out_putfolio;
> >
> > I do not think this is the correct change. Maybe leave this line
> > alone.
>
> Ok, I am aware of the discussion about this in other mail, will not
> change it(also the next two patch about this function), or wait the
> new work of David.
> >
> > > - if (PageHuge(page)) {
> > > - if (PageHead(page)) {
> > > - isolated = isolate_hugetlb(page_folio(page), pagelist);
> > > + if (folio_test_hugetlb(folio)) {
> > > + if (folio_test_large(folio)) {
> >
> > This makes no sense when you read it. All hugetlb folios are large,
> > by definition. Think about what this code used to do, and what it
> > should be changed to.
>
> hugetlb folio is self large folio, will drop redundant check
No, that's not the difference. Keep thinking about it. This is not
a mechanical translation!