@@ -20,6 +20,7 @@ Measures measuring the same propriety are grouped together in tables and graphs,
***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
***server**: Device which received the packets
***XDP**: Were XDP sockets used
***delay**: Callback schedule delay in us
...
...
@@ -28,27 +29,28 @@ Measures measuring the same propriety are grouped together in tables and graphs,
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, Client device: A20, XDP: no
**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, XDP: no
Metadata | Minimum | Maximum | Average | Standard deviation | Lost packets
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.
A UDP packet is periodically sent from one device to another using a real time thread. The receiving device calculates the intervals between the packets it receives, and sees how much it differs from the scheduled interval.
Same setup as packet jitter measures. Client and server are synchronized with PTP, the client checks the time before sending the packet, and sends it in the packet. The servechecks the time after receiving the packet, and records the difference between both timestamps to calculate latency.
{"measure_sets":[{"measure_type":"shuttle_a20_signal_jitter","props_names":["edge to edge","period"],"units":["us","us"],"middle":0,"props":[[5734257,5168042,4043516,3067680,2379201,1939009,1599983,1290702,1023491,784965,617117,509686,439411,399061,370748,352073,343861,331345,324823,324024,321931,324863,328791,325885,325305,326105,327722,328588,315892,293577,266053,242344,220569,187493,149460,115307,87105,67892,55554,45284,39381,37255,35949,34565,30062,26305,22937,19780,14405,9310,6457,5410,3749,2380,1741,1472,1301,987,884,735,654,605,431,358,256,249,212,162,153,159,128,123,132,128,116,134,138,111,91,85,63,67,62,51,56,53,64,60,66,71,64,62,45,42,46,47,26,31,20,13,20,8,7,6,7,2,5,1,1,1,0,1,3,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,2,3,0,4,8,5,8,14,21,48,61,130,327,604,1177,2296,3707,5521,7277,9237,11097,12664,14027,16046,18066,20954,24104,27785,32427,39279,49325,67863,107059,289808,1779306,8960078,24761891,23504503,8604311,2632300,485641,115137,53905,36299,33121,32423,27634,22168,17234,15448,15184,15076,13919,12576,10341,8213,7177,6724,7153,7937,8866,8936,8787,7570,6110,4346,3072,1901,1128,655,282,150,65,15,7,3,2,2,1,2,0,2,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1]],"props_type":"histogram","metadata":{"dev":"A20","ker":"5.6","prio":"98","i":"1000us","boot_p":"isolcpus,rcu_nocbs,irqaffinity","delta":"None","load":"None","duration":"9h59","speed":"1000","etf_offset":"500us","route":"E2E","qdisc":"pfifo_fast","client":"A20","server":"A20","XDP":"no","delay":"600us","lost_packets":"0"}}]}
{"measure_sets":[{"measure_type":"shuttle_a20_signal_jitter","props_names":["edge to edge","period"],"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","server":"A20","XDP":"no","delay":"400us","lost_packets":"0"}}]}
{"measure_sets":[{"measure_type":"shuttle_a20_signal_jitter","props_names":["edge to edge","period"],"units":["us","us"],"middle":0,"props":[[8183287,8424771,8039602,7451076,6909046,6429988,5822968,5261034,4812280,4275843,3766005,3416967,3060235,2777081,2547466,2392726,2308681,2226862,2131337,2047233,1956650,1880294,1789020,1645838,1497282,1354765,1211021,1020612,836823,657940,497613,403454,311115,207959,132939,91715,57421,33984,21288,15864,11283,9495,8431,7664,6721,6093,5210,4337,3616,2956,2495,2020,1548,1291,1190,1060,773,722,636,684,657,616,649,666,624,690,714,712,696,649,633,649,590,561,561,520,465,358,125,98,59,42,26,19,17,11,10,8,2,6,4,4,3,3,1,1,2,0,1,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,1,0,0,0,0,0,1,1,1,1,3,4,6,10,12,19,36,42,70,62,111,142,214,330,759,1689,3696,7486,13949,22731,33733,47174,59458,70929,81599,94937,118997,169090,286583,780808,10670257,94090623,93837861,12875708,1580087,328125,179817,119407,85386,62917,48345,40900,37694,36661,34840,32270,29441,26112,23551,20074,15799,11017,6675,3560,1742,756,363,227,154,113,100,67,62,47,26,17,11,5,10,2,3,0,2,3,0,1,0,0,1,0,0,1,0,0,0,1,0,0,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":"14h59","speed":"1000","etf_offset":"500us","route":"E2E","qdisc":"pfifo_fast","client":"A20","server":"A20","XDP":"yes","delay":"350us","lost_packets":"0"}}]}
{"measure_sets":[{"measure_type":"shuttle_a20_signal_jitter","props_names":["edge to edge","period"],"units":["us","us"],"middle":0,"props":[[1057533,1047206,1058072,1037666,1024925,967503,928475,835906,780879,714538,656200,594601,546354,477986,414040,363333,336232,297891,274893,230815,206248,187233,156432,129737,116426,87318,59470,47696,32153,22255,16242,12715,10013,7847,8984,8334,6711,6304,5887,4846,3706,3492,2862,2580,2243,1925,1244,979,736,446,277,223,188,155,123,94,70,51,46,37,33,21,19,17,18,12,6,7,5,3,13,5,2,3,1,4,1,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,1,2,3,2,9,7,7,10,17,22,39,37,55,52,73,128,150,262,281,360,358,396,354,397,480,576,779,853,1066,1452,1967,3149,4429,10993,28347,25890,13038,40189,107324,58595,13690,9630,10516,19706,25115,28139,79857,1273691,13172953,12514086,1500499,220389,35943,24274,17714,10549,8887,9466,13352,88439,97556,22631,12089,32686,25280,8400,4035,3263,2685,1963,1482,1201,1049,849,807,724,528,410,325,304,354,320,306,276,216,153,69,34,18,10,13,2,4,1,2,0,2,0,0,1,0,2]],"props_type":"histogram","metadata":{"dev":"A20","ker":"5.6","prio":"98","i":"300us","boot_p":"isolcpus,rcu_nocbs,irqaffinity","delta":"None","load":"None","duration":"1h13","speed":"1000","etf_offset":"500us","route":"E2E","qdisc":"pfifo_fast","client":"A20","server":"A20","XDP":"yes","delay":"250us","lost_packets":"0"}}]}
Description: 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`
##packet_jitter
Ignored metadata: delay
Description: 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.
Ignored metadata: delay,dev
Description: A UDP packet is periodically sent from one device to another using a real time thread. The receiving device calculates the intervals between the packets it receives, and sees how much it differs from the scheduled interval.
##packet_latency
Ignored metadata: delay,dev
Description: Same setup as packet jitter measures. Client and server are synchronized with PTP, the client checks the time before sending the packet, and sends it in the packet. The servechecks the time after receiving the packet, and records the difference between both timestamps to calculate latency.
##packet_rx_timestamps
Ignored metadata: delay
Ignored metadata: delay,client,server
Description: An UDP packet is periodically sent from one board to another using a real time thread. The receiving board uses the SO_TIMESTAMPING option to see when the packet entered the kernel, and generates timestamps with clock_gettime once the packets enters userspace to compute the time the packet spent in kernel space.
##packet_tx_timestamps
Ignored metadata: delay
Ignored metadata: delay,client,server
Description: Similar to packet_rx_timestamps, but on the transmitting board.
##packet_rtt
Ignored metadata: delay
Ignored metadata: delay,dev
Description: A UDP packet is periodically sent from one board to another and sent back as soon as it arrives using a real time thread. The round trip time is computed with clock_gettime on the transmitting board.
##shuttle_a20_signal_jitter
Ignored metadata: dev,client
Ignored metadata: dev,client,server
Description: Two A20 boards are connected end to end with an ethernet cable to a shuttle. All devices are synchronized with PTP. The shuttle sends packets containing timestamps to the boards, and the boards emit a signal at the given timestamp. A logic analyzer measures the variation difference between the signals of the two boards.
##shuttle_signal_jitter
Ignored metadata: delay
Ignored metadata: delay,client,server,dev
Description: 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
##ping_interval
Ignored metadata: delta,qdisc,etf_offset,delay
Description: Ping RTT from A20 to shuttle, with fixed interval