Commit b846ad57 authored by Joanne Hugé's avatar Joanne Hugé

Add short jitter measures with shuttle client and XDP

parent 510a3d4e
...@@ -19,13 +19,15 @@ Measures measuring the same propriety are grouped together in tables and graphs, ...@@ -19,13 +19,15 @@ Measures measuring the same propriety are grouped together in tables and graphs,
* **etf_offset**: When a packet\s txtime is scheduled, the txtime set is the current time offset by etf_offset * **etf_offset**: When a packet\s txtime is scheduled, the txtime set is the current time offset by etf_offset
* **route**: How the boards are connected. switch means they are connected by a switch (cheap, unmanaged), E2E * **route**: How the boards are connected. switch means they are connected by a switch (cheap, unmanaged), E2E
* **qdisc**: qdisc used to send packets * **qdisc**: qdisc used to send packets
* **client**: Device which sent the packets
* **XDP**: Were XDP sockets used
### cyclictest_wake-up_latency results ### cyclictest_wake-up_latency results
Uses cyclictest from the rt-tests test suite to measure wake-up latency. A real-time thread is run on CPU1, and wakes up at a regular interval (specified by the interval parameter) using clock_nanosleep. It then uses clock_gettime and computes the difference between the scheduled wake-up time and the effective wake-up time measured by clock_gettime. Uses cyclictest from the rt-tests test suite to measure wake-up latency. A real-time thread is run on CPU1, and wakes up at a regular interval (specified by the interval parameter) using clock_nanosleep. It then uses clock_gettime and computes the difference between the scheduled wake-up time and the effective wake-up time measured by clock_gettime.
The command used is: cyclictest -p `prio` -a1 -t1 -n -h 200 -q -i `interval` The command used is: cyclictest -p `prio` -a1 -t1 -n -h 200 -q -i `interval`
**Common test metadata:** Task priority: 98, Interval: 200us, Boot Parameters: isolcpus,rcu_nocbs,irqaffinity, ETF qdisc delta: None, Device and processor load: None, qdisc: pfifo_fast **Common test metadata:** Task priority: 98, Interval: 200us, Boot Parameters: isolcpus,rcu_nocbs,irqaffinity, ETF qdisc delta: None, Device and processor load: None, qdisc: pfifo_fast, Client device: A20, XDP: no
Metadata | Minimum | Maximum | Average | Standard deviation | Lost packets Metadata | Minimum | Maximum | Average | Standard deviation | Lost packets
-------------------------------- | ------------------- | ------------------- | ------------------- | ------------------- | ------------ -------------------------------- | ------------------- | ------------------- | ------------------- | ------------------- | ------------
...@@ -40,7 +42,7 @@ A20, 5.6, 18h13 (328153384) | 8.0000us | 73.0000us | 9 ...@@ -40,7 +42,7 @@ A20, 5.6, 18h13 (328153384) | 8.0000us | 73.0000us | 9
Two shuttles connected end to end with an ethernet cable and synchronized with PTP emit signals, and a logic analyzer measures variation in those signals, similar to "Shuttle controlled A20 signal output jitter" measures Two shuttles connected end to end with an ethernet cable and synchronized with PTP emit signals, and a logic analyzer measures variation in those signals, similar to "Shuttle controlled A20 signal output jitter" measures
**Common test metadata:** Device: Shuttle, Linux kernel version: 4.19, Task priority: 98, Interval: 10000us, Boot Parameters: isolcpus,rcu_nocbs,irqaffinity, ETF qdisc delta: None, Device and processor load: None, Test duration: 0h10, Speed (Mb/s): 1000, ETF offset: 500us, Packet route: E2E, qdisc: pfifo_fast **Common test metadata:** Device: Shuttle, Linux kernel version: 4.19, Task priority: 98, Interval: 10000us, Boot Parameters: isolcpus,rcu_nocbs,irqaffinity, ETF qdisc delta: None, Device and processor load: None, Test duration: 0h10, Speed (Mb/s): 1000, ETF offset: 500us, Packet route: E2E, qdisc: pfifo_fast, Client device: A20, XDP: no
Minimum | Maximum | Average | Standard deviation | Lost packets Minimum | Maximum | Average | Standard deviation | Lost packets
-------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | ------------ -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | ------------
...@@ -49,4 +51,18 @@ Minimum | Maximum | Average ...@@ -49,4 +51,18 @@ Minimum | Maximum | Average
![alt text](measures/graphs/shuttle_signal_jitterShuttle signal output jitter.png "shuttle_signal_jitter Graph") ![alt text](measures/graphs/shuttle_signal_jitterShuttle signal output jitter.png "shuttle_signal_jitter Graph")
### packet_jitter results
An UDP packet is periodically sent from one board to another using a real time thread. The receiving board calculates the intervals between the packets it receives, and sees how much it differs from the scheduled interval.
**Common test metadata:** Device: A20, Linux kernel version: 5.6, Task priority: 98, Interval: 1000us, Boot Parameters: isolcpus,rcu_nocbs,irqaffinity, ETF qdisc delta: None, Device and processor load: None, Test duration: 0h0, Speed (Mb/s): 1000, ETF offset: 500us, Packet route: E2E, qdisc: pfifo_fast, Client device: Shuttle
Metadata | Minimum | Maximum | Average | Standard deviation | Lost packets
----------- | ----------------- | ----------------- | ----------------- | ------------------ | ------------
**XDP** | **Packet jitter** | **Packet jitter** | **Packet jitter** | **Packet jitter** |
yes (11582) | 0.0000us | 100.0000us | 59.4658us | 3.4778us | 0
no (10949) | 0.0000us | 239.0000us | 140.4619us | 3.0228us | 0
![alt text](measures/graphs/packet_jitterPacket jitter.png "packet_jitter Graph")
{"cyclictest_wake-up_latency": {"ids": [3, 5], "next_id": 6}, "shuttle_signal_jitter": {"ids": [0], "next_id": 1}} {"cyclictest_wake-up_latency": {"ids": [3, 5], "next_id": 6}, "shuttle_signal_jitter": {"ids": [0], "next_id": 1}, "packet_jitter": {"ids": [0, 1], "next_id": 2}}
\ No newline at end of file \ No newline at end of file
{"measure_sets": [{"measure_type": "packet_jitter", "props_names": ["Packet jitter"], "units": ["us"], "middle": 0, "props": [[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 1, 1, 0, 1, 3, 8, 7, 2, 6, 12, 19, 13, 6, 8, 6, 21, 45, 78, 79, 49, 22, 16, 25, 55, 289, 1479, 3907, 3478, 1166, 254, 72, 32, 15, 16, 17, 67, 80, 77, 37, 11, 11, 7, 5, 16, 17, 13, 1, 3, 10, 5, 1, 3, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0]], "props_type": "histogram", "metadata": {"dev": "A20", "ker": "5.6", "prio": "98", "i": "1000us", "boot_p": "isolcpus,rcu_nocbs,irqaffinity", "delta": "None", "load": "None", "duration": "0h0", "speed": "1000", "etf_offset": "500us", "route": "E2E", "qdisc": "pfifo_fast", "client": "Shuttle", "XDP": "yes", "lost_packets": "0"}}]}
\ No newline at end of file
{"measure_sets": [{"measure_type": "packet_jitter", "props_names": ["Packet jitter"], "units": ["us"], "middle": 0, "props": [[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 1, 1, 1, 3, 1, 1, 2, 3, 0, 0, 4, 1, 4, 3, 3, 15, 17, 34, 47, 140, 522, 1846, 3132, 2791, 1501, 532, 148, 75, 35, 25, 8, 4, 6, 3, 3, 3, 4, 1, 2, 3, 2, 2, 0, 1, 1, 1, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], "props_type": "histogram", "metadata": {"dev": "A20", "ker": "5.6", "prio": "98", "i": "1000us", "boot_p": "isolcpus,rcu_nocbs,irqaffinity", "delta": "None", "load": "None", "duration": "0h0", "speed": "1000", "etf_offset": "500us", "route": "E2E", "qdisc": "pfifo_fast", "client": "Shuttle", "XDP": "no", "lost_packets": "0"}}]}
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment