diff options
author | Crystal Wood <crwood@redhat.com> | 2024-01-22 16:13:19 -0600 |
---|---|---|
committer | John Kacur <jkacur@redhat.com> | 2024-01-23 15:27:43 -0500 |
commit | 36f634cf8853e00558512b5b48ce600b629402bb (patch) | |
tree | bba7a5f9744ca76ee2a0af2638312cc2f8503fd2 | |
parent | 9894227feebf24c341081820d6a062952423f0f6 (diff) | |
download | rt-tests-36f634cf8853e00558512b5b48ce600b629402bb.tar.gz |
rt-tests: cyclics: Fix json segfault when not using histogram
If we're not generating a histogram, don't call the histogram code with
a NULL pointer. Also don't print the rest of the histogram json node.
Signed-off-by: Crystal Wood <crwood@redhat.com>
Signed-off-by: John Kacur <jkacur@redhat.com>
-rw-r--r-- | src/cyclictest/cyclictest.c | 11 | ||||
-rw-r--r-- | src/sched_deadline/cyclicdeadline.c | 9 |
2 files changed, 11 insertions, 9 deletions
diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c index 6169170..33fac3b 100644 --- a/src/cyclictest/cyclictest.c +++ b/src/cyclictest/cyclictest.c @@ -1778,12 +1778,13 @@ static void write_stats(FILE *f, void *data __attribute__ ((unused))) fprintf(f, " \"resolution_in_ns\": %u,\n", use_nsecs); fprintf(f, " \"thread\": {\n"); for (i = 0; i < num_threads; i++) { - fprintf(f, " \"%u\": {\n", i); - - fprintf(f, " \"histogram\": {"); s = par[i]->stats; - hist_print_json(par[i]->stats->hist, f); - fprintf(f, " },\n"); + fprintf(f, " \"%u\": {\n", i); + if (s->hist) { + fprintf(f, " \"histogram\": {"); + hist_print_json(s->hist, f); + fprintf(f, " },\n"); + } fprintf(f, " \"cycles\": %ld,\n", s->cycles); fprintf(f, " \"min\": %ld,\n", s->min); fprintf(f, " \"max\": %ld,\n", s->max); diff --git a/src/sched_deadline/cyclicdeadline.c b/src/sched_deadline/cyclicdeadline.c index e449be5..b315554 100644 --- a/src/sched_deadline/cyclicdeadline.c +++ b/src/sched_deadline/cyclicdeadline.c @@ -1141,10 +1141,11 @@ static void write_stats(FILE *f, void *data) for (i = 0; i < nr_threads; i++) { s = &sd[i].stat; fprintf(f, " \"%u\": {\n", i); - - fprintf(f, " \"histogram\": {"); - hist_print_json(s->hist, f); - fprintf(f, " },\n"); + if (s->hist) { + fprintf(f, " \"histogram\": {"); + hist_print_json(s->hist, f); + fprintf(f, " },\n"); + } fprintf(f, " \"cycles\": %ld,\n", s->cycles); fprintf(f, " \"min\": %ld,\n", s->min); fprintf(f, " \"max\": %ld,\n", s->max); |