[Accel-config] Re: [PATCH v1 2/4] accel-config: Add compatibility mode detection
Dave Jiang <dave.jiang at intel.com>
| Newsgroups | dev.linux.lists.accel-config |
|---|---|
| Message-ID | <[email protected]> |
On 3/11/2021 11:03 AM, ramesh.thomas(a)intel.com wrote:
> From: Ramesh Thomas <ramesh.thomas(a)intel.com>
>
> Add a flag in accfg context to store commpatibility mode. Absence of
> /sys/bus/dsa/drivers/idxd indicates compatibility mode.
>
> Signed-off-by: Ramesh Thomas <ramesh.thomas(a)intel.com>
> ---
> accfg/lib/libaccfg.c | 5 +++++
> accfg/lib/private.h | 1 +
> 2 files changed, 6 insertions(+)
>
> diff --git a/accfg/lib/libaccfg.c b/accfg/lib/libaccfg.c
> index 450be4f..25d783c 100644
> --- a/accfg/lib/libaccfg.c
> +++ b/accfg/lib/libaccfg.c
> @@ -28,6 +28,8 @@
> #include "private.h"
>
> #define MDEV_POSTFIX "mdev_supported_types"
> +#define IDXD_DRIVER_PATH "/sys/bus/dsa/drivers/"
> +#define IDXD_DRIVER_PORTAL "idxd"
Portal is actually a device term. We have portal drivers for the WQ but
not the device. Maybe IDXD_DRIVER_BIND_PATH?
>
> const char *accfg_wq_mode_str[] = {
> [ACCFG_WQ_SHARED] = "shared",
> @@ -310,6 +312,9 @@ ACCFG_EXPORT int accfg_new(struct accfg_ctx **ctx)
> c->refcount = 1;
> log_init(&c->ctx, "libaccfg", "ACCFG_LOG");
> c->timeout = 5000;
> + if (access(IDXD_DRIVER_PATH IDXD_DRIVER_PORTAL, R_OK))
I think you want to detect /sys/bus/dsa/drivers/dsa to be in compat
mode? If COMPAT is turned off, /sys/bus/dsa/drivers/dsa would not exist.
> + c->compat = true;
> +
> list_head_init(&c->devices);
>
> info(c, "ctx %p created\n", c);
> diff --git a/accfg/lib/private.h b/accfg/lib/private.h
> index 0fdc5d5..f407643 100644
> --- a/accfg/lib/private.h
> +++ b/accfg/lib/private.h
> @@ -146,6 +146,7 @@ struct accfg_ctx {
> struct list_head devices;
> uint64_t timeout;
> void *private_data;
> + bool compat;
> };
>
> static inline int check_udev(struct udev *udev)