On Thu, 2025-11-13 at 00:14 +0100, Michał Winiarski wrote:
> 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.

It makes sense. Please ignore my previous comment.

> 
> 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