TCPDirect patches

Bug #2037087 reported by John Cabaj
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux-gcp-5.15 (Ubuntu)
New
Undecided
Unassigned
Focal
Fix Committed
Undecided
Unassigned

Bug Description

[Impact]

* Include patches to enable TCPDirect. This is considered a v1 implementation while Google works to
  upsteam a v2 implementation, hence the "UBUNTU: SAUCE: (no-up)" classification.

[Fix]

d1016eee0b1a ("UBUNTU: SAUCE: (no-up) UPSTREAM: tcp: derive delack_max from rto_min")
10364f0d83ee ("UBUNTU: SAUCE: (no-up) gve: Add retry logic for recoverable adminq errors")
403fb6f43a7c ("UBUNTU: SAUCE: (no-up) tcp: defer regular ACK while processing socket backlog")
be97d51d24da ("UBUNTU: SAUCE: (no-up) gve: Enable header-split without gve_close/gve_open")
499a0ec31c74 ("UBUNTU: SAUCE: (no-up) gve: fix rx issues for skb free and append frags")
89b4d1e69fac ("UBUNTU: SAUCE: (no-up) net: fix silent put_cmsg() failures")
d025ece61dab ("UBUNTU: SAUCE: (no-up) tcp: get rid of sysctl_tcp_adv_win_scale")
d1380ff2f4e3 ("UBUNTU: SAUCE: (no-up) gve: Add tx watchdog to avoid race condition on miss path")
a4bc2e0cd1a3 ("UBUNTU: SAUCE: (no-up) net-tcp_5k_mtu: force wscale >= 12 for active flows")
bbe85e8e856c ("UBUNTU: SAUCE: (no-up) net-tcp_5k_mtu: force wscale >= 12 for 4K MTU TCP flows")
7d5f15f733e8 ("UBUNTU: SAUCE: (no-up) dma-buf: fix int overflow")
22668842a913 ("UBUNTU: SAUCE: (no-up) gve: add flow steering and rss reset when teardown device resources")
18e66e5d9ac4 ("UBUNTU: SAUCE: (no-up) net: create skb_frags_not_readable() helper")
5d81162de488 ("UBUNTU: SAUCE: (no-up) net: add missing skb->devmem checks")
cf0bcfdf9f87 ("UBUNTU: SAUCE: (no-up) net: remove devmem check from __pskb_copy_fclone()")
9ca03b5c36c7 ("UBUNTU: SAUCE: (no-up) net: allow tcp coallapsing and coallescing for devmem skbs")
030aef8b0fd2 ("UBUNTU: SAUCE: (no-up) net: skb_store_bits() should succeed on devmem header")
6aaf939fb49e ("UBUNTU: SAUCE: (no-up) net: fix skb_split unnecessarily setting skb->devmem")
51e12a8201a1 ("UBUNTU: SAUCE: (no-up) net: skb_copy_bits() should be able to copy devmem header")
ea8a78e040f5 ("UBUNTU: SAUCE: (no-up) net: fix memory leaks due to skb->devmem checks")
1fcd891606c0 ("UBUNTU: SAUCE: (no-up) net: fix snaplen for devmem packets")
e4a4e05f4831 ("UBUNTU: SAUCE: (no-up) net: keep track and avoid access of skb containing dma-buf pages.")
424871c3c564 ("UBUNTU: SAUCE: (no-up) gve: implement device memory socket data path")
4f8668ee4cdb ("UBUNTU: SAUCE: (no-up) gve: implement devmem socket stats")
abe1772b0e39 ("UBUNTU: SAUCE: (no-up) gve: add rss support")
c08a1adb6130 ("UBUNTU: SAUCE: (no-up) gve: add flow steering support")
ffa842923ad6 ("UBUNTU: SAUCE: (no-up) gve: Add header split support")
940527385c4c ("UBUNTU: SAUCE: (no-up) lakitu config: enable TCP Direct configs")
ebfa162318f8 ("UBUNTU: SAUCE: (no-up) tcp, cos-only: revert changes to skb_zerocopy_iter_stream")
b87d0b0e659a ("UBUNTU: SAUCE: (no-up) tcp: let sendmsg() take file descriptors via cmsg to enable devmem Tx")
1d523c425a8c ("UBUNTU: SAUCE: (no-up) net: add SO_DEVMEM_DONTNEED setsockopt to release pages")
3e34b0936884 ("UBUNTU: SAUCE: (no-up) net: backport fixes to devmem TCP rx")
446d7a742177 ("UBUNTU: SAUCE: (no-up) tcp: implement RX path for devmem sockets")
109f2e3feb98 ("UBUNTU: SAUCE: (no-up) net: use get_file_rcu() instead of get_file for __netdev_rxq_alloc_page_from_dmabuf_pool")
0d5117d4ea53 ("UBUNTU: SAUCE: (no-up) net: add netdev_rxq_alloc_page and skb->devmem")
d0d273544148 ("UBUNTU: SAUCE: (no-up) dmabuf: add ioctl that binds dmabuf pagepool to a netdevice")
05c81288f77b ("UBUNTU: SAUCE: (no-up) dma-buf: fix int overflow in addr calculation")
46366a3326d9 ("UBUNTU: SAUCE: (no-up) dma-buf: create struct pages backing a dma-bu")

[Test Case]

* Compile tested
* Boot tested
* Ran ubuntu_kernel_selftests and ubuntu_performance_stress_ng test suites
* Tested by Google

[Other Info]

* Bulk of patchset came from https://cos.googlesource.com/third_party/kernel/+log/refs/heads/tcpd/R105,
  but some backports were given in SalesForce case below.
* SF: #00359122

[Where things could go wrong]

* Most changes target Google gve driver specifically.
* Some required updates to dma and network implementation to enable new API.
* Could lead to DMA or network instabilities

Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-gcp-tcpx/5.15.0-1001.1 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-focal-linux-gcp-tcpx' to 'verification-done-focal-linux-gcp-tcpx'. If the problem still exists, change the tag 'verification-needed-focal-linux-gcp-tcpx' to 'verification-failed-focal-linux-gcp-tcpx'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: kernel-spammed-focal-linux-gcp-tcpx-v2 verification-needed-focal-linux-gcp-tcpx
John Cabaj (john-cabaj)
Changed in linux-gcp-5.15 (Ubuntu Focal):
status: New → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.