On 01/11/2018 01:10 PM, Martin KaFai Lau wrote: > On Wed, Jan 10, 2018 at 10:40:11AM -0800, John Fastabend wrote: >> Add a base test that does not use BPF hooks to test baseline case. >> >> Signed-off-by: John Fastabend <john.fastab...@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