Re: [PATCH v5 14/16] modules: Support extended MODVERSIONS info
From: Luis Chamberlain <mcgrof@kernel.org>
Date: 2024-10-19 20:45:35
Also in:
asahi, linux-kbuild, linux-modules, lkml, rust-for-linux
On Thu, Oct 17, 2024 at 02:08:19PM +0200, Helge Deller wrote:
Hi Luis, On 10/17/24 01:21, Luis Chamberlain wrote:quoted
That sounds great. Yeah, the above would be great to test. A while ago I wrote a new modules selftests in order to test possible improvements on find_symbol() but I also did this due to push the limits of the numbers of symbols we could support. I wrote all this to also test the possible 64-bit alignment benefits of __ksymtab_ sections on architectures without CONFIG_HAVE_ARCH_PREL32_RELOCATIONS (e.g. ppc64, ppc64le, parisc, s390x,...). [....] I forget what we concluded on Helge Deller's alignement patches, I think there was an idea on how to address the alignment through other means. [0] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git/log/?h=20241016-modules-symtabI stumbled upon the unaligned-memory-access.rst document [1]. Please read it, as it is a really good document, and the section "Why unaligned access is bad" states: It should be obvious from the above that if your code causes unaligned memory accesses to happen, your code will not work correctly on certain platforms and will cause performance problems on others. With this in mind, you really should apply both of my alignment patches which you currently carry in [0]. For parisc I partly solved the issue by fixing the arch-specific kernel unalignment handler, but every time module sections are stored unaligned, it triggers performance degregation on parisc (and other sensitive platforms). I suggest you apply them unconditionally. Helge [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/core-api/unaligned-memory-access.rst
You're right, I've just referred to that doc and pushed to the new linux modules [2] modules-next branch. This is also great timing so that the work that is ongoing for Rust will take this into consideration as well. I'll just post the test I wrote as separate thing but it surely can be used to help test some of this later. [2] git://git.kernel.org/pub/scm/linux/kernel/git/modules/linux.git Luis