Messages in this thread | | | Date | Wed, 2 Nov 2022 03:29:09 -0600 | Subject | Re: [PATCH v3 3/5] selftests/resctrl: Flush stdout file buffer before executing fork() | From | Shuah Khan <> |
| |
On 11/1/22 03:43, Shaopeng Tan wrote: > When a process has buffered output, a child process created by fork() > will also copy buffered output. When using kselftest framework, > the output (resctrl test result message) will be printed multiple times. > > Add fflush() to flush out the buffered output before executing fork(). > > Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> > Signed-off-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> > --- > tools/testing/selftests/resctrl/cat_test.c | 1 + > tools/testing/selftests/resctrl/resctrl_val.c | 1 + > tools/testing/selftests/resctrl/resctrlfs.c | 1 + > 3 files changed, 3 insertions(+) > > diff --git a/tools/testing/selftests/resctrl/cat_test.c b/tools/testing/selftests/resctrl/cat_test.c > index 1c5e90c63254..6a8306b0a109 100644 > --- a/tools/testing/selftests/resctrl/cat_test.c > +++ b/tools/testing/selftests/resctrl/cat_test.c > @@ -167,6 +167,7 @@ int cat_perf_miss_val(int cpu_no, int n, char *cache_type) > return errno; > } > > + fflush(stdout); > bm_pid = fork(); > > /* Set param values for child thread which will be allocated bitmask > diff --git a/tools/testing/selftests/resctrl/resctrl_val.c b/tools/testing/selftests/resctrl/resctrl_val.c > index b32b96356ec7..6948843bf995 100644 > --- a/tools/testing/selftests/resctrl/resctrl_val.c > +++ b/tools/testing/selftests/resctrl/resctrl_val.c > @@ -629,6 +629,7 @@ int resctrl_val(char **benchmark_cmd, struct resctrl_val_param *param) > * Fork to start benchmark, save child's pid so that it can be killed > * when needed > */ > + fflush(stdout); > bm_pid = fork(); > if (bm_pid == -1) { > perror("# Unable to fork"); > diff --git a/tools/testing/selftests/resctrl/resctrlfs.c b/tools/testing/selftests/resctrl/resctrlfs.c > index 8546bc9f1786..d95688298469 100644 > --- a/tools/testing/selftests/resctrl/resctrlfs.c > +++ b/tools/testing/selftests/resctrl/resctrlfs.c > @@ -678,6 +678,7 @@ int filter_dmesg(void) > perror("pipe"); > return ret; > } > + fflush(stdout); > pid = fork(); > if (pid == 0) { > close(pipefds[0]);
Good find. Looks good to me.
Reviewed-by: Shuah Khan <skhan@linuxfoundation.org>
thanks, -- Shuah
| |