All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oscar Salvador <osalvador@suse.de>
To: David Hildenbrand <david@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Vlastimil Babka <vbabka@suse.cz>,
	Michal Hocko <mhocko@kernel.org>,
	Muchun Song <songmuchun@bytedance.com>,
	Mike Kravetz <mike.kravetz@oracle.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Anshuman Khandual <anshuman.khandual@arm.com>
Subject: Re: [PATCH v4 0/4] Make alloc_contig_range handle Hugetlb pages
Date: Wed, 17 Mar 2021 11:05:23 +0100	[thread overview]
Message-ID: <20210317100518.GA16479@linux> (raw)
In-Reply-To: <01d2ee6a-f0aa-4580-b1f4-f0e8a2ded4f8@redhat.com>

On Wed, Mar 17, 2021 at 10:48:31AM +0100, David Hildenbrand wrote:
> > I was preparing v5, and I wanted to be sure I understood you here.
> > 
> > Right you are that the in-use page check can be dropped, as those pages
> > can
> > be migrated away, and the Hugetlb page check can also be dropped since
> > isolate_migratepages_range is now capable of dealing with those kind of
> > pages.
> > 
> > > b) Similarly, check for gigantic pages and/or movability/migratability.
> > 
> > I lost you here.
> > 
> > isolate_or_dissolve_huge_page() already bails out on hugetlb-gigantic
> > pages.
> > 
> > Or do you mean to place an upfront check here? (hstate_is_gigantic())?
> 
> Yes. But I prefer a) and keeping it simple here -- just doing basic sanity
> checks (online, zone, PageReserved()) that are absolutely necessary.

Ok, I am probably dense as I understood as if you were lean towards having
a) + b).

That is what I have as the last patch of the patchset:

From e97175b7d4970cbdcbafcf8c398f72a571e817b0 Mon Sep 17 00:00:00 2001
From: Oscar Salvador <osalvador@suse.de>
Date: Thu, 18 Mar 2021 05:03:18 +0100
Subject: [PATCH] mm,page_alloc: Drop unnecesary checks from
 pfn_range_valid_contig

pfn_range_valid_contig() bails out when it finds an in-use page or a
hugetlb page, among other things.
We can drop the in-use page check since __alloc_contig_pages can migrate
away those pages, and the hugetlb page check can go too since
isolate_migratepages_range is now capable of dealing with hugetlb pages.

Signed-off-by: Oscar Salvador <osalvador@suse.de>
---
 mm/page_alloc.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 4cb455355f6d..50d73e68b79e 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -8685,12 +8685,6 @@ static bool pfn_range_valid_contig(struct zone *z, unsigned long start_pfn,

                if (PageReserved(page))
                        return false;
-
-               if (page_count(page) > 0)
-                       return false;
-
-               if (PageHuge(page))
-                       return false;
        }
        return true;
 }

-- 
Oscar Salvador
SUSE L3


  reply	other threads:[~2021-03-17 10:05 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-10 15:08 [PATCH v4 0/4] Make alloc_contig_range handle Hugetlb pages Oscar Salvador
2021-03-10 15:08 ` [PATCH v4 1/4] mm,page_alloc: Bail out earlier on -ENOMEM in alloc_contig_migrate_range Oscar Salvador
2021-03-15 11:00   ` Vlastimil Babka
2021-03-15 11:10   ` David Hildenbrand
2021-03-10 15:08 ` [PATCH v4 2/4] mm,compaction: Let isolate_migratepages_{range,block} return error codes Oscar Salvador
2021-03-15 11:03   ` Vlastimil Babka
2021-03-10 15:08 ` [PATCH v4 3/4] mm: Make alloc_contig_range handle free hugetlb pages Oscar Salvador
2021-03-10 15:08 ` [PATCH v4 4/4] mm: Make alloc_contig_range handle in-use " Oscar Salvador
2021-03-15  9:06 ` [PATCH v4 0/4] Make alloc_contig_range handle Hugetlb pages David Hildenbrand
2021-03-15 10:27   ` Oscar Salvador
2021-03-15 10:28     ` David Hildenbrand
2021-03-17  9:43   ` Oscar Salvador
2021-03-17  9:48     ` David Hildenbrand
2021-03-17 10:05       ` Oscar Salvador [this message]
2021-03-17 10:06         ` Oscar Salvador
2021-03-17 10:07         ` David Hildenbrand
2021-03-15 10:23 ` Oscar Salvador

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210317100518.GA16479@linux \
    --to=osalvador@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=anshuman.khandual@arm.com \
    --cc=david@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=mike.kravetz@oracle.com \
    --cc=songmuchun@bytedance.com \
    --cc=vbabka@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.