[PATCH 0/2] hexdump: Allow skipping identical lines

Miquel Raynal posted 2 patches 1 year, 3 months ago
There is a newer version of this series
Documentation/core-api/printk-formats.rst     |   4 +-
arch/um/include/shared/user.h                 |   6 +-
arch/x86/kernel/mpparse.c                     |   2 +-
arch/x86/kvm/svm/sev.c                        |   3 +-
arch/xtensa/kernel/traps.c                    |   4 +-
crypto/ansi_cprng.c                           |   2 +-
crypto/testmgr.c                              |   2 +-
drivers/acpi/nfit/core.c                      |   6 +-
drivers/ata/libata-core.c                     |   3 +-
drivers/ata/pata_parport/bpck.c               |   2 +-
drivers/block/floppy.c                        |   4 +-
drivers/cdx/controller/mcdi.c                 |  10 +-
.../crypto/allwinner/sun8i-ce/sun8i-ce-core.c |   6 +-
drivers/crypto/axis/artpec6_crypto.c          |   5 +-
drivers/crypto/bcm/util.c                     |   2 +-
drivers/crypto/bcm/util.h                     |   4 +-
drivers/crypto/caam/blob_gen.c                |   6 +-
drivers/crypto/caam/caamalg.c                 |  33 +++---
drivers/crypto/caam/caamalg_desc.c            |  32 +++---
drivers/crypto/caam/caamalg_qi.c              |  21 ++--
drivers/crypto/caam/caamalg_qi2.c             |  63 ++++++-----
drivers/crypto/caam/caamhash.c                |  67 +++++------
drivers/crypto/caam/caampkc.c                 |   2 +-
drivers/crypto/caam/caamprng.c                |   4 +-
drivers/crypto/caam/caamrng.c                 |   4 +-
drivers/crypto/caam/error.c                   |   3 +-
drivers/crypto/caam/key_gen.c                 |   7 +-
drivers/crypto/caam/sg_sw_sec4.h              |   3 +-
drivers/crypto/ccp/platform-access.c          |   4 +-
drivers/crypto/ccp/psp-dev.c                  |   4 +-
drivers/crypto/ccp/sev-dev.c                  |   4 +-
drivers/crypto/ccree/cc_driver.c              |   2 +-
.../intel/qat/qat_common/adf_mstate_mgr.c     |   4 +-
.../marvell/octeontx/otx_cptvf_reqmgr.c       |   8 +-
.../marvell/octeontx2/otx2_cptvf_reqmgr.c     |   8 +-
drivers/crypto/sa2ul.c                        |   2 +-
drivers/firmware/efi/apple-properties.c       |  11 +-
drivers/firmware/efi/cper-arm.c               |   2 +-
drivers/firmware/efi/cper.c                   |   5 +-
drivers/gpu/drm/amd/amdgpu/smu_v11_0_i2c.c    |   4 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |   2 +-
drivers/gpu/drm/bridge/lontium-lt9611uxc.c    |   3 +-
drivers/gpu/drm/display/drm_dp_mst_topology.c |   4 +-
drivers/gpu/drm/drm_edid.c                    |   2 +-
.../drm/i915/display/intel_crtc_state_dump.c  |   2 +-
drivers/gpu/drm/i915/display/intel_display.c  |   4 +-
.../gpu/drm/nouveau/nvkm/subdev/gsp/r535.c    |   6 +-
drivers/gpu/drm/omapdrm/dss/hdmi4_core.c      |   2 +-
drivers/gpu/drm/omapdrm/dss/hdmi5_core.c      |   2 +-
drivers/hv/channel_mgmt.c                     |   4 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.c    |   2 +-
drivers/infiniband/hw/irdma/cm.c              |   6 +-
drivers/infiniband/hw/irdma/ctrl.c            | 104 +++++++++---------
drivers/infiniband/hw/irdma/puda.c            |  20 ++--
drivers/infiniband/hw/irdma/uda.c             |   6 +-
drivers/infiniband/hw/mlx5/cq.c               |   2 +-
drivers/infiniband/ulp/srp/ib_srp.c           |   2 +-
drivers/input/touchscreen/melfas_mip4.c       |   6 +-
.../iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c  |  12 +-
drivers/macintosh/via-cuda.c                  |   2 +-
drivers/macintosh/windfarm_smu_sat.c          |   4 +-
drivers/mailbox/imx-mailbox.c                 |   4 +-
drivers/media/common/tveeprom.c               |   2 +-
drivers/media/dvb-core/dvb_net.c              |   3 +-
drivers/media/firewire/firedtv-avc.c          |   4 +-
drivers/media/pci/saa7164/saa7164-api.c       |   8 +-
drivers/media/pci/saa7164/saa7164-core.c      |   4 +-
.../media/platform/nxp/imx-jpeg/mxc-jpeg.c    |   2 +-
drivers/media/platform/qcom/venus/hfi_venus.c |   2 +-
drivers/media/platform/ti/cal/cal.c           |   4 +-
drivers/media/usb/em28xx/em28xx-i2c.c         |   2 +-
drivers/mfd/rave-sp.c                         |   4 +-
drivers/misc/genwqe/genwqe_driver.h           |   2 +-
drivers/mtd/tests/mtd_nandecctest.c           |   8 +-
drivers/mtd/ubi/debug.c                       |   7 +-
drivers/mtd/ubi/debug.h                       |   2 +-
drivers/mtd/ubi/io.c                          |   7 +-
drivers/net/arcnet/arcnet.c                   |   4 +-
drivers/net/can/usb/etas_es58x/es58x_core.c   |   4 +-
drivers/net/can/usb/peak_usb/pcan_usb_core.c  |   2 +-
drivers/net/can/usb/ucan.c                    |   2 +-
drivers/net/ethernet/aeroflex/greth.c         |   7 +-
drivers/net/ethernet/altera/altera_tse_main.c |   3 +-
drivers/net/ethernet/amd/a2065.c              |   2 +-
drivers/net/ethernet/amd/ariadne.c            |   2 +-
drivers/net/ethernet/amd/pds_core/adminq.c    |   4 +-
drivers/net/ethernet/cadence/macb_main.c      |   6 +-
.../net/ethernet/cavium/thunder/nicvf_main.c  |   2 +-
.../ethernet/hisilicon/hns3/hns3_ethtool.c    |   2 +-
drivers/net/ethernet/intel/e1000e/netdev.c    |   6 +-
drivers/net/ethernet/intel/i40e/i40e_common.c |   2 +-
.../net/ethernet/intel/i40e/i40e_debugfs.c    |  12 +-
drivers/net/ethernet/intel/iavf/iavf_common.c |   2 +-
drivers/net/ethernet/intel/ice/ice_osdep.h    |   4 +-
drivers/net/ethernet/intel/igb/igb_main.c     |   5 +-
drivers/net/ethernet/intel/igc/igc_dump.c     |   4 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |   5 +-
drivers/net/ethernet/mellanox/mlx4/en_tx.c    |   5 +-
.../net/ethernet/mellanox/mlx5/core/en_tc.c   |   3 +-
.../net/ethernet/mellanox/mlx5/core/lib/aso.c |   2 +-
drivers/net/ethernet/mellanox/mlx5/core/wq.c  |   3 +-
.../net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c  |   3 +-
drivers/net/ethernet/meta/fbnic/fbnic_fw.c    |   2 +-
drivers/net/ethernet/microchip/enc28j60.c     |   2 +-
.../net/ethernet/pensando/ionic/ionic_main.c  |   7 +-
.../ethernet/pensando/ionic/ionic_rx_filter.c |   3 +-
drivers/net/ethernet/qlogic/qed/qed_ll2.c     |   2 +-
.../net/ethernet/qlogic/qlcnic/qlcnic_io.c    |   2 +-
.../net/ethernet/qlogic/qlcnic/qlcnic_main.c  |   2 +-
drivers/net/ethernet/realtek/8139too.c        |   2 +-
drivers/net/ethernet/smsc/smc9194.c           |   2 +-
drivers/net/ethernet/vertexcom/mse102x.c      |   2 +-
drivers/net/fddi/skfp/skfddi.c                |   3 +-
drivers/net/phy/sfp.c                         |   6 +-
drivers/net/tun.c                             |   3 +-
drivers/net/wireless/ath/wcn36xx/wcn36xx.h    |   2 +-
drivers/net/wireless/ath/wil6210/cfg80211.c   |   3 +-
drivers/net/wireless/ath/wil6210/ethtool.c    |   2 +-
drivers/net/wireless/ath/wil6210/fw_inc.c     |   3 +-
drivers/net/wireless/ath/wil6210/txrx_edma.c  |   4 +-
drivers/net/wireless/ath/wil6210/wil6210.h    |   9 +-
drivers/net/wireless/ath/wil6210/wmi.c        |   2 +-
drivers/net/wireless/broadcom/b43/main.c      |   2 +-
drivers/net/wireless/intel/iwlegacy/common.h  |   6 +-
.../net/wireless/intel/iwlwifi/iwl-debug.h    |   6 +-
drivers/net/wireless/marvell/mwifiex/main.h   |   2 +-
drivers/net/wireless/realtek/rtl8xxxu/core.c  |   4 +-
drivers/net/wireless/realtek/rtw88/rtw8723x.c |   2 +-
drivers/net/wireless/silabs/wfx/bh.c          |   2 +-
drivers/net/wireless/silabs/wfx/hif_rx.c      |   4 +-
drivers/net/wireless/ti/wl1251/wl1251.h       |   2 +-
drivers/net/wireless/ti/wlcore/debug.h        |   2 +-
drivers/net/wireless/ti/wlcore/sdio.c         |   4 +-
drivers/nfc/mei_phy.c                         |   4 +-
drivers/nfc/pn533/i2c.c                       |   2 +-
drivers/nfc/pn533/pn533.c                     |   2 +-
drivers/nfc/pn533/uart.c                      |   2 +-
drivers/nfc/pn533/usb.c                       |   6 +-
drivers/nfc/pn544/i2c.c                       |   2 +-
drivers/nfc/pn544/pn544.c                     |   4 +-
drivers/nfc/port100.c                         |   4 +-
drivers/nfc/st21nfca/core.c                   |   2 +-
drivers/nfc/st21nfca/i2c.c                    |   2 +-
drivers/nfc/trf7970a.c                        |   4 +-
drivers/pci/probe.c                           |   2 +-
.../surface/aggregator/ssh_packet_layer.c     |   4 +-
drivers/platform/x86/amd/pmf/tee-if.c         |   2 +-
drivers/ras/amd/fmpm.c                        |   3 +-
drivers/rpmsg/rpmsg_ns.c                      |   2 +-
drivers/rpmsg/virtio_rpmsg_bus.c              |   4 +-
drivers/s390/crypto/ap_queue.c                |   4 +-
drivers/s390/crypto/zcrypt_api.c              |   8 +-
drivers/s390/net/qeth_core_main.c             |   8 +-
drivers/scsi/esas2r/esas2r_log.c              |   2 +-
drivers/scsi/qedf/qedf_fip.c                  |   4 +-
drivers/scsi/qedf/qedf_io.c                   |   2 +-
drivers/scsi/qedf/qedf_main.c                 |   4 +-
drivers/scsi/qla2xxx/qla_dbg.c                |   2 +-
drivers/soc/ti/k3-ringacc.c                   |   2 +-
drivers/spi/spi-pl022.c                       |   4 +-
drivers/staging/nvec/nvec.c                   |   4 +-
drivers/staging/nvec/nvec_ps2.c               |   2 +-
.../vc04_services/vchiq-mmal/mmal-vchiq.c     |   4 +-
drivers/tty/n_gsm.c                           |   4 +-
drivers/ufs/core/ufshcd.c                     |   2 +-
drivers/usb/class/usbtmc.c                    |  14 ++-
drivers/usb/core/devio.c                      |   6 +-
drivers/usb/gadget/function/f_ncm.c           |   2 +-
drivers/usb/gadget/udc/gr_udc.c               |   2 +-
drivers/usb/usbip/usbip_common.c              |   2 +-
.../video/fbdev/omap2/omapfb/dss/hdmi4_core.c |   2 +-
.../video/fbdev/omap2/omapfb/dss/hdmi5_core.c |   2 +-
drivers/watchdog/wdrtas.c                     |   2 +-
fs/ceph/mdsmap.c                              |   2 +-
fs/ecryptfs/debug.c                           |   2 +-
fs/ext4/super.c                               |   2 +-
fs/jfs/xattr.c                                |   2 +-
fs/seq_file.c                                 |   2 +-
fs/smb/client/cifs_debug.c                    |   2 +-
fs/smb/client/misc.c                          |   2 +-
fs/ubifs/debug.c                              |   2 +-
fs/ubifs/scan.c                               |   3 +-
fs/xfs/xfs_message.c                          |   3 +-
include/linux/dma/ti-cppi5.h                  |   2 +-
include/linux/dynamic_debug.h                 |   8 +-
include/linux/filter.h                        |   2 +-
include/linux/mlx5/cq.h                       |   2 +-
include/linux/printk.h                        |  23 ++--
include/net/6lowpan.h                         |   4 +-
lib/hexdump.c                                 |  29 ++++-
lib/test_bitmap.c                             |   4 +-
mm/debug.c                                    |   4 +-
mm/dmapool.c                                  |   2 +-
mm/kmemleak.c                                 |   2 +-
mm/page_poison.c                              |   2 +-
mm/slub.c                                     |   3 +-
net/atm/br2684.c                              |   3 +-
net/atm/lec.c                                 |   6 +-
net/ceph/crypto.c                             |   6 +-
net/ceph/messenger.c                          |   9 +-
net/ceph/osdmap.c                             |   4 +-
net/core/skbuff.c                             |   8 +-
net/ipv4/route.c                              |   2 +-
net/nfc/digital_core.c                        |   4 +-
net/nfc/llcp_core.c                           |   5 +-
samples/rpmsg/rpmsg_client_sample.c           |   2 +-
security/integrity/ima/ima_kexec.c            |   2 +-
sound/soc/codecs/hdac_hdmi.c                  |   2 +-
sound/soc/intel/atom/sst/sst_ipc.c            |   2 +-
sound/soc/intel/catpt/loader.c                |  14 +--
sound/soc/intel/skylake/skl-messages.c        |   2 +-
sound/soc/intel/skylake/skl-sst-ipc.c         |   2 +-
sound/soc/sof/ipc3.c                          |   2 +-
sound/soc/sof/ipc4.c                          |   2 +-
sound/usb/bcd2000/bcd2000.c                   |   2 +-
sound/usb/quirks.c                            |   4 +-
sound/usb/validate.c                          |   6 +-
.../crypto/chacha20-s390/test-cipher.c        |  23 ++--
tools/testing/nvdimm/test/nfit.c              |   2 +-
219 files changed, 655 insertions(+), 532 deletions(-)
[PATCH 0/2] hexdump: Allow skipping identical lines
Posted by Miquel Raynal 1 year, 3 months ago
Hello!

While working on NAND issues, I used print_hex_dump() a lot to compare
data. But I am mostly working on embedded systems where the kernel
messages go through a serial console. Sometimes network support is an
option, sometimes not. Anyway, I often print buffers both in kernel
space and user space to compare them, and they may be full of 0's or
1's, which means lines are repeated a lot in the output and this is slow
*and* hard to compare.

I initially hacked into lib/hexdump.c for my own purpose and just
discarded all the other users, but it felt like this might be a useful
feature for others and decided to make it a public patch.

* First patch changes the "ascii" parameter into a "flags" variable now
  accepting the value: DUMP_FLAG_ASCII.
* Second patch adds a new flag to skip the identical lines, because this
  must be an opt-in parameter, I guess.

The patch series has successfully gone through a round of
kernel-test-robot.

The Cc-list, as provided by get_maintainers.pl, was returning 330
e-mail addresses which felt to much, so I ran the script only on the
second patch (the printk/includes/debug/Doc changes). It gave this
Cc-list which sounds more reasonable. Hopefully this is a smart move,
otherwise let me know what you think would be better.

Cheers,
Miquèl

Miquel Raynal (2):
  hexdump: Convert the ascii boolean into a flag variable
  hexdump: Allow skipping identical lines

 Documentation/core-api/printk-formats.rst     |   4 +-
 arch/um/include/shared/user.h                 |   6 +-
 arch/x86/kernel/mpparse.c                     |   2 +-
 arch/x86/kvm/svm/sev.c                        |   3 +-
 arch/xtensa/kernel/traps.c                    |   4 +-
 crypto/ansi_cprng.c                           |   2 +-
 crypto/testmgr.c                              |   2 +-
 drivers/acpi/nfit/core.c                      |   6 +-
 drivers/ata/libata-core.c                     |   3 +-
 drivers/ata/pata_parport/bpck.c               |   2 +-
 drivers/block/floppy.c                        |   4 +-
 drivers/cdx/controller/mcdi.c                 |  10 +-
 .../crypto/allwinner/sun8i-ce/sun8i-ce-core.c |   6 +-
 drivers/crypto/axis/artpec6_crypto.c          |   5 +-
 drivers/crypto/bcm/util.c                     |   2 +-
 drivers/crypto/bcm/util.h                     |   4 +-
 drivers/crypto/caam/blob_gen.c                |   6 +-
 drivers/crypto/caam/caamalg.c                 |  33 +++---
 drivers/crypto/caam/caamalg_desc.c            |  32 +++---
 drivers/crypto/caam/caamalg_qi.c              |  21 ++--
 drivers/crypto/caam/caamalg_qi2.c             |  63 ++++++-----
 drivers/crypto/caam/caamhash.c                |  67 +++++------
 drivers/crypto/caam/caampkc.c                 |   2 +-
 drivers/crypto/caam/caamprng.c                |   4 +-
 drivers/crypto/caam/caamrng.c                 |   4 +-
 drivers/crypto/caam/error.c                   |   3 +-
 drivers/crypto/caam/key_gen.c                 |   7 +-
 drivers/crypto/caam/sg_sw_sec4.h              |   3 +-
 drivers/crypto/ccp/platform-access.c          |   4 +-
 drivers/crypto/ccp/psp-dev.c                  |   4 +-
 drivers/crypto/ccp/sev-dev.c                  |   4 +-
 drivers/crypto/ccree/cc_driver.c              |   2 +-
 .../intel/qat/qat_common/adf_mstate_mgr.c     |   4 +-
 .../marvell/octeontx/otx_cptvf_reqmgr.c       |   8 +-
 .../marvell/octeontx2/otx2_cptvf_reqmgr.c     |   8 +-
 drivers/crypto/sa2ul.c                        |   2 +-
 drivers/firmware/efi/apple-properties.c       |  11 +-
 drivers/firmware/efi/cper-arm.c               |   2 +-
 drivers/firmware/efi/cper.c                   |   5 +-
 drivers/gpu/drm/amd/amdgpu/smu_v11_0_i2c.c    |   4 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |   2 +-
 drivers/gpu/drm/bridge/lontium-lt9611uxc.c    |   3 +-
 drivers/gpu/drm/display/drm_dp_mst_topology.c |   4 +-
 drivers/gpu/drm/drm_edid.c                    |   2 +-
 .../drm/i915/display/intel_crtc_state_dump.c  |   2 +-
 drivers/gpu/drm/i915/display/intel_display.c  |   4 +-
 .../gpu/drm/nouveau/nvkm/subdev/gsp/r535.c    |   6 +-
 drivers/gpu/drm/omapdrm/dss/hdmi4_core.c      |   2 +-
 drivers/gpu/drm/omapdrm/dss/hdmi5_core.c      |   2 +-
 drivers/hv/channel_mgmt.c                     |   4 +-
 drivers/infiniband/hw/hns/hns_roce_hw_v2.c    |   2 +-
 drivers/infiniband/hw/irdma/cm.c              |   6 +-
 drivers/infiniband/hw/irdma/ctrl.c            | 104 +++++++++---------
 drivers/infiniband/hw/irdma/puda.c            |  20 ++--
 drivers/infiniband/hw/irdma/uda.c             |   6 +-
 drivers/infiniband/hw/mlx5/cq.c               |   2 +-
 drivers/infiniband/ulp/srp/ib_srp.c           |   2 +-
 drivers/input/touchscreen/melfas_mip4.c       |   6 +-
 .../iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c  |  12 +-
 drivers/macintosh/via-cuda.c                  |   2 +-
 drivers/macintosh/windfarm_smu_sat.c          |   4 +-
 drivers/mailbox/imx-mailbox.c                 |   4 +-
 drivers/media/common/tveeprom.c               |   2 +-
 drivers/media/dvb-core/dvb_net.c              |   3 +-
 drivers/media/firewire/firedtv-avc.c          |   4 +-
 drivers/media/pci/saa7164/saa7164-api.c       |   8 +-
 drivers/media/pci/saa7164/saa7164-core.c      |   4 +-
 .../media/platform/nxp/imx-jpeg/mxc-jpeg.c    |   2 +-
 drivers/media/platform/qcom/venus/hfi_venus.c |   2 +-
 drivers/media/platform/ti/cal/cal.c           |   4 +-
 drivers/media/usb/em28xx/em28xx-i2c.c         |   2 +-
 drivers/mfd/rave-sp.c                         |   4 +-
 drivers/misc/genwqe/genwqe_driver.h           |   2 +-
 drivers/mtd/tests/mtd_nandecctest.c           |   8 +-
 drivers/mtd/ubi/debug.c                       |   7 +-
 drivers/mtd/ubi/debug.h                       |   2 +-
 drivers/mtd/ubi/io.c                          |   7 +-
 drivers/net/arcnet/arcnet.c                   |   4 +-
 drivers/net/can/usb/etas_es58x/es58x_core.c   |   4 +-
 drivers/net/can/usb/peak_usb/pcan_usb_core.c  |   2 +-
 drivers/net/can/usb/ucan.c                    |   2 +-
 drivers/net/ethernet/aeroflex/greth.c         |   7 +-
 drivers/net/ethernet/altera/altera_tse_main.c |   3 +-
 drivers/net/ethernet/amd/a2065.c              |   2 +-
 drivers/net/ethernet/amd/ariadne.c            |   2 +-
 drivers/net/ethernet/amd/pds_core/adminq.c    |   4 +-
 drivers/net/ethernet/cadence/macb_main.c      |   6 +-
 .../net/ethernet/cavium/thunder/nicvf_main.c  |   2 +-
 .../ethernet/hisilicon/hns3/hns3_ethtool.c    |   2 +-
 drivers/net/ethernet/intel/e1000e/netdev.c    |   6 +-
 drivers/net/ethernet/intel/i40e/i40e_common.c |   2 +-
 .../net/ethernet/intel/i40e/i40e_debugfs.c    |  12 +-
 drivers/net/ethernet/intel/iavf/iavf_common.c |   2 +-
 drivers/net/ethernet/intel/ice/ice_osdep.h    |   4 +-
 drivers/net/ethernet/intel/igb/igb_main.c     |   5 +-
 drivers/net/ethernet/intel/igc/igc_dump.c     |   4 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |   5 +-
 drivers/net/ethernet/mellanox/mlx4/en_tx.c    |   5 +-
 .../net/ethernet/mellanox/mlx5/core/en_tc.c   |   3 +-
 .../net/ethernet/mellanox/mlx5/core/lib/aso.c |   2 +-
 drivers/net/ethernet/mellanox/mlx5/core/wq.c  |   3 +-
 .../net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c  |   3 +-
 drivers/net/ethernet/meta/fbnic/fbnic_fw.c    |   2 +-
 drivers/net/ethernet/microchip/enc28j60.c     |   2 +-
 .../net/ethernet/pensando/ionic/ionic_main.c  |   7 +-
 .../ethernet/pensando/ionic/ionic_rx_filter.c |   3 +-
 drivers/net/ethernet/qlogic/qed/qed_ll2.c     |   2 +-
 .../net/ethernet/qlogic/qlcnic/qlcnic_io.c    |   2 +-
 .../net/ethernet/qlogic/qlcnic/qlcnic_main.c  |   2 +-
 drivers/net/ethernet/realtek/8139too.c        |   2 +-
 drivers/net/ethernet/smsc/smc9194.c           |   2 +-
 drivers/net/ethernet/vertexcom/mse102x.c      |   2 +-
 drivers/net/fddi/skfp/skfddi.c                |   3 +-
 drivers/net/phy/sfp.c                         |   6 +-
 drivers/net/tun.c                             |   3 +-
 drivers/net/wireless/ath/wcn36xx/wcn36xx.h    |   2 +-
 drivers/net/wireless/ath/wil6210/cfg80211.c   |   3 +-
 drivers/net/wireless/ath/wil6210/ethtool.c    |   2 +-
 drivers/net/wireless/ath/wil6210/fw_inc.c     |   3 +-
 drivers/net/wireless/ath/wil6210/txrx_edma.c  |   4 +-
 drivers/net/wireless/ath/wil6210/wil6210.h    |   9 +-
 drivers/net/wireless/ath/wil6210/wmi.c        |   2 +-
 drivers/net/wireless/broadcom/b43/main.c      |   2 +-
 drivers/net/wireless/intel/iwlegacy/common.h  |   6 +-
 .../net/wireless/intel/iwlwifi/iwl-debug.h    |   6 +-
 drivers/net/wireless/marvell/mwifiex/main.h   |   2 +-
 drivers/net/wireless/realtek/rtl8xxxu/core.c  |   4 +-
 drivers/net/wireless/realtek/rtw88/rtw8723x.c |   2 +-
 drivers/net/wireless/silabs/wfx/bh.c          |   2 +-
 drivers/net/wireless/silabs/wfx/hif_rx.c      |   4 +-
 drivers/net/wireless/ti/wl1251/wl1251.h       |   2 +-
 drivers/net/wireless/ti/wlcore/debug.h        |   2 +-
 drivers/net/wireless/ti/wlcore/sdio.c         |   4 +-
 drivers/nfc/mei_phy.c                         |   4 +-
 drivers/nfc/pn533/i2c.c                       |   2 +-
 drivers/nfc/pn533/pn533.c                     |   2 +-
 drivers/nfc/pn533/uart.c                      |   2 +-
 drivers/nfc/pn533/usb.c                       |   6 +-
 drivers/nfc/pn544/i2c.c                       |   2 +-
 drivers/nfc/pn544/pn544.c                     |   4 +-
 drivers/nfc/port100.c                         |   4 +-
 drivers/nfc/st21nfca/core.c                   |   2 +-
 drivers/nfc/st21nfca/i2c.c                    |   2 +-
 drivers/nfc/trf7970a.c                        |   4 +-
 drivers/pci/probe.c                           |   2 +-
 .../surface/aggregator/ssh_packet_layer.c     |   4 +-
 drivers/platform/x86/amd/pmf/tee-if.c         |   2 +-
 drivers/ras/amd/fmpm.c                        |   3 +-
 drivers/rpmsg/rpmsg_ns.c                      |   2 +-
 drivers/rpmsg/virtio_rpmsg_bus.c              |   4 +-
 drivers/s390/crypto/ap_queue.c                |   4 +-
 drivers/s390/crypto/zcrypt_api.c              |   8 +-
 drivers/s390/net/qeth_core_main.c             |   8 +-
 drivers/scsi/esas2r/esas2r_log.c              |   2 +-
 drivers/scsi/qedf/qedf_fip.c                  |   4 +-
 drivers/scsi/qedf/qedf_io.c                   |   2 +-
 drivers/scsi/qedf/qedf_main.c                 |   4 +-
 drivers/scsi/qla2xxx/qla_dbg.c                |   2 +-
 drivers/soc/ti/k3-ringacc.c                   |   2 +-
 drivers/spi/spi-pl022.c                       |   4 +-
 drivers/staging/nvec/nvec.c                   |   4 +-
 drivers/staging/nvec/nvec_ps2.c               |   2 +-
 .../vc04_services/vchiq-mmal/mmal-vchiq.c     |   4 +-
 drivers/tty/n_gsm.c                           |   4 +-
 drivers/ufs/core/ufshcd.c                     |   2 +-
 drivers/usb/class/usbtmc.c                    |  14 ++-
 drivers/usb/core/devio.c                      |   6 +-
 drivers/usb/gadget/function/f_ncm.c           |   2 +-
 drivers/usb/gadget/udc/gr_udc.c               |   2 +-
 drivers/usb/usbip/usbip_common.c              |   2 +-
 .../video/fbdev/omap2/omapfb/dss/hdmi4_core.c |   2 +-
 .../video/fbdev/omap2/omapfb/dss/hdmi5_core.c |   2 +-
 drivers/watchdog/wdrtas.c                     |   2 +-
 fs/ceph/mdsmap.c                              |   2 +-
 fs/ecryptfs/debug.c                           |   2 +-
 fs/ext4/super.c                               |   2 +-
 fs/jfs/xattr.c                                |   2 +-
 fs/seq_file.c                                 |   2 +-
 fs/smb/client/cifs_debug.c                    |   2 +-
 fs/smb/client/misc.c                          |   2 +-
 fs/ubifs/debug.c                              |   2 +-
 fs/ubifs/scan.c                               |   3 +-
 fs/xfs/xfs_message.c                          |   3 +-
 include/linux/dma/ti-cppi5.h                  |   2 +-
 include/linux/dynamic_debug.h                 |   8 +-
 include/linux/filter.h                        |   2 +-
 include/linux/mlx5/cq.h                       |   2 +-
 include/linux/printk.h                        |  23 ++--
 include/net/6lowpan.h                         |   4 +-
 lib/hexdump.c                                 |  29 ++++-
 lib/test_bitmap.c                             |   4 +-
 mm/debug.c                                    |   4 +-
 mm/dmapool.c                                  |   2 +-
 mm/kmemleak.c                                 |   2 +-
 mm/page_poison.c                              |   2 +-
 mm/slub.c                                     |   3 +-
 net/atm/br2684.c                              |   3 +-
 net/atm/lec.c                                 |   6 +-
 net/ceph/crypto.c                             |   6 +-
 net/ceph/messenger.c                          |   9 +-
 net/ceph/osdmap.c                             |   4 +-
 net/core/skbuff.c                             |   8 +-
 net/ipv4/route.c                              |   2 +-
 net/nfc/digital_core.c                        |   4 +-
 net/nfc/llcp_core.c                           |   5 +-
 samples/rpmsg/rpmsg_client_sample.c           |   2 +-
 security/integrity/ima/ima_kexec.c            |   2 +-
 sound/soc/codecs/hdac_hdmi.c                  |   2 +-
 sound/soc/intel/atom/sst/sst_ipc.c            |   2 +-
 sound/soc/intel/catpt/loader.c                |  14 +--
 sound/soc/intel/skylake/skl-messages.c        |   2 +-
 sound/soc/intel/skylake/skl-sst-ipc.c         |   2 +-
 sound/soc/sof/ipc3.c                          |   2 +-
 sound/soc/sof/ipc4.c                          |   2 +-
 sound/usb/bcd2000/bcd2000.c                   |   2 +-
 sound/usb/quirks.c                            |   4 +-
 sound/usb/validate.c                          |   6 +-
 .../crypto/chacha20-s390/test-cipher.c        |  23 ++--
 tools/testing/nvdimm/test/nfit.c              |   2 +-
 219 files changed, 655 insertions(+), 532 deletions(-)

-- 
2.43.0

Re: [PATCH 0/2] hexdump: Allow skipping identical lines
Posted by Andy Shevchenko 1 year, 3 months ago
On Mon, Aug 26, 2024 at 06:24:14PM +0200, Miquel Raynal wrote:
> Hello!
> 
> While working on NAND issues, I used print_hex_dump() a lot to compare
> data. But I am mostly working on embedded systems where the kernel
> messages go through a serial console. Sometimes network support is an
> option, sometimes not. Anyway, I often print buffers both in kernel
> space and user space to compare them, and they may be full of 0's or
> 1's, which means lines are repeated a lot in the output and this is slow
> *and* hard to compare.
> 
> I initially hacked into lib/hexdump.c for my own purpose and just
> discarded all the other users, but it felt like this might be a useful
> feature for others and decided to make it a public patch.
> 
> * First patch changes the "ascii" parameter into a "flags" variable now
>   accepting the value: DUMP_FLAG_ASCII.
> * Second patch adds a new flag to skip the identical lines, because this
>   must be an opt-in parameter, I guess.

This is quite a long to look into, can you please add a summary here which
includes (but not limited to) the following:
1) examples before and after (ah, I see you have that in the patch 2,
   but would be still good to have in the cover letter);
2) excerpts of the code for before and after (since the type of the ascii
   parameter had been changed).

