This patch set aims to avoid dumping registers, data structures and coredump to dmesg and also to reduce the code size of the qlge driver. As pointed out by Benjamin [1], > At 2000 lines, qlge_dbg.c alone is larger than some entire ethernet > drivers. Most of what it does is dump kernel data structures or pci > memory mapped registers to dmesg. There are better facilities for that. > My thinking is not simply to delete qlge_dbg.c but to replace it, making > sure that most of the same information is still available. For data > structures, crash or drgn can be used; possibly with a script for the > latter which formats the data. For pci registers, they should be > included in the ethtool register dump and a patch added to ethtool to > pretty print them. That's what other drivers like e1000e do. For the > "coredump", devlink health can be used. So the debugging features are re-written following Benjamin's advice, - dump kernel data structures in drgn - use devlink to do coredump which also includes device status and general registers [1] https://lkml.org/lkml/2020/6/30/19 v1 -> v2 - Call devlink_free when register_netdev fails [Willem de Bruijn] - "scripts/checkpatch.pl --strict" for changes [Dan Carpente] - Declares variables in "Reverse Christmas Tree" [Dan Carpente] - Use the sizeof() directly [Dan Carpente] - Add SPDX-License-Identifier to qlge_devlink.{c,h} - Rename ql_* to qlge_* [Benjamin Poirier] - Update drivers/staging/qlge/TODO [Benjamin Poirier] - struct qlge_adapter is now used as the private data struct of devlink instead of net_device [Benjamin Poirier] RFC -> v1 - select NET_DEVLINK in Kconfig [Benjamin Poirier] - Don't do a coredump when the interface is down [Shung-Hsi Yu] - Remove stray newlines [Benjamin Poirier] - force_coredump for devlink - Remove mpi_core_to_log which will output the coredump to the kernel ring buffer - Put drgn script under Documentation [Benjamin Poirier] - Rename qlge_health.* to qlge_devlink.* Coiby Xu (7): staging: qlge: replace ql_* with qlge_* to avoid namespace clashes with other qlogic drivers staging: qlge: Initialize devlink health dump framework staging: qlge: coredump via devlink health reporter staging: qlge: support force_coredump option for devlink health dump staging: qlge: remove mpi_core_to_log which sends coredump to the kernel ring buffer staging: qlge: clean up debugging code in the QL_ALL_DUMP ifdef land staging: qlge: add documentation for debugging qlge .../networking/device_drivers/index.rst | 1 + .../device_drivers/qlogic/index.rst | 18 + .../networking/device_drivers/qlogic/qlge.rst | 118 ++ MAINTAINERS | 6 + drivers/staging/qlge/Kconfig | 1 + drivers/staging/qlge/Makefile | 2 +- drivers/staging/qlge/TODO | 10 - drivers/staging/qlge/qlge.h | 216 +-- drivers/staging/qlge/qlge_dbg.c | 1650 +++++------------ drivers/staging/qlge/qlge_devlink.c | 156 ++ drivers/staging/qlge/qlge_devlink.h | 9 + drivers/staging/qlge/qlge_ethtool.c | 234 ++- drivers/staging/qlge/qlge_main.c | 1302 ++++++------- drivers/staging/qlge/qlge_mpi.c | 356 ++-- 14 files changed, 1802 insertions(+), 2277 deletions(-) create mode 100644 Documentation/networking/device_drivers/qlogic/index.rst create mode 100644 Documentation/networking/device_drivers/qlogic/qlge.rst create mode 100644 drivers/staging/qlge/qlge_devlink.c create mode 100644 drivers/staging/qlge/qlge_devlink.h -- 2.28.0 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel