[PATCH v4 00/15] NVKM GSP RPC kernel docs, cleanups and fixes
Danilo Krummrich
dakr at kernel.org
Fri Jan 24 23:57:50 UTC 2025
Hi Zhi,
On Fri, Jan 24, 2025 at 10:29:43AM -0800, Zhi Wang wrote:
> Hi folks:
>
> Here is another re-spin of handling the large GSP message return.
>
> Besides the support of the large GSP message, kernel doc and many cleanups
> are introduced according to the comments in the previous spin [1].
>
> For testing, I tried the following without any problem:
>
> - run Uniengine Heaven [2] on my RTX 4060 for 8 hours
> - the GL CTS runner [3] (commandline: ./cts-runner --type-gl40) from
> Khronos
> - with the vGPU RFC patches [4], boot up a ubuntu VM with a vGPU on a L40
> and run glmark2.
Applied to drm-misc-next.
Thanks a lot for this series and the iterations -- those are really good
improvements.
I fixed up the first commit "drm/nouveau: add a kernel doc to introduce the GSP
RPC", which had some indentation issues in the bullet list and the new file was
missing the SPDX-License-Identifier.
When adding documentation, please make sure to check the result after running
the htmldocs make target.
I also fixed up one minor indentation issue in one of the other patches.
Again, thanks for the series!
- Danilo
>
> v4:
> - Introduce a documentation in Documentation/gpu/nouveau.rst.
> - Fix the reference link of NVIDIA SDK headers in the document.
> - Replace the "decoders" term with "terminology".
> - Explain the adding offset in r535_gsp_msgq_get_entry().
> - Replace the magic number 0x1000 with GSP_PAGE_SIZE in the re-factor.
> - Introduce a DOC to explain the GSP message receiving flow.
>
> 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/nouveau/20241031085250.2941482-1-zhiw@nvidia.com/
> [2] https://benchmark.unigine.com/heaven
> [3] https://github.com/KhronosGroup/VK-GL-CTS
> [4] https://lore.kernel.org/kvm/20240922124951.1946072-1-zhiw@nvidia.com/T/#t
>
>
> Zhi Wang (15):
> drm/nouveau: add a kernel doc to introduce the GSP RPC
> drm/nouveau: rename "repc" to "gsp_rpc_len" on the GSP message recv
> path
> drm/nouveau: rename "argv" to what it represents on the GSP message
> send path
> drm/nouveau: remove unused param repc in *rm_alloc_push()
> drm/nouveau: rename "argv" to what it represents in *rm_{alloc,
> ctrl}_*()
> drm/nouveau: rename "argc" to what it represents in GSP RPC routines
> drm/nouveau: fix the broken marco GSP_MSG_MAX_SIZE
> drm/nouveau: remove the magic number in r535_gsp_rpc_push()
> drm/nouveau: refine the variable names in r535_gsp_rpc_push()
> drm/nouveau: refine the variable names in r535_gsp_msg_recv()
> drm/nouveau: rename the variable "cmd" to "msg" in r535_gsp_cmdq_{get,
> push}()
> drm/nouveau: factor out r535_gsp_msgq_peek()
> drm/nouveau: factor out r535_gsp_msgq_recv_one_elem()
> drm/nouveau: support handling the return of large GSP message
> drm/nouveau: consume the return of large GSP message
>
> Documentation/gpu/drivers.rst | 1 +
> Documentation/gpu/nouveau.rst | 27 +
> .../gpu/drm/nouveau/include/nvkm/subdev/gsp.h | 8 +-
> .../gpu/drm/nouveau/nvkm/subdev/gsp/r535.c | 526 +++++++++++++-----
> 4 files changed, 409 insertions(+), 153 deletions(-)
> create mode 100644 Documentation/gpu/nouveau.rst
>
> --
> 2.34.1
>
More information about the Nouveau
mailing list