Also here is the formal NAK till the series gains the test cases.

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH 0/2] hexdump: Allow skipping identical lines
Posted by Miquel Raynal 1 year, 3 months ago
Hi Andy,

Thanks for your feedback.

andriy.shevchenko@linux.intel.com wrote on Mon, 26 Aug 2024 20:32:20
+0300:

> On Mon, Aug 26, 2024 at 06:24:14PM +0200, Miquel Raynal wrote:
> > Hello!
> > 
> > While working on NAND issues, I used print_hex_dump() a lot to compare
> > data. But I am mostly working on embedded systems where the kernel
> > messages go through a serial console. Sometimes network support is an
> > option, sometimes not. Anyway, I often print buffers both in kernel
> > space and user space to compare them, and they may be full of 0's or
> > 1's, which means lines are repeated a lot in the output and this is slow
> > *and* hard to compare.
> > 
> > I initially hacked into lib/hexdump.c for my own purpose and just
> > discarded all the other users, but it felt like this might be a useful
> > feature for others and decided to make it a public patch.
> > 
> > * First patch changes the "ascii" parameter into a "flags" variable now
> >   accepting the value: DUMP_FLAG_ASCII.
> > * Second patch adds a new flag to skip the identical lines, because this
> >   must be an opt-in parameter, I guess.  
> 
> This is quite a long to look into, can you please add a summary here which
> includes (but not limited to) the following:
> 1) examples before and after (ah, I see you have that in the patch 2,
>    but would be still good to have in the cover letter);

No problem, I can make this part of the cover letter as well.

> 2) excerpts of the code for before and after (since the type of the ascii
>    parameter had been changed).

In patch 1/2 there is the Coccinelle script, but I must admit the
syntax is not super clear, so I will improve this by showing the two
main user cases with a proper human-readable diff.

> Also here is the formal NAK till the series gains the test cases.

What test cases are you talking about?

Thanks,
Miquèl
Re: [PATCH 0/2] hexdump: Allow skipping identical lines
Posted by Andy Shevchenko 1 year, 3 months ago
On Tue, Aug 27, 2024 at 11:01:47AM +0200, Miquel Raynal wrote:
> andriy.shevchenko@linux.intel.com wrote on Mon, 26 Aug 2024 20:32:20
> +0300:
> > On Mon, Aug 26, 2024 at 06:24:14PM +0200, Miquel Raynal wrote:

...

> > Also here is the formal NAK till the series gains the test cases.
> 
> What test cases are you talking about?

Anything meaningful you come up with to show that the printed data is
what it's expected. The module has a complimentary test case,
lib/test_hexdump.c. Without changes in that file, there is no go
to what ever golden ideas you have.

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH 0/2] hexdump: Allow skipping identical lines
Posted by Miquel Raynal 11 months, 4 weeks ago
Hi Andy,

