[PATCH v3 00/15] NVKM GSP RPC kernel docs, cleanups and fixes
Zhi Wang
zhiw at nvidia.com
Thu Oct 31 08:52:35 UTC 2024
Hi folks:
Here is the leftover of the previous spin of NVKM GSP RPC fixes, which
is handling the return of large GSP message. PATCH 1 and 2 in the previous
spin were merged [1], and this spin is based on top of PATCH 1 and PATCH 2
in the previous spin.
Besides the support of the large GSP message, kernel doc and many cleanups
are introduced according to the comments in the previous spin [2].
For testing, I tried the following without any problem:
- run Uniengine Heaven [3] on my RTX 4060 for 8 hours
- the GL CTS runner [4] (commandline: ./cts-runner --type-gl40) from
Khronos
- with the vGPU RFC patches [5], boot up a ubuntu VM with a vGPU on a L40
and run glmark2.
v3:
- Add a kernel doc and chart to introduce the GSP message and denote the
memory layout.
- Add a decoder section in the kernel doc to explain the terms in the code.
- Refine the many confusing variable names to align with the terms in the
kernel doc.
- Introduce the continaution records in the kernel doc.
- Re-factor the complicated function r535_gsp_msgq_wait().
- Other minor cleanups.
v2:
- Remove the Fixes: tags as the vanilla nouveau aren't going to hit these bugs. (Danilo)
- Test the patchset on VK-GL-CTS. (Danilo)
- Remove the ambiguous empty line in PATCH 2. (Danilo)
- Rename the r535_gsp_msgq_wait to gsp_msgq_recv. (Danilo)
- Introduce a data structure to hold the params of gsp_msgq_recv(). (Danilo)
- Document the params and the states they are related to. (Danilo)
[1] https://lore.kernel.org/all/20241017071922.2518724-1-zhiw@nvidia.com/
[2] https://lore.kernel.org/all/ZxD1BBUUeLQdvXVX@pollux/
[3] https://benchmark.unigine.com/heaven
[4] https://github.com/KhronosGroup/VK-GL-CTS
[5] https://lore.kernel.org/kvm/20240922124951.1946072-1-zhiw@nvidia.com/T/#t
Zhi Wang (15):
nvkm: add a kernel doc to introduce the GSP RPC
nvkm: rename "repc" to "gsp_rpc_len" on the GSP message recv path
nvkm: rename "argv" to what it represnts on the GSP message send path
nvkm: remove unused param repc in *rm_alloc_push()
nvkm: rename "argv" to what it represents in *rm_{alloc, ctrl}_*()
nvkm: rename "argc" to what it represents in GSP RPC routines
nvkm: fix the broken marco GSP_MSG_MAX_SIZE
nvkm: remove the magic number in r535_gsp_rpc_push()
nvkm: refine the variable names in r535_gsp_rpc_push()
nvkm: refine the variable names in r535_gsp_msg_recv()
nvkm: rename the variable "cmd" to "msg" in r535_gsp_cmdq_{get,
push}()
nvkm: factor out r535_gsp_msgq_peek()
nvkm: factor out r535_gsp_msgq_recv_one_elem()
nvkm: support handling the return of large GSP message
nvkm: consume the return of large GSP message
.../gpu/drm/nouveau/include/nvkm/subdev/gsp.h | 8 +-
.../gpu/drm/nouveau/nvkm/subdev/gsp/r535.c | 501 ++++++++++++------
2 files changed, 354 insertions(+), 155 deletions(-)
--
2.34.1
More information about the Nouveau
mailing list