Re: [RFC 0/7] Promote GuC ABI headers to shared location

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 6/11/2024 14:45, Michal Wajdeczko wrote:
On 11.06.2024 22:32, John Harrison wrote:
On 6/11/2024 07:30, Michal Wajdeczko wrote:
There are many GuC ABI definitions named in the same way by the i915
and Xe drivers, preventing proper generation of the documentation.

Promote GuC ABI definitions to shared location that can be used by
both drivers and can be included in documentation.
I still very strongly feel that this is the wrong place for such
documentation. We do not document any of the hardware registers in the
driver, nor the MI_ instructions, etc. Why is this any different? The
GuC ABI is not under the control of the Linux kernel driver, either i915
or Xe. It is effectively a hardware interface no different to any other
hardware interface. It is already fully documented by the owners of that
interface. Rather than just copying random chunks of that documentation
into the kernel driver, we should just be publishing the official
document itself. Same as we do for the rest of the hardware.
so go publish this official document
My point is that we should be putting effort into making this happen. So far as I know, I am the only person that ever raises this topic. And I do keep raising it only to be told it is too low a priority. If more people actually pushed for it then maybe it would happen.


in the meantime IMO it is useful to show, with really little effort, on
what grounds the communication between i915/Xe and GuC works, so
everyone, not just selected engineers, can understand and review our
implementation and check its correctness
Simply providing a half sentence description of a bitfield definition does not tell you anything about the correctness or usage of an interface. Sure, you can tell that it is syntactically correct but the compiler can do that for you with the appropriate FIELD definitions. It does not tell you anything about whether you are using the interface properly or even if this is the proper interface to use. You need the full descriptive documentation for that. Are you going to copy all of that into the driver? Then you might as well just publish the document you are copying from and be done.


furthermore, if you don't like any hw documentation then we should
revisit what is already in gpu/i915 section and also reconsider all our
efforts to document all non-static driver functions, as those functions
are still internal to the driver, not to be used outside
I do not know what you are arguing for here.

Xe in general is being pushed to have much better documentation of the code than i915 did. But documentation of the driver is a very different topic to documentation of the hardware.

John.


John.


Cc: Jani Nikula <jani.nikula@xxxxxxxxx>
Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
Cc: Lucas De Marchi <lucas.demarchi@xxxxxxxxx>
Cc: Matthew Brost <matthew.brost@xxxxxxxxx>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@xxxxxxxxx>
Cc: John Harrison <John.C.Harrison@xxxxxxxxx>

Michal Wajdeczko (7):
    drm/xe/guc: Promote GuC ABI headers to shared location
    Documentation/gpu: Separate GuC ABI section
    Documentation/gpu: Switch to shared GuC ABI definitions
    drm/intel/guc: Update CTB communication ABI
    drm/intel/guc: Add new KLV definitions
    drm/i915: Use shared GuC ABI definitions
    drm/xe: Promote SR-IOV GuC ABI definitions to shared location

   Documentation/gpu/drivers.rst                 |   1 +
   Documentation/gpu/guc.rst                     |  23 ++
   Documentation/gpu/i915.rst                    |   9 -
   drivers/gpu/drm/i915/Makefile                 |   5 +
   .../gt/uc/abi/guc_communication_ctb_abi.h     | 170 -----------
   .../gt/uc/abi/guc_communication_mmio_abi.h    |  49 ----
   drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h | 112 --------
   .../gpu/drm/i915/gt/uc/abi/guc_messages_abi.h | 264 ------------------
   .../guc}/abi/guc_actions_sriov_abi.h          |   0
   .../guc}/abi/guc_communication_ctb_abi.h      |   2 +
   .../guc}/abi/guc_communication_mmio_abi.h     |   0
   .../drm/{xe => intel/guc}/abi/guc_klvs_abi.h  |  18 +-
   .../{xe => intel/guc}/abi/guc_messages_abi.h  |   0
   .../guc}/abi/guc_relay_actions_abi.h          |   0
   .../guc}/abi/guc_relay_communication_abi.h    |   0
   drivers/gpu/drm/xe/Makefile                   |   5 +
   16 files changed, 49 insertions(+), 609 deletions(-)
   create mode 100644 Documentation/gpu/guc.rst
   delete mode 100644
drivers/gpu/drm/i915/gt/uc/abi/guc_communication_ctb_abi.h
   delete mode 100644
drivers/gpu/drm/i915/gt/uc/abi/guc_communication_mmio_abi.h
   delete mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
   delete mode 100644 drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h
   rename drivers/gpu/drm/{xe => intel/guc}/abi/guc_actions_sriov_abi.h
(100%)
   rename drivers/gpu/drm/{xe =>
intel/guc}/abi/guc_communication_ctb_abi.h (98%)
   rename drivers/gpu/drm/{xe =>
intel/guc}/abi/guc_communication_mmio_abi.h (100%)
   rename drivers/gpu/drm/{xe => intel/guc}/abi/guc_klvs_abi.h (97%)
   rename drivers/gpu/drm/{xe => intel/guc}/abi/guc_messages_abi.h (100%)
   rename drivers/gpu/drm/{xe => intel/guc}/abi/guc_relay_actions_abi.h
(100%)
   rename drivers/gpu/drm/{xe =>
intel/guc}/abi/guc_relay_communication_abi.h (100%)





[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux