mbox series

[RFC,v2,00/13] module: core code clean up

Message ID 20220106234319.2067842-1-atomlin@redhat.com (mailing list archive)
Headers show
Series module: core code clean up | expand

Message

Aaron Tomlin Jan. 6, 2022, 11:43 p.m. UTC
Hi Luis,

As per your suggestion [1], this is an attempt to refactor and split
optional code out of core module support code into separate components.
Unfortunately, nothing has been thoroughly tested yet. Please let me know
your thoughts.

Changes since v1 [2]:

  - Moved module version support code into a new file

[1]: https://lore.kernel.org/lkml/YbEZ4HgSYQEPuRmS@bombadil.infradead.org/
[2]: https://lore.kernel.org/lkml/20211228213041.1356334-1-atomlin@redhat.com/

Aaron Tomlin (13):
  module: Move all into module/
  module: Simple refactor in preparation for split
  module: Move livepatch support to a separate file
  module: Move latched RB-tree support to a separate file
  module: Move arch strict rwx support to a separate file
  module: Move strict rwx support to a separate file
  module: Move extra signature support out of core code
  module: Move kmemleak support to a separate file
  module: Move kallsyms support into a separate file
  module: Move procfs support into a separate file
  module: Move sysfs support into a separate file
  module: Move kdb_modules list out of core code
  module: Move version support into a separate file

 include/linux/module.h                        |   76 +-
 kernel/Makefile                               |    4 +-
 kernel/debug/kdb/kdb_main.c                   |    5 +
 kernel/module-internal.h                      |   31 -
 kernel/module/Makefile                        |   17 +
 kernel/module/arch_strict_rwx.c               |   44 +
 kernel/module/debug_kmemleak.c                |   30 +
 kernel/module/internal.h                      |  169 ++
 kernel/module/kallsyms.c                      |  506 +++++
 kernel/module/livepatch.c                     |   75 +
 kernel/{module.c => module/main.c}            | 1872 +----------------
 kernel/module/procfs.c                        |  111 +
 .../signature.c}                              |    0
 kernel/module/signing.c                       |  120 ++
 kernel/module/strict_rwx.c                    |   83 +
 kernel/module/sysfs.c                         |  426 ++++
 kernel/module/tree_lookup.c                   |  108 +
 kernel/module/version.c                       |  113 +
 kernel/module_signing.c                       |   45 -
 19 files changed, 1968 insertions(+), 1867 deletions(-)
 delete mode 100644 kernel/module-internal.h
 create mode 100644 kernel/module/Makefile
 create mode 100644 kernel/module/arch_strict_rwx.c
 create mode 100644 kernel/module/debug_kmemleak.c
 create mode 100644 kernel/module/internal.h
 create mode 100644 kernel/module/kallsyms.c
 create mode 100644 kernel/module/livepatch.c
 rename kernel/{module.c => module/main.c} (63%)
 create mode 100644 kernel/module/procfs.c
 rename kernel/{module_signature.c => module/signature.c} (100%)
 create mode 100644 kernel/module/signing.c
 create mode 100644 kernel/module/strict_rwx.c
 create mode 100644 kernel/module/sysfs.c
 create mode 100644 kernel/module/tree_lookup.c
 create mode 100644 kernel/module/version.c
 delete mode 100644 kernel/module_signing.c

Comments

Allen Jan. 11, 2022, 2:55 p.m. UTC | #1
Hi Aaron,

  My apologies for not replying earlier.

  Thank you so much for doing this. I had a very similar approach, to
move code out based on the
  flags. I will am in the process of reviewing and testing the changes
you have posted.

Thanks.

