Re: [PATCH] perf: sched-pipe add support for packet I/O mode
On 09/27/2016 05:38 AM, Peter Zijlstra wrote: > On Mon, Sep 26, 2016 at 06:29:44PM -0600, Shuah Khan wrote: >> Add support to run sched-pipe benchmark test on pipe with packet I/O mode. I will add more detail here. >> >> Signed-off-by: Shuah Khan>> --- >> tools/perf/bench/sched-pipe.c | 20 >> 1 file changed, 20 insertions(+) >> >> diff --git a/tools/perf/bench/sched-pipe.c b/tools/perf/bench/sched-pipe.c >> index 1dc2d13..c6e1b7a 100644 >> --- a/tools/perf/bench/sched-pipe.c >> +++ b/tools/perf/bench/sched-pipe.c >> @@ -41,9 +41,16 @@ staticint loops = LOOPS_DEFAULT; >> /* Use processes by default: */ >> static bool threaded; >> >> +/* Use non-packet (normal) I/O mode by default. >> + * In packet mode, each write is a separate packet. >> + */ > > Also, > > https://lkml.kernel.org/r/ca+55afyqyjerovmssosks7pesszbr4vnp-3quuwhqk4a4_j...@mail.gmail.com > Bummer. I missed this comment style bad on my part. I will address both and send v2. thanks, -- Shuah
Re: [PATCH] perf: sched-pipe add support for packet I/O mode
On 09/27/2016 05:38 AM, Peter Zijlstra wrote: > On Mon, Sep 26, 2016 at 06:29:44PM -0600, Shuah Khan wrote: >> Add support to run sched-pipe benchmark test on pipe with packet I/O mode. I will add more detail here. >> >> Signed-off-by: Shuah Khan >> --- >> tools/perf/bench/sched-pipe.c | 20 >> 1 file changed, 20 insertions(+) >> >> diff --git a/tools/perf/bench/sched-pipe.c b/tools/perf/bench/sched-pipe.c >> index 1dc2d13..c6e1b7a 100644 >> --- a/tools/perf/bench/sched-pipe.c >> +++ b/tools/perf/bench/sched-pipe.c >> @@ -41,9 +41,16 @@ staticint loops = LOOPS_DEFAULT; >> /* Use processes by default: */ >> static bool threaded; >> >> +/* Use non-packet (normal) I/O mode by default. >> + * In packet mode, each write is a separate packet. >> + */ > > Also, > > https://lkml.kernel.org/r/ca+55afyqyjerovmssosks7pesszbr4vnp-3quuwhqk4a4_j...@mail.gmail.com > Bummer. I missed this comment style bad on my part. I will address both and send v2. thanks, -- Shuah
Re: [PATCH] perf: sched-pipe add support for packet I/O mode
On Mon, Sep 26, 2016 at 06:29:44PM -0600, Shuah Khan wrote: > Add support to run sched-pipe benchmark test on pipe with packet I/O mode. > > Signed-off-by: Shuah Khan> --- > tools/perf/bench/sched-pipe.c | 20 > 1 file changed, 20 insertions(+) > > diff --git a/tools/perf/bench/sched-pipe.c b/tools/perf/bench/sched-pipe.c > index 1dc2d13..c6e1b7a 100644 > --- a/tools/perf/bench/sched-pipe.c > +++ b/tools/perf/bench/sched-pipe.c > @@ -41,9 +41,16 @@ static int loops = LOOPS_DEFAULT; > /* Use processes by default: */ > static bool threaded; > > +/* Use non-packet (normal) I/O mode by default. > + * In packet mode, each write is a separate packet. > + */ Also, https://lkml.kernel.org/r/ca+55afyqyjerovmssosks7pesszbr4vnp-3quuwhqk4a4_j...@mail.gmail.com
Re: [PATCH] perf: sched-pipe add support for packet I/O mode
On Mon, Sep 26, 2016 at 06:29:44PM -0600, Shuah Khan wrote: > Add support to run sched-pipe benchmark test on pipe with packet I/O mode. > > Signed-off-by: Shuah Khan > --- > tools/perf/bench/sched-pipe.c | 20 > 1 file changed, 20 insertions(+) > > diff --git a/tools/perf/bench/sched-pipe.c b/tools/perf/bench/sched-pipe.c > index 1dc2d13..c6e1b7a 100644 > --- a/tools/perf/bench/sched-pipe.c > +++ b/tools/perf/bench/sched-pipe.c > @@ -41,9 +41,16 @@ static int loops = LOOPS_DEFAULT; > /* Use processes by default: */ > static bool threaded; > > +/* Use non-packet (normal) I/O mode by default. > + * In packet mode, each write is a separate packet. > + */ Also, https://lkml.kernel.org/r/ca+55afyqyjerovmssosks7pesszbr4vnp-3quuwhqk4a4_j...@mail.gmail.com
Re: [PATCH] perf: sched-pipe add support for packet I/O mode
On Mon, Sep 26, 2016 at 06:29:44PM -0600, Shuah Khan wrote: > Add support to run sched-pipe benchmark test on pipe with packet I/O mode. Fails to explain what packet mode is and why we would want this.
Re: [PATCH] perf: sched-pipe add support for packet I/O mode
On Mon, Sep 26, 2016 at 06:29:44PM -0600, Shuah Khan wrote: > Add support to run sched-pipe benchmark test on pipe with packet I/O mode. Fails to explain what packet mode is and why we would want this.
[PATCH] perf: sched-pipe add support for packet I/O mode
Add support to run sched-pipe benchmark test on pipe with packet I/O mode. Signed-off-by: Shuah Khan--- tools/perf/bench/sched-pipe.c | 20 1 file changed, 20 insertions(+) diff --git a/tools/perf/bench/sched-pipe.c b/tools/perf/bench/sched-pipe.c index 1dc2d13..c6e1b7a 100644 --- a/tools/perf/bench/sched-pipe.c +++ b/tools/perf/bench/sched-pipe.c @@ -41,9 +41,16 @@ static int loops = LOOPS_DEFAULT; /* Use processes by default: */ static boolthreaded; +/* Use non-packet (normal) I/O mode by default. + * In packet mode, each write is a separate packet. + */ +static boolpacket_mode; + static const struct option options[] = { OPT_INTEGER('l', "loop",, "Specify number of loops"), OPT_BOOLEAN('T', "threaded",, "Specify threads/process based task setup"), + OPT_BOOLEAN('P', "packet mode", _mode, + "Specify packet I/O mode - "), OPT_END() }; @@ -83,6 +90,7 @@ int bench_sched_pipe(int argc, const char **argv, const char *prefix __maybe_unu unsigned long long result_usec = 0; int nr_threads = 2; int t; + int flags = 0; /* * why does "ret" exist? @@ -94,6 +102,18 @@ int bench_sched_pipe(int argc, const char **argv, const char *prefix __maybe_unu argc = parse_options(argc, argv, options, bench_sched_pipe_usage, 0); + if (packet_mode) { + /* BUG_ON doesn't make sense exit if pipe2() fails */ + flags = O_DIRECT; + ret = pipe2(pipe_1, flags); + if (ret) + exit(1); + ret = pipe2(pipe_2, flags); + if (ret) + exit(1); + printf("Running sched-pipe in packet I/O mode\n\n"); + } + BUG_ON(pipe(pipe_1)); BUG_ON(pipe(pipe_2)); -- 2.7.4
[PATCH] perf: sched-pipe add support for packet I/O mode
Add support to run sched-pipe benchmark test on pipe with packet I/O mode. Signed-off-by: Shuah Khan --- tools/perf/bench/sched-pipe.c | 20 1 file changed, 20 insertions(+) diff --git a/tools/perf/bench/sched-pipe.c b/tools/perf/bench/sched-pipe.c index 1dc2d13..c6e1b7a 100644 --- a/tools/perf/bench/sched-pipe.c +++ b/tools/perf/bench/sched-pipe.c @@ -41,9 +41,16 @@ static int loops = LOOPS_DEFAULT; /* Use processes by default: */ static boolthreaded; +/* Use non-packet (normal) I/O mode by default. + * In packet mode, each write is a separate packet. + */ +static boolpacket_mode; + static const struct option options[] = { OPT_INTEGER('l', "loop",, "Specify number of loops"), OPT_BOOLEAN('T', "threaded",, "Specify threads/process based task setup"), + OPT_BOOLEAN('P', "packet mode", _mode, + "Specify packet I/O mode - "), OPT_END() }; @@ -83,6 +90,7 @@ int bench_sched_pipe(int argc, const char **argv, const char *prefix __maybe_unu unsigned long long result_usec = 0; int nr_threads = 2; int t; + int flags = 0; /* * why does "ret" exist? @@ -94,6 +102,18 @@ int bench_sched_pipe(int argc, const char **argv, const char *prefix __maybe_unu argc = parse_options(argc, argv, options, bench_sched_pipe_usage, 0); + if (packet_mode) { + /* BUG_ON doesn't make sense exit if pipe2() fails */ + flags = O_DIRECT; + ret = pipe2(pipe_1, flags); + if (ret) + exit(1); + ret = pipe2(pipe_2, flags); + if (ret) + exit(1); + printf("Running sched-pipe in packet I/O mode\n\n"); + } + BUG_ON(pipe(pipe_1)); BUG_ON(pipe(pipe_2)); -- 2.7.4