Re: [PATCH net-next v11 00/15] Begin upstreaming Homa transport protocol
From: Randy Dunlap <rdunlap@infradead.org>
Date: 2026-09-14 23:35:49
Also in:
linux-doc
Hi, On 9/14/26 4:05 PM, John Ousterhout wrote:
This patch series begins the process of upstreaming the Homa transport protocol. Homa is an alternative to TCP for use in datacenter environments. It provides 10-100x reductions in tail latency for short messages relative to TCP. Its benefits are greatest for mixed workloads containing both short and long messages running under high network loads. Homa is not API-compatible with TCP: it is connectionless and message- oriented (but still reliable and flow-controlled). Homa's new API not only contributes to its performance gains, but it also eliminates the massive amount of connection state required by TCP for highly connected datacenter workloads (Homa uses ~ 1 socket per application, whereas TCP requires a separate socket for each peer).
[snip]
John Ousterhout (15): net: homa: define user-visible API for Homa net: homa: create homa_wire.h net: homa: create homa_impl.h net: homa: create homa_pool.h and homa_pool.c net: homa: create homa_tx_pool.h and homa_tx_pool.c net: homa: create homa_peer.h and homa_peer.c net: homa: create homa_sock.h and homa_sock.c net: homa: create homa_interest.h and homa_interest.c net: homa: create homa_rpc.h and homa_rpc.c net: homa: create homa_outgoing.c net: homa: create homa_utils.c net: homa: create homa_incoming.c net: homa: create homa_timer.c net: homa: create homa_plumbing.c net: homa: create Makefile and Kconfig .../userspace-api/ioctl/ioctl-number.rst | 1 + MAINTAINERS | 7 + include/uapi/linux/homa.h | 290 ++++ net/Kconfig | 1 + net/Makefile | 1 + net/homa/Kconfig | 20 + net/homa/Makefile | 16 + net/homa/homa_impl.h | 593 ++++++++ net/homa/homa_incoming.c | 886 +++++++++++ net/homa/homa_interest.c | 192 +++ net/homa/homa_interest.h | 92 ++ net/homa/homa_outgoing.c | 537 +++++++ net/homa/homa_peer.c | 669 +++++++++ net/homa/homa_peer.h | 457 ++++++ net/homa/homa_plumbing.c | 1302 +++++++++++++++++ net/homa/homa_pool.c | 553 +++++++ net/homa/homa_pool.h | 184 +++ net/homa/homa_rpc.c | 735 ++++++++++ net/homa/homa_rpc.h | 545 +++++++ net/homa/homa_sock.c | 544 +++++++ net/homa/homa_sock.h | 513 +++++++ net/homa/homa_timer.c | 136 ++ net/homa/homa_tx_pool.c | 527 +++++++ net/homa/homa_tx_pool.h | 139 ++ net/homa/homa_utils.c | 119 ++ net/homa/homa_wire.h | 346 +++++ 26 files changed, 9405 insertions(+) create mode 100644 include/uapi/linux/homa.h create mode 100644 net/homa/Kconfig create mode 100644 net/homa/Makefile create mode 100644 net/homa/homa_impl.h create mode 100644 net/homa/homa_incoming.c create mode 100644 net/homa/homa_interest.c create mode 100644 net/homa/homa_interest.h create mode 100644 net/homa/homa_outgoing.c create mode 100644 net/homa/homa_peer.c create mode 100644 net/homa/homa_peer.h create mode 100644 net/homa/homa_plumbing.c create mode 100644 net/homa/homa_pool.c create mode 100644 net/homa/homa_pool.h create mode 100644 net/homa/homa_rpc.c create mode 100644 net/homa/homa_rpc.h create mode 100644 net/homa/homa_sock.c create mode 100644 net/homa/homa_sock.h create mode 100644 net/homa/homa_timer.c create mode 100644 net/homa/homa_tx_pool.c create mode 100644 net/homa/homa_tx_pool.h create mode 100644 net/homa/homa_utils.c create mode 100644 net/homa/homa_wire.h -- 2.43.0
In a (mostly) x86_64 defconfig, where CONFIG_MEMCG is not set:
../net/homa/homa_rpc.c: In function ‘homa_rpc_alloc_server’:
../net/homa/homa_rpc.c:133:22: error: ‘struct sock’ has no member named ‘sk_memcg’
133 | if (hsk->sock.sk_memcg) {
| ^
../net/homa/homa_rpc.c:134:68: error: ‘struct sock’ has no member named ‘sk_memcg’
134 | struct mem_cgroup *old = set_active_memcg(hsk->sock.sk_memcg);
|
--
~Randy