From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Fastabend Subject: [bpf-next PATCH 5/7] bpf: sockmap sample add base test without any BPF for comparison Date: Mon, 08 Jan 2018 10:06:15 -0800 Message-ID: <20180108180615.13647.73865.stgit@john-Precision-Tower-5810> References: <20180108180302.13647.13866.stgit@john-Precision-Tower-5810> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org To: john.fastabend@gmail.com, ast@kernel.org, daniel@iogearbox.net Return-path: Received: from mail-pf0-f193.google.com ([209.85.192.193]:37289 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755124AbeAHSG0 (ORCPT ); Mon, 8 Jan 2018 13:06:26 -0500 Received: by mail-pf0-f193.google.com with SMTP id n6so6500167pfa.4 for ; Mon, 08 Jan 2018 10:06:26 -0800 (PST) In-Reply-To: <20180108180302.13647.13866.stgit@john-Precision-Tower-5810> Sender: netdev-owner@vger.kernel.org List-ID: Add a base test that does not use BPF hooks to test baseline case. Signed-off-by: John Fastabend --- samples/sockmap/sockmap_user.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/samples/sockmap/sockmap_user.c b/samples/sockmap/sockmap_user.c index 8329097..bae85f8 100644 --- a/samples/sockmap/sockmap_user.c +++ b/samples/sockmap/sockmap_user.c @@ -285,18 +285,24 @@ static int msg_loop(int fd, int iov_count, int iov_length, int cnt, static float giga = 1000000000; -static int sendmsg_test(int iov_count, int iov_buf, int cnt, int verbose) +static int sendmsg_test(int iov_count, int iov_buf, int cnt, + int verbose, bool base) { - int txpid, rxpid, err = 0; + float sent_Bps = 0, recvd_Bps = 0; + int rx_fd, txpid, rxpid, err = 0; struct msg_stats s = {0}; int status; - float sent_Bps = 0, recvd_Bps = 0; errno = 0; + if (base) + rx_fd = p1; + else + rx_fd = p2; + rxpid = fork(); if (rxpid == 0) { - err = msg_loop(p2, iov_count, iov_buf, cnt, &s, false); + err = msg_loop(rx_fd, iov_count, iov_buf, cnt, &s, false); if (err) fprintf(stderr, "msg_loop_rx: iov_count %i iov_buf %i cnt %i err %i\n", @@ -422,6 +428,7 @@ static int forever_ping_pong(int rate, int verbose) enum { PING_PONG, SENDMSG, + BASE, }; int main(int argc, char **argv) @@ -460,6 +467,8 @@ int main(int argc, char **argv) test = PING_PONG; } else if (memcmp(optarg, "sendmsg", 7) == 0) { test = SENDMSG; + } else if (memcmp(optarg, "base", 4) == 0) { + test = BASE; } else { usage(argv); return -1; @@ -485,6 +494,10 @@ int main(int argc, char **argv) /* catch SIGINT */ signal(SIGINT, running_handler); + /* If base test skip BPF setup */ + if (test == BASE) + goto run; + if (load_bpf_file(filename)) { fprintf(stderr, "load_bpf_file: (%s) %s\n", filename, strerror(errno)); @@ -516,6 +529,7 @@ int main(int argc, char **argv) return err; } +run: err = sockmap_init_sockets(); if (err) { fprintf(stderr, "ERROR: test socket failed: %d\n", err); @@ -525,7 +539,9 @@ int main(int argc, char **argv) if (test == PING_PONG) err = forever_ping_pong(rate, verbose); else if (test == SENDMSG) - err = sendmsg_test(iov_count, length, rate, verbose); + err = sendmsg_test(iov_count, length, rate, verbose, false); + else if (test == BASE) + err = sendmsg_test(iov_count, length, rate, verbose, true); else fprintf(stderr, "unknown test\n"); out: