Switch to using rcvmmsg dispatcher by default.

On average packet_mmap provides less raw throughput than rcvmmsg. We should
use the faster dispatcher until this is resolved.

Iperf microbenchmark:
```
name                                      old speed                       new speed                       delta
IperfOneConnection/operation.Upload-16                      221GB/s ± 7%                    226GB/s ± 1%     ~     (p=0.690 n=5+5)
IperfOneConnection/operation.Download-16                    278GB/s ± 1%                    330GB/s ± 3%  +18.50%  (p=0.008 n=5+5)
```

PiperOrigin-RevId: 625489706
This commit is contained in:
Lucas Manning
2024-04-16 16:34:20 -07:00
committed by gVisor bot
parent cd6f5a3c50
commit 7a48d7a7a8
+5 -2
View File
@@ -281,9 +281,12 @@ func (n *Network) CreateLinksAndRoutes(args *CreateLinksAndRoutesArgs, _ *struct
return err
}
if version.AtLeast(5, 6) {
dispatchMode = fdbased.PacketMMap
// TODO(b/333120887): Switch back to using the packet mmap dispatcher when
// we have the performance data to justify it.
// dispatchMode = fdbased.PacketMMap
// log.Infof("Host kernel version >= 5.6, using to packet mmap to dispatch")
} else {
log.Infof("Host kernel version < 5.6, falling back to RecvMMsg dispatch")
log.Infof("Host kernel version < 5.6, using to RecvMMsg to dispatch")
}
for _, link := range args.FDBasedLinks {