From 84f04cc858644e9748a82f33b834a84c8b0fc934 Mon Sep 17 00:00:00 2001 From: Ting-Yu Wang Date: Thu, 13 May 2021 13:54:04 -0700 Subject: Migrate PacketBuffer to use pkg/buffer Benchmark iperf3: Before After native->runsc 5.14 5.01 (Gbps) runsc->native 4.15 4.07 (Gbps) It did introduce overhead, mainly at the bridge between pkg/buffer and VectorisedView, the ExtractVV method. Once endpoints start migrating away from VV, this overhead will be gone. Updates #2404 PiperOrigin-RevId: 373651666 --- pkg/tcpip/network/internal/fragmentation/reassembler.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'pkg/tcpip/network/internal/fragmentation') diff --git a/pkg/tcpip/network/internal/fragmentation/reassembler.go b/pkg/tcpip/network/internal/fragmentation/reassembler.go index 90075a70c..56b76a284 100644 --- a/pkg/tcpip/network/internal/fragmentation/reassembler.go +++ b/pkg/tcpip/network/internal/fragmentation/reassembler.go @@ -167,8 +167,7 @@ func (r *reassembler) process(first, last uint16, more bool, proto uint8, pkt *s resPkt := r.holes[0].pkt for i := 1; i < len(r.holes); i++ { - fragData := r.holes[i].pkt.Data() - resPkt.Data().ReadFromData(fragData, fragData.Size()) + stack.MergeFragment(resPkt, r.holes[i].pkt) } return resPkt, r.proto, true, memConsumed, nil } -- cgit v1.2.3