Re: [bpf-next PATCH v2 5/7] bpf: sockmap sample add base test without any BPF for comparison
From: John Fastabend <john.fastabend@gmail.com>
Date: 2018-01-12 04:03:48
On 01/11/2018 01:10 PM, Martin KaFai Lau wrote:
On Wed, Jan 10, 2018 at 10:40:11AM -0800, John Fastabend wrote:quoted
Add a base test that does not use BPF hooks to test baseline case. Signed-off-by: John Fastabend <john.fastabend@gmail.com> --- 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 812fc7e..eb19d14 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);I am likely missing something. After receiving from p1, should the base-line case also send to c2 which then will be received by p2?
Well I wanted a test to check socket to socket rates and see what max throughput we could get with this simple tool. It provides a good reference point for any other 'perf' data, throughput numbers, etc. The numbers I see here, probably as expected, are very close to what I get with iperf tests. Adding another test base_bounce or base_proxy or something along those lines might be another test we can add. I think you were expecting this to be a 1:1 comparison with the sendmsg BPF test but its not. Probably can add it though. Thanks, John