[dpdk-dev] [PATCH v3 5/8] raw/ioat: add device info function
Burakov, Anatoly
anatoly.burakov at intel.com
Thu Jun 27 14:16:01 CEST 2019
On 27-Jun-19 11:40 AM, Bruce Richardson wrote:
> Add in the "info_get" function to the driver, to allow us to query the
> device. This allows us to have the unit test pick up the presence of
> supported hardware or not.
>
> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
>
> ---
>
> V2: Test case is placed in driver self-test routine
> ---
> app/test/test_rawdev.c | 11 ++++++++++
> doc/guides/rawdevs/ioat_rawdev.rst | 34 ++++++++++++++++++++++++++++++
> drivers/raw/ioat/ioat_rawdev.c | 11 ++++++++++
> drivers/raw/ioat/rte_ioat_rawdev.h | 11 ++++++++++
> 4 files changed, 67 insertions(+)
>
> diff --git a/app/test/test_rawdev.c b/app/test/test_rawdev.c
> index 88549fb61..4db762b4c 100644
> --- a/app/test/test_rawdev.c
> +++ b/app/test/test_rawdev.c
> @@ -29,6 +29,17 @@ REGISTER_TEST_COMMAND(rawdev_autotest, test_rawdev_selftest_skeleton);
> static int
> test_rawdev_selftest_ioat(void)
> {
> + const int count = rte_rawdev_count();
> + int i;
> +
> + for (i = 0; i < count; i++) {
> + struct rte_rawdev_info info = { .dev_private = NULL };
> + if (rte_rawdev_info_get(i, &info) == 0 &&
> + strstr(info.driver_name, "ioat") != NULL)
> + return 0;
TEST_SUCCESS? Also, didn't "ioat" have a macro for its name?
> + }
> +
> + printf("No IOAT rawdev found, skipping tests\n");
> return TEST_SKIPPED;
> }
>
> diff --git a/doc/guides/rawdevs/ioat_rawdev.rst b/doc/guides/rawdevs/ioat_rawdev.rst
> index 4b7fe8a8f..0ce984490 100644
> --- a/doc/guides/rawdevs/ioat_rawdev.rst
> +++ b/doc/guides/rawdevs/ioat_rawdev.rst
> @@ -83,3 +83,37 @@ parameters need to be passed to create or initialize the device.
> Once probed successfully, the device will appear as a ``rawdev``, that is a
> "raw device type" inside DPDK, and can be accessed using APIs from the
> ``rte_rawdev`` library.
> +
> +Using IOAT Rawdev Devices
> +--------------------------
> +
> +To use the devices from an application, the rawdev API can be used, along
> +with definitions taken from the device-specific header file
> +``rte_ioat_rawdev.h``. This header is needed to get the definition of
> +structure parameters used by some of the rawdev APIs for IOAT rawdev
> +devices, as well as providing key functions for using the device for memory
> +copies.
> +
> +Getting Device Information
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +Basic information about each rawdev device can be got using the
According to certain unreliable sources [1], usage of "can be got" has
not been used since the end of 19th century. I didn't think you were
*that* old, Bruce!
> +``rte_rawdev_info_get()`` API. For most applications, this API will be
> +needed to verify that the rawdev in question is of the expected type. For
> +example, the following code in ``test_ioat_rawdev.c`` is used to identify
> +the IOAT rawdev device for use for the tests:
> +
> +.. code-block:: C
> +
> + for (i = 0; i < count && !found; i++) {
> + struct rte_rawdev_info info = { .dev_private = NULL };
> + found = (rte_rawdev_info_get(i, &info) == 0 &&
> + strcmp(info.driver_name,
> + IOAT_PMD_RAWDEV_NAME_STR) == 0);
> + }
The code here doesn't match the actual implementation in the autotest.
--
Thanks,
Anatoly
More information about the dev
mailing list