Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/10] Introduce Relay Communication for SR-IOV
@ 2023-12-27 23:58 Michal Wajdeczko
  2023-12-27 23:58 ` [PATCH 01/10] drm/xe: Allocate dedicated workqueue for SR-IOV workers Michal Wajdeczko
                   ` (16 more replies)
  0 siblings, 17 replies; 30+ messages in thread
From: Michal Wajdeczko @ 2023-12-27 23:58 UTC (permalink / raw)
  To: intel-xe

There are scenarios where SR-IOV Virtual Function (VF) driver will
need to get additional data that is not available over VF MMIO BAR
nor could be queried from the GuC firmware and must be obtained
from the Physical Function (PF) driver.

The communication between Virtual Function (VF) drivers and Physical
Function (PF) drivers is based on the GuC firmware acting as a proxy
(relay) agent.

  VF                           GuC                            PF
  |                             |                             |
 [ ] VF2GUC_RELAY_TO_PF         |                             |
 [ ]-------------------------> [ ]                            |
 [ ] { rid, msg }              [ ]                            |
 [ ]                           [ ] GUC2PF_RELAY_FROM_VF       |
 [ ]                           [ ]-------------------------> [ ]
 [ ]                            |  { VFID, rid, msg }        [ ]
 [ ]                            |                            [ ]
 [ ]                            |         PF2GUC_RELAY_TO_VF [ ]
 [ ]                           [ ] <-------------------------[ ]
 [ ]                           [ ]      { VFID, rid, reply }  |
 [ ]      GUC2VF_RELAY_FROM_PF [ ]                            |
 [ ] <-------------------------[ ]                            |
  |             { rid, reply }  |                             |
  |                             |                             |

This series only introduces necessary functions (together with basic
kunit tests) to allow use of relay communication by the VFs drivers.
We will start using this functionality in upcoming series.

Michal Wajdeczko (10):
  drm/xe: Allocate dedicated workqueue for SR-IOV workers
  drm/xe: Define Virtual Function Identifier
  drm/xe: Introduce GT-oriented SR-IOV logging macros
  drm/xe/guc: Add helpers for HXG messages
  drm/xe/guc: Update few GuC CTB ABI definitions
  drm/xe/guc: Add Relay Communication ABI definitions
  drm/xe/guc: Introduce Relay Communication for SR-IOV
  drm/xe/kunit: Allow to replace xe_guc_ct_send_recv() with stub
  drm/xe/kunit: Add GuC Relay kunit tests
  drm/xe/guc: Start handling GuC Relay event messages

 drivers/gpu/drm/xe/Makefile                   |   1 +
 .../gpu/drm/xe/abi/guc_actions_sriov_abi.h    | 174 ++++
 .../drm/xe/abi/guc_communication_ctb_abi.h    |   3 +-
 .../gpu/drm/xe/abi/guc_relay_actions_abi.h    |  79 ++
 .../drm/xe/abi/guc_relay_communication_abi.h  | 118 +++
 drivers/gpu/drm/xe/tests/xe_guc_relay_test.c  | 522 ++++++++++
 drivers/gpu/drm/xe/xe_device.c                |   4 +
 drivers/gpu/drm/xe/xe_device_types.h          |   2 +
 drivers/gpu/drm/xe/xe_gt_sriov_printk.h       |  34 +
 drivers/gpu/drm/xe/xe_guc.c                   |   5 +
 drivers/gpu/drm/xe/xe_guc_ct.c                |  11 +
 drivers/gpu/drm/xe/xe_guc_hxg_helpers.h       | 107 ++
 drivers/gpu/drm/xe/xe_guc_relay.c             | 933 ++++++++++++++++++
 drivers/gpu/drm/xe/xe_guc_relay.h             |  32 +
 drivers/gpu/drm/xe/xe_guc_relay_types.h       |  36 +
 drivers/gpu/drm/xe/xe_guc_types.h             |   4 +
 drivers/gpu/drm/xe/xe_sriov.c                 |  37 +
 drivers/gpu/drm/xe/xe_sriov.h                 |   1 +
 drivers/gpu/drm/xe/xe_sriov_types.h           |  12 +
 19 files changed, 2114 insertions(+), 1 deletion(-)
 create mode 100644 drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h
 create mode 100644 drivers/gpu/drm/xe/abi/guc_relay_actions_abi.h
 create mode 100644 drivers/gpu/drm/xe/abi/guc_relay_communication_abi.h
 create mode 100644 drivers/gpu/drm/xe/tests/xe_guc_relay_test.c
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_printk.h
 create mode 100644 drivers/gpu/drm/xe/xe_guc_hxg_helpers.h
 create mode 100644 drivers/gpu/drm/xe/xe_guc_relay.c
 create mode 100644 drivers/gpu/drm/xe/xe_guc_relay.h
 create mode 100644 drivers/gpu/drm/xe/xe_guc_relay_types.h

-- 
2.25.1


^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2024-01-04  6:30 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-27 23:58 [PATCH 00/10] Introduce Relay Communication for SR-IOV Michal Wajdeczko
2023-12-27 23:58 ` [PATCH 01/10] drm/xe: Allocate dedicated workqueue for SR-IOV workers Michal Wajdeczko
2023-12-29 21:06   ` Piotr Piórkowski
2023-12-27 23:58 ` [PATCH 02/10] drm/xe: Define Virtual Function Identifier Michal Wajdeczko
2023-12-29 21:07   ` Piotr Piórkowski
2023-12-27 23:58 ` [PATCH 03/10] drm/xe: Introduce GT-oriented SR-IOV logging macros Michal Wajdeczko
2023-12-29 21:07   ` Piotr Piórkowski
2023-12-27 23:58 ` [PATCH 04/10] drm/xe/guc: Add helpers for HXG messages Michal Wajdeczko
2023-12-29 21:08   ` Piotr Piórkowski
2023-12-29 22:10     ` Michal Wajdeczko
2023-12-27 23:58 ` [PATCH 05/10] drm/xe/guc: Update few GuC CTB ABI definitions Michal Wajdeczko
2023-12-29 21:09   ` Piotr Piórkowski
2023-12-27 23:58 ` [PATCH 06/10] drm/xe/guc: Add Relay Communication " Michal Wajdeczko
2023-12-29 21:09   ` Piotr Piórkowski
2023-12-27 23:58 ` [PATCH 07/10] drm/xe/guc: Introduce Relay Communication for SR-IOV Michal Wajdeczko
2023-12-29 21:14   ` Piotr Piórkowski
2023-12-29 22:55     ` Michal Wajdeczko
2023-12-27 23:58 ` [PATCH 08/10] drm/xe/kunit: Allow to replace xe_guc_ct_send_recv() with stub Michal Wajdeczko
2023-12-29 21:15   ` Piotr Piórkowski
2023-12-27 23:58 ` [PATCH 09/10] drm/xe/kunit: Add GuC Relay kunit tests Michal Wajdeczko
2023-12-29 21:15   ` Piotr Piórkowski
2023-12-27 23:58 ` [PATCH 10/10] drm/xe/guc: Start handling GuC Relay event messages Michal Wajdeczko
2023-12-29 21:16   ` Piotr Piórkowski
2024-01-04  5:43 ` ✓ CI.Patch_applied: success for Introduce Relay Communication for SR-IOV Patchwork
2024-01-04  5:43 ` ✗ CI.checkpatch: warning " Patchwork
2024-01-04  5:44 ` ✓ CI.KUnit: success " Patchwork
2024-01-04  5:52 ` ✓ CI.Build: " Patchwork
2024-01-04  5:52 ` ✗ CI.Hooks: failure " Patchwork
2024-01-04  5:53 ` ✓ CI.checksparse: success " Patchwork
2024-01-04  6:30 ` ✗ CI.BAT: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox