[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e6b3e6c7-193d-43c4-a8c6-6023458723dd@redhat.com>
Date: Thu, 28 Nov 2024 10:56:32 +0100
From: David Hildenbrand <david@...hat.com>
To: Yang Shi <yang@...amperecomputing.com>,
Catalin Marinas <catalin.marinas@....com>
Cc: Sasha Levin <sashal@...nel.org>,
Linus Torvalds <torvalds@...ux-foundation.org>, Will Deacon
<will@...nel.org>, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org
Subject: Re: [GIT PULL] arm64 updates for 6.13-rc1
On 28.11.24 02:21, Yang Shi wrote:
>>> diff --git a/arch/arm64/mm/copypage.c b/arch/arm64/mm/copypage.c
>>> index 87b3f1a25535..ef303a2262c5 100644
>>> --- a/arch/arm64/mm/copypage.c
>>> +++ b/arch/arm64/mm/copypage.c
>>> @@ -30,9 +30,9 @@ void copy_highpage(struct page *to, struct page *from)
>>> if (!system_supports_mte())
>>> return;
>>> - if (folio_test_hugetlb(src) &&
>>> - folio_test_hugetlb_mte_tagged(src)) {
>>> - if (!folio_try_hugetlb_mte_tagging(dst))
>>> + if (folio_test_hugetlb(src)) {
>>> + if (!folio_test_hugetlb_mte_tagged(src) ||
>>> + !folio_try_hugetlb_mte_tagging(dst))
>>> return;
>>> /*
>> I wonder why we had a 'return' here originally rather than a
>> WARN_ON_ONCE() as we do further down for the page case. Do you seen any
>> issue with the hunk below? Destination should be a new folio and not
>> tagged yet:
>
> Yes, I did see problem. Because we copy tags for all sub pages then set
> folio mte tagged when copying the data for the first subpage. The
> warning will be triggered when we copy the second subpage.
It's rather weird, though. We're instructed to copy a single page, yet
copy tags for all pages.
This really only makes sense when called from folio_copy(), where we are
guaranteed to copy all pages.
I'm starting to wonder if we should be able to hook into / overload
folio_copy() instead, to just handle the complete hugetlb copy ourselves
in one shot, and assume that copy_highpage() will never be called for
hugetlb pages (WARN and don't copy tags).
--
Cheers,
David / dhildenb
Powered by blists - more mailing lists