On Tue, Oct 15, 2024 at 04:22:22PM -0700, Matthew Maurer wrote: > So, the basic things I can think of to test here are: > > 1. The kernel can still load the previous MODVERSIONS format > 2. The kernel can load the new MODVERSIONS format > 3. If we artificially tweak a CRC in the previous format, it will fail to > load. > 4. If we artificially tweak a CRC in the new format, it will fail to load. > 5. With CONFIG_EXTENDED_MODVERSIONS enabled, the kernel will build and > load modules with long symbol names, with MODVERSIONS enabled. > > Is there anything else you were thinking of here, or are those the > kinds of checks you were envisioning?
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,...). But come to think of it, you might be able to easily leverage this to also just test long symbols by self generated symbols as another test case. In case its useful to you I've put this in a rebased branch 20241016-modules-symtab branch. Feel free to use as you see fit. 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-symtab Luis