lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251030153807.0a835fee@thinkpad-T15>
Date: Thu, 30 Oct 2025 15:38:07 +0100
From: Gerald Schaefer <gerald.schaefer@...ux.ibm.com>
To: Heiko Carstens <hca@...ux.ibm.com>
Cc: David Hildenbrand <david@...hat.com>,
        Luiz Capitulino
 <luizcap@...hat.com>, borntraeger@...ux.ibm.com,
        joao.m.martins@...cle.com, mike.kravetz@...cle.com,
        linux-kernel@...r.kernel.org, linux-mm@...ck.org,
        linux-s390@...r.kernel.org, gor@...ux.ibm.com, agordeev@...ux.ibm.com,
        osalvador@...e.de, akpm@...ux-foundation.org, aneesh.kumar@...nel.org
Subject: Re: [PATCH v2] s390: fix HugeTLB vmemmap optimization crash

On Wed, 29 Oct 2025 13:49:53 +0100
Heiko Carstens <hca@...ux.ibm.com> wrote:

> On Wed, Oct 29, 2025 at 01:15:44PM +0100, David Hildenbrand wrote:
> > BTW, I'm staring at s390x's flush_tlb() function and wonder why that one is
> > defined. I'm sure there is a good reason ;)
> 
> Yes, I stumbled across that yesterday evening as well. I think its only
> purpose is that it wants to be deleted :). I just didn't do it yet since I
> don't want to see a merge conflict with this patch.
> 
> I also need to check if the only usage of flush_tlb_page(), which is also a
> no-op for s390, in mm/memory.c is not indicating a problem too.
> 
> > > Changing active entries without the detour over an invalid entry or using
> > > proper instructions like crdte or cspg is not allowed on s390. This was solved
> > > for other parts that change active entries of the kernel mapping in an
> > > architecture compliant way for s390 (see arch/s390/mm/pageattr.c).
> > 
> > Good point. I recall ARM64 has similar break-before-make requirements
> > because they cannot tolerate two different TLB entries (small vs. large) for
> > the same virtual address.
> > 
> > And if I rememebr correctly, that's the reason why arm64 does not enable
> > ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP just yet.
> 
> Ok, let's wait for Gerald. Maybe there is a non-obvious reason why this works
> anyway.

No, using pmd_populate_kernel() on an active/valid PMD in vmemmap_split_pmd()
should violate the architecture, as you described. So this would not work
with current code, and also should not have worked when I did the change,
or only by chance.

Therefore, we should disable ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP again, for
now. Doing it right would most likely require common code changes and
CRDTE / CSPG usage on s390. Not sure if this feature is really worth the
hassle, reading all the drawbacks that I mentioned in my commit 00a34d5a99c0
("s390: select ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP").

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