On 2021/4/19 17:07, Daniel Thompson wrote:
On Sat, Apr 17, 2021 at 06:17:10PM +0800, Yicong Yang wrote:
Document the introduction and usage of HiSilicon PTT device driver.
Signed-off-by: Yicong Yang yangyicong@hisilicon.com
Documentation/trace/hisi-ptt.rst | 326 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 326 insertions(+) create mode 100644 Documentation/trace/hisi-ptt.rst
diff --git a/Documentation/trace/hisi-ptt.rst b/Documentation/trace/hisi-ptt.rst new file mode 100644 index 0000000..f093846 --- /dev/null +++ b/Documentation/trace/hisi-ptt.rst @@ -0,0 +1,326 @@ [...] +On Kunpeng 930 SoC, the PCIe Root Complex is composed of several +PCIe cores. Each PCIe core includes several Root Ports and a PTT +RCiEP, like below. The PTT device is capable of tuning and +tracing the link of the PCIe core. +::
+--------------Core 0-------+
| | [ PTT ] |
| | [Root Port]---[Endpoint]
| | [Root Port]---[Endpoint]
| | [Root Port]---[Endpoint]
- Root Complex |------Core 1-------+
| | [ PTT ] |
| | [Root Port]---[ Switch ]---[Endpoint]
| | [Root Port]---[Endpoint] `-[Endpoint]
| | [Root Port]---[Endpoint]
+---------------------------+
+The PTT device driver cannot be loaded if debugfs is not mounted.
This can't be right can it? Obviously debugfs must be enabled but why mounted?
just mention the limit as I'm not sure it's always be mounted.
+Each PTT device will be presented under /sys/kernel/debugfs/hisi_ptt +as its root directory, with name of its BDF number. +::
- /sys/kernel/debug/hisi_ptt/<domain>:<bus>:<device>.<function>
+Tune +====
+PTT tune is designed for monitoring and adjusting PCIe link parameters (events). +Currently we support events in 4 classes. The scope of the events +covers the PCIe core to which the PTT device belongs.
+Each event is presented as a file under $(PTT root dir)/$(BDF)/tune, and +mostly a simple open/read/write/close cycle will be used to tune +the event. +::
- $ cd /sys/kernel/debug/hisi_ptt/$(BDF)/tune
- $ ls
- qos_tx_cpl qos_tx_np qos_tx_p
- tx_path_rx_req_alloc_buf_level
- tx_path_tx_req_alloc_buf_level
- $ cat qos_tx_dp
- 1
- $ echo 2 > qos_tx_dp
- $ cat qos_tx_dp
- 2
+Current value (numerical value) of the event can be simply read +from the file, and the desired value written to the file to tune.
I saw that this RFC asks about whether debugfs is an appropriate interface for the *tracing* capability of the platform. Have similar questions been raised about the tuning interfaces?
yes. as well.
It looks to me like tuning could be handled entirely using sysfs attributes. I think trying to handle these mostly decoupled feature in the same place is likely to be a mistake.
Tuning and tracing are two separate functions and it does make sense to decouple them. Thanks for the advice, we can make tuning using sysfs attributes as debugfs is not encouraged.
Regards, Yicong
Daniel.
.