On 27/08/2024 at 16:29:18 +03, Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:

> On Tue, Aug 27, 2024 at 11:01:47AM +0200, Miquel Raynal wrote:
>> andriy.shevchenko@linux.intel.com wrote on Mon, 26 Aug 2024 20:32:20
>> +0300:
>> > On Mon, Aug 26, 2024 at 06:24:14PM +0200, Miquel Raynal wrote:
>
> ...
>
>> > Also here is the formal NAK till the series gains the test cases.
>> 
>> What test cases are you talking about?
>
> Anything meaningful you come up with to show that the printed data is
> what it's expected. The module has a complimentary test case,
> lib/test_hexdump.c. Without changes in that file, there is no go
> to what ever golden ideas you have.

I had a look. The tests never test the content of the kernel buffer,
while this is the only part that my changes have an impact on. These
tests verify the hex_dump_to_buffer() logic, but never how it is used
through the print_hex_dump_*() helpers.

In this series I am just enabling a new way to print the content of the
buffer, like for instance enabling a prefix, which is not directly
related to the core implementation of hexdump.

Hence, I am sorry, but I will disregard this request unless someone
comes up with a working idea which is worth the effort, considering the
minimum impact of this change and the fact that it is mostly (if not
only) for debugging purposes and will most likely never reach users.

Thanks,
Miquèl
Re: [PATCH 0/2] hexdump: Allow skipping identical lines
Posted by Andy Shevchenko 11 months, 4 weeks ago
On Tue, Dec 24, 2024 at 12:56:26PM +0100, Miquel Raynal wrote:
> On 27/08/2024 at 16:29:18 +03, Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> > On Tue, Aug 27, 2024 at 11:01:47AM +0200, Miquel Raynal wrote:
> >> andriy.shevchenko@linux.intel.com wrote on Mon, 26 Aug 2024 20:32:20
> >> +0300:
> >> > On Mon, Aug 26, 2024 at 06:24:14PM +0200, Miquel Raynal wrote:

...

> >> > Also here is the formal NAK till the series gains the test cases.
> >> 
> >> What test cases are you talking about?
> >
> > Anything meaningful you come up with to show that the printed data is
> > what it's expected. The module has a complimentary test case,
> > lib/test_hexdump.c. Without changes in that file, there is no go
> > to what ever golden ideas you have.
> 
> I had a look. The tests never test the content of the kernel buffer,
> while this is the only part that my changes have an impact on.

So, it means that after your change there will be a deviation between the core
function that dumps into a buffer and one that prints message into the kernel
buffer. Moreover it lefts seq_hex_dump() out of the picture.

I think you need to start from modifying hex_dump_to_buffer() to have a
functionality you want (note, there are cases in the kernel that use
hex_dump_to_buffer() for formatting messages in the kernel buffer and they
might want to have the same functionality to be available.

> These tests verify the hex_dump_to_buffer() logic, but never how it is used
> through the print_hex_dump_*() helpers.

I haven't checked and don't remember for sure, but KUnit rings a bell that it
might be possible to test the actual kernel output. (However, after the above
modifications been made it won't be needed anymore as test_hexdump.c will be
extended to support new feature.)

> In this series I am just enabling a new way to print the content of the
> buffer, like for instance enabling a prefix, which is not directly
> related to the core implementation of hexdump.
> 
> Hence, I am sorry, but I will disregard this request unless someone
> comes up with a working idea which is worth the effort, considering the
> minimum impact of this change and the fact that it is mostly (if not
> only) for debugging purposes and will most likely never reach users.

I'm sorry, but my NAK still stands. No tests — no go.

And it does not matter if it's only for debugging or for ABI, we require test
cases for the lib/ changes. We don't know and don't care much about how these
new features will be utilized (the requirement here is to have a user for it,
so you might need to consider to convert one of the existing user to use a new
feature, besides the [updated] test cases).

-- 
With Best Regards,
Andy Shevchenko


Re: [PATCH 0/2] hexdump: Allow skipping identical lines
Posted by Miquel Raynal 11 months, 3 weeks ago
Andy,

On 24/12/2024 at 17:49:25 +02, Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:

> On Tue, Dec 24, 2024 at 12:56:26PM +0100, Miquel Raynal wrote:
>> On 27/08/2024 at 16:29:18 +03, Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
>> > On Tue, Aug 27, 2024 at 11:01:47AM +0200, Miquel Raynal wrote:
>> >> andriy.shevchenko@linux.intel.com wrote on Mon, 26 Aug 2024 20:32:20
>> >> +0300:
>> >> > On Mon, Aug 26, 2024 at 06:24:14PM +0200, Miquel Raynal wrote:
>
> ...
>
>> >> > Also here is the formal NAK till the series gains the test cases.
>> >> 
>> >> What test cases are you talking about?
>> >
>> > Anything meaningful you come up with to show that the printed data is
>> > what it's expected. The module has a complimentary test case,
>> > lib/test_hexdump.c. Without changes in that file, there is no go
>> > to what ever golden ideas you have.
>> 
>> I had a look. The tests never test the content of the kernel buffer,
>> while this is the only part that my changes have an impact on.
>
> So, it means that after your change there will be a deviation between the core
> function that dumps into a buffer and one that prints message into the kernel
> buffer.

No, it's always been like that. The formatting of the prefixes have
always been totally different in this function, probably because filling
a memory buffer and sending these messages to dmesg is fundamentally
different and we may want a different behaviour *when sending to the
kernel buffer*. That is what I believe is useful. If someone wishes to
port the feature to the other functions, they can, but it is irrelevant
to the change brought here.

> Moreover it lefts seq_hex_dump() out of the picture.

seq_hex_dump() has diverged already and is a very specific case that is
probably under stability constraints, where trimming down the output
lines is likely much less useful.

I am not strongly opposed to it, but it is probably a bit useless.

> I think you need to start from modifying hex_dump_to_buffer() to have a
> functionality you want (note, there are cases in the kernel that use
> hex_dump_to_buffer() for formatting messages in the kernel buffer and they
> might want to have the same functionality to be available.

No... that is not how these function work nor have been designed for,
hex_dump_to_buffer is used as a line-oriented helper to fill a kernel
buffer line which *is* a line-oriented buffer. A prefix gets added to
it, and I want to skip the printing if it's redundant. Lines are sent
one after the other using printk anyway. All this logic has nothing to
do inside hex_dump_to_buffer at all. Plus, what you ask for would
require a new buffer to be allocated, potentially big and unbounded,
which would require a GFP flag (yay! a new parameter). And finally the
implementation itself would be much less obvious if the algorithm was
not line oriented.

I am sorry, but I really took the time to understand your request but it
is simply not working well technically nor conceptually desirable IMO.

>> These tests verify the hex_dump_to_buffer() logic, but never how it is used
>> through the print_hex_dump_*() helpers.
>
> I haven't checked and don't remember for sure, but KUnit rings a bell that it
> might be possible to test the actual kernel output. (However, after the above
> modifications been made it won't be needed anymore as test_hexdump.c will be
> extended to support new feature.)
>
>> In this series I am just enabling a new way to print the content of the
>> buffer, like for instance enabling a prefix, which is not directly
>> related to the core implementation of hexdump.
>> 
>> Hence, I am sorry, but I will disregard this request unless someone
>> comes up with a working idea which is worth the effort, considering the
>> minimum impact of this change and the fact that it is mostly (if not
>> only) for debugging purposes and will most likely never reach users.
>
> I'm sorry, but my NAK still stands. No tests — no go.

Please Andy, stop asking loads and loads of unachievable changes to fit
your ideal. I am bringing something that I feel can be useful, just stop
with your endless list of unrelated (and in this case unreachable)
wishes. There is nothing testing the prefixes, if there was a suitable
test case I would improve it, but there is none, because the test suite
is not used like that.

> And it does not matter if it's only for debugging or for ABI, we require test
> cases for the lib/ changes.

Who's we? Where is this documented?
There is no test case checking the kernel buffer printing.
I'm not skilled enough to write one.

> We don't know and don't care much about how these
> new features will be utilized

And this is typically what I dislike in some of your reviews. There is
always a context, trying to ignore it is pointless.

> (the requirement here is to have a user for it,
> so you might need to consider to convert one of the existing user to use a new
> feature, besides the [updated] test cases).

I know this is generally requested, but once again, dumping pages of
data where this flag might be useful makes sense during debug sessions
in very particular places, keeping these debug calls does not seem very
useful to me, but that's certainly easier to achieve than your previous
request.

Miquèl
Re: [PATCH 0/2] hexdump: Allow skipping identical lines
Posted by Andy Shevchenko 11 months, 1 week ago
On Mon, Dec 30, 2024 at 12:35:57PM +0100, Miquel Raynal wrote:
> On 24/12/2024 at 17:49:25 +02, Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> > On Tue, Dec 24, 2024 at 12:56:26PM +0100, Miquel Raynal wrote:
> >> On 27/08/2024 at 16:29:18 +03, Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> >> > On Tue, Aug 27, 2024 at 11:01:47AM +0200, Miquel Raynal wrote:
> >> >> andriy.shevchenko@linux.intel.com wrote on Mon, 26 Aug 2024 20:32:20
> >> >> +0300:
> >> >> > On Mon, Aug 26, 2024 at 06:24:14PM +0200, Miquel Raynal wrote:

...

> >> >> > Also here is the formal NAK till the series gains the test cases.
> >> >> 
> >> >> What test cases are you talking about?
> >> >
> >> > Anything meaningful you come up with to show that the printed data is
> >> > what it's expected. The module has a complimentary test case,
> >> > lib/test_hexdump.c. Without changes in that file, there is no go
> >> > to what ever golden ideas you have.
> >> 
> >> I had a look. The tests never test the content of the kernel buffer,
> >> while this is the only part that my changes have an impact on.
> >
> > So, it means that after your change there will be a deviation between the core
> > function that dumps into a buffer and one that prints message into the kernel
> > buffer.
> 
> No, it's always been like that. The formatting of the prefixes have
> always been totally different in this function, probably because filling
> a memory buffer and sending these messages to dmesg is fundamentally
> different and we may want a different behaviour *when sending to the
> kernel buffer*.

Why? I mean the prefixes are fine, but the main part should be the same as long
as we use the same backend API, no? This is a lib/ code which should be suitable
for many cases, including ABI, I don't see the good reason why we should
deviate from that.

> That is what I believe is useful. If someone wishes to
> port the feature to the other functions, they can, but it is irrelevant
> to the change brought here.

I disagree on this. When we touch printf() stuff, we consider all aspects of
the formatted strings, and not only kernel buffer for some features. One may
use memory buffer for that, one may rely on kernel message.

> > Moreover it lefts seq_hex_dump() out of the picture.
> 
> seq_hex_dump() has diverged already and is a very specific case that is
> probably under stability constraints, where trimming down the output
> lines is likely much less useful.

If it becomes a part of ABI, why not? seq_printf() also uses limited buffer and
may become quite untrivial to handle when it's bigger (see all those special
cases when seq options are defined to custom callbacks).

> I am not strongly opposed to it, but it is probably a bit useless.
> 
> > I think you need to start from modifying hex_dump_to_buffer() to have a
> > functionality you want (note, there are cases in the kernel that use
> > hex_dump_to_buffer() for formatting messages in the kernel buffer and they
> > might want to have the same functionality to be available.
> 
> No... that is not how these function work nor have been designed for,
> hex_dump_to_buffer is used as a line-oriented helper to fill a kernel
> buffer line which *is* a line-oriented buffer. A prefix gets added to
> it, and I want to skip the printing if it's redundant. Lines are sent
> one after the other using printk anyway. All this logic has nothing to
> do inside hex_dump_to_buffer at all.

I think it has a relation. The use of hex_dump_to_buffer() is often to get list
of lines at the end to be formatted (and printed if required), it usually makes
not much sense for a single line as it's easier to open code and rarely
people would seek for an ASCII representation part for a single line.

> Plus, what you ask for would
> require a new buffer to be allocated, potentially big and unbounded,

I don't think you need it. What you need is a crc32 of the content or another hash.
It will be a new function that takes some kind of context, one field of which is
the hash (of the previous data).

> which would require a GFP flag (yay! a new parameter). And finally the
> implementation itself would be much less obvious if the algorithm was
> not line oriented.
> 
> I am sorry, but I really took the time to understand your request but it
> is simply not working well technically nor conceptually desirable IMO.
> 
> >> These tests verify the hex_dump_to_buffer() logic, but never how it is used
> >> through the print_hex_dump_*() helpers.
> >
> > I haven't checked and don't remember for sure, but KUnit rings a bell that it
> > might be possible to test the actual kernel output. (However, after the above
> > modifications been made it won't be needed anymore as test_hexdump.c will be
> > extended to support new feature.)
> >
> >> In this series I am just enabling a new way to print the content of the
> >> buffer, like for instance enabling a prefix, which is not directly
> >> related to the core implementation of hexdump.
> >> 
> >> Hence, I am sorry, but I will disregard this request unless someone
> >> comes up with a working idea which is worth the effort, considering the
> >> minimum impact of this change and the fact that it is mostly (if not
> >> only) for debugging purposes and will most likely never reach users.
> >
> > I'm sorry, but my NAK still stands. No tests — no go.

> Please Andy, stop asking loads and loads of unachievable changes to fit
> your ideal. I am bringing something that I feel can be useful, just stop
> with your endless list of unrelated (and in this case unreachable)
> wishes. 

Do you want me to take over and show how it should be done? Definitely I can
invest some time into it, but I can't guarantee the quick result though.

> There is nothing testing the prefixes, if there was a suitable
> test case I would improve it, but there is none, because the test suite
> is not used like that.
> 
> > And it does not matter if it's only for debugging or for ABI, we require test
> > cases for the lib/ changes.
> 
> Who's we? Where is this documented?

People (maintainers) who care about lib/ contents.
Mainly I implied Rasmus, but sometimes others also want to see test cases.

> There is no test case checking the kernel buffer printing.

After looking around it seems you are right.

> I'm not skilled enough to write one.

> > We don't know and don't care much about how these
> > new features will be utilized
> 
> And this is typically what I dislike in some of your reviews. There is
> always a context, trying to ignore it is pointless.

I understand your context here, the problem is that this is universal API.

> > (the requirement here is to have a user for it,
> > so you might need to consider to convert one of the existing user to use a new
> > feature, besides the [updated] test cases).
> 
> I know this is generally requested, but once again, dumping pages of
> data where this flag might be useful makes sense during debug sessions
> in very particular places, keeping these debug calls does not seem very
> useful to me, but that's certainly easier to achieve than your previous
> request.

P.S. You probably want to acquire somebody's else tag from PRINTK/PRINTF
maintainers/reviewers pool.

-- 
With Best Regards,
Andy Shevchenko