xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] xen: avoid module usage in non-modular code
@ 2016-02-22  0:06 Paul Gortmaker
  0 siblings, 0 replies; 3+ messages in thread
From: Paul Gortmaker @ 2016-02-22  0:06 UTC (permalink / raw)
  To: linux-kernel
  Cc: Russell King, Stefano Stabellini, Paul Gortmaker, David Vrabel,
	xen-devel, Boris Ostrovsky, linux-arm-kernel

This series of commits is a part of a larger project to ensure
people don't reference modular support functions in non-modular
code.  Overall there was roughly 5k lines of dead code in the
kernel due to this.  So far we've fixed several areas, like tty,
x86, net, ... and we continue to work on other areas.

There are several reasons to not use module support for code that
can never be built as a module, but the big ones are:

 (1) it is easy to accidentally write unused module_exit and remove code
 (2) it can be misleading when reading the source, thinking it can be
      modular when the Makefile and/or Kconfig prohibit it
 (3) it requires the include of the module.h header file which in turn
     includes nearly everything else.
 (4) it gets copied/replicated into other code and spreads like weeds.

For the xen subsystem, there are just five commits:

First, we get rid of "include <linux/module.h>" instances that are
completely unnecessary.

Then #2 and #3 and #5 are basically trivial remapping to the
appropriate non-modular counterparts, meaning that there is no
runtime change here either.

The fourth hypervisor commit is similar, but also has removal of
some dead code associated with the module_exit function that will
never be called.  So the runtime should be the same, but the object
file will be different (reduced in size).

Patches created on linux-next and build tested for x86-64 and ARM64
allmodconfig.

---

[v2: manually inline one-liners in #4; update probe vs init fcn names
 in #5 ; both suggestions by Stefano ; add Reviewed tags to #1, #2, #3.
 Redid build testing on x86-64 and ARM64 to test for typos etc.  ]

Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: David Vrabel <david.vrabel@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: xen-devel@lists.xenproject.org

Paul Gortmaker (5):
  xen: audit usages of module.h ; remove unnecessary instances
  drivers/xen: make [xen-]ballon explicitly non-modular
  drivers/xen: make xenbus_dev_[front/back]end explicitly non-modular
  drivers/xen: make sys-hypervisor.c explicitly non-modular
  drivers/xen: make platform-pci.c explicitly non-modular

 arch/arm/include/asm/xen/hypercall.h     |  2 ++
 drivers/xen/balloon.c                    |  4 ----
 drivers/xen/events/events_2l.c           |  1 -
 drivers/xen/events/events_base.c         |  2 +-
 drivers/xen/events/events_fifo.c         |  1 -
 drivers/xen/features.c                   |  2 +-
 drivers/xen/grant-table.c                |  1 -
 drivers/xen/platform-pci.c               | 16 ++++++----------
 drivers/xen/sys-hypervisor.c             | 31 ++++---------------------------
 drivers/xen/xen-balloon.c                | 14 +++-----------
 drivers/xen/xen-pciback/conf_space.c     |  2 +-
 drivers/xen/xen-pciback/pciback_ops.c    |  2 +-
 drivers/xen/xen-pciback/xenbus.c         |  2 +-
 drivers/xen/xen-selfballoon.c            |  1 -
 drivers/xen/xenbus/xenbus_dev_backend.c  | 13 ++-----------
 drivers/xen/xenbus/xenbus_dev_frontend.c | 13 ++-----------
 drivers/xen/xenbus/xenbus_xs.c           |  1 -
 drivers/xen/xenfs/xensyms.c              |  1 -
 18 files changed, 24 insertions(+), 85 deletions(-)

