[PATCH 3/3] drm/xe: Add SR-IOV info attribute to debugfs

Rodrigo Vivi rodrigo.vivi at intel.com
Tue Apr 9 17:48:27 UTC 2024


On Thu, Apr 04, 2024 at 05:44:31PM +0200, Michal Wajdeczko wrote:
> As SR-IOV support varies between platforms and the driver can run
> in different SR-IOV modes, add debugfs file with these details.
> 
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>

> ---
>  drivers/gpu/drm/xe/xe_debugfs.c | 11 +++++++++++
>  drivers/gpu/drm/xe/xe_sriov.c   | 14 ++++++++++++++
>  drivers/gpu/drm/xe/xe_sriov.h   |  3 +++
>  3 files changed, 28 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
> index 8abdf3c17e1d..13e13f22ccff 100644
> --- a/drivers/gpu/drm/xe/xe_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_debugfs.c
> @@ -13,6 +13,7 @@
>  #include "xe_device.h"
>  #include "xe_gt_debugfs.h"
>  #include "xe_pm.h"
> +#include "xe_sriov.h"
>  #include "xe_step.h"
>  
>  #ifdef CONFIG_DRM_XE_DEBUG
> @@ -70,8 +71,18 @@ static int info(struct seq_file *m, void *data)
>  	return 0;
>  }
>  
> +static int sriov_info(struct seq_file *m, void *data)
> +{
> +	struct xe_device *xe = node_to_xe(m->private);
> +	struct drm_printer p = drm_seq_file_printer(m);
> +
> +	xe_sriov_print_info(xe, &p);
> +	return 0;
> +}
> +
>  static const struct drm_info_list debugfs_list[] = {
>  	{"info", info, 0},
> +	{ .name = "sriov_info", .show = sriov_info, },
>  };
>  
>  static int forcewake_open(struct inode *inode, struct file *file)
> diff --git a/drivers/gpu/drm/xe/xe_sriov.c b/drivers/gpu/drm/xe/xe_sriov.c
> index 94fa98d8206e..d324f131e3da 100644
> --- a/drivers/gpu/drm/xe/xe_sriov.c
> +++ b/drivers/gpu/drm/xe/xe_sriov.c
> @@ -101,3 +101,17 @@ int xe_sriov_init(struct xe_device *xe)
>  
>  	return drmm_add_action_or_reset(&xe->drm, fini_sriov, xe);
>  }
> +
> +/**
> + * xe_sriov_print_info - Print basic SR-IOV information.
> + * @xe: the &xe_device to print info from
> + * @p: the &drm_printer
> + *
> + * Print SR-IOV related information into provided DRM printer.
> + */
> +void xe_sriov_print_info(struct xe_device *xe, struct drm_printer *p)
> +{
> +	drm_printf(p, "supported: %s\n", str_yes_no(xe_device_has_sriov(xe)));
> +	drm_printf(p, "enabled: %s\n", str_yes_no(IS_SRIOV(xe)));
> +	drm_printf(p, "mode: %s\n", xe_sriov_mode_to_string(xe_device_sriov_mode(xe)));
> +}
> diff --git a/drivers/gpu/drm/xe/xe_sriov.h b/drivers/gpu/drm/xe/xe_sriov.h
> index 9e3f58874e98..f9dec84d77e3 100644
> --- a/drivers/gpu/drm/xe/xe_sriov.h
> +++ b/drivers/gpu/drm/xe/xe_sriov.h
> @@ -10,9 +10,12 @@
>  #include "xe_device_types.h"
>  #include "xe_sriov_types.h"
>  
> +struct drm_printer;
> +
>  const char *xe_sriov_mode_to_string(enum xe_sriov_mode mode);
>  
>  void xe_sriov_probe_early(struct xe_device *xe);
> +void xe_sriov_print_info(struct xe_device *xe, struct drm_printer *p);
>  int xe_sriov_init(struct xe_device *xe);
>  
>  static inline enum xe_sriov_mode xe_device_sriov_mode(struct xe_device *xe)
> -- 
> 2.43.0
> 


More information about the Intel-xe mailing list