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

Merge branch 'measure-analysis'

parents 3bbec828 b3fb9f8a
...@@ -263,9 +263,9 @@ class MeasureSetHandler: ...@@ -263,9 +263,9 @@ class MeasureSetHandler:
report.write("## Measurements\n\n") report.write("## Measurements\n\n")
report.write("{}\n\n".format(MeasureSetHandler.report_description)) report.write("{}\n\n".format(MeasureSetHandler.report_description))
report.write("### Abbreviations used\n\n") report.write("### Description of the metadata associated to each test\n\n")
for abbr_name in MeasureSet.abbreviations: for abbr_name in MeasureSet.metadata_descriptions:
report.write("* {}: {}\n".format(abbr_name, MeasureSet.abbreviations[abbr_name])) report.write("* **{}**: {}\n".format(abbr_name, MeasureSet.metadata_descriptions[abbr_name]))
report.write("\n") report.write("\n")
for mtype in self.measure_sets: for mtype in self.measure_sets:
...@@ -326,6 +326,20 @@ class MeasureSet: ...@@ -326,6 +326,20 @@ class MeasureSet:
'duration': 'Test duration', 'duration': 'Test duration',
} }
metadata_descriptions = {
'ker': 'Linux kernel version used',
'prio': 'Priority of the real-time thread',
'i': 'Interval between each packet transmission',
'board': 'Name of the board used, one of three : Emerald, Slate or Onyx. (All boards are identical)',
'boot_p': 'Boot Parameters passed to u-boot',
'delta': 'ETF qdisc delta value',
'load': 'External device and processor load during the test',
'duration': 'Duration of the test',
'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'"
"means they are directly connected end to end",
}
descriptions = { descriptions = {
'cyclictest_wake-up_latency': "Uses cyclictest from the rt-tests test suite to measure wake-up latency. " 'cyclictest_wake-up_latency': "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 " "A real-time thread is run on CPU1, and wakes up at a regular interval "
...@@ -353,16 +367,19 @@ class MeasureSet: ...@@ -353,16 +367,19 @@ class MeasureSet:
def __init__(self): def __init__(self):
# Default values
self.metadata = {} self.metadata = {}
self.metadata['board'] = "Emerald" self.metadata['board'] = "Emerald"
self.metadata['ker'] = "4.19" self.metadata['ker'] = "4.19"
self.metadata['boot_p'] = "isolcpus" self.metadata['boot_p'] = "isolcpus"
self.metadata['i'] = "200us" self.metadata['i'] = "200us"
self.metadata['delta'] = "200us" self.metadata['delta'] = "none"
self.metadata['prio'] = "99" self.metadata['prio'] = "99"
self.metadata['load'] = "ssh" self.metadata['load'] = "ssh"
self.metadata['duration'] = "24h" self.metadata['duration'] = "24h"
self.metadata['qdisc'] = "pfifo_fast" self.metadata['qdisc'] = "pfifo_fast"
self.metadata['etf_offset'] = "none"
self.metadata['route'] = "switch"
self.props = [] self.props = []
self.props_name = [] self.props_name = []
......
...@@ -7,22 +7,24 @@ Measures measuring the same propriety are grouped together in tables and graphs, ...@@ -7,22 +7,24 @@ Measures measuring the same propriety are grouped together in tables and graphs,
Currently, most of the measures need to be redone, as the code for sending the packets has changed and gave different results. Currently, most of the measures need to be redone, as the code for sending the packets has changed and gave different results.
### Abbreviations used ### Description of the metadata associated to each test
* ker: Linux kernel version * **ker**: Linux kernel version used
* prio: Task priority * **prio**: Priority of the real-time thread
* i: Interval * **i**: Interval between each packet transmission
* board: Board name * **board**: Name of the board used, one of three : Emerald, Slate or Onyx. (All boards are identical)
* boot_p: Boot Parameters * **boot_p**: Boot Parameters passed to u-boot
* delta: ETF qdisc delta * **delta**: ETF qdisc delta value
* load: Device and processor load * **load**: External device and processor load during the test
* duration: Test duration * **duration**: Duration of the test
* **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'means they are directly connected end to end
### 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. The command used is: cyclictest -p `prio` -a1 -t1 -n -h 200 -q -i `interval` 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:** Linux kernel version: 4.19, Boot Parameters: isolcpus, Interval: 200us, ETF qdisc delta: 200us, Task priority: 99, qdisc: pfifo_fast **Common test metadata:** Linux kernel version: 4.19, Boot Parameters: isolcpus, Interval: 200us, ETF qdisc delta: 200us, Task priority: 99, qdisc: pfifo_fast, etf_offset: none, route: switch
Metadata | Min | Max | Avg | Var Metadata | Min | Max | Avg | Var
------------------------- | ------------------- | ------------------- | ------------------- | ------------------- ------------------------- | ------------------- | ------------------- | ------------------- | -------------------
...@@ -38,7 +40,7 @@ Emerald, 24h, ssh | 12.0000us | 80.0000us | 15.4101u ...@@ -38,7 +40,7 @@ Emerald, 24h, ssh | 12.0000us | 80.0000us | 15.4101u
Similar to packet_recv_timestamps, but on the transmitting board. Similar to packet_recv_timestamps, but on the transmitting board.
**Common test metadata:** Linux kernel version: 4.19, Boot Parameters: isolcpus, Task priority: 99, Device and processor load: ssh **Common test metadata:** Linux kernel version: 4.19, Boot Parameters: isolcpus, Task priority: 99, Device and processor load: ssh, etf_offset: none, route: switch
Metadata | Min | Max | Avg | Var Metadata | Min | Max | Avg | Var
--------------------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- --------------------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | -----------------------------
...@@ -56,7 +58,7 @@ Onyx, 1000us, 72h24, 160us, etf | 1.0000us - 33.0000us | 65.000 ...@@ -56,7 +58,7 @@ Onyx, 1000us, 72h24, 160us, etf | 1.0000us - 33.0000us | 65.000
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 and user space. 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 and user space.
**Common test metadata:** Linux kernel version: 4.19, Boot Parameters: isolcpus, Task priority: 99, Device and processor load: ssh **Common test metadata:** Linux kernel version: 4.19, Boot Parameters: isolcpus, Task priority: 99, Device and processor load: ssh, etf_offset: none, route: switch
Metadata | Min | Max | Avg | Var Metadata | Min | Max | Avg | Var
---------------------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- ---------------------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | -----------------------------
...@@ -90,7 +92,7 @@ Metadata | Min | Max ...@@ -90,7 +92,7 @@ Metadata | Min | Max
An 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. An 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.
**Common test metadata:** Board name: Onyx, Linux kernel version: 4.19, Boot Parameters: isolcpus, Interval: 10000us, ETF qdisc delta: 200us, Task priority: 99, Device and processor load: ssh, Test duration: 0h4, qdisc: pfifo_fast **Common test metadata:** Board name: Onyx, Linux kernel version: 4.19, Boot Parameters: isolcpus, Interval: 10000us, ETF qdisc delta: 200us, Task priority: 99, Device and processor load: ssh, Test duration: 0h4, qdisc: pfifo_fast, etf_offset: none, route: switch
Min | Max | Avg | Var Min | Max | Avg | Var
---------- | ---------- | ---------- | ---------- ---------- | ---------- | ---------- | ----------
......
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