On Thu, Feb 27, 2020 at 5:20 PM Brendan Higgins <brendanhiggins@xxxxxxxxxx> wrote: > > Add a linker section where KUnit can put references to its test suites. > This patch is the first step in transitioning to dispatching all KUnit > tests from a centralized executor rather than having each as its own > separate late_initcall. > > Co-developed-by: Iurii Zaikin <yzaikin@xxxxxxxxxx> > Signed-off-by: Iurii Zaikin <yzaikin@xxxxxxxxxx> > Signed-off-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx> > Reviewed-by: Stephen Boyd <sboyd@xxxxxxxxxx> > --- > include/asm-generic/vmlinux.lds.h | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h > index e00f41aa8ec4f..99a866f49cb3d 100644 > --- a/include/asm-generic/vmlinux.lds.h > +++ b/include/asm-generic/vmlinux.lds.h > @@ -856,6 +856,13 @@ > KEEP(*(.con_initcall.init)) \ > __con_initcall_end = .; > > +/* Alignment must be consistent with (kunit_suite *) in include/kunit/test.h */ > +#define KUNIT_TEST_SUITES \ > + . = ALIGN(8); \ After posting this, I saw I had gotten an email from 0day[1]. After some investigation, I discovered that this 8 byte alignment works for x86 64 bit fine, but only *sometimes* for 32 bit. 4 byte alignment seems to work in all cases (so far). I am not sure why we went with such a large alignment in hindsight. In any case, I should have a fixed revision out pretty soon. > + __kunit_suites_start = .; \ > + KEEP(*(.kunit_test_suites)) \ > + __kunit_suites_end = .; > + > #ifdef CONFIG_BLK_DEV_INITRD > #define INIT_RAM_FS \ > . = ALIGN(4); \ > @@ -1024,6 +1031,7 @@ > INIT_CALLS \ > CON_INITCALL \ > INIT_RAM_FS \ > + KUNIT_TEST_SUITES \ > } > > #define BSS_SECTION(sbss_align, bss_align, stop_align) \ > -- [1] https://lists.01.org/hyperkitty/list/lkp@xxxxxxxxxxxx/thread/4I4UW4OAT63ETMIEUJQTOF3BFTMO6ROD/