[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