diff options
-rw-r--r-- | meta/recipes-rt/rt-tests/files/cyclictest-finish-removal-of-1-second-first-loops.patch | 58 | ||||
-rw-r--r-- | meta/recipes-rt/rt-tests/rt-tests.inc | 3 |
2 files changed, 60 insertions, 1 deletions
diff --git a/meta/recipes-rt/rt-tests/files/cyclictest-finish-removal-of-1-second-first-loops.patch b/meta/recipes-rt/rt-tests/files/cyclictest-finish-removal-of-1-second-first-loops.patch new file mode 100644 index 0000000000..ea4f3cc176 --- /dev/null +++ b/meta/recipes-rt/rt-tests/files/cyclictest-finish-removal-of-1-second-first-loops.patch | |||
@@ -0,0 +1,58 @@ | |||
1 | From 8959451a8ec5dc83dcb2dba6701abe8bf419e12c Mon Sep 17 00:00:00 2001 | ||
2 | Message-Id: <8959451a8ec5dc83dcb2dba6701abe8bf419e12c.1358783585.git.Jim.Somerville@windriver.com> | ||
3 | From: Jim Somerville <Jim.Somerville@windriver.com> | ||
4 | Date: Mon, 21 Jan 2013 10:50:18 -0500 | ||
5 | Subject: [PATCH 1/1] cyclictest: finish removal of 1 second first loops | ||
6 | |||
7 | Observation: | ||
8 | Huge latencies reported close to 1 second when certain options | ||
9 | are used in cyclictest. | ||
10 | |||
11 | Problem: | ||
12 | [ commit da4956cbcaf7945554f30e4d3a9be09b1431b19a | ||
13 | use interval on first loop instead of 1 second ] | ||
14 | removed the 1 second first timing loop out of the main path | ||
15 | in cyclictest but left it in two other paths, namely the ones | ||
16 | triggered by these two options: | ||
17 | -r --relative use relative timer instead of absolute | ||
18 | -s --system use sys_nanosleep and sys_setitimer | ||
19 | This causes huge latencies of close to 1 second to be reported | ||
20 | by cyclictest with certain uses of those two options. | ||
21 | |||
22 | Fix: | ||
23 | Extend the original commit to remove the 1 second hardcoded | ||
24 | timer values from the RELTIME and ITIMER options. Use the | ||
25 | the actual interval instead. | ||
26 | |||
27 | Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com> | ||
28 | --- | ||
29 | src/cyclictest/cyclictest.c | 6 ++---- | ||
30 | 1 files changed, 2 insertions(+), 4 deletions(-) | ||
31 | |||
32 | diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c | ||
33 | index 11b6cea..8487409 100644 | ||
34 | --- a/src/cyclictest/cyclictest.c | ||
35 | +++ b/src/cyclictest/cyclictest.c | ||
36 | @@ -741,17 +741,15 @@ void *timerthread(void *param) | ||
37 | if (par->timermode == TIMER_ABSTIME) | ||
38 | tspec.it_value = next; | ||
39 | else { | ||
40 | - tspec.it_value.tv_nsec = 0; | ||
41 | - tspec.it_value.tv_sec = 1; | ||
42 | + tspec.it_value = interval; | ||
43 | } | ||
44 | timer_settime(timer, par->timermode, &tspec, NULL); | ||
45 | } | ||
46 | |||
47 | if (par->mode == MODE_SYS_ITIMER) { | ||
48 | - itimer.it_value.tv_sec = 1; | ||
49 | - itimer.it_value.tv_usec = 0; | ||
50 | itimer.it_interval.tv_sec = interval.tv_sec; | ||
51 | itimer.it_interval.tv_usec = interval.tv_nsec / 1000; | ||
52 | + itimer.it_value = itimer.it_interval; | ||
53 | setitimer (ITIMER_REAL, &itimer, NULL); | ||
54 | } | ||
55 | |||
56 | -- | ||
57 | 1.7.4.1 | ||
58 | |||
diff --git a/meta/recipes-rt/rt-tests/rt-tests.inc b/meta/recipes-rt/rt-tests/rt-tests.inc index 513ddaf068..3ae7602d7b 100644 --- a/meta/recipes-rt/rt-tests/rt-tests.inc +++ b/meta/recipes-rt/rt-tests/rt-tests.inc | |||
@@ -7,9 +7,10 @@ SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git | |||
7 | file://0001-rt-tests-Allow-for-user-specified-PYLIB.patch \ | 7 | file://0001-rt-tests-Allow-for-user-specified-PYLIB.patch \ |
8 | file://0002-rt-tests-Break-out-install_hwlatdetect.patch \ | 8 | file://0002-rt-tests-Break-out-install_hwlatdetect.patch \ |
9 | file://added-missing-dependencies.patch \ | 9 | file://added-missing-dependencies.patch \ |
10 | file://cyclictest-finish-removal-of-1-second-first-loops.patch \ | ||
10 | " | 11 | " |
11 | 12 | ||
12 | INC_PR = "r1" | 13 | INC_PR = "r2" |
13 | 14 | ||
14 | S = "${WORKDIR}/git" | 15 | S = "${WORKDIR}/git" |
15 | 16 | ||