Re: [PATCH 0/4] printk_index: Fix false positives

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2/28/24 22:00, Geert Uytterhoeven wrote:
	Hi all,

When printk-indexing is enabled, each printk() invocation emits a
pi_entry structure, containing the format string and other information
related to its location in the kernel sources.  This is even true when
the printk() is protected by an always-false check, as is typically the
case for debug messages: while the actual code to print the message is
optimized out by the compiler, the pi_entry structure is still emitted.
Hence when debugging is disabled, this leads to the inclusion in the
index of lots of printk formats that cannot be emitted by the current
kernel.

This series fixes that for the common debug helpers under include/.
It reduces the size of an arm64 defconfig kernel with
CONFIG_PRINTK_INDEX=y by ca. 1.5 MiB, or 28% of the overhead of
enabling CONFIG_PRINTK_INDEX=y.

Notes:
   - netdev_(v)dbg() and netif_(v)dbg() are not affected, as
     net{dev,if}_printk() do not implement printk-indexing, except
     for the single global internal instance of __netdev_printk().
   - This series fixes only debug code in global header files under
     include/.  There are more cases to fix in subsystem-specific header
     files and in sources files.

Thanks for your comments!

Geert Uytterhoeven (4):
   printk: Let no_printk() use _printk()
   dev_printk: Add and use dev_no_printk()
   dyndbg: Use *no_printk() helpers
   ceph: Use no_printk() helper

  include/linux/ceph/ceph_debug.h | 18 +++++++-----------
  include/linux/dev_printk.h      | 25 +++++++++++++------------
  include/linux/dynamic_debug.h   |  4 ++--
  include/linux/printk.h          |  2 +-
  4 files changed, 23 insertions(+), 26 deletions(-)

This series LGTM.

Reviewed-by: Xiubo Li <xiubli@xxxxxxxxxx>





[Index of Archives]     [CEPH Users]     [Ceph Large]     [Ceph Dev]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux