Hi Mike, On Wed, Oct 23, 2024 at 07:27:09PM +0300, Mike Rapoport wrote: > From: "Mike Rapoport (Microsoft)" <rppt@xxxxxxxxxx> > > 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@xxxxxxxxxx> > Tested-by: kdevops <kdevops@xxxxxxxxxxxxxxx> Hopefully the last time you have to hear from me, as I am only experiencing issues with only one of my test machines at this point and it is my only machine that supports IBT, so it seems to point to something specific with the IBT part of the FineIBT support. I notice either a boot hang or an almost immediate reboot (triple fault?). I guess this is how I missed reporting this earlier, as my machine was falling back to the default distribution kernel after the restart and I did not notice I was not actually testing a -next kernel. Checking out the version of this change that is in next-20241104, commit 7ca6ed09db62 ("x86/module: prepare module loading for ROX allocations of text"), it boots with either 'cfi=off' or 'cfi=kcfi' but it exhibits the issues noted above with 'cfi=fineibt'. At the immediate parent, commit b575d981092f ("arch: introduce set_direct_map_valid_noflush()"), all three combinations boot fine. $ uname -r; tr ' ' '\n' </proc/cmdline | grep cfi= 6.12.0-rc5-debug-00214-g7ca6ed09db62 cfi=kcfi 6.12.0-rc5-debug-00214-g7ca6ed09db62 cfi=off 6.12.0-rc5-debug-00213-gb575d981092f cfi=fineibt 6.12.0-rc5-debug-00213-gb575d981092f cfi=kcfi 6.12.0-rc5-debug-00213-gb575d981092f cfi=off I do not think this machine has an accessible serial port and I do not think IBT virtualization is supported via either KVM or TCG in QEMU, so I am not sure how to get more information about what is going on here. I wanted to try reverting these changes on top of next-20241104 but there was a non-trivial conflict in mm/execmem.c due to some changes on top, so I just tested in the mm history. If there is any other information I can provide or patches I can test, I am more than happy to do so. Cheers, Nathan