Re: [PATCH] drm/doc/rfc: SR-IOV support on the new Xe driver

2023-11-16 Thread Tvrtko Ursulin



On 15/11/2023 20:42, Michal Wajdeczko wrote:

On 15.11.2023 11:00, Tvrtko Ursulin wrote:

On 14/11/2023 16:55, Michal Wajdeczko wrote:

On 14.11.2023 13:37, Tvrtko Ursulin wrote:

On 10/11/2023 18:22, Michal Wajdeczko wrote:

The Single Root I/O Virtualization (SR-IOV) extension to the PCI
Express (PCIe) specification suite is supported starting from 12th
generation of Intel Graphics processors.

This RFC aims to explain how do we want to add support for SR-IOV
to the new Xe driver and to propose related additions to the sysfs.

Signed-off-by: Michal Wajdeczko 
Cc: Oded Gabbay 
Cc: Rodrigo Vivi 
Cc: Joonas Lahtinen 
Cc: Tvrtko Ursulin 
Cc: Daniel Vetter 
---
    Documentation/gpu/rfc/index.rst |   5 +
    Documentation/gpu/rfc/sysfs-driver-xe-sriov | 501

    Documentation/gpu/rfc/xe_sriov.rst  | 192 
    3 files changed, 698 insertions(+)
    create mode 100644 Documentation/gpu/rfc/sysfs-driver-xe-sriov
    create mode 100644 Documentation/gpu/rfc/xe_sriov.rst

diff --git a/Documentation/gpu/rfc/index.rst
b/Documentation/gpu/rfc/index.rst
index e4f7b005138d..fc5bc447f30d 100644
--- a/Documentation/gpu/rfc/index.rst
+++ b/Documentation/gpu/rfc/index.rst
@@ -35,3 +35,8 @@ host such documentation:
    .. toctree::
     xe.rst
+
+.. toctree::
+   :maxdepth: 1
+
+   xe_sriov.rst
diff --git a/Documentation/gpu/rfc/sysfs-driver-xe-sriov
b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
new file mode 100644
index ..77748204dd83
--- /dev/null
+++ b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
@@ -0,0 +1,501 @@
+.. Documentation/ABI/testing/sysfs-driver-xe-sriov
+..
+.. Intel Xe driver ABI (SR-IOV extensions)
+..
+    The Single Root I/O Virtualization (SR-IOV) extension to
+    the PCI Express (PCIe) specification suite is supported
+    starting from 12th generation of Intel Graphics processors.
+
+    This document describes Xe driver specific additions.
+
+    For description of generic SR-IOV sysfs attributes see
+    "Documentation/ABI/testing/sysfs-bus-pci" document.
+
+    /sys/bus/pci/drivers/xe/BDF/
+    ├── sriov_auto_provisioning
+    │   ├── admin_mode
+    │   ├── enabled
+    │   ├── reset_defaults
+    │   ├── resources
+    │   │   ├── default_contexts_quota
+    │   │   ├── default_doorbells_quota
+    │   │   ├── default_ggtt_quota
+    │   │   └── default_lmem_quota
+    │   ├── scheduling
+    │   │   ├── default_exec_quantum_ms
+    │   │   └── default_preempt_timeout_us
+    │   └── monitoring
+    │       ├── default_cat_error_count
+    │       ├── default_doorbell_time_us
+    │       ├── default_engine_reset_count
+    │       ├── default_h2g_time_us
+    │       ├── default_irq_time_us
+    │       └── default_page_fault_count


  From the department of bike-shedding, one alternative could be to
have a
directory called defaults which avoids having to have the default_
prefix on everything under it.


like this ?

  /sys/bus/pci/drivers/xe/BDF/
  ├── sriov_auto_provisioning
  │   ├── admin_mode
  │   ├── enabled
  │   └── defaults
  │       ├── resources
  │       │   ├── contexts_quota
  │       │   ├── doorbells_quota
  │       │   ├── ggtt_quota
  │       │   └── lmem_quota
  │       ├── scheduling
  │       │   ├── exec_quantum_ms
  │       │   └── preempt_timeout_us
  │       └── monitoring
  │       ├── cat_error_count
  │       ├── doorbell_time_us
  │       ├── engine_reset_count
  │       ├── h2g_time_us
  │       ├── irq_time_us
  │       └── page_fault_count


Looks better to me but it may be just a matter of taste so I was just
roughly outlining an alternative.


another proposal (to avoid clash with '.defaults' used elsewhere for
different purposes):

   /sys/bus/pci/drivers/xe/BDF/
   ├── sriov_auto_provisioning
   │   ├── admin_mode
   │   ├── enabled
   │   └── template
   │   ├── resources
   │   │   ├── guc_contexts_quota
   │   │   ├── guc_doorbells_quota
   │   │   ├── ggtt_quota
   │   │   └── lmem_quota
   │   ├── scheduling
   │   │   ├── guc_exec_quantum_ms
   │   │   └── guc_preempt_timeout_us
   │   └── monitoring
   │   ├── cat_error_count
   │   ├── engine_reset_count
   │   ├── guc_doorbell_time_us
   │   ├── guc_h2g_time_us
   │   ├── guc_irq_time_us
   │   └── page_fault_count



Looks good to me.


+
+    /sys/bus/pci/drivers/xe/BDF/
+    ├── sriov_extensions


Should this be xe_sriov_extensions or if not doesn't it need agreement
to reserve the keyword in Documentation/ABI/testing/sysfs-bus-pci?
Sriov_auto_provisioning too I guess.


I didn't spot in ABI documents any driver specific additions to device
that were using extra prefix, nor the "reservation" placeholders.

but if we want to go with a prefix, then maybe all our 

Re: [PATCH] drm/doc/rfc: SR-IOV support on the new Xe driver

2023-11-15 Thread Michal Wajdeczko



On 15.11.2023 11:00, Tvrtko Ursulin wrote:
> 
> On 14/11/2023 16:55, Michal Wajdeczko wrote:
>> On 14.11.2023 13:37, Tvrtko Ursulin wrote:
>>> On 10/11/2023 18:22, Michal Wajdeczko wrote:
 The Single Root I/O Virtualization (SR-IOV) extension to the PCI
 Express (PCIe) specification suite is supported starting from 12th
 generation of Intel Graphics processors.

 This RFC aims to explain how do we want to add support for SR-IOV
 to the new Xe driver and to propose related additions to the sysfs.

 Signed-off-by: Michal Wajdeczko 
 Cc: Oded Gabbay 
 Cc: Rodrigo Vivi 
 Cc: Joonas Lahtinen 
 Cc: Tvrtko Ursulin 
 Cc: Daniel Vetter 
 ---
    Documentation/gpu/rfc/index.rst |   5 +
    Documentation/gpu/rfc/sysfs-driver-xe-sriov | 501
 
    Documentation/gpu/rfc/xe_sriov.rst  | 192 
    3 files changed, 698 insertions(+)
    create mode 100644 Documentation/gpu/rfc/sysfs-driver-xe-sriov
    create mode 100644 Documentation/gpu/rfc/xe_sriov.rst

 diff --git a/Documentation/gpu/rfc/index.rst
 b/Documentation/gpu/rfc/index.rst
 index e4f7b005138d..fc5bc447f30d 100644
 --- a/Documentation/gpu/rfc/index.rst
 +++ b/Documentation/gpu/rfc/index.rst
 @@ -35,3 +35,8 @@ host such documentation:
    .. toctree::
     xe.rst
 +
 +.. toctree::
 +   :maxdepth: 1
 +
 +   xe_sriov.rst
 diff --git a/Documentation/gpu/rfc/sysfs-driver-xe-sriov
 b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
 new file mode 100644
 index ..77748204dd83
 --- /dev/null
 +++ b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
 @@ -0,0 +1,501 @@
 +.. Documentation/ABI/testing/sysfs-driver-xe-sriov
 +..
 +.. Intel Xe driver ABI (SR-IOV extensions)
 +..
 +    The Single Root I/O Virtualization (SR-IOV) extension to
 +    the PCI Express (PCIe) specification suite is supported
 +    starting from 12th generation of Intel Graphics processors.
 +
 +    This document describes Xe driver specific additions.
 +
 +    For description of generic SR-IOV sysfs attributes see
 +    "Documentation/ABI/testing/sysfs-bus-pci" document.
 +
 +    /sys/bus/pci/drivers/xe/BDF/
 +    ├── sriov_auto_provisioning
 +    │   ├── admin_mode
 +    │   ├── enabled
 +    │   ├── reset_defaults
 +    │   ├── resources
 +    │   │   ├── default_contexts_quota
 +    │   │   ├── default_doorbells_quota
 +    │   │   ├── default_ggtt_quota
 +    │   │   └── default_lmem_quota
 +    │   ├── scheduling
 +    │   │   ├── default_exec_quantum_ms
 +    │   │   └── default_preempt_timeout_us
 +    │   └── monitoring
 +    │       ├── default_cat_error_count
 +    │       ├── default_doorbell_time_us
 +    │       ├── default_engine_reset_count
 +    │       ├── default_h2g_time_us
 +    │       ├── default_irq_time_us
 +    │       └── default_page_fault_count
