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