Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1561941 > unrolled thread

[PATCH] lib: sort: make it explicitly non-modular

Started byPaul Gortmaker <paul.gortmaker@windriver.com>
First post2017-01-18 17:30 +0100
Last post2017-01-19 01:50 +0100
Articles 5 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] lib: sort: make it explicitly non-modular Paul Gortmaker <paul.gortmaker@windriver.com> - 2017-01-18 17:30 +0100
    Re: [PATCH] lib: sort: make it explicitly non-modular Andy Shevchenko <andy.shevchenko@gmail.com> - 2017-01-18 19:10 +0100
      Re: [PATCH] lib: sort: make it explicitly non-modular Paul Gortmaker <paul.gortmaker@windriver.com> - 2017-01-18 20:40 +0100
        Re: [PATCH] lib: sort: make it explicitly non-modular Felix Kostenzer <fkostenzer@live.at> - 2017-01-18 21:40 +0100
          Re: [PATCH] lib: sort: make it explicitly non-modular Paul Gortmaker <paul.gortmaker@windriver.com> - 2017-01-19 01:50 +0100

#1561941 — [PATCH] lib: sort: make it explicitly non-modular

FromPaul Gortmaker <paul.gortmaker@windriver.com>
Date2017-01-18 17:30 +0100
Subject[PATCH] lib: sort: make it explicitly non-modular
Message-ID<t11hw-6lt-21@gated-at.bofh.it>
The Makefile currently controlling compilation of this code is:

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

and...

     lib/Makefile:obj-y += bcd.o div64.o sort.o [...]

...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 <fkostenzer@live.at>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---

[since this recently appeared in next via the akpm feed, I'm
 fine with this commit being squashed into the original. ]

 lib/sort.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/lib/sort.c b/lib/sort.c
index a9b156e7471b..0f2f3adce372 100644
--- a/lib/sort.c
+++ b/lib/sort.c
@@ -1,5 +1,6 @@
 /*
  * A fast, small, non-recursive O(nlog n) sort for the Linux kernel
+ * License: GPL
  *
  * Jan 23 2005  Matt Mackall <mpm@selenic.com>
  */
@@ -106,7 +107,7 @@ EXPORT_SYMBOL(sort);
 
 #ifdef CONFIG_TEST_SORT
 #include <linux/slab.h>
-#include <linux/module.h>
+#include <linux/init.h>
 /* a simple boot-time regression test */
 
 #define TEST_LEN 1000
@@ -143,7 +144,5 @@ static int __init test_sort_init(void)
 	kfree(a);
 	return err;
 }
-
-module_init(test_sort_init);
-MODULE_LICENSE("GPL");
+subsys_initcall(test_sort_init);
 #endif
-- 
2.11.0

[toc] | [next] | [standalone]


#1562035

FromAndy Shevchenko <andy.shevchenko@gmail.com>
Date2017-01-18 19:10 +0100
Message-ID<t12Qi-7py-25@gated-at.bofh.it>
In reply to#1561941
On Wed, Jan 18, 2017 at 6:20 PM, Paul Gortmaker
<paul.gortmaker@windriver.com> wrote:
> The Makefile currently controlling compilation of this code is:
>
>      lib/Kconfig.debug:config TEST_SORT
>      lib/Kconfig.debug:      bool "Array-based sort test"
>
> and...
>
>      lib/Makefile:obj-y += bcd.o div64.o sort.o [...]
>
> ...meaning that it currently is not being built as a module by anyone.

Perhaps allow it to be a module?

Besides that perhaps rename to something like test_sort.c ?

-- 
With Best Regards,
Andy Shevchenko

[toc] | [prev] | [next] | [standalone]


#1562109

FromPaul Gortmaker <paul.gortmaker@windriver.com>
Date2017-01-18 20:40 +0100
Message-ID<t14fn-8aj-7@gated-at.bofh.it>
In reply to#1562035
[Re: [PATCH] lib: sort: make it explicitly non-modular] On 18/01/2017 (Wed 20:03) Andy Shevchenko wrote:

> On Wed, Jan 18, 2017 at 6:20 PM, Paul Gortmaker
> <paul.gortmaker@windriver.com> wrote:
> > The Makefile currently controlling compilation of this code is:
> >
> >      lib/Kconfig.debug:config TEST_SORT
> >      lib/Kconfig.debug:      bool "Array-based sort test"
> >
> > and...
> >
> >      lib/Makefile:obj-y += bcd.o div64.o sort.o [...]
> >
> > ...meaning that it currently is not being built as a module by anyone.
> 
> Perhaps allow it to be a module?

If anything, I'd argue the other way and say we shouldn't be further
polluting Kconfig space with more super specific options.  Instead
something more generic like CONFIG_ENABLE_BOOT_SELF_TESTS that at least
could be shared.

There is no real value in making something a module when it could just
as easily be thrown out as __init code/data.

> 
> Besides that perhaps rename to something like test_sort.c ?

The sort.c was not added just for the test code ; it already existed for
the sort code itself.

Paul.
--



> 
> -- 
> With Best Regards,
> Andy Shevchenko

[toc] | [prev] | [next] | [standalone]


#1562149

FromFelix Kostenzer <fkostenzer@live.at>
Date2017-01-18 21:40 +0100
Message-ID<t15bs-o6-33@gated-at.bofh.it>
In reply to#1562109
How about the patch ("lib: move sort self-test into a separate file") [1] ?

regards,
Felix.

[1] https://lkml.org/lkml/2017/1/12/255

[toc] | [prev] | [next] | [standalone]


#1562349

FromPaul Gortmaker <paul.gortmaker@windriver.com>
Date2017-01-19 01:50 +0100
Message-ID<t195o-2Ne-15@gated-at.bofh.it>
In reply to#1562149
On Wed, Jan 18, 2017 at 3:31 PM, Felix Kostenzer <fkostenzer@live.at> wrote:
> How about the patch ("lib: move sort self-test into a separate file") [1] ?

The Kconfig did not change, so forking out the content to a separate
file doesn't change the fact that it uses module.h for a chunk of code
that can't be a module.  That still remains to be addressed.

Paul.
--

>
> regards,
> Felix.
>
> [1] https://lkml.org/lkml/2017/1/12/255

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web