Hi, This patchset adds support for selftests in the devlink framework. It adds a callback .selftests_check and .selftests_run in devlink_ops. User can add test(s) suite which is subsequently passed to the driver and driver can opt for running particular tests based on its capabilities. Patchset adds a flash based test for the bnxt_en driver. Suggested commands at user level would be as below: changes from: v8->v9: Only SOB line fixed in 2/2. v7->v8: Some nits requested by jiri@xxxxxxxxxx in v7. v6->v7: 1) Changed the macros/enums name as suggested by kuba@xxxxxxxxxx. 2) Rebase with latest net-next. Dumpit impacted due to recent patches by jiri@xxxxxxxxxx. net: devlink: make sure that devlink_try_get() works with valid pointer during xarray iteration net: devlink: move net check into devlinks_xa_for_each_registered_get() v5->v6: Addressed change in .rst file only suggested by jiri@xxxxxxxxxx in patch v5. v4->v5: Addressed the changes requested by jiri@xxxxxxxxxx in patch v4. v3->v4: Addressed the changes requested by kuba@xxxxxxxxxx in patch v3. v2->v3: 1) After discussions with jiri@xxxxxxxxxx, passing a testmask from user to kernel is removed and a flag based arguments are adopted. This way we can have more than 32/64 selftests defined in the kernel. Below is the format from user to kernel and vice-versa. Kernel to user for show command . Users can know what all tests are supported by the driver. A return from kernel to user if driver supports TEST1, TEST4, and TEST7. ______ |NEST | |_____ |TEST1|TEST4|TEST7|... User to kernel to execute test: If user wants to execute test4, test8, test1... ______ |NEST | |_____ |TEST4|TEST8|TEST1|... After executing the tests kernel return to user. |NEST | |_____ | NEST| |NEST| |NEST| TEST4,RES4 TEST8,RES8 TEST1, RES1 2) Added dumpit in devlink for list/show command. v1->v2: Addressed the changes requested by kuba@xxxxxxxxxx in patch v1. Fixed the style issues. Thanks, Vikas *** BLURB HERE *** Vikas Gupta (1): devlink: introduce framework for selftests vikas (1): bnxt_en: implement callbacks for devlink selftests .../networking/devlink/devlink-selftests.rst | 38 +++ .../net/ethernet/broadcom/bnxt/bnxt_devlink.c | 61 +++++ .../net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 24 +- .../net/ethernet/broadcom/bnxt/bnxt_ethtool.h | 12 + include/net/devlink.h | 21 ++ include/uapi/linux/devlink.h | 29 +++ net/core/devlink.c | 216 ++++++++++++++++++ 7 files changed, 389 insertions(+), 12 deletions(-) create mode 100644 Documentation/networking/devlink/devlink-selftests.rst -- 2.31.1
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature