From: Anubhav Shelat <ashelat@redhat.com>
To: jkacur@redhat.com
Cc: linux-rt-users@vger.kernel.org, kcarcia@redhat.com,
williams@redhat.com, Anubhav Shelat <ashelat@redhat.com>
Subject: [PATCH v2] cyclicdeadline: removed extra pthread_barrier_wait() calls
Date: Wed, 9 Aug 2023 10:48:56 -0400 [thread overview]
Message-ID: <20230809144855.143778-1-ashelat@redhat.com> (raw)
Before this change, cyclicdeadline was giving abnormally high latencies
and occasionally locking up on start, uncharacteristic of an RT system.
After removing the extra calls, the latencies were more in line with
what we expected and there were no lock-ups on run.
Test runs, courtesy of Clark Williams (aarch64 system running RT kernel):
Cmd Line: $ sudo ./cyclicdeadline -t8 -a8-15 -D 5m
The first three test runs were from the current main branch of realtime-tests:
First run
T: 0 ( 2074) I:1000 C: 300007 Min: 1 Act: 11 Avg: 10 Max: 34
T: 1 ( 2075) I:1500 C: 200005 Min: 1 Act: 12 Avg: 10 Max: 30
T: 2 ( 2076) I:2000 C: 150004 Min: 1 Act: 14 Avg: 11 Max: 36
T: 3 ( 2077) I:2500 C: 120003 Min: 1 Act: 11 Avg: 10 Max: 42
T: 4 ( 2078) I:3000 C: 100003 Min: 1 Act: 13 Avg: 6 Max: 35
T: 5 ( 2079) I:3500 C: 85717 Min: 1 Act: 3 Avg: 8 Max: 28
T: 6 ( 2080) I:4000 C: 75002 Min: 1 Act: 11 Avg: 10 Max: 43
T: 7 ( 2081) I:4500 C: 66669 Min: 1 Act: 13 Avg: 10 Max: 31
Second run
T: 0 ( 2074) I:1000 C: 300007 Min: 1 Act: 11 Avg: 10 Max: 34
T: 1 ( 2075) I:1500 C: 200005 Min: 1 Act: 12 Avg: 10 Max: 30
T: 2 ( 2076) I:2000 C: 150004 Min: 1 Act: 14 Avg: 11 Max: 36
T: 3 ( 2077) I:2500 C: 120003 Min: 1 Act: 11 Avg: 10 Max: 42
T: 4 ( 2078) I:3000 C: 100003 Min: 1 Act: 13 Avg: 6 Max: 35
T: 5 ( 2079) I:3500 C: 85717 Min: 1 Act: 3 Avg: 8 Max: 28
T: 6 ( 2080) I:4000 C: 75002 Min: 1 Act: 11 Avg: 10 Max: 43
T: 7 ( 2081) I:4500 C: 66669 Min: 1 Act: 13 Avg: 10 Max: 31
Third Run
T: 0 ( 2199) I:1000 C: 300007 Min: 1 Act: 12 Avg: 11 Max: 35
T: 1 ( 2200) I:1500 C: 200005 Min: 1 Act: 13 Avg: 12 Max: 36
T: 2 ( 2201) I:2000 C: 150004 Min: 1 Act: 14 Avg: 12 Max: 42
T: 3 ( 2202) I:2500 C: 120003 Min: 2 Act: 16 Avg: 13 Max: 36
T: 4 ( 2203) I:3000 C: 100003 Min: 1 Act: 10 Avg: 7 Max: 31
T: 5 ( 2204) I:3500 C: 85717 Min: 1 Act: 11 Avg: 10 Max: 35
T: 6 ( 2205) I:4000 C: 75002 Min: 1 Act: 11 Avg: 10 Max: 26
T: 7 ( 2206) I:4500 C: 66669 Min: 1 Act: 17 Avg: 12 Max: 35
The second three runs were on the same system but with code that has the pthread_barrier_wait() calls fixed
First run
T: 0 ( 4131) I:1000 C: 300004 Min: 1 Act: 3 Avg: 8 Max: 38
T: 1 ( 4132) I:1500 C: 200003 Min: 1 Act: 13 Avg: 6 Max: 32
T: 2 ( 4133) I:2000 C: 150002 Min: 1 Act: 12 Avg: 8 Max: 31
T: 3 ( 4134) I:2500 C: 120002 Min: 1 Act: 11 Avg: 10 Max: 32
T: 4 ( 4135) I:3000 C: 100002 Min: 1 Act: 11 Avg: 10 Max: 30
T: 5 ( 4136) I:3500 C: 85716 Min: 1 Act: 12 Avg: 10 Max: 35
T: 6 ( 4137) I:4000 C: 75001 Min: 1 Act: 11 Avg: 10 Max: 33
T: 7 ( 4138) I:4500 C: 66668 Min: 1 Act: 10 Avg: 9 Max: 28
Second run
T: 0 ( 4353) I:1000 C: 300006 Min: 1 Act: 13 Avg: 10 Max: 34
T: 1 ( 4354) I:1500 C: 200004 Min: 1 Act: 13 Avg: 11 Max: 28
T: 2 ( 4355) I:2000 C: 150003 Min: 1 Act: 13 Avg: 11 Max: 32
T: 3 ( 4356) I:2500 C: 120003 Min: 1 Act: 13 Avg: 11 Max: 38
T: 4 ( 4357) I:3000 C: 100002 Min: 1 Act: 12 Avg: 11 Max: 29
T: 5 ( 4358) I:3500 C: 85716 Min: 1 Act: 11 Avg: 11 Max: 31
T: 6 ( 4359) I:4000 C: 75002 Min: 1 Act: 11 Avg: 10 Max: 32
T: 7 ( 4360) I:4500 C: 66668 Min: 1 Act: 3 Avg: 2 Max: 19
Third run
T: 0 ( 4426) I:1000 C: 300006 Min: 1 Act: 13 Avg: 8 Max: 43
T: 1 ( 4427) I:1500 C: 200004 Min: 1 Act: 2 Avg: 6 Max: 25
T: 2 ( 4428) I:2000 C: 150003 Min: 1 Act: 11 Avg: 9 Max: 30
T: 3 ( 4429) I:2500 C: 120003 Min: 2 Act: 12 Avg: 11 Max: 31
T: 4 ( 4430) I:3000 C: 100002 Min: 1 Act: 12 Avg: 11 Max: 33
T: 5 ( 4431) I:3500 C: 85716 Min: 1 Act: 12 Avg: 10 Max: 31
T: 6 ( 4432) I:4000 C: 75002 Min: 2 Act: 13 Avg: 12 Max: 36
T: 7 ( 4433) I:4500 C: 66668 Min: 1 Act: 12 Avg: 10 Max: 30
Signed-off-by: Anubhav Shelat <ashelat@redhat.com>
---
src/sched_deadline/cyclicdeadline.c | 8 --------
1 file changed, 8 deletions(-)
diff --git a/src/sched_deadline/cyclicdeadline.c b/src/sched_deadline/cyclicdeadline.c
index 48b82e7efb01..39aeeb5d0785 100644
--- a/src/sched_deadline/cyclicdeadline.c
+++ b/src/sched_deadline/cyclicdeadline.c
@@ -807,8 +807,6 @@ void *run_deadline(void *data)
return NULL;
}
- pthread_barrier_wait(&barrier);
-
attr.sched_policy = SCHED_DEADLINE;
attr.sched_runtime = sd->runtime_us * 1000;
attr.sched_deadline = sd->deadline_us * 1000;
@@ -816,8 +814,6 @@ void *run_deadline(void *data)
printf("thread[%d] runtime=%lldus deadline=%lldus\n",
gettid(), sd->runtime_us, sd->deadline_us);
- pthread_barrier_wait(&barrier);
-
ret = sched_setattr(0, &attr, 0);
if (ret < 0) {
err_msg_n(errno, "[%ld]", tid);
@@ -1281,8 +1277,6 @@ int main(int argc, char **argv)
atexit(teardown);
- pthread_barrier_wait(&barrier);
-
if (shutdown)
fatal("failed to setup child threads at step 1\n");
@@ -1312,8 +1306,6 @@ int main(int argc, char **argv)
printf("main thread %d\n", gettid());
- pthread_barrier_wait(&barrier);
-
if (shutdown)
fatal("failed to setup child threads at step 2");
--
2.39.3
next reply other threads:[~2023-08-09 14:50 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-09 14:48 Anubhav Shelat [this message]
2023-08-09 18:19 ` [PATCH v2] cyclicdeadline: removed extra pthread_barrier_wait() calls John Kacur
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230809144855.143778-1-ashelat@redhat.com \
--to=ashelat@redhat.com \
--cc=jkacur@redhat.com \
--cc=kcarcia@redhat.com \
--cc=linux-rt-users@vger.kernel.org \
--cc=williams@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).