Re: [tip: x86/urgent] x86/mm: Fix pti_clone_entry_text() for i386

Guenter Roeck
2024-08-06T04:52:09Z

Hi Peter,

On Thu, Aug 01, 2024 at 10:55:31AM -0000, tip-bot2 for Peter Zijlstra wrote:
> The following commit has been merged into the x86/urgent branch of tip:
>
> Commit-ID: 49947e7aedfea2573bada0c95b85f6c2363bef9f
> Gitweb: https://git.kernel.org/tip/49947e7aedfea2573bada0c95b85f6c2363bef9f
> Author: Peter Zijlstra <peterz@infradead.org>
> AuthorDate: Thu, 01 Aug 2024 12:42:25 +02:00
> Committer: Peter Zijlstra <peterz@infradead.org>
> CommitterDate: Thu, 01 Aug 2024 12:48:23 +02:00
>
> x86/mm: Fix pti_clone_entry_text() for i386
>
> While x86_64 has PMD aligned text sections, i386 does not have this
> luxery. Notably ALIGN_ENTRY_TEXT_END is empty and _etext has PAGE
> alignment.
>
> This means that text on i386 can be page granular at the tail end,
> which in turn means that the PTI text clones should consistently
> account for this.
>
> Make pti_clone_entry_text() consistent with pti_clone_kernel_text().
>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>

With this patch in the tree, some of my qemu tests (those with PAE enabled)
report several WARNING backtraces.

WARNING: CPU: 0 PID: 1 at arch/x86/mm/pti.c:256 pti_clone_pgtable+0x298/0x2dc

WARNING: CPU: 0 PID: 1 at arch/x86/mm/pti.c:394 pti_clone_pgtable+0x29a/0x2dc

The backtraces are repeated multiple times.

Please see

https://kerneltests.org/builders/qemu-x86-master/builds/253/steps/qemubuildcommand/logs/stdio

for complete logs.

Bisect log is attached. Reverting this patch fixes the problem.

Thanks,
Guenter

---
# bad: [de9c2c66ad8e787abec7c9d7eff4f8c3cdd28aed] Linux 6.11-rc2
# good: [defaf1a2113a22b00dfa1abc0fd2014820eaf065] Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
git bisect start 'v6.11-rc2' 'defaf1a2113a'
# good: [953f776459a83f00ac940dd67c96d226d7041550] Merge tag 'irq-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
git bisect good 953f776459a83f00ac940dd67c96d226d7041550
# good: [61ca6c78295e242d4b681003112bfcdc54597489] Merge tag 'timers-urgent-2024-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
git bisect good 61ca6c78295e242d4b681003112bfcdc54597489
# good: [41e71dbb0e0a0fe214545fe64af031303a08524c] x86/mm: Fix pti_clone_pgtable() alignment assumption
git bisect good 41e71dbb0e0a0fe214545fe64af031303a08524c
# bad: [dd35a0933269c636635b6af89dc6fa1782791e56] x86/uaccess: Zero the 8-byte get_range case on failure on 32-bit
git bisect bad dd35a0933269c636635b6af89dc6fa1782791e56
# bad: [3db03fb4995ef85fc41e86262ead7b4852f4bcf0] x86/mm: Fix pti_clone_entry_text() for i386
git bisect bad 3db03fb4995ef85fc41e86262ead7b4852f4bcf0
# first bad commit: [3db03fb4995ef85fc41e86262ead7b4852f4bcf0] x86/mm: Fix pti_clone_entry_text() for i386