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,
* **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
* **qdisc**: qdisc used to send packets
* **client**: Device which sent the packets
* **XDP**: Were XDP sockets used
### 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.
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
-------------------------------- | ------------------- | ------------------- | ------------------- | ------------------- | ------------
......@@ -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
**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
-------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | ------------
......@@ -49,4 +51,18 @@ Minimum | Maximum | Average
![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}}
\ No newline at end of file
{"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
{"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