Skip to contentSkip to conversation

lib: test_sort: make it explicitly non-modular

PATCH Applied Paul Gortmaker 2 participants 3 messages Jan 24, 2017 – Feb 28, 2017 Library code

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 lib: test_sort: make it explicitly non-modular

The Kconfig currently controlling compilation of this code is:

lib/Kconfig.debug:config TEST_SORT
lib/Kconfig.debug: bool "Array-based sort test"

...meaning that it currently is not being built as a module by anyone.

Lets remove the couple traces of modular infrastructure use, so that when reading the code there is no doubt it is builtin-only.

Since module_init translates to device_initcall in the non-modular case, the init ordering becomes slightly earlier when we change it to use subsys_initcall as done here. However, since it is a self contained test, this shouldn't be an issue and subsys_initcall seems like a better fit for this particular case.

We also delete the MODULE_LICENSE tag since that information is now contained at the top of the file in the comments.

Cc Kostenzer Felix <[email protected]>
Cc Arnd Bergmann <[email protected]>
Cc Andrew Morton <[email protected]>

---

[v2: update for Arnd's commit that moved the code out into a
separate file.]

 lib/test_sort.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
lib/test_sort.c +6 -5
index d389c1cc2f6c..6bb2fd4a3e72 100644
@@ -1,8 +1,11 @@
 #include <linux/sort.h>
 #include <linux/slab.h>
-#include <linux/module.h>
+#include <linux/init.h>
 
-/* a simple boot-time regression test */
+/*
+ * A simple boot-time regression test
+ * License: GPL
+ */
 
 #define TEST_LEN 1000
 
@@ -38,6 +41,4 @@ static int __init test_sort_init(void)
 	kfree(a);
 	return err;
 }
-
-module_init(test_sort_init);
-MODULE_LICENSE("GPL");
+subsys_initcall(test_sort_init);
Signature · 1 line
2.11.0
#1 lore raw

Hi Paul,

Quoted 10 lines · Paul Gortmaker

The Kconfig currently controlling compilation of this code is:

lib/Kconfig.debug:config TEST_SORT
lib/Kconfig.debug: bool "Array-based sort test"

...meaning that it currently is not being built as a module by anyone.

Lets remove the couple traces of modular infrastructure use, so that when reading the code there is no doubt it is builtin-only.

Quoted 8 lines

Since module_init translates to device_initcall in the non-modular case, the init ordering becomes slightly earlier when we change it to use subsys_initcall as done here. However, since it is a self contained test, this shouldn't be an issue and subsys_initcall seems like a better fit for this particular case.

We also delete the MODULE_LICENSE tag since that information is now contained at the top of the file in the comments.

Yeah, MODULE_LICENSE is too easy to grep for... :-(

Quoted 4 lines
Cc Kostenzer Felix <[email protected]>
Cc Arnd Bergmann <[email protected]>
Cc Andrew Morton <[email protected]>

Can we please stop doing this?

It's very valuable to have modular tests, so you can run them just by insmodding the test, instead of needing a separate kernel that runs them at boot.

Will send a revert + modular enablement...

Thanks!

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

#2 lore raw
Quoted 23 lines · [Re: [PATCH akpm v2] lib: test_sort: make it explicitly non-modular] On…

Hi Paul,

Quoted 10 lines · Paul Gortmaker

The Kconfig currently controlling compilation of this code is:

lib/Kconfig.debug:config TEST_SORT
lib/Kconfig.debug: bool "Array-based sort test"

...meaning that it currently is not being built as a module by anyone.

Lets remove the couple traces of modular infrastructure use, so that when reading the code there is no doubt it is builtin-only.

Quoted 8 lines

Since module_init translates to device_initcall in the non-modular case, the init ordering becomes slightly earlier when we change it to use subsys_initcall as done here. However, since it is a self contained test, this shouldn't be an issue and subsys_initcall seems like a better fit for this particular case.

We also delete the MODULE_LICENSE tag since that information is now contained at the top of the file in the comments.

Quoted 9 lines

Yeah, MODULE_LICENSE is too easy to grep for... :-(

Quoted 4 lines
Cc Kostenzer Felix <[email protected]>
Cc Arnd Bergmann <[email protected]>
Cc Andrew Morton <[email protected]>

Can we please stop doing this?

As I've said many times, I have no problem with things being modular if there is a use case for it to be so. And it makes sense to have that demand driven.

What I'm striving for is consistency between the Kconfig and the source code, and I'll continue to work on that.

Thanks,
Paul.
--

Quoted 18 lines

It's very valuable to have modular tests, so you can run them just by insmodding the test, instead of needing a separate kernel that runs them at boot.

Will send a revert + modular enablement...

Thanks!

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds