[PATCH v3 13/13] drm/xe/configfs: Dump custom settings when binding

Belgaumkar, Vinay vinay.belgaumkar at intel.com
Fri Aug 15 00:48:25 UTC 2025


On 8/8/2025 10:29 AM, Lucas De Marchi wrote:
> Device configuration using configfs could be prepared long time prior
> the driver load. Currently all the xe configfs entries are for things
> that are important to have in the log if a non-default value is being
> used. Add a info-level message about that with the individual entries
> that are different than the default.
>
> Based on previous patch by Michal Wajdeczko.
>
> Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: John Harrison <John.C.Harrison at Intel.com>
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
> ---
>   drivers/gpu/drm/xe/xe_configfs.c | 39 +++++++++++++++++++++++++++++++++++++++
>   drivers/gpu/drm/xe/xe_configfs.h |  2 ++
>   drivers/gpu/drm/xe/xe_pci.c      |  3 +++
>   3 files changed, 44 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
> index 3b9d24c0bb588..9a283b713ff9d 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.c
> +++ b/drivers/gpu/drm/xe/xe_configfs.c
> @@ -480,6 +480,45 @@ static struct xe_config_group_device *find_xe_config_group_device(struct pci_dev
>   	return to_xe_config_group_device(item);
>   }
>   
> +static void dump_custom_dev_config(struct pci_dev *pdev,
> +				   struct xe_config_group_device *dev)
> +{
> +#define PRI_CUSTOM_ATTR(fmt_, attr_) do { \
> +		if (dev->config.attr_ != device_defaults.attr_) \
> +			pci_info(pdev, "configfs: " __stringify(attr_) " = " fmt_ "\n", \
> +				 dev->config.attr_); \
> +	} while (0)
> +
> +	PRI_CUSTOM_ATTR("%llx", engines_allowed);
> +	PRI_CUSTOM_ATTR("%d", enable_psmi);
> +	PRI_CUSTOM_ATTR("%d", survivability_mode);
> +
> +#undef PRI_CUSTOM_ATTR
> +}
> +
> +/**
> + * xe_configfs_check_device() - Test if device was configured by configfs
> + * @pdev: the &pci_dev device to test
> + *
> + * Try to find the configfs group that belongs to the specified pci device
> + * and print a diagnostic message if found.
We print only if custom ones are found right? Not otherwise.
> + */
> +void xe_configfs_check_device(struct pci_dev *pdev)
> +{
> +	struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
> +
> +	if (!dev)
> +		return;
> +
> +	/* memcmp here is safe as both as zero-initialized */

s/as/are?

With the above nits resolved,

Reviewed-by: Vinay Belgaumkar <vinay.belgaumkar at intel.com>

> +	if (memcmp(&dev->config, &device_defaults, sizeof(dev->config))) {
> +		pci_info(pdev, "Found custom settings in configfs\n");
> +		dump_custom_dev_config(pdev, dev);
> +	}
> +
> +	config_group_put(&dev->group);
> +}
> +
>   /**
>    * xe_configfs_get_survivability_mode - get configfs survivability mode attribute
>    * @pdev: pci device
> diff --git a/drivers/gpu/drm/xe/xe_configfs.h b/drivers/gpu/drm/xe/xe_configfs.h
> index 603dd7796c8b2..58c8c31640008 100644
> --- a/drivers/gpu/drm/xe/xe_configfs.h
> +++ b/drivers/gpu/drm/xe/xe_configfs.h
> @@ -13,6 +13,7 @@ struct pci_dev;
>   #if IS_ENABLED(CONFIG_CONFIGFS_FS)
>   int xe_configfs_init(void);
>   void xe_configfs_exit(void);
> +void xe_configfs_check_device(struct pci_dev *pdev);
>   bool xe_configfs_get_survivability_mode(struct pci_dev *pdev);
>   void xe_configfs_clear_survivability_mode(struct pci_dev *pdev);
>   u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev);
> @@ -20,6 +21,7 @@ bool xe_configfs_get_psmi_enabled(struct pci_dev *pdev);
>   #else
>   static inline int xe_configfs_init(void) { return 0; }
>   static inline void xe_configfs_exit(void) { }
> +static inline void xe_configfs_check_device(struct pci_dev *pdev) { }
>   static inline bool xe_configfs_get_survivability_mode(struct pci_dev *pdev) { return false; }
>   static inline void xe_configfs_clear_survivability_mode(struct pci_dev *pdev) { }
>   static inline u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev) { return U64_MAX; }
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index 52d46c66ae1eb..9ce6e6dca5bc7 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -17,6 +17,7 @@
>   
>   #include "display/xe_display.h"
>   #include "regs/xe_gt_regs.h"
> +#include "xe_configfs.h"
>   #include "xe_device.h"
>   #include "xe_drv.h"
>   #include "xe_gt.h"
> @@ -771,6 +772,8 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>   	struct xe_device *xe;
>   	int err;
>   
> +	xe_configfs_check_device(pdev);
> +
>   	if (desc->require_force_probe && !id_forced(pdev->device)) {
>   		dev_info(&pdev->dev,
>   			 "Your graphics device %04x is not officially supported\n"
>


More information about the Intel-xe mailing list