[PATCH v4 00/15] NVKM GSP RPC kernel docs, cleanups and fixes
Zhi Wang
zhiw at nvidia.com
Sat Jan 25 12:52:14 UTC 2025
On 25/01/2025 1.57, Danilo Krummrich wrote:
> 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.
Hi Danilo:
Thanks so much for the efforts.
I did see checkpatch.pl reporting about SPDX-License in rst doc. But I
double checked all the
other docs. E.g. Documentation/gpu/{index.rst, drivers.rst}. It seems
none of them has the
SPDX headers. I thought it was a false warning...Will reach you in the
IRC to confirm it next
time.
> When adding documentation, please make sure to check the result after running
> the htmldocs make target.
Thanks for that. I did test the documentation generation via make
htmldocs and xmldocs
to make sure the doc generated correctly. I think you were talking about
the bullets parts
in the code where I tried to keep the length of the line < 80 but they
seems folded in the
output. Haven't figured out a approach how to fix them. I will check
your fixes.
> I also fixed up one minor indentation issue in one of the other patches.
It would be nice that you can share your checkpatch.pl command line. So
that we can align
with it. Will reach you in the IRC next time if I think something looks
like a false warning
before posting the patches.
Thanks for the review!
Z.
>
> 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