-- 
2.6.1
Paul Gortmaker (5):
  xen: audit usages of module.h ; remove unnecessary instances
  drivers/xen: make [xen-]ballon explicitly non-modular
  drivers/xen: make xenbus_dev_[front/back]end explicitly non-modular
  drivers/xen: make sys-hypervisor.c explicitly non-modular
  drivers/xen: make platform-pci.c explicitly non-modular

 arch/arm/include/asm/xen/hypercall.h     |  2 ++
 drivers/xen/balloon.c                    |  4 ---
 drivers/xen/events/events_2l.c           |  1 -
 drivers/xen/events/events_base.c         |  2 +-
 drivers/xen/events/events_fifo.c         |  1 -
 drivers/xen/features.c                   |  2 +-
 drivers/xen/grant-table.c                |  1 -
 drivers/xen/platform-pci.c               | 22 +++++-------
 drivers/xen/sys-hypervisor.c             | 59 +++++---------------------------
 drivers/xen/xen-balloon.c                | 14 ++------
 drivers/xen/xen-pciback/conf_space.c     |  2 +-
 drivers/xen/xen-pciback/pciback_ops.c    |  2 +-
 drivers/xen/xen-pciback/xenbus.c         |  2 +-
 drivers/xen/xen-selfballoon.c            |  1 -
 drivers/xen/xenbus/xenbus_dev_backend.c  | 13 ++-----
 drivers/xen/xenbus/xenbus_dev_frontend.c | 13 ++-----
 drivers/xen/xenbus/xenbus_xs.c           |  1 -
 drivers/xen/xenfs/xensyms.c              |  1 -
 18 files changed, 31 insertions(+), 112 deletions(-)

-- 
2.6.1

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 0/5] xen: avoid module usage in non-modular code
       [not found] ` <20160320002321.GX23251@windriver.com>
@ 2016-03-21 15:17   ` David Vrabel
  0 siblings, 0 replies; 3+ messages in thread
From: David Vrabel @ 2016-03-21 15:17 UTC (permalink / raw)
  To: Paul Gortmaker, linux-kernel
  Cc: Russell King, Stefano Stabellini, David Vrabel, xen-devel,
	Boris Ostrovsky, linux-arm-kernel

On 20/03/16 00:23, Paul Gortmaker wrote:
> [[PATCH v2 0/5] xen: avoid module usage in non-modular code] On 21/02/2016 (Sun 19:06) Paul Gortmaker wrote:
> 
>> This series of commits is a part of a larger project to ensure
>> people don't reference modular support functions in non-modular
>> code.  Overall there was roughly 5k lines of dead code in the
>> kernel due to this.  So far we've fixed several areas, like tty,
>> x86, net, ... and we continue to work on other areas.
> 
> Just wondering if this is still pending for this merge window; Stefano
> had reviewed the two commits he wanted changed vs. v1 and this v2 was
> sent approximately a month ago w/o any further change requests.

Sorry. While I was checking for pending series for 4.6 I accidentally
looked at v1 and saw outstanding comments and skipped it.

I've now applied this series, thanks.

David

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 0/5] xen: avoid module usage in non-modular code
       [not found] <1456099568-5154-1-git-send-email-paul.gortmaker@windriver.com>
@ 2016-03-20  0:23 ` Paul Gortmaker
       [not found] ` <20160320002321.GX23251@windriver.com>
  1 sibling, 0 replies; 3+ messages in thread
From: Paul Gortmaker @ 2016-03-20  0:23 UTC (permalink / raw)
  To: linux-kernel
  Cc: Russell King, Stefano Stabellini, David Vrabel, xen-devel,
	Boris Ostrovsky, linux-arm-kernel

[[PATCH v2 0/5] xen: avoid module usage in non-modular code] On 21/02/2016 (Sun 19:06) Paul Gortmaker wrote:

> This series of commits is a part of a larger project to ensure
> people don't reference modular support functions in non-modular
> code.  Overall there was roughly 5k lines of dead code in the
> kernel due to this.  So far we've fixed several areas, like tty,
> x86, net, ... and we continue to work on other areas.

Just wondering if this is still pending for this merge window; Stefano
had reviewed the two commits he wanted changed vs. v1 and this v2 was
sent approximately a month ago w/o any further change requests.

Thanks,
Paul.
--

> 
> There are several reasons to not use module support for code that
> can never be built as a module, but the big ones are:
> 
>  (1) it is easy to accidentally write unused module_exit and remove code
>  (2) it can be misleading when reading the source, thinking it can be
>       modular when the Makefile and/or Kconfig prohibit it
>  (3) it requires the include of the module.h header file which in turn
>      includes nearly everything else.
>  (4) it gets copied/replicated into other code and spreads like weeds.
> 
> For the xen subsystem, there are just five commits:
> 
> First, we get rid of "include <linux/module.h>" instances that are
> completely unnecessary.
> 
> Then #2 and #3 and #5 are basically trivial remapping to the
> appropriate non-modular counterparts, meaning that there is no
> runtime change here either.
> 
> The fourth hypervisor commit is similar, but also has removal of
> some dead code associated with the module_exit function that will
> never be called.  So the runtime should be the same, but the object
> file will be different (reduced in size).
> 
> Patches created on linux-next and build tested for x86-64 and ARM64
> allmodconfig.
> 
> ---
> 
> [v2: manually inline one-liners in #4; update probe vs init fcn names
>  in #5 ; both suggestions by Stefano ; add Reviewed tags to #1, #2, #3.
>  Redid build testing on x86-64 and ARM64 to test for typos etc.  ]
> 
> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Cc: David Vrabel <david.vrabel@citrix.com>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Cc: Russell King <linux@arm.linux.org.uk>
> Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: xen-devel@lists.xenproject.org
> 
> Paul Gortmaker (5):
>   xen: audit usages of module.h ; remove unnecessary instances
>   drivers/xen: make [xen-]ballon explicitly non-modular
>   drivers/xen: make xenbus_dev_[front/back]end explicitly non-modular
>   drivers/xen: make sys-hypervisor.c explicitly non-modular
>   drivers/xen: make platform-pci.c explicitly non-modular
> 
>  arch/arm/include/asm/xen/hypercall.h     |  2 ++
>  drivers/xen/balloon.c                    |  4 ----
>  drivers/xen/events/events_2l.c           |  1 -
>  drivers/xen/events/events_base.c         |  2 +-
>  drivers/xen/events/events_fifo.c         |  1 -
>  drivers/xen/features.c                   |  2 +-
>  drivers/xen/grant-table.c                |  1 -
>  drivers/xen/platform-pci.c               | 16 ++++++----------
>  drivers/xen/sys-hypervisor.c             | 31 ++++---------------------------
>  drivers/xen/xen-balloon.c                | 14 +++-----------
>  drivers/xen/xen-pciback/conf_space.c     |  2 +-
>  drivers/xen/xen-pciback/pciback_ops.c    |  2 +-
>  drivers/xen/xen-pciback/xenbus.c         |  2 +-
>  drivers/xen/xen-selfballoon.c            |  1 -
>  drivers/xen/xenbus/xenbus_dev_backend.c  | 13 ++-----------
>  drivers/xen/xenbus/xenbus_dev_frontend.c | 13 ++-----------
>  drivers/xen/xenbus/xenbus_xs.c           |  1 -
>  drivers/xen/xenfs/xensyms.c              |  1 -
>  18 files changed, 24 insertions(+), 85 deletions(-)
> 
> -- 
> 2.6.1
> Paul Gortmaker (5):
>   xen: audit usages of module.h ; remove unnecessary instances
>   drivers/xen: make [xen-]ballon explicitly non-modular
>   drivers/xen: make xenbus_dev_[front/back]end explicitly non-modular
>   drivers/xen: make sys-hypervisor.c explicitly non-modular
>   drivers/xen: make platform-pci.c explicitly non-modular
> 
>  arch/arm/include/asm/xen/hypercall.h     |  2 ++
>  drivers/xen/balloon.c                    |  4 ---
>  drivers/xen/events/events_2l.c           |  1 -
>  drivers/xen/events/events_base.c         |  2 +-
>  drivers/xen/events/events_fifo.c         |  1 -
>  drivers/xen/features.c                   |  2 +-
>  drivers/xen/grant-table.c                |  1 -
>  drivers/xen/platform-pci.c               | 22 +++++-------
>  drivers/xen/sys-hypervisor.c             | 59 +++++---------------------------
>  drivers/xen/xen-balloon.c                | 14 ++------
>  drivers/xen/xen-pciback/conf_space.c     |  2 +-
>  drivers/xen/xen-pciback/pciback_ops.c    |  2 +-
>  drivers/xen/xen-pciback/xenbus.c         |  2 +-
>  drivers/xen/xen-selfballoon.c            |  1 -
>  drivers/xen/xenbus/xenbus_dev_backend.c  | 13 ++-----
>  drivers/xen/xenbus/xenbus_dev_frontend.c | 13 ++-----
>  drivers/xen/xenbus/xenbus_xs.c           |  1 -
>  drivers/xen/xenfs/xensyms.c              |  1 -
>  18 files changed, 31 insertions(+), 112 deletions(-)
> 
> -- 
> 2.6.1
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-03-21 15:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-22  0:06 [PATCH v2 0/5] xen: avoid module usage in non-modular code Paul Gortmaker
     [not found] <1456099568-5154-1-git-send-email-paul.gortmaker@windriver.com>
2016-03-20  0:23 ` Paul Gortmaker
     [not found] ` <20160320002321.GX23251@windriver.com>
2016-03-21 15:17   ` David Vrabel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).