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 stru
Initialize devlink health dump framework for the qlge driver so the
coredump could be done via devlink.
struct qlge_adapter is now used as the private data structure of
struct devlink so it could exist independently of struct net_device
and devlink reload could be supported in the future. The priv
Stop calling ql_release_all in qlge_init_device and free things one step
at a time.
struct qlge_adapter *qdev is now a private structure of struct devlink
and memset is not necessary.
Link: https://lore.kernel.org/patchwork/patch/1321092/#1516928
Suggested-by: Dan Carpenter
Signed-off-by: Coiby
$ devlink health dump show DEVICE reporter coredump -p -j
{
"Core Registers": {
"segment": 1,
"values": [
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
The debugging code in the following ifdef land
- QL_ALL_DUMP
- QL_REG_DUMP
- QL_DEV_DUMP
- QL_CB_DUMP
- QL_IB_DUMP
- QL_OB_DUMP
becomes unnecessary because,
- Device status and general registers can be obtained by ethtool.
- Coredump can be done via devlink health reporter.
- Structure re
Instructions and examples on kernel data structures dumping and
coredump.
Signed-off-by: Coiby Xu
---
.../networking/device_drivers/index.rst | 1 +
.../device_drivers/qlogic/index.rst | 18 +++
.../networking/device_drivers/qlogic/qlge.rst | 118 ++
MAINTAINER
With force_coredump module parameter set, devlink health dump will
reset the MPI RISC first which takes 5 secs to be finished.
Note that only NIC function that owns the firmware can do the
force_dumping. Otherwise devlink will receive an EPERM error.
Signed-off-by: Coiby Xu
---
drivers/staging/
devlink health could be used to get coredump. No need to send so much
data to the kernel ring buffer.
Signed-off-by: Coiby Xu
---
drivers/staging/qlge/TODO | 2 --
drivers/staging/qlge/qlge.h | 3 ---
drivers/staging/qlge/qlge_dbg.c | 11 ---
drivers/staging/qlge/
tree/branch:
https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
driver-core-linus
branch HEAD: e020ff611ba9be54e959e6b548038f8a020da1c9 driver core: Fix device
link device name collision
elapsed time: 3298m
configs tested: 100
configs skipped: 2
The following configs have