Commit ade90d69 authored by Fred Klassen's avatar Fred Klassen Committed by David S. Miller

net/udpgso_bench.sh add UDP GSO audit tests

Audit tests count the total number of messages sent and compares
with total number of CMSG received on error queue. Example:

    udp gso zerocopy timestamp audit
    udp rx:   1599 MB/s  1166414 calls/s
    udp tx:   1615 MB/s    27395 calls/s  27395 msg/s
    udp rx:   1634 MB/s  1192261 calls/s
    udp tx:   1633 MB/s    27699 calls/s  27699 msg/s
    udp rx:   1633 MB/s  1191358 calls/s
    udp tx:   1631 MB/s    27678 calls/s  27678 msg/s
    Summary over 4.000 seconds...
    sum udp tx:   1665 MB/s      82772 calls (27590/s)      82772 msgs (27590/s)
    Tx Timestamps:               82772 received                 0 errors
    Zerocopy acks:               82772 received

Errors are thrown if CMSG count does not equal send count,
example:

    Summary over 4.000 seconds...
    sum tcp tx:   7451 MB/s     493706 calls (123426/s)     493706 msgs (123426/s)
    ./udpgso_bench_tx: Unexpected number of Zerocopy completions:    493706 expected    493704 received

Also reduce individual test time from 4 to 3 seconds so that
overall test time does not increase significantly.

v3: Enhancements as per Willem de Bruijn <willemb@google.com>
    - document -P option for TCP audit
Signed-off-by: default avatarFred Klassen <fklassen@appneta.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 79ebc3c2
...@@ -38,6 +38,18 @@ run_udp() { ...@@ -38,6 +38,18 @@ run_udp() {
echo "udp gso zerocopy" echo "udp gso zerocopy"
run_in_netns ${args} -S 0 -z run_in_netns ${args} -S 0 -z
echo "udp gso timestamp"
run_in_netns ${args} -S 0 -T
echo "udp gso zerocopy audit"
run_in_netns ${args} -S 0 -z -a
echo "udp gso timestamp audit"
run_in_netns ${args} -S 0 -T -a
echo "udp gso zerocopy timestamp audit"
run_in_netns ${args} -S 0 -T -z -a
} }
run_tcp() { run_tcp() {
...@@ -48,10 +60,15 @@ run_tcp() { ...@@ -48,10 +60,15 @@ run_tcp() {
echo "tcp zerocopy" echo "tcp zerocopy"
run_in_netns ${args} -t -z run_in_netns ${args} -t -z
# excluding for now because test fails intermittently
# add -P option to include poll() to reduce possibility of lost messages
#echo "tcp zerocopy audit"
#run_in_netns ${args} -t -z -P -a
} }
run_all() { run_all() {
local -r core_args="-l 4" local -r core_args="-l 3"
local -r ipv4_args="${core_args} -4 -D 127.0.0.1" local -r ipv4_args="${core_args} -4 -D 127.0.0.1"
local -r ipv6_args="${core_args} -6 -D ::1" local -r ipv6_args="${core_args} -6 -D ::1"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment