|
|
Subscribe / Log in / New account

The 5.12 kernel has been released

The 5.12 kernel has been released

Posted Apr 28, 2021 12:57 UTC (Wed) by flussence (guest, #85566)
Parent article: The 5.12 kernel has been released

I've been playing around with the LTO stuff, unsuccessfully. Here's what I've found:

It's next to impossible to discover unless you're already aware of the exact git commit message with the magic incantation. I couldn't figure out what was locking out the settings in nconfig, even with the symbol search's usually useful metadata (it's empty for HAVE_LTO_CLANG), and had to resort to grepping makefiles. To save others the time, the answer's `make LLVM=1 LLVM_IAS=1` — both vars are needed on every config and compile command.

Having TRIM_UNUSED_KSYMS enabled caused the build to explode with undefined module symbols in modpost, though it looks like the kernel image itself built successfully. The symbols are all internal-sounding ones: __x86_indirect_thunk_r11, __SCT__preempt_schedule{,_notrace}, and __{get,put}_user_{1,4,8}.

The help text for that option explicitly suggests this is a thing that's supposed to work with LTO. It doesn't seem to be caused solely by that option, as I can't reproduce the error from a fresh allnoconfig just by flipping it on. I have no idea how to efficiently narrow down the source and I gave up after hours of trying the hard way. Having it disabled succeeds, but the resulting kernel is massive.

A plain kernel built with clang and no LTO has no problems though, I've got two machines running on it now.


to post comments

The 5.12 kernel has been released

Posted May 26, 2021 12:02 UTC (Wed) by flussence (guest, #85566) [Link]

Some closure: I've now successfully convinced an LTO kernel to build and boot by turning the modules mentioned in the compilation errors into built-ins. The bzImage + /lib/modules/ is a few KB smaller in total than without LTO, but it seems like noise.

Overall, I feel like there's much bigger kernel size wins to be made simply by breaking up monolithic GPU drivers into more granular model ranges...


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds