<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nvdebug.git/copy_topology_procfs.c, branch ecrts25-ae</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/nvdebug.git/'/>
<entry>
<title>Linux 5.17+ support and allow including nvdebug.h independently</title>
<updated>2024-04-11T17:42:54+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>jbakita@cs.unc.edu</email>
</author>
<published>2024-04-11T17:42:54+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/nvdebug.git/commit/?id=7cfa24cebeaf144b446d07e15fb25e78bb14841e'/>
<id>7cfa24cebeaf144b446d07e15fb25e78bb14841e</id>
<content type='text'>
- Move Linux-specific functions to nvdebug_linux.h and .c
- Workaround PDE_DATA() being pde_data() on Linux 5.17+
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Move Linux-specific functions to nvdebug_linux.h and .c
- Workaround PDE_DATA() being pde_data() on Linux 5.17+
</pre>
</div>
</content>
</entry>
<entry>
<title>Rework LCE&lt;-&gt;PCE and GRCE-&gt;LCE configuration printing API</title>
<updated>2024-04-08T18:02:07+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>bakitajoshua@gmail.com</email>
</author>
<published>2024-04-08T17:33:28+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/nvdebug.git/commit/?id=ac60151ea0a4a1f3882fde3c486af870029b7977'/>
<id>ac60151ea0a4a1f3882fde3c486af870029b7977</id>
<content type='text'>
Rather than up to dozens of individual files exposing part of each
copy engine's configuration, have one file which exposes a unified
view of the full topology. Example new output on RTX 2080 Ti:

$ cat /proc/gpu0/copy_topology
GRCE0 -&gt; LCE04
GRCE1 -&gt; LCE03
LCE02 -&gt; PCE02
LCE03 -&gt; PCE03
LCE04 -&gt; PCE01

Old output:
$ tail -n 1 /proc/gpu0/lce_for_pce*
==&gt; /proc/gpu0/lce_for_pce0 &lt;==
0xf
==&gt; /proc/gpu0/lce_for_pce1 &lt;==
0x4
==&gt; /proc/gpu0/lce_for_pce2 &lt;==
0x2
==&gt; /proc/gpu0/lce_for_pce3 &lt;==
0x3

$ tail -n 1 /proc/gpu1/shared_lce_for_grce*
==&gt; /proc/gpu0/shared_lce_for_grce0 &lt;==
0x4
==&gt; /proc/gpu0/shared_lce_for_grce1 &lt;==
0x3

Specifically:
- Add `copy_topology` API
- Remove `shared_lce_for_grce#` and `lce_for_pce#` APIs
- Move logic from `nvdebug_entry.c` to `copy_topology_procfs.c`
- Do not print PCE or Shared LCE configuration if flagged absent
- Refer to LCE0 and LCE1 as GRCE0 and GRCE1
- Print by LCE ID, which is move helpful when attempting to trace
  how a given copy runlist maps to a physical copy engine.
- Document two errata with CE registers

Tested working on Pascal Integrated, Pascal, Volta Integrated
Volta, Turing, and Ampere Integrated on Linux 4.9 through 5.10.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rather than up to dozens of individual files exposing part of each
copy engine's configuration, have one file which exposes a unified
view of the full topology. Example new output on RTX 2080 Ti:

$ cat /proc/gpu0/copy_topology
GRCE0 -&gt; LCE04
GRCE1 -&gt; LCE03
LCE02 -&gt; PCE02
LCE03 -&gt; PCE03
LCE04 -&gt; PCE01

Old output:
$ tail -n 1 /proc/gpu0/lce_for_pce*
==&gt; /proc/gpu0/lce_for_pce0 &lt;==
0xf
==&gt; /proc/gpu0/lce_for_pce1 &lt;==
0x4
==&gt; /proc/gpu0/lce_for_pce2 &lt;==
0x2
==&gt; /proc/gpu0/lce_for_pce3 &lt;==
0x3

$ tail -n 1 /proc/gpu1/shared_lce_for_grce*
==&gt; /proc/gpu0/shared_lce_for_grce0 &lt;==
0x4
==&gt; /proc/gpu0/shared_lce_for_grce1 &lt;==
0x3

Specifically:
- Add `copy_topology` API
- Remove `shared_lce_for_grce#` and `lce_for_pce#` APIs
- Move logic from `nvdebug_entry.c` to `copy_topology_procfs.c`
- Do not print PCE or Shared LCE configuration if flagged absent
- Refer to LCE0 and LCE1 as GRCE0 and GRCE1
- Print by LCE ID, which is move helpful when attempting to trace
  how a given copy runlist maps to a physical copy engine.
- Document two errata with CE registers

Tested working on Pascal Integrated, Pascal, Volta Integrated
Volta, Turing, and Ampere Integrated on Linux 4.9 through 5.10.
</pre>
</div>
</content>
</entry>
</feed>
