lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