gvisor/kokoro
Andrei Vagin 8720bd643e netstack/tcp: software segmentation offload
Right now, we send each tcp packet separately, we call one system
call per-packet. This patch allows to generate multiple tcp packets
and send them by sendmmsg.

The arguable part of this CL is a way how to handle multiple headers.
This CL adds the next field to the Prepandable buffer.

Nginx test results:

Server Software:        nginx/1.15.9
Server Hostname:        10.138.0.2
Server Port:            8080

Document Path:          /10m.txt
Document Length:        10485760 bytes

w/o gso:
Concurrency Level:      5
Time taken for tests:   5.491 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      1048600200 bytes
HTML transferred:       1048576000 bytes
Requests per second:    18.21 [#/sec] (mean)
Time per request:       274.525 [ms] (mean)
Time per request:       54.905 [ms] (mean, across all concurrent requests)
Transfer rate:          186508.03 [Kbytes/sec] received

sw-gso:

Concurrency Level:      5
Time taken for tests:   3.852 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      1048600200 bytes
HTML transferred:       1048576000 bytes
Requests per second:    25.96 [#/sec] (mean)
Time per request:       192.576 [ms] (mean)
Time per request:       38.515 [ms] (mean, across all concurrent requests)
Transfer rate:          265874.92 [Kbytes/sec] received

w/o gso:
$ ./tcp_benchmark --client --duration 15  --ideal
[SUM]  0.0-15.1 sec  2.20 GBytes  1.25 Gbits/sec

software gso:
$ tcp_benchmark --client --duration 15  --ideal --gso $((1<<16)) --swgso
[SUM]  0.0-15.1 sec  3.99 GBytes  2.26 Gbits/sec

PiperOrigin-RevId: 276112677
2019-10-22 11:55:56 -07:00
..
ubuntu1604 Bump bazel, rules_go, gazelle, and go toolchain to latest versions. 2019-09-11 10:19:50 -07:00
ubuntu1804 Update image to install docker and fix permissions 2019-08-30 15:27:47 -07:00
build.cfg Ensure runsc is uploaded. 2019-09-29 23:49:34 -07:00
build_tests.cfg kokoro: don't pass KOKORO_REPO_KEY in presubmit jobs 2019-09-27 12:23:51 -07:00
common.cfg Impose order on test scripts. 2019-09-03 22:02:43 -07:00
do_tests.cfg Impose order on test scripts. 2019-09-03 22:02:43 -07:00
docker_tests.cfg Add runsc logs to kokoro artifacts 2019-10-01 13:51:10 -07:00
go.cfg Update key environment variables. 2019-09-11 21:04:42 -07:00
go_tests.cfg Fix minor Kokoro issues. 2019-09-10 00:38:52 -07:00
hostnet_tests.cfg Add runsc logs to kokoro artifacts 2019-10-01 13:51:10 -07:00
kvm_tests.cfg Add runsc logs to kokoro artifacts 2019-10-01 13:51:10 -07:00
make_tests.cfg Impose order on test scripts. 2019-09-03 22:02:43 -07:00
overlay_tests.cfg Add runsc logs to kokoro artifacts 2019-10-01 13:51:10 -07:00
release.cfg Impose order on test scripts. 2019-09-03 22:02:43 -07:00
root_tests.cfg Add runsc logs to kokoro artifacts 2019-10-01 13:51:10 -07:00
simple_tests.cfg Impose order on test scripts. 2019-09-03 22:02:43 -07:00
swgso_tests.cfg netstack/tcp: software segmentation offload 2019-10-22 11:55:56 -07:00
syscall_tests.cfg Impose order on test scripts. 2019-09-03 22:02:43 -07:00