Subject: Re: [PATCH net-next v4 1/3] devlink: introduce framework for selftests

From: Jiri Pirko <[email-masked]>
Date: Fri, 22 Jul 2022 08:41:54 +0200

Thu, Jul 21, 2022 at 07:32:08PM CEST, [email-masked] wrote:
>Hi Jiri,
>
>
>On Thu, Jul 21, 2022 at 6:27 PM Jiri Pirko <[email-masked]> wrote:
>>
>> Thu, Jul 21, 2022 at 09:21:19AM CEST, [email-masked] wrote:
>> >Add a framework for running selftests.
>> >Framework exposes devlink commands and test suite(s) to the user
>> >to execute and query the supported tests by the driver.
>> >
>> >Below are new entries in devlink_nl_ops
>> >devlink_nl_cmd_selftests_list_doit/dumpit: To query the supported
>> >selftests by the drivers.
>> >devlink_nl_cmd_selftests_run: To execute selftests. Users can
>> >provide a test mask for executing group tests or standalone tests.
>> >
>> >Documentation/networking/devlink/ path is already part of MAINTAINERS &
>> >the new files come under this path. Hence no update needed to the
>> >MAINTAINERS
>> >
>> >Signed-off-by: Vikas Gupta <[email-masked]>
>> >Reviewed-by: Michael Chan <[email-masked]>
>> >Reviewed-by: Andy Gospodarek <[email-masked]>
>> >---
>> > .../networking/devlink/devlink-selftests.rst  |  38 +++
>> > include/net/devlink.h                         |  20 ++
>> > include/uapi/linux/devlink.h                  |  29 +++
>> > net/core/devlink.c                            | 225 ++++++++++++++++++
>> > 4 files changed, 312 insertions(+)
>> > create mode 100644 Documentation/networking/devlink/devlink-selftests.rst
>> >
>> >diff --git a/Documentation/networking/devlink/devlink-selftests.rst b/Documentation/networking/devlink/devlink-selftests.rst
>> >new file mode 100644
>> >index 000000000000..0e9727895987
>> >--- /dev/null
>> >+++ b/Documentation/networking/devlink/devlink-selftests.rst
>> >@@ -0,0 +1,38 @@
>> >+.. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> >+
>> >+=================
>> >+Devlink Selftests
>> >+=================
>> >+
>> >+The ``devlink-selftests`` API allows executing selftests on the device.
>> >+
>> >+Tests Mask
>> >+==========
>> >+The ``devlink-selftests`` command should be run with a mask indicating
>> >+the tests to be executed.
>> >+
>> >+Tests Description
>> >+=================
>> >+The following is a list of tests that drivers may execute.
>> >+
>> >+.. list-table:: List of tests
>> >+   :widths: 5 90
>> >+
>> >+   * - Name
>> >+     - Description
>> >+   * - ``DEVLINK_SELFTEST_FLASH``
>> >+     - Devices may have the firmware on non-volatile memory on the board, e.g.
>> >+       flash. This particular test helps to run a flash selftest on the device.
>> >+       Implementation of the test is left to the driver/firmware.
>> >+
>> >+example usage
>> >+-------------
>> >+
>> >+.. code:: shell
>> >+
>> >+    # Query selftests supported on the devlink device
>> >+    $ devlink dev selftests show DEV
>> >+    # Query selftests supported on all devlink devices
>> >+    $ devlink dev selftests show
>> >+    # Executes selftests on the device
>> >+    $ devlink dev selftests run DEV test flash
>>
>> "test_id" to be consistend with the attr name and outputs. Please see
>What is "test_id" referring to in this document? Can you please elaborate ?

"test_id" is consistent with the UAPI netlink attribute name, see
below.

>
>> below. Devlink cmdline would accept "test" as well, so you can still use
>Are you mentioning the "test" argument in the above devlink command line option?

Yes, the cmd line accepts shortened option names. So for "test_id", it
would accept:
"test_i"
"test_"
and "test"

I just wanted to say you, as a user, will be able to still use the
shortened version, but the option name "test_id" would be consistent
with UAPI, which is what we usually have.