Commit 166a884d authored by Joanne Hugé's avatar Joanne Hugé

Add 15h A20-shuttle measure and packet reception latency measures

parent 0d5bcea9
## Packet reception latency
Shuttle to A20, no XDP
With tracing and timestamps (some overhead):
| Latency measured | min | avg | max |
| -------------------------------------- | ------ | ------ | ------ |
| IRQ -> RX SO_TIMESTAMP | 27us | 31us | 136us |
| RX SO_TIMESTAMP -> Userspace timestamp | 85us | 93us | 247us |
| IRQ -> Userspace timestamp | 112us | 124us | 383us |
With timestamps (little overhead):
| Latency measured | min | avg | max |
| -------------------------------------- | ------ | ------ | ------ |
| Shuttle timestamp -> A20 timestamp | 88us | 88us | 300us |
| RX SO_TIMESTAMP (A20) | 67us | 172us | 173us |
| TX SO_TIMESTAMP -> (Shuttle) | 2us | 18us | 20us |
...@@ -395,6 +395,11 @@ class MeasureSetHandler: ...@@ -395,6 +395,11 @@ class MeasureSetHandler:
report.write("\n") report.write("\n")
report.write("\n") report.write("\n")
with open("additional-measures.md") as additional_measures:
report.write("## Additional measures\n\n")
report.write("".join([l for l in additional_measures]))
def update_report_info(self): def update_report_info(self):
for mtype in self.measure_sets: for mtype in self.measure_sets:
......
...@@ -38,19 +38,6 @@ A20, 5.6, 18h13 (328153384) | 8.0000us | 73.0000us | 9 ...@@ -38,19 +38,6 @@ A20, 5.6, 18h13 (328153384) | 8.0000us | 73.0000us | 9
![alt text](measures/graphs/cyclictest_wake-up_latencyWake-up latency.png "cyclictest_wake-up_latency Graph") ![alt text](measures/graphs/cyclictest_wake-up_latencyWake-up latency.png "cyclictest_wake-up_latency Graph")
### shuttle_signal_jitter results
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, Client device: A20, XDP: no, Callback delay: none
Minimum | Maximum | Average | Standard deviation | Lost packets
-------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | ------------
**Shuttle signal output jitter** | **Shuttle signal output jitter** | **Shuttle signal output jitter** | **Shuttle signal output jitter** |
0.0000us | 374.0000us | 141.6740us | 97.6712us | 0
![alt text](measures/graphs/shuttle_signal_jitterShuttle signal output jitter.png "shuttle_signal_jitter Graph")
### packet_jitter results ### 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. 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.
...@@ -94,11 +81,33 @@ Metadata | Minimum | Max ...@@ -94,11 +81,33 @@ Metadata | Minimum | Max
---------------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------ ---------------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | ------------
**i, duration, delay** | **edge jitter - period jitter** | **edge jitter - period jitter** | **edge jitter - period jitter** | **edge jitter - period jitter** | **i, duration, delay** | **edge jitter - period jitter** | **edge jitter - period jitter** | **edge jitter - period jitter** | **edge jitter - period jitter** |
1000us, 9h59, 600us (35999280, 71998560) | 0.0000us - 958.0000us | 129.0000us - 1063.0000us | 7.5260us - 999.5439us | 9.5594us - 1.7508us | 0 1000us, 9h59, 600us (35999280, 71998560) | 0.0000us - 958.0000us | 129.0000us - 1063.0000us | 7.5260us - 999.5439us | 9.5594us - 1.7508us | 0
10000us, 0h59, 5000us (359994, 719988) | 0.0000us - 9947.0000us | 75.0000us - 10057.0000us | 3.1981us - 9999.6329us | 5.7902us - 4.0873us | 0 500us, 13h59, 400us (100798095, 201596190) | 0.0000us - 360.0000us | 265.0000us - 582.0000us | 10.5889us - 499.5328us | 9.7824us - 1.3678us | 0
400us, 0h59, 360us (8999831, 17999662) | 0.0000us - 333.0000us | 85.0000us - 471.0000us | 11.6154us - 399.5358us | 10.5358us - 1.1869us | 0
![alt text](measures/graphs/shuttle_a20_signal_jitteredge jitter.png "shuttle_a20_signal_jitter Graph") ![alt text](measures/graphs/shuttle_a20_signal_jitteredge jitter.png "shuttle_a20_signal_jitter Graph")
![alt text](measures/graphs/shuttle_a20_signal_jitterperiod jitter.png "shuttle_a20_signal_jitter Graph") ![alt text](measures/graphs/shuttle_a20_signal_jitterperiod jitter.png "shuttle_a20_signal_jitter Graph")
## Additional measures
## Packet reception latency
Shuttle to A20, no XDP
With tracing and timestamps (some overhead):
| Latency measured | min | avg | max |
| -------------------------------------- | ------ | ------ | ------ |
| IRQ -> RX SO_TIMESTAMP | 27us | 31us | 136us |
| RX SO_TIMESTAMP -> Userspace timestamp | 85us | 93us | 247us |
| IRQ -> Userspace timestamp | 112us | 124us | 383us |
With timestamps (little overhead):
| Latency measured | min | avg | max |
| -------------------------------------- | ------ | ------ | ------ |
| Shuttle timestamp -> A20 timestamp | 88us | 88us | 300us |
| RX SO_TIMESTAMP (A20) | 67us | 172us | 173us |
| TX SO_TIMESTAMP -> (Shuttle) | 2us | 18us | 20us |
{"cyclictest_wake-up_latency": {"ids": [3, 5], "next_id": 6}, "shuttle_signal_jitter": {"ids": [0], "next_id": 1}, "packet_jitter": {"ids": [0, 1, 2, 3, 4, 5, 6], "next_id": 7}, "ping_interval": {"ids": [0], "next_id": 1}, "shuttle_a20_signal_jitter": {"ids": [4, 5, 6], "next_id": 7}} {"cyclictest_wake-up_latency": {"ids": [3, 5], "next_id": 6}, "packet_jitter": {"ids": [0, 1, 2, 3, 4, 5, 6], "next_id": 7}, "ping_interval": {"ids": [0], "next_id": 1}, "shuttle_a20_signal_jitter": {"ids": [4, 7], "next_id": 8}}
\ No newline at end of file \ No newline at end of file
{"measure_sets": [{"measure_type": "shuttle_a20_signal_jitter", "props_names": ["edge jitter", "period jitter"], "units": ["us", "us"], "middle": 0, "props": [[600567, 638826, 637287, 585520, 546551, 458504, 401419, 363606, 337218, 291855, 271012, 251851, 233883, 204018, 189404, 185663, 191452, 190129, 186978, 186355, 190121, 184212, 166840, 153938, 151357, 147059, 135477, 128218, 118057, 103336, 84692, 69572, 56512, 46223, 34166, 27185, 22443, 18225, 16807, 18588, 18684, 18517, 17367, 14713, 13212, 12025, 9601, 8947, 8432, 8233, 7248, 6976, 6042, 5366, 5129, 5194, 4397, 2016, 631, 389, 264, 226, 174, 167, 122, 105, 106, 67, 60, 50, 41, 33, 43, 34, 20, 16, 12, 11, 9, 8, 6, 1, 3, 4, 2, 2], [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, 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, 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, 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, 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, 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, 1, 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, 5, 6, 12, 31, 64, 94, 169, 204, 292, 354, 422, 513, 737, 1055, 1521, 1938, 2522, 3184, 4136, 5660, 9131, 14794, 18071, 32569, 167081, 1571292, 7045174, 7026857, 1751575, 202798, 50106, 24139, 17779, 10391, 6647, 4324, 3316, 2753, 2751, 2573, 2610, 2321, 1930, 1430, 1118, 756, 611, 502, 409, 318, 230, 151, 100, 54, 42, 18, 5, 4, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]], "props_type": "histogram", "metadata": {"dev": "A20", "ker": "5.6", "prio": "98", "i": "400us", "boot_p": "isolcpus,rcu_nocbs,irqaffinity", "delta": "None", "load": "None", "duration": "0h59", "speed": "1000", "etf_offset": "500us", "route": "E2E", "qdisc": "pfifo_fast", "client": "A20", "XDP": "no", "delay": "360us", "lost_packets": "0"}}]} {"measure_sets": [{"measure_type": "shuttle_a20_signal_jitter", "props_names": ["edge jitter", "period jitter"], "units": ["us", "us"], "middle": 0, "props": [[8257327, 8344463, 7783391, 7096625, 6390296, 5606943, 4787888, 4015736, 3445982, 2970116, 2632229, 2409304, 2227238, 2100931, 2004104, 1931109, 1894616, 1844486, 1819007, 1823767, 1835950, 1861141, 1864219, 1821236, 1766006, 1680005, 1576069, 1474049, 1341584, 1204611, 1031396, 839412, 669063, 521573, 413333, 337240, 262190, 202881, 159270, 120056, 90984, 72949, 57979, 44693, 34459, 29228, 22015, 14955, 11022, 8229, 6937, 5842, 4890, 4178, 3542, 2912, 2459, 2065, 1713, 1567, 1245, 1046, 868, 721, 542, 470, 367, 363, 295, 310, 273, 250, 237, 214, 177, 176, 149, 146, 101, 102, 87, 75, 65, 68, 49, 46, 38, 24, 13, 9, 9, 9, 5, 3, 1, 1, 2, 1, 0, 2, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 3, 2, 2, 1, 3, 1, 1, 2, 3, 2, 0, 1, 1, 1, 1, 4, 2, 1, 1, 0, 0, 2, 1, 1, 2, 0, 0, 2, 0, 2, 2, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 2, 0, 1, 1, 1, 2, 0, 0, 1, 1, 2, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 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, 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, 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, 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, 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, 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, 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, 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, 1, 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, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 2, 1, 0, 0, 0, 2, 1, 0, 0, 0, 2, 1, 3, 1, 2, 3, 13, 11, 11, 24, 33, 74, 185, 479, 1070, 2199, 4466, 8154, 13666, 21172, 30250, 39533, 50179, 60433, 72876, 88899, 116008, 164434, 252430, 565979, 3236242, 22631054, 74263646, 70869460, 21897374, 4903234, 1105684, 340153, 182846, 120568, 94506, 77580, 59425, 42956, 33425, 30451, 30304, 30854, 29994, 28051, 24388, 20575, 16479, 12702, 8922, 5744, 3269, 1865, 951, 454, 220, 89, 31, 20, 12, 6, 8, 10, 8, 3, 4, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1]], "props_type": "histogram", "metadata": {"dev": "A20", "ker": "5.6", "prio": "98", "i": "500us", "boot_p": "isolcpus,rcu_nocbs,irqaffinity", "delta": "None", "load": "None", "duration": "13h59", "speed": "1000", "etf_offset": "500us", "route": "E2E", "qdisc": "pfifo_fast", "client": "A20", "XDP": "no", "delay": "400us", "lost_packets": "0"}}]}
\ No newline at end of file \ No newline at end of file
{"measure_sets": [{"measure_type": "shuttle_signal_jitter", "props_names": ["Shuttle signal output jitter"], "units": ["us"], "middle": 0, "props": [[296, 321, 309, 295, 311, 304, 285, 291, 301, 284, 307, 300, 283, 294, 299, 275, 269, 293, 297, 282, 276, 325, 281, 298, 296, 273, 292, 268, 297, 256, 271, 310, 287, 285, 302, 277, 272, 283, 270, 260, 271, 276, 270, 280, 279, 269, 275, 275, 278, 282, 277, 246, 273, 279, 257, 251, 252, 261, 275, 279, 261, 244, 252, 256, 260, 271, 254, 258, 245, 247, 255, 235, 222, 235, 270, 227, 229, 228, 231, 224, 225, 225, 207, 225, 210, 211, 196, 214, 206, 195, 186, 219, 199, 194, 202, 192, 177, 201, 171, 175, 181, 173, 180, 177, 169, 169, 160, 172, 177, 149, 172, 162, 153, 153, 146, 153, 162, 158, 148, 143, 151, 143, 120, 124, 141, 131, 129, 131, 120, 131, 132, 132, 99, 134, 135, 104, 110, 119, 107, 112, 130, 107, 96, 106, 114, 101, 111, 112, 100, 107, 110, 101, 95, 110, 102, 105, 106, 102, 105, 118, 120, 93, 108, 100, 110, 114, 111, 114, 119, 106, 106, 103, 125, 129, 115, 130, 137, 126, 117, 139, 136, 118, 147, 135, 128, 149, 150, 149, 151, 151, 151, 144, 162, 156, 153, 153, 159, 155, 144, 162, 180, 154, 191, 167, 177, 179, 172, 171, 180, 189, 160, 177, 183, 196, 183, 193, 190, 198, 198, 197, 195, 178, 189, 208, 190, 208, 211, 206, 198, 180, 192, 199, 211, 212, 197, 223, 221, 210, 203, 205, 224, 207, 200, 215, 216, 222, 224, 228, 217, 225, 205, 215, 206, 219, 209, 203, 210, 193, 201, 218, 202, 181, 199, 191, 196, 198, 174, 181, 170, 190, 186, 175, 162, 167, 171, 153, 163, 154, 157, 145, 154, 148, 145, 142, 142, 159, 138, 131, 141, 133, 126, 122, 133, 118, 122, 123, 111, 112, 123, 97, 94, 101, 111, 106, 97, 108, 95, 88, 93, 92, 74, 85, 91, 68, 93, 79, 71, 68, 70, 64, 61, 64, 61, 56, 54, 56, 53, 45, 54, 42, 40, 45, 41, 29, 42, 27, 31, 18, 23, 20, 24, 26, 22, 19, 13, 16, 9, 18, 8, 10, 17, 10, 8, 4, 7, 4, 1, 2, 4, 1, 6, 4, 2, 1, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0, 1]], "props_type": "histogram", "metadata": {"dev": "Shuttle", "ker": "4.19", "prio": "98", "i": "10000us", "boot_p": "isolcpus,rcu_nocbs,irqaffinity", "delta": "None", "load": "None", "duration": "0h10", "speed": "1000", "etf_offset": "500us", "route": "E2E", "qdisc": "pfifo_fast", "client": "A20", "XDP": "no", "delay": "none", "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