linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michael Ellerman <mpe@ellerman.id.au>
To: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	"Wang, Haiyue" <haiyue.wang@intel.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"david@redhat.com" <david@redhat.com>,
	"apopple@nvidia.com" <apopple@nvidia.com>,
	"linmiaohe@huawei.com" <linmiaohe@huawei.com>,
	"Huang, Ying" <ying.huang@intel.com>,
	"songmuchun@bytedance.com" <songmuchun@bytedance.com>,
	"naoya.horiguchi@linux.dev" <naoya.horiguchi@linux.dev>,
	"alex.sierra@amd.com" <alex.sierra@amd.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	linuxppc-dev@lists.ozlabs.org,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
Subject: Re: [PATCH v6 1/2] mm: migration: fix the FOLL_GET failure on following huge page
Date: Fri, 26 Aug 2022 23:07:12 +1000	[thread overview]
Message-ID: <87r113jgqn.fsf@mpe.ellerman.id.au> (raw)
In-Reply-To: <Yv/AdwdID9rr9xOL@monkey>

Mike Kravetz <mike.kravetz@oracle.com> writes:
> On 08/19/22 21:22, Michael Ellerman wrote:
>> Mike Kravetz <mike.kravetz@oracle.com> writes:
>> > On 08/16/22 22:43, Andrew Morton wrote:
>> >> On Wed, 17 Aug 2022 03:31:37 +0000 "Wang, Haiyue" <haiyue.wang@intel.com> wrote:
>> >>
>> >> > > >  		}
>> >> > >
>> >> > > I would be better to fix this for real at those three client code sites?
>> >> >
>> >> > Then 5.19 will break for a while to wait for the final BIG patch ?
>> >>
>> >> If that's the proposal then your [1/2] should have had a cc:stable and
>> >> changelog words describing the plan for 6.0.
>> >>
>> >> But before we do that I'd like to see at least a prototype of the final
>> >> fixes to s390 and hugetlb, so we can assess those as preferable for
>> >> backporting.  I don't think they'll be terribly intrusive or risky?
>> >
>> > I will start on adding follow_huge_pgd() support.  Although, I may need
>> > some help with verification from the powerpc folks, as that is the only
>> > architecture which supports hugetlb pages at that level.
>> >
>> > mpe any suggestions?
>>
>> I'm happy to test.
>>
>> I have a system where I can allocate 1GB huge pages.
>>
>> I'm not sure how to actually test this path though. I hacked up the
>> vm/migration.c test to allocate 1GB hugepages, but I can't see it going
>> through follow_huge_pgd() (using ftrace).
>
> I thing you needed to use 16GB to trigger this code path.  Anshuman introduced
> support for page offline (and migration) at this level in commit 94310cbcaa3c
> ("mm/madvise: enable (soft|hard) offline of HugeTLB pages at PGD level").
> When asked about the use case, he mentioned:
>
> "Yes, its in the context of 16GB pages on POWER8 system where all the
>  gigantic pages are pre allocated from the platform and passed on to
>  the kernel through the device tree. We dont allocate these gigantic
>  pages on runtime."

That was true, but isn't anymore.

I must have been insufficently caffeinated the other day. On our newer
machines 1GB is the largest huge page size, but it's obviously way too
small to sit at the PGD level. So that was a waste of my time :)

We used to support 16GB at the PGD level, but we reworked the page table
geometry a few years ago, and now they sit at the PUD level on machines
that support 16GB pages:

  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ba95b5d0359609b4ec8010f77c40ab3c595a6ac6

Note the author :}

So the good news is we no longer have any configuration where a huge
page entry is expected in the PGD. So we can drop our pgd_huge()
definitions, and ours are the last non-zero definitions, so it can all
go away I think.

I'll send a patch to remove the powerpc pgd_huge() definitions after
I've run it through some tests.

