Commit Graph
7 Commits
Author SHA1 Message Date
Kevin KrakauerandgVisor bot 54a79b380d rename bufferv2 to buffer
The old buffer has been dead for a while. We use type aliases so we can switch
package names in smaller CLs.

PiperOrigin-RevId: 537125110
2023-06-01 14:16:05 -07:00
Lucas ManningandgVisor bot e31ea0f832 Remove the old version of buffer.
This is no longer used anywhere in gVisor. Everything has been migrated to
bufferv2.

PiperOrigin-RevId: 474655746
2022-09-15 14:21:12 -07:00
Ayush RanjanandgVisor bot 469a4a5203 Prevent PacketData from being modified.
PacketData should not be modified and should be treated readonly because it
represents packet payload. The old DeleteFront method allowed callers to modify
the underlying buffer which should not be allowed.

Added a way to consume from the PacketData instead of deleting from it.
Updated call points to use that instead.

Reported-by: [email protected]
PiperOrigin-RevId: 399268473
2021-09-27 13:35:22 -07:00
Ting-Yu WangandgVisor bot c28f6a4d33 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
2021-05-13 13:56:16 -07:00
Ting-Yu WangandgVisor bot e2ae518cd4 pkg/buffer: Reorganize internal structure to allow dynamic sizes.
This change changes `buffer.data` into a `[]byte`, from `[bufferSize]byte`.
In exchange, each `buffer` is now grouped together to reduce the number of
allocation. Plus, `View` now holds an embeded list of `buffer` (via `pool`) to
support the happy path which the number of buffer is small. Expect no extra
allocation for the happy path.

It is to enable the use case for PacketBuffer, which
* each `View` is small (way less than `defaultBufferSize`), and
* needs to dynamically transfer ownership of `[]byte` to `View`.
  (to allow gradual migration)

PiperOrigin-RevId: 333197252
2020-09-22 17:56:40 -07:00
Adin ScannellandgVisor bot 7a3b606ae7 Clean-up buffer implementation.
This also adds substantial test cases.

The Read/Write interfaces are dropped as they are not necessary.

PiperOrigin-RevId: 300461547
2020-03-11 19:52:14 -07:00
Adin ScannellandgVisor bot 2bc4702e30 Make pipe buffer implementation standard.
A follow-up change will convert the networking code to use this standard
pipe implementation.

PiperOrigin-RevId: 297903206
2020-02-28 12:29:23 -08:00