[PATCH v6 1/2] drm/xe: add a new debugfs file - mmio
Koby Elbaz
kelbaz at habana.ai
Tue Feb 6 17:16:23 UTC 2024
On 31/01/2024 22:14, Summers, Stuart wrote:
> On Wed, 2024-01-31 at 21:59 +0200, Koby Elbaz wrote:
>> Now that the former mmio handlers are fully removed, this
>> debugfs file will be used for mmio access (read/write)
>> through the debugfs ioctl file operation.
> Sorry I don't know the history here of v0-v5, but one question, with
> igt-gpu-tools/tools/intel_reg we can read and write MMIO registers
> without needing to have the driver loaded at all (i.e. straight through
> the BARs). Why do we want to also put this capability in the xe debugfs
> then?
>
> Thanks,
> Stuart
Hi Stuart,
Sorry for the late response,
To some extent we can use it, however, it does not satisfy our
development needs.
Moreover, this change was recently agreed upon throughout the removal of
the former mmio-ioctl code:
https://patchwork.freedesktop.org/series/123403/
Thanks,
Koby Elbaz
>
>> Signed-off-by: Koby Elbaz <kelbaz at habana.ai>
>> ---
>> drivers/gpu/drm/xe/xe_debugfs.c | 12 ++++++++++++
>> 1 file changed, 12 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_debugfs.c
>> b/drivers/gpu/drm/xe/xe_debugfs.c
>> index 01db5b27bec5..21b2257aa3a8 100644
>> --- a/drivers/gpu/drm/xe/xe_debugfs.c
>> +++ b/drivers/gpu/drm/xe/xe_debugfs.c
>> @@ -98,12 +98,22 @@ static int forcewake_release(struct inode *inode,
>> struct file *file)
>> return 0;
>> }
>>
>> +static long xe_debugfs_mmio_ioctl(struct file *f, unsigned int cmd,
>> unsigned long arg)
>> +{
>> + return 0;
>> +}
>> +
>> static const struct file_operations forcewake_all_fops = {
>> .owner = THIS_MODULE,
>> .open = forcewake_open,
>> .release = forcewake_release,
>> };
>>
>> +static const struct file_operations mmio_fops = {
>> + .owner = THIS_MODULE,
>> + .unlocked_ioctl = xe_debugfs_mmio_ioctl,
>> +};
>> +
>> void xe_debugfs_register(struct xe_device *xe)
>> {
>> struct ttm_device *bdev = &xe->ttm;
>> @@ -142,6 +152,8 @@ void xe_debugfs_register(struct xe_device *xe)
>> for_each_gt(gt, xe, id)
>> xe_gt_debugfs_register(gt);
>>
>> + debugfs_create_file("mmio", 0644, root, xe, &mmio_fops);
>> +
>> #ifdef CONFIG_FAULT_INJECTION
>> fault_create_debugfs_attr("fail_gt_reset", root,
>> >_reset_failure);
>> #endif
More information about the Intel-xe
mailing list