On Thu, Jan 6, 2022 at 3:43 PM Aaron Tomlin <atomlin@redhat.com> wrote:
>
> Hi Luis,
>
> As per your suggestion [1], this is an attempt to refactor and split
> optional code out of core module support code into separate components.
> Unfortunately, nothing has been thoroughly tested yet. Please let me know
> your thoughts.
>
> Changes since v1 [2]:
>
>   - Moved module version support code into a new file
>
> [1]: https://lore.kernel.org/lkml/YbEZ4HgSYQEPuRmS@bombadil.infradead.org/
> [2]: https://lore.kernel.org/lkml/20211228213041.1356334-1-atomlin@redhat.com/
>
> Aaron Tomlin (13):
>   module: Move all into module/
>   module: Simple refactor in preparation for split
>   module: Move livepatch support to a separate file
>   module: Move latched RB-tree support to a separate file
>   module: Move arch strict rwx support to a separate file
>   module: Move strict rwx support to a separate file
>   module: Move extra signature support out of core code
>   module: Move kmemleak support to a separate file
>   module: Move kallsyms support into a separate file
>   module: Move procfs support into a separate file
>   module: Move sysfs support into a separate file
>   module: Move kdb_modules list out of core code
>   module: Move version support into a separate file
>
>  include/linux/module.h                        |   76 +-
>  kernel/Makefile                               |    4 +-
>  kernel/debug/kdb/kdb_main.c                   |    5 +
>  kernel/module-internal.h                      |   31 -
>  kernel/module/Makefile                        |   17 +
>  kernel/module/arch_strict_rwx.c               |   44 +
>  kernel/module/debug_kmemleak.c                |   30 +
>  kernel/module/internal.h                      |  169 ++
>  kernel/module/kallsyms.c                      |  506 +++++
>  kernel/module/livepatch.c                     |   75 +
>  kernel/{module.c => module/main.c}            | 1872 +----------------
>  kernel/module/procfs.c                        |  111 +
>  .../signature.c}                              |    0
>  kernel/module/signing.c                       |  120 ++
>  kernel/module/strict_rwx.c                    |   83 +
>  kernel/module/sysfs.c                         |  426 ++++
>  kernel/module/tree_lookup.c                   |  108 +
>  kernel/module/version.c                       |  113 +
>  kernel/module_signing.c                       |   45 -
>  19 files changed, 1968 insertions(+), 1867 deletions(-)
>  delete mode 100644 kernel/module-internal.h
>  create mode 100644 kernel/module/Makefile
>  create mode 100644 kernel/module/arch_strict_rwx.c
>  create mode 100644 kernel/module/debug_kmemleak.c
>  create mode 100644 kernel/module/internal.h
>  create mode 100644 kernel/module/kallsyms.c
>  create mode 100644 kernel/module/livepatch.c
>  rename kernel/{module.c => module/main.c} (63%)
>  create mode 100644 kernel/module/procfs.c
>  rename kernel/{module_signature.c => module/signature.c} (100%)
>  create mode 100644 kernel/module/signing.c
>  create mode 100644 kernel/module/strict_rwx.c
>  create mode 100644 kernel/module/sysfs.c
>  create mode 100644 kernel/module/tree_lookup.c
>  create mode 100644 kernel/module/version.c
>  delete mode 100644 kernel/module_signing.c
>
> --
> 2.31.1
>
Allen Jan. 12, 2022, 1:16 a.m. UTC | #2
Hi Aaron,

  Was the code compile tested?

  Unfortunately, I could not apply the series cleanly on top of the
latest 5.17-rc1.
  I did rebase the patches and fixed minor compile time failures as
well a few small checkpatch errors.
  I have pushed the series to
https://github.com/allenpais/Linux/commits/refactor_module_v3
  [The series now is based on
   84bfcc0b6994 2022-01-11 Merge tag 'integrity-v5.17' of
git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity]

  So far I could only manage to compile test the patches. Will test it
on BM(x86/arm) in a day or two.

Thanks,
- Allen


