Re: [PATCH v2] s390: fix HugeTLB vmemmap optimization crash
From: Luiz Capitulino
Date: Thu Oct 30 2025 - 10:55:02 EST
On 2025-10-30 10:38, Gerald Schaefer wrote:
On Wed, 29 Oct 2025 13:49:53 +0100
Heiko Carstens <hca@xxxxxxxxxxxxx> 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").
OK, let's do the right thing. Do you plan to post a patch? I can do it
if you would like.