[dpdk-dev] [PATCH v2 08/18] raw/ioat: create rawdev instances on idxd PCI probe

Laatz, Kevin kevin.laatz at intel.com
Tue Aug 25 17:27:43 CEST 2020


On 21/08/2020 17:29, Bruce Richardson wrote:
> When a matching device is found via PCI probe create a rawdev instance for
> each queue on the hardware. Use empty self-test function for these devices
> so that the overall rawdev_autotest does not report failures.
>
> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> ---
>   drivers/raw/ioat/idxd_pci.c            | 236 ++++++++++++++++++++++++-
>   drivers/raw/ioat/ioat_common.c         |  61 +++++++
>   drivers/raw/ioat/ioat_private.h        |  31 ++++
>   drivers/raw/ioat/ioat_rawdev_test.c    |   7 +
>   drivers/raw/ioat/ioat_spec.h           |  64 +++++++
>   drivers/raw/ioat/meson.build           |   1 +
>   drivers/raw/ioat/rte_ioat_rawdev_fns.h |  35 +++-
>   7 files changed, 432 insertions(+), 3 deletions(-)
>   create mode 100644 drivers/raw/ioat/ioat_common.c
>
<snip>


> diff --git a/drivers/raw/ioat/ioat_private.h b/drivers/raw/ioat/ioat_private.h
> index d87d4d055e..32c824536d 100644
> --- a/drivers/raw/ioat/ioat_private.h
> +++ b/drivers/raw/ioat/ioat_private.h
> @@ -14,6 +14,10 @@
>    * @b EXPERIMENTAL: these structures and APIs may change without prior notice
>    */
>   
> +#include <rte_spinlock.h>
> +#include <rte_rawdev_pmd.h>
> +#include "rte_ioat_rawdev.h"
> +
>   extern int ioat_pmd_logtype;
>   
>   #define IOAT_PMD_LOG(level, fmt, args...) rte_log(RTE_LOG_ ## level, \
> @@ -24,4 +28,31 @@ extern int ioat_pmd_logtype;
>   #define IOAT_PMD_ERR(fmt, args...)    IOAT_PMD_LOG(ERR, fmt, ## args)
>   #define IOAT_PMD_WARN(fmt, args...)   IOAT_PMD_LOG(WARNING, fmt, ## args)
>   
> +struct idxd_pci_common {
> +	rte_spinlock_t lk;
> +	volatile struct rte_idxd_bar0 *regs;
> +	volatile struct rte_idxd_wqcfg *wq_regs;
> +	volatile struct rte_idxd_grpcfg *grp_regs;
> +	volatile void *portals;
> +};
> +
> +struct idxd_rawdev {
> +	struct rte_idxd_rawdev public; /* the public members, must be first */

For C++ compatibility, we cannot use "public" since it is a reserved 
word in C++. Suggest renaming to "pub".


Thanks,
Kevin


More information about the dev mailing list