[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250613144055.GI414686@horms.kernel.org>
Date: Fri, 13 Jun 2025 15:40:55 +0100
From: Simon Horman <horms@...nel.org>
To: John Ousterhout <ouster@...stanford.edu>
Cc: netdev@...r.kernel.org, pabeni@...hat.com, edumazet@...gle.com,
kuba@...nel.org
Subject: Re: [PATCH net-next v9 03/15] net: homa: create shared Homa header
files
On Mon, Jun 09, 2025 at 08:40:36AM -0700, John Ousterhout wrote:
> homa_impl.h defines "struct homa", which contains overall information
> about the Homa transport, plus various odds and ends that are used
> throughout the Homa implementation.
>
> homa_stub.h is a temporary header file that provides stubs for
> facilities that have omitted for this first patch series. This file
> will go away once Home is fully upstreamed.
>
> Signed-off-by: John Ousterhout <ouster@...stanford.edu>
>
> ---
> Changes for v9:
> * Move information from sync.txt into comments in homa_impl.h
> * Add limits on number of active peer structs
> * Introduce homa_net objects; there is now a single global struct homa
> shared by all network namespaces, with one homa_net per network namespace
> with netns-specific information.
> * Introduce homa_clock as an abstraction layer for the fine-grain clock.
> * Various name improvements (e.g. use "alloc" instead of "new" for functions
> that allocate memory)
> * Eliminate sizeof32 definition
>
> Changes for v8:
> * Pull out pacer-related fields into separate struct homa_pacer in homa_pacer.h
>
> Changes for v7:
> * Make Homa a per-net subsystem
> * Track tx buffer memory usage
> * Refactor waiting mechanism for incoming packets: simplify wait
> criteria and use standard Linux mechanisms for waiting
> * Remove "lock_slow" functions, which don't add functionality in this
> patch series
> * Rename homa_rpc_free to homa_rpc_end
> * Add homa_make_header_avl function
> * Use u64 and __u64 properly
> ---
> net/homa/homa_impl.h | 603 +++++++++++++++++++++++++++++++++++++++++++
> net/homa/homa_stub.h | 91 +++++++
> 2 files changed, 694 insertions(+)
> create mode 100644 net/homa/homa_impl.h
> create mode 100644 net/homa/homa_stub.h
>
> diff --git a/net/homa/homa_impl.h b/net/homa/homa_impl.h
...
> +#ifdef __CHECKER__
> +#define __context__(x, y, z) __attribute__((context(x, y, z)))
> +#else
> +#define __context__(...)
> +#endif /* __CHECKER__ */
I am unclear on the intent of this. But it does seem to be an
unusual approach within the Kernel (I couldn't find any other similar
code in-tree. And, with other patches in this series, it does seem
to lead to Sparse and Smatch flagging the following (and other similar
warnings):
.../rhashtable.h:411:9: error: macro "__context__" requires 3 arguments, but only 2 given
.../rhashtable.h:411:27: error: Expected ( after __context__ statement
.../rhashtable.h:411:27: error: got ;
I suspect it's best to remove the above.
...
Powered by blists - more mailing lists