From: Nathan Chancellor <nathan@kernel.org>
To: Mike Rapoport <rppt@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Andreas Larsson <andreas@gaisler.com>,
Andy Lutomirski <luto@kernel.org>,
Ard Biesheuvel <ardb@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
Borislav Petkov <bp@alien8.de>, Brian Cain <bcain@quicinc.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Christoph Hellwig <hch@infradead.org>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Dave Hansen <dave.hansen@linux.intel.com>,
Dinh Nguyen <dinguyen@kernel.org>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Guo Ren <guoren@kernel.org>, Helge Deller <deller@gmx.de>,
Huacai Chen <chenhuacai@kernel.org>,
Ingo Molnar <mingo@redhat.com>,
Johannes Berg <johannes@sipsolutions.net>,
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
Kent Overstreet <kent.overstreet@linux.dev>,
"Liam R. Howlett" <Liam.Howlett@oracle.com>,
Luis Chamberlain <mcgrof@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Masami Hiramatsu <mhiramat@kernel.org>,
Matt Turner <mattst88@gmail.com>,
Max Filippov <jcmvbkbc@gmail.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Michal Simek <monstr@monstr.eu>, Oleg Nesterov <oleg@redhat.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Peter Zijlstra <peterz@infradead.org>,
Richard Weinberger <richard@nod.at>,
Russell King <linux@armlinux.org.uk>, Song Liu <song@kernel.org>,
Stafford Horne <shorne@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Thomas Gleixner <tglx@linutronix.de>,
Uladzislau Rezki <urezki@gmail.com>,
Vineet Gupta <vgupta@kernel.org>, Will Deacon <will@kernel.org>,
bpf@vger.kernel.org, linux-alpha@vger.kernel.org,
linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
linux-mips@vger.kernel.org, linux-mm@kvack.org,
linux-modules@vger.kernel.org, linux-openrisc@vger.kernel.org,
linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org,
linux-sh@vger.kernel.org, linux-snps-arc@lists.infradead.org,
linux-trace-kernel@vger.kernel.org, linux-um@lists.infradead.org,
linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev,
sparclinux@vger.kernel.org, x86@kernel.org
Subject: Re: [PATCH v5 6/8] x86/module: perpare module loading for ROX allocations of text
Date: Thu, 10 Oct 2024 15:54:11 -0700 [thread overview]
Message-ID: <20241010225411.GA922684@thelio-3990X> (raw)
In-Reply-To: <20241009180816.83591-7-rppt@kernel.org>
Hi Mike,
On Wed, Oct 09, 2024 at 09:08:14PM +0300, Mike Rapoport wrote:
> From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
>
> When module text memory will be allocated with ROX permissions, the
> memory at the actual address where the module will live will contain
> invalid instructions and there will be a writable copy that contains the
> actual module code.
>
> Update relocations and alternatives patching to deal with it.
>
> Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
I bisected a boot failure that I see with CONFIG_CFI_CLANG enabled to
this change as commit be712757cabd ("x86/module: perpare module loading
for ROX allocations of text") in -next.
$ echo CONFIG_CFI_CLANG=y >arch/x86/configs/cfi.config
$ make -skj"$(nproc)" ARCH=x86_64 LLVM=1 mrproper defconfig cfi.config bzImage
$ curl -LSs https://github.com/ClangBuiltLinux/boot-utils/releases/download/20230707-182910/x86_64-rootfs.cpio.zst | zstd -d >rootfs.cpio
$ qemu-system-x86_64 \
-display none \
-nodefaults \
-M q35 \
-d unimp,guest_errors \
-append 'console=ttyS0 earlycon=uart8250,io,0x3f8' \
-kernel arch/x86/boot/bzImage \
-initrd rootfs.cpio \
-cpu host \
-enable-kvm \
-m 512m \
-smp 8 \
-serial mon:stdio
[ 0.000000] Linux version 6.12.0-rc2-00140-gbe712757cabd (nathan@n3-xlarge-x86) (ClangBuiltLinux clang version 19.1.0 (https://github.com/llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4), ClangBuiltLinux LLD 19.1.0 (https://github.com/llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)) #1 SMP PREEMPT_DYNAMIC Thu Oct 10 22:42:57 UTC 2024
...
[ 0.092204] Speculative Store Bypass: Mitigation: Speculative Store Bypass disabled via prctl
[ 0.093207] TAA: Mitigation: TSX disabled
[ 0.093711] MMIO Stale Data: Mitigation: Clear CPU buffers
[ 0.094228] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[ 0.095203] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[ 0.096203] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[ 0.097203] x86/fpu: Supporting XSAVE feature 0x020: 'AVX-512 opmask'
[ 0.098003] x86/fpu: Supporting XSAVE feature 0x040: 'AVX-512 Hi256'
[ 0.098203] x86/fpu: Supporting XSAVE feature 0x080: 'AVX-512 ZMM_Hi256'
[ 0.099203] x86/fpu: Supporting XSAVE feature 0x200: 'Protection Keys User registers'
[ 0.100204] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
[ 0.101204] x86/fpu: xstate_offset[5]: 832, xstate_sizes[5]: 64
[ 0.102203] x86/fpu: xstate_offset[6]: 896, xstate_sizes[6]: 512
[ 0.103204] x86/fpu: xstate_offset[7]: 1408, xstate_sizes[7]: 1024
[ 0.104051] x86/fpu: xstate_offset[9]: 2432, xstate_sizes[9]: 8
[ 0.104204] x86/fpu: Enabled xstate features 0x2e7, context size is 2440 bytes, using 'compacted' format.
then nothing after that. Boot is successful if CFI is not enabled (the
initrd will just shutdown the machine after printing the version string).
If there is any further information I can provide or patches I can test,
I am more than happy to do so.
Cheers,
Nathan
next prev parent reply other threads:[~2024-10-10 22:54 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-09 18:08 [PATCH v5 0/8] x86/module: use large ROX pages for text allocations Mike Rapoport
2024-10-09 18:08 ` [PATCH v5 1/8] mm: vmalloc: group declarations depending on CONFIG_MMU together Mike Rapoport
2024-10-10 6:54 ` Christoph Hellwig
2024-10-09 18:08 ` [PATCH v5 2/8] mm: vmalloc: don't account for number of nodes for HUGE_VMAP allocations Mike Rapoport
2024-10-10 6:54 ` Christoph Hellwig
2024-10-09 18:08 ` [PATCH v5 3/8] asm-generic: introduce text-patching.h Mike Rapoport
2024-10-10 6:55 ` Christoph Hellwig
2024-10-10 7:22 ` Geert Uytterhoeven
2024-10-10 8:04 ` Arnd Bergmann
2024-10-09 18:08 ` [PATCH v5 4/8] module: prepare to handle ROX allocations for text Mike Rapoport
2024-10-09 22:23 ` Song Liu
2024-10-10 5:43 ` Mike Rapoport
2024-10-10 17:18 ` Song Liu
2024-10-09 18:08 ` [PATCH v5 5/8] arch: introduce set_direct_map_valid_noflush() Mike Rapoport
2024-10-10 6:56 ` Christoph Hellwig
2024-10-09 18:08 ` [PATCH v5 6/8] x86/module: perpare module loading for ROX allocations of text Mike Rapoport
2024-10-10 6:57 ` Christoph Hellwig
2024-10-10 22:54 ` Nathan Chancellor [this message]
2024-10-11 12:58 ` Mike Rapoport
2024-10-15 8:29 ` Nathan Chancellor
2024-10-09 18:08 ` [PATCH v5 7/8] execmem: add support for cache of large ROX pages Mike Rapoport
2024-10-09 20:24 ` Andrew Morton
2024-10-10 9:29 ` Mike Rapoport
2024-10-10 6:58 ` Christoph Hellwig
2024-10-10 12:57 ` Mike Rapoport
2024-10-11 7:46 ` Christoph Hellwig
2024-10-13 8:43 ` Mike Rapoport
2024-10-14 3:26 ` Andrew Morton
2024-10-14 19:16 ` Luis Chamberlain
2024-10-15 4:09 ` Luis Chamberlain
2024-10-15 5:54 ` Mike Rapoport
2024-10-15 20:11 ` Luis Chamberlain
2024-10-16 10:40 ` Mike Rapoport
2024-10-16 23:58 ` Luis Chamberlain
2024-10-14 5:55 ` Christoph Hellwig
2024-10-14 13:07 ` Mike Rapoport
2024-10-10 18:35 ` Kees Bakker
2024-10-09 18:08 ` [PATCH v5 8/8] x86/module: enable ROX caches for module text Mike Rapoport
2024-10-10 8:30 ` Bisected: " Sergey Senozhatsky
2024-10-10 15:20 ` Mike Rapoport
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=20241010225411.GA922684@thelio-3990X \
--to=nathan@kernel.org \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=andreas@gaisler.com \
--cc=ardb@kernel.org \
--cc=arnd@arndb.de \
--cc=bcain@quicinc.com \
--cc=bp@alien8.de \
--cc=bpf@vger.kernel.org \
--cc=catalin.marinas@arm.com \
--cc=chenhuacai@kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=dave.hansen@linux.intel.com \
--cc=deller@gmx.de \
--cc=dinguyen@kernel.org \
--cc=geert@linux-m68k.org \
--cc=glaubitz@physik.fu-berlin.de \
--cc=guoren@kernel.org \
--cc=hch@infradead.org \
--cc=jcmvbkbc@gmail.com \
--cc=johannes@sipsolutions.net \
--cc=kent.overstreet@linux.dev \
--cc=linux-alpha@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-csky@vger.kernel.org \
--cc=linux-hexagon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m68k@lists.linux-m68k.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-modules@vger.kernel.org \
--cc=linux-openrisc@vger.kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux-snps-arc@lists.infradead.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=linux-um@lists.infradead.org \
--cc=linux@armlinux.org.uk \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=loongarch@lists.linux.dev \
--cc=luto@kernel.org \
--cc=mark.rutland@arm.com \
--cc=mattst88@gmail.com \
--cc=mcgrof@kernel.org \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=monstr@monstr.eu \
--cc=mpe@ellerman.id.au \
--cc=oleg@redhat.com \
--cc=palmer@dabbelt.com \
--cc=peterz@infradead.org \
--cc=richard@nod.at \
--cc=rostedt@goodmis.org \
--cc=rppt@kernel.org \
--cc=shorne@gmail.com \
--cc=song@kernel.org \
--cc=sparclinux@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tsbogend@alpha.franken.de \
--cc=urezki@gmail.com \
--cc=vgupta@kernel.org \
--cc=will@kernel.org \
--cc=x86@kernel.org \
/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