>>>
>>>  From the department of bike-shedding, one alternative could be to
>>> have a
>>> directory called defaults which avoids having to have the default_
>>> prefix on everything under it.
>>
>> like this ?
>>
>>  /sys/bus/pci/drivers/xe/BDF/
>>  ├── sriov_auto_provisioning
>>  │   ├── admin_mode
>>  │   ├── enabled
>>  │   └── defaults
>>  │       ├── resources
>>  │       │   ├── contexts_quota
>>  │       │   ├── doorbells_quota
>>  │       │   ├── ggtt_quota
>>  │       │   └── lmem_quota
>>  │       ├── scheduling
>>  │       │   ├── exec_quantum_ms
>>  │       │   └── preempt_timeout_us
>>  │       └── monitoring
>>  │       ├── cat_error_count
>>  │       ├── doorbell_time_us
>>  │       ├── engine_reset_count
>>  │       ├── h2g_time_us
>>  │       ├── irq_time_us
>>  │       └── page_fault_count
> 
> Looks better to me but it may be just a matter of taste so I was just
> roughly outlining an alternative.

another proposal (to avoid clash with '.defaults' used elsewhere for
different purposes):

  /sys/bus/pci/drivers/xe/BDF/
  ├── sriov_auto_provisioning
  │   ├── admin_mode
  │   ├── enabled
  │   └── template
  │   ├── resources
  │   │   ├── guc_contexts_quota
  │   │   ├── guc_doorbells_quota
  │   │   ├── ggtt_quota
  │   │   └── lmem_quota
  │   ├── scheduling
  │   │   ├── guc_exec_quantum_ms
  │   │   └── guc_preempt_timeout_us
  │   └── monitoring
  │   ├── cat_error_count
  │   ├── engine_reset_count
  │   ├── guc_doorbell_time_us
  │   ├── guc_h2g_time_us
  │   ├── guc_irq_time_us
  │   └── page_fault_count

> 
>>>
 +
 +    /sys/bus/pci/drivers/xe/BDF/
 +    ├── sriov_extensions
>>>

Re: [PATCH] drm/doc/rfc: SR-IOV support on the new Xe driver

2023-11-15 Thread kernel test robot
Hi Michal,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-misc/drm-misc-next]
[also build test WARNING on drm/drm-next drm-exynos/exynos-drm-next 
drm-intel/for-linux-next drm-intel/for-linux-next-fixes drm-tip/drm-tip 
linus/master v6.7-rc1 next-20231115]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:
https://github.com/intel-lab-lkp/linux/commits/Michal-Wajdeczko/drm-doc-rfc-SR-IOV-support-on-the-new-Xe-driver/2023-022816
base:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link:
https://lore.kernel.org/r/20231110182231.1730-1-michal.wajdeczko%40intel.com
patch subject: [PATCH] drm/doc/rfc: SR-IOV support on the new Xe driver
reproduce: 
(https://download.01.org/0day-ci/archive/20231115/202311152144.cn5cuzqv-...@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot 
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202311152144.cn5cuzqv-...@intel.com/

All warnings (new ones prefixed by >>):

>> Warning: Documentation/gpu/rfc/sysfs-driver-xe-sriov references a file that 
>> doesn't exist: Documentation/ABI/testing/sysfs-driver-xe-sriov

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


Re: [PATCH] drm/doc/rfc: SR-IOV support on the new Xe driver

2023-11-15 Thread Tvrtko Ursulin



On 14/11/2023 16:55, Michal Wajdeczko wrote:

On 14.11.2023 13:37, Tvrtko Ursulin wrote:

On 10/11/2023 18:22, Michal Wajdeczko wrote:

The Single Root I/O Virtualization (SR-IOV) extension to the PCI
Express (PCIe) specification suite is supported starting from 12th
generation of Intel Graphics processors.

This RFC aims to explain how do we want to add support for SR-IOV
to the new Xe driver and to propose related additions to the sysfs.

Signed-off-by: Michal Wajdeczko 
Cc: Oded Gabbay 
Cc: Rodrigo Vivi 
Cc: Joonas Lahtinen 
Cc: Tvrtko Ursulin 
Cc: Daniel Vetter 
---
   Documentation/gpu/rfc/index.rst |   5 +
   Documentation/gpu/rfc/sysfs-driver-xe-sriov | 501 
   Documentation/gpu/rfc/xe_sriov.rst  | 192 
   3 files changed, 698 insertions(+)
   create mode 100644 Documentation/gpu/rfc/sysfs-driver-xe-sriov
   create mode 100644 Documentation/gpu/rfc/xe_sriov.rst

diff --git a/Documentation/gpu/rfc/index.rst
b/Documentation/gpu/rfc/index.rst
index e4f7b005138d..fc5bc447f30d 100644
--- a/Documentation/gpu/rfc/index.rst
+++ b/Documentation/gpu/rfc/index.rst
@@ -35,3 +35,8 @@ host such documentation:
   .. toctree::
    xe.rst
+
+.. toctree::
+   :maxdepth: 1
+
+   xe_sriov.rst
diff --git a/Documentation/gpu/rfc/sysfs-driver-xe-sriov
b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
new file mode 100644
index ..77748204dd83
--- /dev/null
+++ b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
@@ -0,0 +1,501 @@
+.. Documentation/ABI/testing/sysfs-driver-xe-sriov
+..
+.. Intel Xe driver ABI (SR-IOV extensions)
+..
+    The Single Root I/O Virtualization (SR-IOV) extension to
+    the PCI Express (PCIe) specification suite is supported
+    starting from 12th generation of Intel Graphics processors.
+
+    This document describes Xe driver specific additions.
+
+    For description of generic SR-IOV sysfs attributes see
+    "Documentation/ABI/testing/sysfs-bus-pci" document.
+
+    /sys/bus/pci/drivers/xe/BDF/
+    ├── sriov_auto_provisioning
+    │   ├── admin_mode
+    │   ├── enabled
+    │   ├── reset_defaults
+    │   ├── resources
+    │   │   ├── default_contexts_quota
+    │   │   ├── default_doorbells_quota
+    │   │   ├── default_ggtt_quota
+    │   │   └── default_lmem_quota
+    │   ├── scheduling
+    │   │   ├── default_exec_quantum_ms
+    │   │   └── default_preempt_timeout_us
+    │   └── monitoring
+    │       ├── default_cat_error_count
+    │       ├── default_doorbell_time_us
+    │       ├── default_engine_reset_count
+    │       ├── default_h2g_time_us
+    │       ├── default_irq_time_us
+    │       └── default_page_fault_count


 From the department of bike-shedding, one alternative could be to have a
directory called defaults which avoids having to have the default_
prefix on everything under it.


like this ?

 /sys/bus/pci/drivers/xe/BDF/
 ├── sriov_auto_provisioning
 │   ├── admin_mode
 │   ├── enabled
 │   └── defaults
 │   ├── resources
 │   │   ├── contexts_quota
 │   │   ├── doorbells_quota
 │   │   ├── ggtt_quota
 │   │   └── lmem_quota
 │   ├── scheduling
 │   │   ├── exec_quantum_ms
 │   │   └── preempt_timeout_us
 │   └── monitoring
 │   ├── cat_error_count
 │   ├── doorbell_time_us
 │   ├── engine_reset_count
 │   ├── h2g_time_us
 │   ├── irq_time_us
 │   └── page_fault_count


Looks better to me but it may be just a matter of taste so I was just 
roughly outlining an alternative.





+
+    /sys/bus/pci/drivers/xe/BDF/
+    ├── sriov_extensions


Should this be xe_sriov_extensions or if not doesn't it need agreement
to reserve the keyword in Documentation/ABI/testing/sysfs-bus-pci?
Sriov_auto_provisioning too I guess.


I didn't spot in ABI documents any driver specific additions to device
that were using extra prefix, nor the "reservation" placeholders.

but if we want to go with a prefix, then maybe all our additions at
device level should have one, including already added tileT:

tile0 -> xe_tile0

or even to match existing mei file we should use "xe." prefix instead:

xe.sriov_auto_provisioning
xe.sriov_extension
xe.tile0
xe.mei-gsc...


I don't know really - I assumed since there are common sriov_ prefix 
controls at the PCI level, that adding driver specific things using the 
same namespace might require agreement from the PCI core folks. Perhaps 
a topic to consult the respestive mailing list(s).



+    │   ├── monitoring_period_ms
+    │   ├── strict_scheduling_enabled
+    │   ├── pf
+    │   │   ├── device -> ../../../BDF
+    │   │   ├── priority
+    │   │   ├── tile0
+    │   │   │   ├── gt0
+    │   │   │   │   ├── exec_quantum_ms
+    │   │   │   │   ├── preempt_timeout_us
+    │   │   │   │   └── thresholds
+    │   │   │   │   ├── cat_error_count
+    │   │   │   │   ├── 

Re: [PATCH] drm/doc/rfc: SR-IOV support on the new Xe driver

2023-11-14 Thread Michal Wajdeczko



On 14.11.2023 14:22, Vivi, Rodrigo wrote:
> On Tue, 2023-11-14 at 12:37 +, Tvrtko Ursulin wrote:
>>
>> On 10/11/2023 18:22, Michal Wajdeczko wrote:
>>> The Single Root I/O Virtualization (SR-IOV) extension to the PCI
>>> Express (PCIe) specification suite is supported starting from 12th
>>> generation of Intel Graphics processors.
>>>
>>> This RFC aims to explain how do we want to add support for SR-IOV
>>> to the new Xe driver and to propose related additions to the sysfs.
>>>
>>> Signed-off-by: Michal Wajdeczko 
>>> Cc: Oded Gabbay 
>>> Cc: Rodrigo Vivi 
>>> Cc: Joonas Lahtinen 
>>> Cc: Tvrtko Ursulin 
>>> Cc: Daniel Vetter 
>>> ---
>>>   Documentation/gpu/rfc/index.rst |   5 +
>>>   Documentation/gpu/rfc/sysfs-driver-xe-sriov | 501
>>> 
>>>   Documentation/gpu/rfc/xe_sriov.rst  | 192 
>>>   3 files changed, 698 insertions(+)
>>>   create mode 100644 Documentation/gpu/rfc/sysfs-driver-xe-sriov
>>>   create mode 100644 Documentation/gpu/rfc/xe_sriov.rst
>>>
>>> diff --git a/Documentation/gpu/rfc/index.rst
>>> b/Documentation/gpu/rfc/index.rst
>>> index e4f7b005138d..fc5bc447f30d 100644
>>> --- a/Documentation/gpu/rfc/index.rst
>>> +++ b/Documentation/gpu/rfc/index.rst
>>> @@ -35,3 +35,8 @@ host such documentation:
>>>   .. toctree::
>>>   
>>>  xe.rst
>>> +
>>> +.. toctree::
>>> +   :maxdepth: 1
>>> +
>>> +   xe_sriov.rst
>>> diff --git a/Documentation/gpu/rfc/sysfs-driver-xe-sriov
>>> b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
>>> new file mode 100644
>>> index ..77748204dd83
>>> --- /dev/null
>>> +++ b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
>>> @@ -0,0 +1,501 @@
>>> +.. Documentation/ABI/testing/sysfs-driver-xe-sriov
>>> +..
>>> +.. Intel Xe driver ABI (SR-IOV extensions)
>>> +..
>>> +    The Single Root I/O Virtualization (SR-IOV) extension to
>>> +    the PCI Express (PCIe) specification suite is supported
>>> +    starting from 12th generation of Intel Graphics processors.
>>> +
>>> +    This document describes Xe driver specific additions.
>>> +
>>> +    For description of generic SR-IOV sysfs attributes see
>>> +    "Documentation/ABI/testing/sysfs-bus-pci" document.
>>> +
>>> +    /sys/bus/pci/drivers/xe/BDF/
>>> +    ├── sriov_auto_provisioning
>>> +    │   ├── admin_mode
>>> +    │   ├── enabled
>>> +    │   ├── reset_defaults
>>> +    │   ├── resources
>>> +    │   │   ├── default_contexts_quota
>>> +    │   │   ├── default_doorbells_quota
>>> +    │   │   ├── default_ggtt_quota
>>> +    │   │   └── default_lmem_quota
>>> +    │   ├── scheduling
>>> +    │   │   ├── default_exec_quantum_ms
>>> +    │   │   └── default_preempt_timeout_us
>>> +    │   └── monitoring
>>> +    │       ├── default_cat_error_count
>>> +    │       ├── default_doorbell_time_us
>>> +    │       ├── default_engine_reset_count
>>> +    │       ├── default_h2g_time_us
>>> +    │       ├── default_irq_time_us
>>> +    │       └── default_page_fault_count
>>
>>  From the department of bike-shedding, one alternative could be to
>> have 
>> a directory called defaults which avoids having to have the default_ 
>> prefix on everything under it.
> 
> good idea. probably with a '.' prefix to make it hidden like we have
> for other stuff already.
> 
> '.defaults'

but then we will be inconsistent as in this 'other stuff' we use
".defaults" directory to hold RO attributes with min/default/max values,
while here we wanted to define RW attributes that will be applied to VFs

maybe ".template" instead ?

> 
>>
>>> +
>>> +    /sys/bus/pci/drivers/xe/BDF/
>>> +    ├── sriov_extensions
>>
>> Should this be xe_sriov_extensions or if not doesn't it need
>> agreement 
>> to reserve the keyword in Documentation/ABI/testing/sysfs-bus-pci? 
>> Sriov_auto_provisioning too I guess.
>>
>>> +    │   ├── monitoring_period_ms
>>> +    │   ├── strict_scheduling_enabled
>>> +    │   ├── pf
>>> +    │   │   ├── device -> ../../../BDF
>>> +    │   │   ├── priority
>>> +    │   │   ├── tile0
>>> +    │   │   │   ├── gt0
>>> +    │   │   │   │   ├── exec_quantum_ms
>>> +    │   │   │   │   ├── preempt_timeout_us
>>> +    │   │   │   │   └── thresholds
>>> +    │   │   │   │   ├── cat_error_count
>>> +    │   │   │   │   ├── doorbell_time_us
>>> +    │   │   │   │   ├── engine_reset_count
>>> +    │   │   │   │   ├── h2g_time_us
>>> +    │   │   │   │   ├── irq_time_us
>>> +    │   │   │   │   └── page_fault_count
>>> +    │   │   │   └── gtX
>>> +    │   │   └── tileT
>>> +    │   ├── vf1
>>> +    │   │   ├── device -> ../../../BDF+1
>>> +    │   │   ├── stop
>>> +    │   │   ├── tile0
>>> +    │   │   │   ├── ggtt_quota
>>> +    │   │   │   ├── lmem_quota
>>> +    │   │   │   ├── gt0
>>> +    │   │   │   │   ├── contexts_quota
>>> +    │   │   │   │   ├── doorbells_quota
>>> +    │   │   │   │   ├── exec_quantum_ms
>>> +    │   │   │   │   ├── preempt_timeout_us
>>> +    │   │   │   │   └── thresholds
>>> +    │   │   │   │   ├── cat_error_count

Re: [PATCH] drm/doc/rfc: SR-IOV support on the new Xe driver

2023-11-14 Thread Michal Wajdeczko



On 14.11.2023 13:37, Tvrtko Ursulin wrote:
> 
> On 10/11/2023 18:22, Michal Wajdeczko wrote:
>> The Single Root I/O Virtualization (SR-IOV) extension to the PCI
>> Express (PCIe) specification suite is supported starting from 12th
>> generation of Intel Graphics processors.
>>
>> This RFC aims to explain how do we want to add support for SR-IOV
>> to the new Xe driver and to propose related additions to the sysfs.
>>
>> Signed-off-by: Michal Wajdeczko 
>> Cc: Oded Gabbay 
>> Cc: Rodrigo Vivi 
>> Cc: Joonas Lahtinen 
>> Cc: Tvrtko Ursulin 
>> Cc: Daniel Vetter 
>> ---
>>   Documentation/gpu/rfc/index.rst |   5 +
>>   Documentation/gpu/rfc/sysfs-driver-xe-sriov | 501 
>>   Documentation/gpu/rfc/xe_sriov.rst  | 192 
>>   3 files changed, 698 insertions(+)
>>   create mode 100644 Documentation/gpu/rfc/sysfs-driver-xe-sriov
>>   create mode 100644 Documentation/gpu/rfc/xe_sriov.rst
>>
>> diff --git a/Documentation/gpu/rfc/index.rst
>> b/Documentation/gpu/rfc/index.rst
>> index e4f7b005138d..fc5bc447f30d 100644
>> --- a/Documentation/gpu/rfc/index.rst
>> +++ b/Documentation/gpu/rfc/index.rst
>> @@ -35,3 +35,8 @@ host such documentation:
>>   .. toctree::
>>    xe.rst
>> +
>> +.. toctree::
>> +   :maxdepth: 1
>> +
>> +   xe_sriov.rst
>> diff --git a/Documentation/gpu/rfc/sysfs-driver-xe-sriov
>> b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
>> new file mode 100644
>> index ..77748204dd83
>> --- /dev/null
>> +++ b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
>> @@ -0,0 +1,501 @@
>> +.. Documentation/ABI/testing/sysfs-driver-xe-sriov
>> +..
>> +.. Intel Xe driver ABI (SR-IOV extensions)
>> +..
>> +    The Single Root I/O Virtualization (SR-IOV) extension to
>> +    the PCI Express (PCIe) specification suite is supported
>> +    starting from 12th generation of Intel Graphics processors.
>> +
>> +    This document describes Xe driver specific additions.
>> +
>> +    For description of generic SR-IOV sysfs attributes see
>> +    "Documentation/ABI/testing/sysfs-bus-pci" document.
>> +
>> +    /sys/bus/pci/drivers/xe/BDF/
>> +    ├── sriov_auto_provisioning
>> +    │   ├── admin_mode
>> +    │   ├── enabled
>> +    │   ├── reset_defaults
>> +    │   ├── resources
>> +    │   │   ├── default_contexts_quota
>> +    │   │   ├── default_doorbells_quota
>> +    │   │   ├── default_ggtt_quota
>> +    │   │   └── default_lmem_quota
>> +    │   ├── scheduling
>> +    │   │   ├── default_exec_quantum_ms
>> +    │   │   └── default_preempt_timeout_us
>> +    │   └── monitoring
>> +    │       ├── default_cat_error_count
>> +    │       ├── default_doorbell_time_us
>> +    │       ├── default_engine_reset_count
>> +    │       ├── default_h2g_time_us
>> +    │       ├── default_irq_time_us
>> +    │       └── default_page_fault_count
> 
> From the department of bike-shedding, one alternative could be to have a
> directory called defaults which avoids having to have the default_
> prefix on everything under it.

like this ?

/sys/bus/pci/drivers/xe/BDF/
├── sriov_auto_provisioning
│   ├── admin_mode
│   ├── enabled
│   └── defaults
│   ├── resources
│   │   ├── contexts_quota
│   │   ├── doorbells_quota
│   │   ├── ggtt_quota
│   │   └── lmem_quota
│   ├── scheduling
│   │   ├── exec_quantum_ms
│   │   └── preempt_timeout_us
│   └── monitoring
│   ├── cat_error_count
│   ├── doorbell_time_us
│   ├── engine_reset_count
│   ├── h2g_time_us
│   ├── irq_time_us
│   └── page_fault_count


> 
>> +
>> +    /sys/bus/pci/drivers/xe/BDF/
>> +    ├── sriov_extensions
> 
> Should this be xe_sriov_extensions or if not doesn't it need agreement
> to reserve the keyword in Documentation/ABI/testing/sysfs-bus-pci?
> Sriov_auto_provisioning too I guess.

I didn't spot in ABI documents any driver specific additions to device
that were using extra prefix, nor the "reservation" placeholders.

but if we want to go with a prefix, then maybe all our additions at
device level should have one, including already added tileT:

tile0 -> xe_tile0

or even to match existing mei file we should use "xe." prefix instead:

xe.sriov_auto_provisioning
xe.sriov_extension
xe.tile0
xe.mei-gsc...

> 
>> +    │   ├── monitoring_period_ms
>> +    │   ├── strict_scheduling_enabled
>> +    │   ├── pf
>> +    │   │   ├── device -> ../../../BDF
>> +    │   │   ├── priority
>> +    │   │   ├── tile0
>> +    │   │   │   ├── gt0
>> +    │   │   │   │   ├── exec_quantum_ms
>> +    │   │   │   │   ├── preempt_timeout_us
>> +    │   │   │   │   └── thresholds
>> +    │   │   │   │   ├── cat_error_count
>> +    │   │   │   │   ├── doorbell_time_us
>> +    │   │   │   │   ├── engine_reset_count
>> +    │   │   │   │   ├── h2g_time_us
>> +    │   │   │   │   ├── irq_time_us
>> +    │   │   │   │   

Re: [PATCH] drm/doc/rfc: SR-IOV support on the new Xe driver

2023-11-14 Thread Vivi, Rodrigo
On Tue, 2023-11-14 at 12:37 +, Tvrtko Ursulin wrote:
> 
> On 10/11/2023 18:22, Michal Wajdeczko wrote:
> > The Single Root I/O Virtualization (SR-IOV) extension to the PCI
> > Express (PCIe) specification suite is supported starting from 12th
> > generation of Intel Graphics processors.
> > 
> > This RFC aims to explain how do we want to add support for SR-IOV
> > to the new Xe driver and to propose related additions to the sysfs.
> > 
> > Signed-off-by: Michal Wajdeczko 
> > Cc: Oded Gabbay 
> > Cc: Rodrigo Vivi 
> > Cc: Joonas Lahtinen 
> > Cc: Tvrtko Ursulin 
> > Cc: Daniel Vetter 
> > ---
> >   Documentation/gpu/rfc/index.rst |   5 +
> >   Documentation/gpu/rfc/sysfs-driver-xe-sriov | 501
> > 
> >   Documentation/gpu/rfc/xe_sriov.rst  | 192 
> >   3 files changed, 698 insertions(+)
> >   create mode 100644 Documentation/gpu/rfc/sysfs-driver-xe-sriov
> >   create mode 100644 Documentation/gpu/rfc/xe_sriov.rst
> > 
> > diff --git a/Documentation/gpu/rfc/index.rst
> > b/Documentation/gpu/rfc/index.rst
> > index e4f7b005138d..fc5bc447f30d 100644
> > --- a/Documentation/gpu/rfc/index.rst
> > +++ b/Documentation/gpu/rfc/index.rst
> > @@ -35,3 +35,8 @@ host such documentation:
> >   .. toctree::
> >   
> >  xe.rst
> > +
> > +.. toctree::
> > +   :maxdepth: 1
> > +
> > +   xe_sriov.rst
> > diff --git a/Documentation/gpu/rfc/sysfs-driver-xe-sriov
> > b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
> > new file mode 100644
> > index ..77748204dd83
> > --- /dev/null
> > +++ b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
> > @@ -0,0 +1,501 @@
> > +.. Documentation/ABI/testing/sysfs-driver-xe-sriov
> > +..
> > +.. Intel Xe driver ABI (SR-IOV extensions)
> > +..
> > +    The Single Root I/O Virtualization (SR-IOV) extension to
> > +    the PCI Express (PCIe) specification suite is supported
> > +    starting from 12th generation of Intel Graphics processors.
> > +
> > +    This document describes Xe driver specific additions.
> > +
> > +    For description of generic SR-IOV sysfs attributes see
> > +    "Documentation/ABI/testing/sysfs-bus-pci" document.
> > +
> > +    /sys/bus/pci/drivers/xe/BDF/
> > +    ├── sriov_auto_provisioning
> > +    │   ├── admin_mode
> > +    │   ├── enabled
> > +    │   ├── reset_defaults
> > +    │   ├── resources
> > +    │   │   ├── default_contexts_quota
> > +    │   │   ├── default_doorbells_quota
> > +    │   │   ├── default_ggtt_quota
> > +    │   │   └── default_lmem_quota
> > +    │   ├── scheduling
> > +    │   │   ├── default_exec_quantum_ms
> > +    │   │   └── default_preempt_timeout_us
> > +    │   └── monitoring
> > +    │       ├── default_cat_error_count
> > +    │       ├── default_doorbell_time_us
> > +    │       ├── default_engine_reset_count
> > +    │       ├── default_h2g_time_us
> > +    │       ├── default_irq_time_us
> > +    │       └── default_page_fault_count
> 
>  From the department of bike-shedding, one alternative could be to
> have 
> a directory called defaults which avoids having to have the default_ 
> prefix on everything under it.

good idea. probably with a '.' prefix to make it hidden like we have
for other stuff already.

'.defaults'

> 
> > +
> > +    /sys/bus/pci/drivers/xe/BDF/
> > +    ├── sriov_extensions
> 
> Should this be xe_sriov_extensions or if not doesn't it need
> agreement 
> to reserve the keyword in Documentation/ABI/testing/sysfs-bus-pci? 
> Sriov_auto_provisioning too I guess.
> 
> > +    │   ├── monitoring_period_ms
> > +    │   ├── strict_scheduling_enabled
> > +    │   ├── pf
> > +    │   │   ├── device -> ../../../BDF
> > +    │   │   ├── priority
> > +    │   │   ├── tile0
> > +    │   │   │   ├── gt0
> > +    │   │   │   │   ├── exec_quantum_ms
> > +    │   │   │   │   ├── preempt_timeout_us
> > +    │   │   │   │   └── thresholds
> > +    │   │   │   │   ├── cat_error_count
> > +    │   │   │   │   ├── doorbell_time_us
> > +    │   │   │   │   ├── engine_reset_count
> > +    │   │   │   │   ├── h2g_time_us
> > +    │   │   │   │   ├── irq_time_us
> > +    │   │   │   │   └── page_fault_count
> > +    │   │   │   └── gtX
> > +    │   │   └── tileT
> > +    │   ├── vf1
> > +    │   │   ├── device -> ../../../BDF+1
> > +    │   │   ├── stop
> > +    │   │   ├── tile0
> > +    │   │   │   ├── ggtt_quota
> > +    │   │   │   ├── lmem_quota
> > +    │   │   │   ├── gt0
> > +    │   │   │   │   ├── contexts_quota
> > +    │   │   │   │   ├── doorbells_quota
> > +    │   │   │   │   ├── exec_quantum_ms
> > +    │   │   │   │   ├── preempt_timeout_us
> > +    │   │   │   │   └── thresholds
> > +    │   │   │   │   ├── cat_error_count
> > +    │   │   │   │   ├── doorbell_time_us
> > +    │   │   │   │   ├── engine_reset_count
> > +    │   │   │   │   ├── h2g_time_us
> > +    │   │   │   │   ├── irq_time_us
> > +    │   │   │   │   └── page_fault_count
> > +    │   │   │   └── gtX
> > +    │   │   └── tileT
> > +    │ 

Re: [PATCH] drm/doc/rfc: SR-IOV support on the new Xe driver

2023-11-14 Thread Tvrtko Ursulin



On 10/11/2023 18:22, Michal Wajdeczko wrote:

The Single Root I/O Virtualization (SR-IOV) extension to the PCI
Express (PCIe) specification suite is supported starting from 12th
generation of Intel Graphics processors.

This RFC aims to explain how do we want to add support for SR-IOV
to the new Xe driver and to propose related additions to the sysfs.

Signed-off-by: Michal Wajdeczko 
Cc: Oded Gabbay 
Cc: Rodrigo Vivi 
Cc: Joonas Lahtinen 
Cc: Tvrtko Ursulin 
Cc: Daniel Vetter 
---
  Documentation/gpu/rfc/index.rst |   5 +
  Documentation/gpu/rfc/sysfs-driver-xe-sriov | 501 
  Documentation/gpu/rfc/xe_sriov.rst  | 192 
  3 files changed, 698 insertions(+)
  create mode 100644 Documentation/gpu/rfc/sysfs-driver-xe-sriov
  create mode 100644 Documentation/gpu/rfc/xe_sriov.rst

diff --git a/Documentation/gpu/rfc/index.rst b/Documentation/gpu/rfc/index.rst
index e4f7b005138d..fc5bc447f30d 100644
--- a/Documentation/gpu/rfc/index.rst
+++ b/Documentation/gpu/rfc/index.rst
@@ -35,3 +35,8 @@ host such documentation:
  .. toctree::
  
 xe.rst

+
+.. toctree::
+   :maxdepth: 1
+
+   xe_sriov.rst
diff --git a/Documentation/gpu/rfc/sysfs-driver-xe-sriov 
b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
new file mode 100644
index ..77748204dd83
--- /dev/null
+++ b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
@@ -0,0 +1,501 @@
+.. Documentation/ABI/testing/sysfs-driver-xe-sriov
+..
+.. Intel Xe driver ABI (SR-IOV extensions)
+..
+The Single Root I/O Virtualization (SR-IOV) extension to
+the PCI Express (PCIe) specification suite is supported
+starting from 12th generation of Intel Graphics processors.
+
+This document describes Xe driver specific additions.
+
+For description of generic SR-IOV sysfs attributes see
+"Documentation/ABI/testing/sysfs-bus-pci" document.
+
+/sys/bus/pci/drivers/xe/BDF/
+├── sriov_auto_provisioning
+│   ├── admin_mode
+│   ├── enabled
+│   ├── reset_defaults
+│   ├── resources
+│   │   ├── default_contexts_quota
+│   │   ├── default_doorbells_quota
+│   │   ├── default_ggtt_quota
+│   │   └── default_lmem_quota
+│   ├── scheduling
+│   │   ├── default_exec_quantum_ms
+│   │   └── default_preempt_timeout_us
+│   └── monitoring
+│   ├── default_cat_error_count
+│   ├── default_doorbell_time_us
+│   ├── default_engine_reset_count
+│   ├── default_h2g_time_us
+│   ├── default_irq_time_us
+│   └── default_page_fault_count


From the department of bike-shedding, one alternative could be to have 
a directory called defaults which avoids having to have the default_ 
prefix on everything under it.



+
+/sys/bus/pci/drivers/xe/BDF/
+├── sriov_extensions


Should this be xe_sriov_extensions or if not doesn't it need agreement 
to reserve the keyword in Documentation/ABI/testing/sysfs-bus-pci? 
Sriov_auto_provisioning too I guess.



+│   ├── monitoring_period_ms
+│   ├── strict_scheduling_enabled
+│   ├── pf
+│   │   ├── device -> ../../../BDF
+│   │   ├── priority
+│   │   ├── tile0
+│   │   │   ├── gt0
+│   │   │   │   ├── exec_quantum_ms
+│   │   │   │   ├── preempt_timeout_us
+│   │   │   │   └── thresholds
+│   │   │   │   ├── cat_error_count
+│   │   │   │   ├── doorbell_time_us
+│   │   │   │   ├── engine_reset_count
+│   │   │   │   ├── h2g_time_us
+│   │   │   │   ├── irq_time_us
+│   │   │   │   └── page_fault_count
+│   │   │   └── gtX
+│   │   └── tileT
+│   ├── vf1
+│   │   ├── device -> ../../../BDF+1
+│   │   ├── stop
+│   │   ├── tile0
+│   │   │   ├── ggtt_quota
+│   │   │   ├── lmem_quota
+│   │   │   ├── gt0
+│   │   │   │   ├── contexts_quota
+│   │   │   │   ├── doorbells_quota
+│   │   │   │   ├── exec_quantum_ms
+│   │   │   │   ├── preempt_timeout_us
+│   │   │   │   └── thresholds
+│   │   │   │   ├── cat_error_count
+│   │   │   │   ├── doorbell_time_us
+│   │   │   │   ├── engine_reset_count
+│   │   │   │   ├── h2g_time_us
+│   │   │   │   ├── irq_time_us
+│   │   │   │   └── page_fault_count
+│   │   │   └── gtX
+│   │   └── tileT
+│   └── vfN
+..
+
+
+What:  /sys/bus/pci/drivers/xe/.../sriov_auto_provisioning/
+Date:  2024
+KernelVersion: TBD
+Contact:   intel...@lists.freedesktop.org
+Description:
+   This directory appears on the device when:
+
+- device supports SR-IOV, and
+- device is a Physical Function (PF), and
+- xe driver supports SR-IOV PF on given device, and
+- xe driver supports automatic VFs provisioning.
+
+   This directory is used as a root for all attributes related to
+   automatic provisioning of SR-IOV Physical Function (PF) and/or
+

Re: [Intel-xe] [PATCH] drm/doc/rfc: SR-IOV support on the new Xe driver

2023-11-14 Thread Michal Wajdeczko



On 14.11.2023 11:08, Francois Dugast wrote:
> On Fri, Nov 10, 2023 at 07:22:31PM +0100, Michal Wajdeczko wrote:
>> The Single Root I/O Virtualization (SR-IOV) extension to the PCI
>> Express (PCIe) specification suite is supported starting from 12th
>> generation of Intel Graphics processors.
>>
>> This RFC aims to explain how do we want to add support for SR-IOV
>> to the new Xe driver and to propose related additions to the sysfs.
>>
>> Signed-off-by: Michal Wajdeczko 
>> Cc: Oded Gabbay 
>> Cc: Rodrigo Vivi 
>> Cc: Joonas Lahtinen 
>> Cc: Tvrtko Ursulin 
>> Cc: Daniel Vetter 
>> ---
>>  Documentation/gpu/rfc/index.rst |   5 +
>>  Documentation/gpu/rfc/sysfs-driver-xe-sriov | 501 
>>  Documentation/gpu/rfc/xe_sriov.rst  | 192 
>>  3 files changed, 698 insertions(+)
>>  create mode 100644 Documentation/gpu/rfc/sysfs-driver-xe-sriov
>>  create mode 100644 Documentation/gpu/rfc/xe_sriov.rst
>>
>> diff --git a/Documentation/gpu/rfc/index.rst 
>> b/Documentation/gpu/rfc/index.rst
>> index e4f7b005138d..fc5bc447f30d 100644
>> --- a/Documentation/gpu/rfc/index.rst
>> +++ b/Documentation/gpu/rfc/index.rst
>> @@ -35,3 +35,8 @@ host such documentation:
>>  .. toctree::
>>  
>> xe.rst
>> +
>> +.. toctree::
>> +   :maxdepth: 1
>> +
>> +   xe_sriov.rst
>> diff --git a/Documentation/gpu/rfc/sysfs-driver-xe-sriov 
>> b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
>> new file mode 100644
>> index ..77748204dd83
>> --- /dev/null
>> +++ b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
>> @@ -0,0 +1,501 @@
>> +.. Documentation/ABI/testing/sysfs-driver-xe-sriov
>> +..
>> +.. Intel Xe driver ABI (SR-IOV extensions)
>> +..
>> +The Single Root I/O Virtualization (SR-IOV) extension to
>> +the PCI Express (PCIe) specification suite is supported
>> +starting from 12th generation of Intel Graphics processors.
>> +
>> +This document describes Xe driver specific additions.
>> +
>> +For description of generic SR-IOV sysfs attributes see
>> +"Documentation/ABI/testing/sysfs-bus-pci" document.
>> +
>> +/sys/bus/pci/drivers/xe/BDF/
>> +├── sriov_auto_provisioning
>> +│   ├── admin_mode
>> +│   ├── enabled
>> +│   ├── reset_defaults
>> +│   ├── resources
>> +│   │   ├── default_contexts_quota
>> +│   │   ├── default_doorbells_quota
>> +│   │   ├── default_ggtt_quota
>> +│   │   └── default_lmem_quota
>> +│   ├── scheduling
>> +│   │   ├── default_exec_quantum_ms
>> +│   │   └── default_preempt_timeout_us
>> +│   └── monitoring
>> +│   ├── default_cat_error_count
>> +│   ├── default_doorbell_time_us
>> +│   ├── default_engine_reset_count
>> +│   ├── default_h2g_time_us
>> +│   ├── default_irq_time_us
>> +│   └── default_page_fault_count
>> +
>> +/sys/bus/pci/drivers/xe/BDF/
>> +├── sriov_extensions
>> +│   ├── monitoring_period_ms
>> +│   ├── strict_scheduling_enabled
>> +│   ├── pf
>> +│   │   ├── device -> ../../../BDF
>> +│   │   ├── priority
>> +│   │   ├── tile0
>> +│   │   │   ├── gt0
>> +│   │   │   │   ├── exec_quantum_ms
>> +│   │   │   │   ├── preempt_timeout_us
>> +│   │   │   │   └── thresholds
>> +│   │   │   │   ├── cat_error_count
>> +│   │   │   │   ├── doorbell_time_us
>> +│   │   │   │   ├── engine_reset_count
>> +│   │   │   │   ├── h2g_time_us
>> +│   │   │   │   ├── irq_time_us
>> +│   │   │   │   └── page_fault_count
>> +│   │   │   └── gtX
>> +│   │   └── tileT
>> +│   ├── vf1
>> +│   │   ├── device -> ../../../BDF+1
>> +│   │   ├── stop
>> +│   │   ├── tile0
>> +│   │   │   ├── ggtt_quota
>> +│   │   │   ├── lmem_quota
>> +│   │   │   ├── gt0
>> +│   │   │   │   ├── contexts_quota
>> +│   │   │   │   ├── doorbells_quota
>> +│   │   │   │   ├── exec_quantum_ms
>> +│   │   │   │   ├── preempt_timeout_us
>> +│   │   │   │   └── thresholds
>> +│   │   │   │   ├── cat_error_count
>> +│   │   │   │   ├── doorbell_time_us
>> +│   │   │   │   ├── engine_reset_count
>> +│   │   │   │   ├── h2g_time_us
>> +│   │   │   │   ├── irq_time_us
>> +│   │   │   │   └── page_fault_count
>> +│   │   │   └── gtX
>> +│   │   └── tileT
>> +│   └── vfN
>> +..
>> +
>> +
>> +What:   /sys/bus/pci/drivers/xe/.../sriov_auto_provisioning/
>> +Date:   2024
>> +KernelVersion:  TBD
>> +Contact:intel...@lists.freedesktop.org
>> +Description:
>> +This directory appears on the device when:
>> +
>> + - device supports SR-IOV, and
>> + - device is a Physical Function (PF), and
>> + - xe driver supports SR-IOV PF on given device, and
>> + - xe driver supports automatic VFs provisioning.
>> +
>> +This directory is used as a root for all attributes related 

Re: [Intel-xe] [PATCH] drm/doc/rfc: SR-IOV support on the new Xe driver

2023-11-14 Thread Francois Dugast
On Fri, Nov 10, 2023 at 07:22:31PM +0100, Michal Wajdeczko wrote:
> The Single Root I/O Virtualization (SR-IOV) extension to the PCI
> Express (PCIe) specification suite is supported starting from 12th
> generation of Intel Graphics processors.
> 
> This RFC aims to explain how do we want to add support for SR-IOV
> to the new Xe driver and to propose related additions to the sysfs.
> 
> Signed-off-by: Michal Wajdeczko 
> Cc: Oded Gabbay 
> Cc: Rodrigo Vivi 
> Cc: Joonas Lahtinen 
> Cc: Tvrtko Ursulin 
> Cc: Daniel Vetter 
> ---
>  Documentation/gpu/rfc/index.rst |   5 +
>  Documentation/gpu/rfc/sysfs-driver-xe-sriov | 501 
>  Documentation/gpu/rfc/xe_sriov.rst  | 192 
>  3 files changed, 698 insertions(+)
>  create mode 100644 Documentation/gpu/rfc/sysfs-driver-xe-sriov
>  create mode 100644 Documentation/gpu/rfc/xe_sriov.rst
> 
> diff --git a/Documentation/gpu/rfc/index.rst b/Documentation/gpu/rfc/index.rst
> index e4f7b005138d..fc5bc447f30d 100644
> --- a/Documentation/gpu/rfc/index.rst
> +++ b/Documentation/gpu/rfc/index.rst
> @@ -35,3 +35,8 @@ host such documentation:
>  .. toctree::
>  
> xe.rst
> +
> +.. toctree::
> +   :maxdepth: 1
> +
> +   xe_sriov.rst
> diff --git a/Documentation/gpu/rfc/sysfs-driver-xe-sriov 
> b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
> new file mode 100644
> index ..77748204dd83
> --- /dev/null
> +++ b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
> @@ -0,0 +1,501 @@
> +.. Documentation/ABI/testing/sysfs-driver-xe-sriov
> +..
> +.. Intel Xe driver ABI (SR-IOV extensions)
> +..
> +The Single Root I/O Virtualization (SR-IOV) extension to
> +the PCI Express (PCIe) specification suite is supported
> +starting from 12th generation of Intel Graphics processors.
> +
> +This document describes Xe driver specific additions.
> +
> +For description of generic SR-IOV sysfs attributes see
> +"Documentation/ABI/testing/sysfs-bus-pci" document.
> +
> +/sys/bus/pci/drivers/xe/BDF/
> +├── sriov_auto_provisioning
> +│   ├── admin_mode
> +│   ├── enabled
> +│   ├── reset_defaults
> +│   ├── resources
> +│   │   ├── default_contexts_quota
> +│   │   ├── default_doorbells_quota
> +│   │   ├── default_ggtt_quota
> +│   │   └── default_lmem_quota
> +│   ├── scheduling
> +│   │   ├── default_exec_quantum_ms
> +│   │   └── default_preempt_timeout_us
> +│   └── monitoring
> +│   ├── default_cat_error_count
> +│   ├── default_doorbell_time_us
> +│   ├── default_engine_reset_count
> +│   ├── default_h2g_time_us
> +│   ├── default_irq_time_us
> +│   └── default_page_fault_count
> +
> +/sys/bus/pci/drivers/xe/BDF/
> +├── sriov_extensions
> +│   ├── monitoring_period_ms
> +│   ├── strict_scheduling_enabled
> +│   ├── pf
> +│   │   ├── device -> ../../../BDF
> +│   │   ├── priority
> +│   │   ├── tile0
> +│   │   │   ├── gt0
> +│   │   │   │   ├── exec_quantum_ms
> +│   │   │   │   ├── preempt_timeout_us
> +│   │   │   │   └── thresholds
> +│   │   │   │   ├── cat_error_count
> +│   │   │   │   ├── doorbell_time_us
> +│   │   │   │   ├── engine_reset_count
> +│   │   │   │   ├── h2g_time_us
> +│   │   │   │   ├── irq_time_us
> +│   │   │   │   └── page_fault_count
> +│   │   │   └── gtX
> +│   │   └── tileT
> +│   ├── vf1
> +│   │   ├── device -> ../../../BDF+1
> +│   │   ├── stop
> +│   │   ├── tile0
> +│   │   │   ├── ggtt_quota
> +│   │   │   ├── lmem_quota
> +│   │   │   ├── gt0
> +│   │   │   │   ├── contexts_quota
> +│   │   │   │   ├── doorbells_quota
> +│   │   │   │   ├── exec_quantum_ms
> +│   │   │   │   ├── preempt_timeout_us
> +│   │   │   │   └── thresholds
> +│   │   │   │   ├── cat_error_count
> +│   │   │   │   ├── doorbell_time_us
> +│   │   │   │   ├── engine_reset_count
> +│   │   │   │   ├── h2g_time_us
> +│   │   │   │   ├── irq_time_us
> +│   │   │   │   └── page_fault_count
> +│   │   │   └── gtX
> +│   │   └── tileT
> +│   └── vfN
> +..
> +
> +
> +What:/sys/bus/pci/drivers/xe/.../sriov_auto_provisioning/
> +Date:2024
> +KernelVersion:   TBD
> +Contact: intel...@lists.freedesktop.org
> +Description:
> + This directory appears on the device when:
> +
> +  - device supports SR-IOV, and
> +  - device is a Physical Function (PF), and
> +  - xe driver supports SR-IOV PF on given device, and
> +  - xe driver supports automatic VFs provisioning.
> +
> + This directory is used as a root for all attributes related to
> + automatic provisioning of SR-IOV Physical Function (PF) and/or
> + Virtual Functions (VFs).
> +
> +
> +What:
> 

[PATCH] drm/doc/rfc: SR-IOV support on the new Xe driver

2023-11-10 Thread Michal Wajdeczko
The Single Root I/O Virtualization (SR-IOV) extension to the PCI
Express (PCIe) specification suite is supported starting from 12th
generation of Intel Graphics processors.

This RFC aims to explain how do we want to add support for SR-IOV
to the new Xe driver and to propose related additions to the sysfs.

Signed-off-by: Michal Wajdeczko 
Cc: Oded Gabbay 
Cc: Rodrigo Vivi 
Cc: Joonas Lahtinen 
Cc: Tvrtko Ursulin 
Cc: Daniel Vetter 
---
 Documentation/gpu/rfc/index.rst |   5 +
 Documentation/gpu/rfc/sysfs-driver-xe-sriov | 501 
 Documentation/gpu/rfc/xe_sriov.rst  | 192 
 3 files changed, 698 insertions(+)
 create mode 100644 Documentation/gpu/rfc/sysfs-driver-xe-sriov
 create mode 100644 Documentation/gpu/rfc/xe_sriov.rst

diff --git a/Documentation/gpu/rfc/index.rst b/Documentation/gpu/rfc/index.rst
index e4f7b005138d..fc5bc447f30d 100644
--- a/Documentation/gpu/rfc/index.rst
+++ b/Documentation/gpu/rfc/index.rst
@@ -35,3 +35,8 @@ host such documentation:
 .. toctree::
 
xe.rst
+
+.. toctree::
+   :maxdepth: 1
+
+   xe_sriov.rst
diff --git a/Documentation/gpu/rfc/sysfs-driver-xe-sriov 
b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
new file mode 100644
index ..77748204dd83
--- /dev/null
+++ b/Documentation/gpu/rfc/sysfs-driver-xe-sriov
@@ -0,0 +1,501 @@
+.. Documentation/ABI/testing/sysfs-driver-xe-sriov
+..
+.. Intel Xe driver ABI (SR-IOV extensions)
+..
+The Single Root I/O Virtualization (SR-IOV) extension to
+the PCI Express (PCIe) specification suite is supported
+starting from 12th generation of Intel Graphics processors.
+
+This document describes Xe driver specific additions.
+
+For description of generic SR-IOV sysfs attributes see
+"Documentation/ABI/testing/sysfs-bus-pci" document.
+
+/sys/bus/pci/drivers/xe/BDF/
+├── sriov_auto_provisioning
+│   ├── admin_mode
+│   ├── enabled
+│   ├── reset_defaults
+│   ├── resources
+│   │   ├── default_contexts_quota
+│   │   ├── default_doorbells_quota
+│   │   ├── default_ggtt_quota
+│   │   └── default_lmem_quota
+│   ├── scheduling
+│   │   ├── default_exec_quantum_ms
+│   │   └── default_preempt_timeout_us
+│   └── monitoring
+│   ├── default_cat_error_count
+│   ├── default_doorbell_time_us
+│   ├── default_engine_reset_count
+│   ├── default_h2g_time_us
+│   ├── default_irq_time_us
+│   └── default_page_fault_count
+
+/sys/bus/pci/drivers/xe/BDF/
+├── sriov_extensions
+│   ├── monitoring_period_ms
+│   ├── strict_scheduling_enabled
+│   ├── pf
+│   │   ├── device -> ../../../BDF
+│   │   ├── priority
+│   │   ├── tile0
+│   │   │   ├── gt0
+│   │   │   │   ├── exec_quantum_ms
+│   │   │   │   ├── preempt_timeout_us
+│   │   │   │   └── thresholds
+│   │   │   │   ├── cat_error_count
+│   │   │   │   ├── doorbell_time_us
+│   │   │   │   ├── engine_reset_count
+│   │   │   │   ├── h2g_time_us
+│   │   │   │   ├── irq_time_us
+│   │   │   │   └── page_fault_count
+│   │   │   └── gtX
+│   │   └── tileT
+│   ├── vf1
+│   │   ├── device -> ../../../BDF+1
+│   │   ├── stop
+│   │   ├── tile0
+│   │   │   ├── ggtt_quota
+│   │   │   ├── lmem_quota
+│   │   │   ├── gt0
+│   │   │   │   ├── contexts_quota
+│   │   │   │   ├── doorbells_quota
+│   │   │   │   ├── exec_quantum_ms
+│   │   │   │   ├── preempt_timeout_us
+│   │   │   │   └── thresholds
+│   │   │   │   ├── cat_error_count
+│   │   │   │   ├── doorbell_time_us
+│   │   │   │   ├── engine_reset_count
+│   │   │   │   ├── h2g_time_us
+│   │   │   │   ├── irq_time_us
+│   │   │   │   └── page_fault_count
+│   │   │   └── gtX
+│   │   └── tileT
+│   └── vfN
+..
+
+
+What:  /sys/bus/pci/drivers/xe/.../sriov_auto_provisioning/
+Date:  2024
+KernelVersion: TBD
+Contact:   intel...@lists.freedesktop.org
+Description:
+   This directory appears on the device when:
+
+- device supports SR-IOV, and
+- device is a Physical Function (PF), and
+- xe driver supports SR-IOV PF on given device, and
+- xe driver supports automatic VFs provisioning.
+
+   This directory is used as a root for all attributes related to
+   automatic provisioning of SR-IOV Physical Function (PF) and/or
+   Virtual Functions (VFs).
+
+
+What:  /sys/bus/pci/drivers/xe/.../sriov_auto_provisioning/enabled
+Date:  2024
+KernelVersion: TBD
+Contact:   intel...@lists.freedesktop.org
+Description:
+   (RW) bool (0, 1)
+
+   This file represents configuration flag for the automatic VFs
+   (un)provisioning that could be performed by the PF.
+
+