Google engineers the past few years have been working on Device Memory TCP for the Linux kernel to allow zero-copy receive of TCP payloads to DMA-BUF regions such as device memory attached directly to a GPU or AI accelerator or other device memory accessible with DMA-BUF. For Linux 6.12 that initial Device Memory TCP receive support was merged while slated for the upcoming Linux 6.16 cycle is Device Memory TCP TX transfer support.
The Google-led patches for Device Memory TCP TX support was queued this past week into the networking subsystem’s net-next tree. With it now in net-next, it should be submitted as part of the networking changes for the upcoming Linux 6.16 merge window.
The patches lay out the Device Memory “Devmem” TCP TX support paths and new API as well as enabling the driver support within the Google GVE networking driver for Virtual Ethernet with the Google Compute Engine. In time other Linux networking drivers will likely pick-up support for the Devmem TCP TX capabilities.
The Device Memory TCP TX support went through 14 rounds of code review including changes to the user-space API and was delayed from the original Device Memory TCP patch series to facilitate easier code review at the time. So it’s nice to see this net-next merge finally materialize. Unfortunately though no performance/benchmark numbers were included:
“Performance results are not included with this version, unfortunately. I’m having issues running the dma-buf exporter driver against the upstream kernel on my test setup. The issues are specific to that dma-buf exporter and do not affect this patch series. I plan to follow up this series with perf fixes if the tests point to issues once they’re up and running.”
Linux 6.16 is shaping up to be another big kernel cycle. The merge window will hopefully open up next week while the stable Linux 6.16 should be out around the end of July or early August.