cheers

  reply	other threads:[~2022-08-26 13:07 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-12  8:49 [PATCH v1] mm: migration: fix the FOLL_GET failure on following huge page Haiyue Wang
2022-08-13 23:28 ` Andrew Morton
2022-08-14  6:20   ` Wang, Haiyue
2022-08-14  6:49     ` Wang, Haiyue
2022-08-14 14:05 ` [PATCH v2 0/3] fix follow_page related issues Haiyue Wang
2022-08-14 14:05   ` [PATCH v2 1/3] mm: revert handling Non-LRU pages returned by follow_page Haiyue Wang
2022-08-14 16:30     ` David Hildenbrand
2022-08-15  1:02       ` Wang, Haiyue
2022-08-14 14:05   ` [PATCH v2 2/3] mm: migration: fix the FOLL_GET failure on following huge page Haiyue Wang
2022-08-14 14:05   ` [PATCH v2 3/3] mm: handling Non-LRU pages returned by follow_page Haiyue Wang
2022-08-14 16:34     ` David Hildenbrand
2022-08-15  1:03       ` Wang, Haiyue
2022-08-15  1:03 ` [PATCH v3 0/2] fix follow_page related issues Haiyue Wang
2022-08-15  1:03   ` [PATCH v3 1/2] mm: migration: fix the FOLL_GET failure on following huge page Haiyue Wang
2022-08-15  1:59     ` Huang, Ying
2022-08-15  2:10       ` Wang, Haiyue
2022-08-15  2:15         ` Wang, Haiyue
2022-08-15  2:51           ` Huang, Ying
2022-08-15  1:03   ` [PATCH v3 2/2] mm: fix the handling Non-LRU pages returned by follow_page Haiyue Wang
2022-08-15  1:39     ` Huang, Ying
2022-08-15  1:46       ` Wang, Haiyue
2022-08-15  1:59 ` [PATCH v4 0/2] fix follow_page related issues Haiyue Wang
2022-08-15  1:59   ` [PATCH v4 1/2] mm: migration: fix the FOLL_GET failure on following huge page Haiyue Wang
2022-08-15  4:28     ` Alistair Popple
2022-08-15  4:40       ` Wang, Haiyue
2022-08-15  5:16         ` Alistair Popple
2022-08-15  5:20           ` Wang, Haiyue
2022-08-15  5:35             ` Alistair Popple
2022-08-15  5:37               ` Wang, Haiyue
2022-08-15  1:59   ` [PATCH v4 2/2] mm: fix the handling Non-LRU pages returned by follow_page Haiyue Wang
2022-08-15  7:02 ` [PATCH v5 0/2] fix follow_page related issues Haiyue Wang
2022-08-15  7:02   ` [PATCH v5 1/2] mm: migration: fix the FOLL_GET failure on following huge page Haiyue Wang
2022-08-15  7:40     ` Huang, Ying
2022-08-15  7:02   ` [PATCH v5 2/2] mm: fix the handling Non-LRU pages returned by follow_page Haiyue Wang
2022-08-15  7:50     ` Huang, Ying
2022-08-15 14:28     ` Felix Kuehling
2022-08-16  0:00     ` Alistair Popple
2022-08-16  1:12       ` Wang, Haiyue
2022-08-16  2:45         ` Alistair Popple
2022-08-16  2:20 ` [PATCH v6 0/2] fix follow_page related issues Haiyue Wang
2022-08-16  2:21   ` [PATCH v6 1/2] mm: migration: fix the FOLL_GET failure on following huge page Haiyue Wang
2022-08-16  8:54     ` Baolin Wang
2022-08-17  0:58     ` Andrew Morton
2022-08-17  3:31       ` Wang, Haiyue
2022-08-17  5:43         ` Andrew Morton
2022-08-17  5:47           ` Wang, Haiyue
2022-08-17 17:26           ` Mike Kravetz
2022-08-17 21:58             ` Mike Kravetz
2022-08-18  0:32               ` Wang, Haiyue
2022-08-19 11:22             ` Michael Ellerman
2022-08-19 16:55               ` Mike Kravetz
2022-08-26 13:07                 ` Michael Ellerman [this message]
2022-08-18 11:51           ` Gerald Schaefer
2022-08-18 11:57             ` Gerald Schaefer
2022-08-17  2:12     ` Miaohe Lin
2022-08-16  2:21   ` [PATCH v6 2/2] mm: fix the handling Non-LRU pages returned by follow_page Haiyue Wang
2022-08-16  4:42     ` Alistair Popple
2022-08-17  2:34     ` Miaohe Lin
2022-08-23 10:07       ` David Hildenbrand
2022-08-23 13:26         ` Wang, Haiyue
2022-08-23 13:27           ` David Hildenbrand
2022-08-23 13:29             ` Wang, Haiyue

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=87r113jgqn.fsf@mpe.ellerman.id.au \
    --to=mpe@ellerman.id.au \
    --cc=agordeev@linux.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=alex.sierra@amd.com \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=apopple@nvidia.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=david@redhat.com \
    --cc=gor@linux.ibm.com \
    --cc=haiyue.wang@intel.com \
    --cc=hca@linux.ibm.com \
    --cc=linmiaohe@huawei.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mike.kravetz@oracle.com \
    --cc=naoya.horiguchi@linux.dev \
    --cc=songmuchun@bytedance.com \
    --cc=svens@linux.ibm.com \
    --cc=ying.huang@intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).