On Tue, Jan 11, 2022 at 6:55 AM Allen <allen.lkml@gmail.com> wrote:
>
> Hi Aaron,
>
>   My apologies for not replying earlier.
>
>   Thank you so much for doing this. I had a very similar approach, to
> move code out based on the
>   flags. I will am in the process of reviewing and testing the changes
> you have posted.
>
> Thanks.
>
> On Thu, Jan 6, 2022 at 3:43 PM Aaron Tomlin <atomlin@redhat.com> wrote:
> >
> > Hi Luis,
> >
> > As per your suggestion [1], this is an attempt to refactor and split
> > optional code out of core module support code into separate components.
> > Unfortunately, nothing has been thoroughly tested yet. Please let me know
> > your thoughts.
> >
> > Changes since v1 [2]:
> >
> >   - Moved module version support code into a new file
> >
> > [1]: https://lore.kernel.org/lkml/YbEZ4HgSYQEPuRmS@bombadil.infradead.org/
> > [2]: https://lore.kernel.org/lkml/20211228213041.1356334-1-atomlin@redhat.com/
> >
> > Aaron Tomlin (13):
> >   module: Move all into module/
> >   module: Simple refactor in preparation for split
> >   module: Move livepatch support to a separate file
> >   module: Move latched RB-tree support to a separate file
> >   module: Move arch strict rwx support to a separate file
> >   module: Move strict rwx support to a separate file
> >   module: Move extra signature support out of core code
> >   module: Move kmemleak support to a separate file
> >   module: Move kallsyms support into a separate file
> >   module: Move procfs support into a separate file
> >   module: Move sysfs support into a separate file
> >   module: Move kdb_modules list out of core code
> >   module: Move version support into a separate file
> >
> >  include/linux/module.h                        |   76 +-
> >  kernel/Makefile                               |    4 +-
> >  kernel/debug/kdb/kdb_main.c                   |    5 +
> >  kernel/module-internal.h                      |   31 -
> >  kernel/module/Makefile                        |   17 +
> >  kernel/module/arch_strict_rwx.c               |   44 +
> >  kernel/module/debug_kmemleak.c                |   30 +
> >  kernel/module/internal.h                      |  169 ++
> >  kernel/module/kallsyms.c                      |  506 +++++
> >  kernel/module/livepatch.c                     |   75 +
> >  kernel/{module.c => module/main.c}            | 1872 +----------------
> >  kernel/module/procfs.c                        |  111 +
> >  .../signature.c}                              |    0
> >  kernel/module/signing.c                       |  120 ++
> >  kernel/module/strict_rwx.c                    |   83 +
> >  kernel/module/sysfs.c                         |  426 ++++
> >  kernel/module/tree_lookup.c                   |  108 +
> >  kernel/module/version.c                       |  113 +
> >  kernel/module_signing.c                       |   45 -
> >  19 files changed, 1968 insertions(+), 1867 deletions(-)
> >  delete mode 100644 kernel/module-internal.h
> >  create mode 100644 kernel/module/Makefile
> >  create mode 100644 kernel/module/arch_strict_rwx.c
> >  create mode 100644 kernel/module/debug_kmemleak.c
> >  create mode 100644 kernel/module/internal.h
> >  create mode 100644 kernel/module/kallsyms.c
> >  create mode 100644 kernel/module/livepatch.c
> >  rename kernel/{module.c => module/main.c} (63%)
> >  create mode 100644 kernel/module/procfs.c
> >  rename kernel/{module_signature.c => module/signature.c} (100%)
> >  create mode 100644 kernel/module/signing.c
> >  create mode 100644 kernel/module/strict_rwx.c
> >  create mode 100644 kernel/module/sysfs.c
> >  create mode 100644 kernel/module/tree_lookup.c
> >  create mode 100644 kernel/module/version.c
> >  delete mode 100644 kernel/module_signing.c
> >
> > --
> > 2.31.1
> >
>
>
> --
>        - Allen
Aaron Tomlin Jan. 12, 2022, 1:21 p.m. UTC | #3
On Tue 2022-01-11 17:16 -0800, Allen wrote:
> Hi Aaron,

Hi Allen,

>   Was the code compile tested?

Not entirely i.e. not the whole of kernel/module/Makefile, unfortunately.
Furthermore, only x86-64 was compiled tested. At the moment, I felt the
need to share the concept/or approach thus far to simply obtain some
overall feedback before further modifications.

>   Unfortunately, I could not apply the series cleanly on top of the
> latest 5.17-rc1.

Sorry about that: this work was based on Linus' commit 81361b837a34 ("Merge
tag 'kbuild-v5.14' of
git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.").

>   I did rebase the patches and fixed minor compile time failures as
> well a few small checkpatch errors.
>   I have pushed the series to
> https://github.com/allenpais/Linux/commits/refactor_module_v3
>   [The series now is based on
>    84bfcc0b6994 2022-01-11 Merge tag 'integrity-v5.17' of
> git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity]

Thanks for that. I'll have a look shortly to incorporate into RFC PATCH v3.

>   So far I could only manage to compile test the patches. Will test it
> on BM(x86/arm) in a day or two.

Much appreciated.


Kind regards,
Luis Chamberlain Jan. 12, 2022, 3:52 p.m. UTC | #4
On Wed, Jan 12, 2022 at 01:21:04PM +0000, Aaron Tomlin wrote:
> On Tue 2022-01-11 17:16 -0800, Allen wrote:
> > Hi Aaron,
> 
> Hi Allen,
> 
> >   Was the code compile tested?
> 
> Not entirely i.e. not the whole of kernel/module/Makefile, unfortunately.
> Furthermore, only x86-64 was compiled tested. At the moment, I felt the
> need to share the concept/or approach thus far to simply obtain some
> overall feedback before further modifications.
> 
> >   Unfortunately, I could not apply the series cleanly on top of the
> > latest 5.17-rc1.
> 
> Sorry about that: this work was based on Linus' commit 81361b837a34 ("Merge
> tag 'kbuild-v5.14' of
> git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.").

Please work off of modules-next tree:

https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git/log/?h=modules-next

That is, this tree on the modules-next branch:

git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git

  Luis
Aaron Tomlin Jan. 13, 2022, 9:23 a.m. UTC | #5
On Wed 2022-01-12 07:52 -0800, Luis Chamberlain wrote:
> On Wed, Jan 12, 2022 at 01:21:04PM +0000, Aaron Tomlin wrote:
> Please work off of modules-next tree:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git/log/?h=modules-next
> 
> That is, this tree on the modules-next branch:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git

Understood.


Kind regards,