From: Jesper Dangaard Brouer <brouer@redhat.com>
To: "Daniel T. Lee" <danieltimlee@gmail.com>
Cc: "Toke Høiland-Jørgensen" <toke@redhat.com>,
"David S . Miller" <davem@davemloft.net>,
netdev@vger.kernel.org, brouer@redhat.com
Subject: Re: [v4 2/4] samples: pktgen: fix proc_cmd command result check logic
Date: Fri, 4 Oct 2019 15:24:09 +0200 [thread overview]
Message-ID: <20191004152409.55bb1ae0@carbon> (raw)
In-Reply-To: <20191004013301.8686-2-danieltimlee@gmail.com>
On Fri, 4 Oct 2019 10:32:59 +0900
"Daniel T. Lee" <danieltimlee@gmail.com> wrote:
> Currently, proc_cmd is used to dispatch command to 'pg_ctrl', 'pg_thread',
> 'pg_set'. proc_cmd is designed to check command result with grep the
> "Result:", but this might fail since this string is only shown in
> 'pg_thread' and 'pg_set'.
>
> This commit fixes this logic by grep-ing the "Result:" string only when
> the command is not for 'pg_ctrl'.
>
> For clarity of an execution flow, 'errexit' flag has been set.
>
> To cleanup pktgen on exit, trap has been added for EXIT signal.
>
> Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com>
> ---
> samples/pktgen/functions.sh | 20 +++++++++++++-------
> 1 file changed, 13 insertions(+), 7 deletions(-)
>
> diff --git a/samples/pktgen/functions.sh b/samples/pktgen/functions.sh
> index 4af4046d71be..e1865660b033 100644
> --- a/samples/pktgen/functions.sh
> +++ b/samples/pktgen/functions.sh
> @@ -5,6 +5,8 @@
> # Author: Jesper Dangaaard Brouer
> # License: GPL
>
> +set -o errexit
> +
> ## -- General shell logging cmds --
> function err() {
> local exitcode=$1
> @@ -58,6 +60,7 @@ function pg_set() {
> function proc_cmd() {
> local result
> local proc_file=$1
> + local status=0
> # after shift, the remaining args are contained in $@
> shift
> local proc_ctrl=${PROC_DIR}/$proc_file
> @@ -73,13 +76,14 @@ function proc_cmd() {
> echo "cmd: $@ > $proc_ctrl"
> fi
> # Quoting of "$@" is important for space expansion
> - echo "$@" > "$proc_ctrl"
> - local status=$?
> -
> - result=$(grep "Result: OK:" $proc_ctrl)
> - # Due to pgctrl, cannot use exit code $? from grep
> - if [[ "$result" == "" ]]; then
> - grep "Result:" $proc_ctrl >&2
> + echo "$@" > "$proc_ctrl" || status=$?
> +
> + if [[ "$proc_file" != "pgctrl" ]]; then
> + result=$(grep "Result: OK:" $proc_ctrl) || true
> + # Due to pgctrl, cannot use exit code $? from grep
Is this comment still relevant? You just excluded "pgctrl" from
getting into this section.
> + if [[ "$result" == "" ]]; then
> + grep "Result:" $proc_ctrl >&2
Missing tap/indention?
> + fi
> fi
> if (( $status != 0 )); then
> err 5 "Write error($status) occurred cmd: \"$@ > $proc_ctrl\""
> @@ -105,6 +109,8 @@ function pgset() {
> fi
> }
>
> +trap 'pg_ctrl "reset"' EXIT
> +
This line is activated when I ctrl-C the scripts, but something weird
happens, it reports:
ERROR: proc file:/proc/net/pktgen/pgctrl not writable, not root?!
> ## -- General shell tricks --
>
> function root_check_run_with_sudo() {
--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer
next prev parent reply other threads:[~2019-10-04 13:24 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-04 1:32 [v4 1/4] samples: pktgen: make variable consistent with option Daniel T. Lee
2019-10-04 1:32 ` [v4 2/4] samples: pktgen: fix proc_cmd command result check logic Daniel T. Lee
2019-10-04 13:24 ` Jesper Dangaard Brouer [this message]
2019-10-04 15:11 ` Daniel T. Lee
2019-10-04 1:33 ` [v4 3/4] samples: pktgen: add helper functions for IP(v4/v6) CIDR parsing Daniel T. Lee
2019-10-04 1:33 ` [v4 4/4] samples: pktgen: allow to specify destination IP range (CIDR) Daniel T. Lee
2019-10-04 12:51 ` [v4 1/4] samples: pktgen: make variable consistent with option Jesper Dangaard Brouer
2019-10-04 13:28 ` Daniel T. Lee
2019-10-04 13:41 ` Jesper Dangaard Brouer
2019-10-04 13:46 ` Daniel T. Lee
[not found] ` <CAEKGpzhmkDBGV5BmwwYgb0ng+Eyyzp2CFoGeZ65aEgR=CxWnMg@mail.gmail.com>
2019-10-04 13:48 ` Toke Høiland-Jørgensen
2019-10-04 12:54 ` Jesper Dangaard Brouer
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=20191004152409.55bb1ae0@carbon \
--to=brouer@redhat.com \
--cc=danieltimlee@gmail.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=toke@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.