On Wed, Nov 12, 2025 at 02:11:42PM -0500, Rodrigo Vivi wrote:
> On Wed, Nov 12, 2025 at 02:22:09PM +0100, Michał Winiarski wrote:
> > In upcoming changes, SR-IOV VF migration data will be extended beyond
> > GuC data and exported to userspace using VFIO interface (with a
> > vendor-specific variant driver) and a device-level debugfs interface.
> > Remove the GT-level debugfs.
> 
> Perhaps this should be retained while we don't have the xe-vfio?

The series adds device-level debugfs, which let's us get the bitstream
with all of the resources (GuC/MMIO/VRAM/GGTT), from all GTs.
I don't think we need a per-GT control for only the GuC migration data.
And if it's needed - it could be extracted from the full bitstream.

Thanks,
-Michał

> 
> > 
> > Signed-off-by: Michał Winiarski <[email protected]>
> > Reviewed-by: Michal Wajdeczko <[email protected]>
> > ---
> >  drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c | 47 ---------------------
> >  1 file changed, 47 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c 
> > b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
> > index 838beb7f6327f..5278ea4fd6552 100644
> > --- a/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
> > +++ b/drivers/gpu/drm/xe/xe_gt_sriov_pf_debugfs.c
> > @@ -327,9 +327,6 @@ static const struct {
> >     { "stop", xe_gt_sriov_pf_control_stop_vf },
> >     { "pause", xe_gt_sriov_pf_control_pause_vf },
> >     { "resume", xe_gt_sriov_pf_control_resume_vf },
> > -#ifdef CONFIG_DRM_XE_DEBUG_SRIOV
> > -   { "restore!", xe_gt_sriov_pf_migration_restore_guc_state },
> > -#endif
> >  };
> >  
> >  static ssize_t control_write(struct file *file, const char __user *buf, 
> > size_t count, loff_t *pos)
> > @@ -393,47 +390,6 @@ static const struct file_operations control_ops = {
> >     .llseek         = default_llseek,
> >  };
> >  
> > -/*
> > - *      /sys/kernel/debug/dri/BDF/
> > - *      ├── sriov
> > - *      :   ├── vf1
> > - *          :   ├── tile0
> > - *              :   ├── gt0
> > - *                  :   ├── guc_state
> > - */
> > -
> > -static ssize_t guc_state_read(struct file *file, char __user *buf,
> > -                         size_t count, loff_t *pos)
> > -{
> > -   struct dentry *dent = file_dentry(file);
> > -   struct dentry *parent = dent->d_parent;
> > -   struct xe_gt *gt = extract_gt(parent);
> > -   unsigned int vfid = extract_vfid(parent);
> > -
> > -   return xe_gt_sriov_pf_migration_read_guc_state(gt, vfid, buf, count, 
> > pos);
> > -}
> > -
> > -static ssize_t guc_state_write(struct file *file, const char __user *buf,
> > -                          size_t count, loff_t *pos)
> > -{
> > -   struct dentry *dent = file_dentry(file);
> > -   struct dentry *parent = dent->d_parent;
> > -   struct xe_gt *gt = extract_gt(parent);
> > -   unsigned int vfid = extract_vfid(parent);
> > -
> > -   if (*pos)
> > -           return -EINVAL;
> > -
> > -   return xe_gt_sriov_pf_migration_write_guc_state(gt, vfid, buf, count);
> > -}
> > -
> > -static const struct file_operations guc_state_ops = {
> > -   .owner          = THIS_MODULE,
> > -   .read           = guc_state_read,
> > -   .write          = guc_state_write,
> > -   .llseek         = default_llseek,
> > -};
> > -
> >  /*
> >   *      /sys/kernel/debug/dri/BDF/
> >   *      ├── sriov
> > @@ -568,9 +524,6 @@ static void pf_populate_gt(struct xe_gt *gt, struct 
> > dentry *dent, unsigned int v
> >  
> >             /* for testing/debugging purposes only! */
> >             if (IS_ENABLED(CONFIG_DRM_XE_DEBUG)) {
> > -                   debugfs_create_file("guc_state",
> > -                                       
> > IS_ENABLED(CONFIG_DRM_XE_DEBUG_SRIOV) ? 0600 : 0400,
> > -                                       dent, NULL, &guc_state_ops);
> >                     debugfs_create_file("config_blob",
> >                                         
> > IS_ENABLED(CONFIG_DRM_XE_DEBUG_SRIOV) ? 0600 : 0400,
> >                                         dent, NULL, &config_blob_ops);
> > -- 
> > 2.51.2
> > 

Reply via email to