[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