Add Documentation for dw-xdata-pcie driver.
Signed-off-by: Gustavo Pimentel <[email protected]>
---
Documentation/misc-devices/dw-xdata-pcie.rst | 40 ++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 Documentation/misc-devices/dw-xdata-pcie.rst
diff --git a/Documentation/misc-devices/dw-xdata-pcie.rst b/Documentation/misc-devices/dw-xdata-pcie.rst
new file mode 100644
index 00000000..3af9fad
--- /dev/null
+++ b/Documentation/misc-devices/dw-xdata-pcie.rst
@@ -0,0 +1,40 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+===========================================================================
+Driver for Synopsys DesignWare PCIe traffic generator (also known as xData)
+===========================================================================
+
+This driver should be used as a host-side (Root Complex) driver and Synopsys
+DesignWare prototype that includes this IP.
+
+The "dw-xdata-pcie" driver can be used to enable/disable PCIe traffic
+generator in either direction (mutual exclusion) besides allowing the
+PCIe link performance analysis.
+
+The interaction with this driver is done through the module parameter and
+can be changed in runtime. The driver outputs the requested command state
+information to /var/log/kern.log or dmesg.
+
+Request write TLPs traffic generation - Root Complex to Endpoint direction
+- Command:
+ echo 1 > /sys/kernel/dw-xdata-pcie/write
+
+Get write TLPs traffic link throughput
+- Command:
+ cat /sys/kernel/dw-xdata-pcie/write
+- Output example:
+ 204 MB/s
+
+Request read TLPs traffic generation - Endpoint to Root Complex direction:
+- Command:
+ echo 1 > /sys/kernel/dw-xdata-pcie/read
+
+Get read TLPs traffic link throughput
+- Command:
+ cat /sys/kernel/dw-xdata-pcie/read
+- Output example:
+ 199 MB/s
+
+Request to stop any current TLP transfer:
+- Command:
+ echo 1 > /sys/kernel/dw-xdata-pcie/stop
--
2.7.4
Hi Gustavo,
[...]
> +The interaction with this driver is done through the module parameter and
> +can be changed in runtime. The driver outputs the requested command state
> +information to /var/log/kern.log or dmesg.
The driver does not seem to offer any parameters (aside of using sysfs
for runtime settings), and it also seem to only print what it's doing
when debug level is enabled - unless I am missing something?
[...]
> +Request to stop any current TLP transfer:
> +- Command:
> + echo 1 > /sys/kernel/dw-xdata-pcie/stop
[...]
When I do the following:
# echo 1 > /sys/kernel/dw-xdata-pcie/write
# echo 1 > /sys/kernel/dw-xdata-pcie/stop
# cat /sys/kernel/dw-xdata-pcie/write
Would output from cat above simply show "0 MB/s" then? I wonder how
someone using this new driver could tell whether "write" or "read"
traffic generation has been enabled aside of reading the sysfs files,
would adding "/sys/kernel/dw-xdata-pcie/active" be an overkill here?
What do you think?
Krzysztof
Hi Krzysztof,
On Sat, Feb 6, 2021 at 23:31:14, Krzysztof Wilczyński <[email protected]>
wrote:
> Hi Gustavo,
>
> [...]
> > +The interaction with this driver is done through the module parameter and
> > +can be changed in runtime. The driver outputs the requested command state
> > +information to /var/log/kern.log or dmesg.
>
> The driver does not seem to offer any parameters (aside of using sysfs
> for runtime settings), and it also seem to only print what it's doing
> when debug level is enabled - unless I am missing something?
>
> [...]
> > +Request to stop any current TLP transfer:
> > +- Command:
> > + echo 1 > /sys/kernel/dw-xdata-pcie/stop
> [...]
>
> When I do the following:
>
> # echo 1 > /sys/kernel/dw-xdata-pcie/write
> # echo 1 > /sys/kernel/dw-xdata-pcie/stop
> # cat /sys/kernel/dw-xdata-pcie/write
>
> Would output from cat above simply show "0 MB/s" then? I wonder how
> someone using this new driver could tell whether "write" or "read"
> traffic generation has been enabled aside of reading the sysfs files,
> would adding "/sys/kernel/dw-xdata-pcie/active" be an overkill here?
>
> What do you think?
Yes, it would display 0 MB/s. This driver is to be used mainly by the
Synopsys DesignWare HW prototyping team. I don't think the general public
will be interested or can use this driver, because requires a special HW
block available only for this prototype.
I tried to reduce to the minimal the interfaces, to avoid possible
confusion. For instance, even the /sys/kernel/dw-xdata-pcie/stop
interface could be avoided, because on the driver unloading or changing
the between write or read it calls the stop procedure.
Due to the nature of the HW block, it only can allow the write or the
read at some given moment, therefore based on the last command enable
write or read, we know which mode is this driving working.
This driver will be used by the testing team on their automation scripts,
thus they will know exactly the sequence input.
Anyway, thanks for your feedback.
>
> Krzysztof
Hi Gustavo,
[...]
> > When I do the following:
> >
> > # echo 1 > /sys/kernel/dw-xdata-pcie/write
> > # echo 1 > /sys/kernel/dw-xdata-pcie/stop
> > # cat /sys/kernel/dw-xdata-pcie/write
> >
> > Would output from cat above simply show "0 MB/s" then? I wonder how
> > someone using this new driver could tell whether "write" or "read"
> > traffic generation has been enabled aside of reading the sysfs files,
> > would adding "/sys/kernel/dw-xdata-pcie/active" be an overkill here?
> >
> > What do you think?
>
> Yes, it would display 0 MB/s. This driver is to be used mainly by the
> Synopsys DesignWare HW prototyping team. I don't think the general public
> will be interested or can use this driver, because requires a special HW
> block available only for this prototype.
Got it.
> I tried to reduce to the minimal the interfaces, to avoid possible
> confusion. For instance, even the /sys/kernel/dw-xdata-pcie/stop
> interface could be avoided, because on the driver unloading or changing
> the between write or read it calls the stop procedure.
Oh, OK.
> Due to the nature of the HW block, it only can allow the write or the
> read at some given moment, therefore based on the last command enable
> write or read, we know which mode is this driving working.
> This driver will be used by the testing team on their automation scripts,
> thus they will know exactly the sequence input.
>
> Anyway, thanks for your feedback.
Thank you for taking the time to add more details for me. Much
appreciated.
Krzysztof