All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: John Ousterhout <ouster@cs.stanford.edu>
Cc: netdev@vger.kernel.org, pabeni@redhat.com, edumazet@google.com,
	kuba@kernel.org
Subject: Re: [PATCH net-next v9 13/15] net: homa: create homa_timer.c
Date: Fri, 13 Jun 2025 15:41:33 +0100	[thread overview]
Message-ID: <20250613144133.GJ414686@horms.kernel.org> (raw)
In-Reply-To: <20250609154051.1319-14-ouster@cs.stanford.edu>

On Mon, Jun 09, 2025 at 08:40:46AM -0700, John Ousterhout wrote:
> This file contains code that wakes up periodically to check for
> missing data, initiate retransmissions, and declare peer nodes
> "dead".
> 
> Signed-off-by: John Ousterhout <ouster@cs.stanford.edu>

...

> diff --git a/net/homa/homa_timer.c b/net/homa/homa_timer.c

...

> +/**
> + * homa_timer() - This function is invoked at regular intervals ("ticks")
> + * to implement retries and aborts for Homa.
> + * @homa:    Overall data about the Homa protocol implementation.
> + */
> +void homa_timer(struct homa *homa)
> +{
> +	struct homa_socktab_scan scan;
> +	struct homa_sock *hsk;
> +	struct homa_rpc *rpc;
> +	int total_rpcs = 0;

total_rpcs is set but otherwise unused in this function.
It looks like it can be removed.

Flagged by clang 20.1.4 as:

  net/homa/homa_timer.c:107:6: warning: variable 'total_rpcs' set but not used [-Wunused-but-set-variable]
    107 |         int total_rpcs = 0;
        |             ^

> +	int rpc_count = 0;
> +
> +	homa->timer_ticks++;
> +
> +	/* Scan all existing RPCs in all sockets. */
> +	for (hsk = homa_socktab_start_scan(homa->socktab, &scan);
> +			hsk; hsk = homa_socktab_next(&scan)) {
> +		while (hsk->dead_skbs >= homa->dead_buffs_limit)
> +			/* If we get here, it means that Homa isn't keeping
> +			 * up with RPC reaping, so we'll help out.  See
> +			 * "RPC Reaping Strategy" in homa_rpc_reap code for
> +			 * details.
> +			 */
> +			if (homa_rpc_reap(hsk, false) == 0)
> +				break;
> +
> +		if (list_empty(&hsk->active_rpcs) || hsk->shutdown)
> +			continue;
> +
> +		if (!homa_protect_rpcs(hsk))
> +			continue;
> +		rcu_read_lock();
> +		list_for_each_entry_rcu(rpc, &hsk->active_rpcs, active_links) {
> +			total_rpcs++;
> +			homa_rpc_lock(rpc);
> +			if (rpc->state == RPC_IN_SERVICE) {
> +				rpc->silent_ticks = 0;
> +				homa_rpc_unlock(rpc);
> +				continue;
> +			}
> +			rpc->silent_ticks++;
> +			homa_timer_check_rpc(rpc);
> +			homa_rpc_unlock(rpc);
> +			rpc_count++;
> +			if (rpc_count >= 10) {
> +				/* Give other kernel threads a chance to run
> +				 * on this core.
> +				 */
> +				rcu_read_unlock();
> +				schedule();
> +				rcu_read_lock();
> +				rpc_count = 0;
> +			}
> +		}
> +		rcu_read_unlock();
> +		homa_unprotect_rpcs(hsk);
> +	}
> +	homa_socktab_end_scan(&scan);
> +	homa_skb_release_pages(homa);
> +	homa_peer_gc(homa->peertab);
> +}
> -- 
> 2.43.0
> 

  reply	other threads:[~2025-06-13 14:41 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-09 15:40 [PATCH net-next v9 00/15] Begin upstreaming Homa transport protocol John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 01/15] net: homa: define user-visible API for Homa John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 02/15] net: homa: create homa_wire.h John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 03/15] net: homa: create shared Homa header files John Ousterhout
2025-06-13 14:40   ` Simon Horman
2025-06-13 18:36     ` John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 04/15] net: homa: create homa_pool.h and homa_pool.c John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 05/15] net: homa: create homa_peer.h and homa_peer.c John Ousterhout
2025-06-13 14:39   ` Simon Horman
2025-06-13 17:12     ` John Ousterhout
2025-06-13 17:18       ` Simon Horman
2025-06-13 18:02         ` John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 06/15] net: homa: create homa_sock.h and homa_sock.c John Ousterhout
2025-06-13 14:42   ` Simon Horman
2025-06-13 18:47     ` John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 07/15] net: homa: create homa_interest.h and homa_interest John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 08/15] net: homa: create homa_pacer.h and homa_pacer.c John Ousterhout
2025-06-13 14:43   ` Simon Horman
2025-06-13 18:50     ` John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 09/15] net: homa: create homa_rpc.h and homa_rpc.c John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 10/15] net: homa: create homa_outgoing.c John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 11/15] net: homa: create homa_utils.c John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 12/15] net: homa: create homa_incoming.c John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 13/15] net: homa: create homa_timer.c John Ousterhout
2025-06-13 14:41   ` Simon Horman [this message]
2025-06-13 18:44     ` John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 14/15] net: homa: create homa_plumbing.c John Ousterhout
2025-06-09 15:40 ` [PATCH net-next v9 15/15] net: homa: create Makefile and Kconfig John Ousterhout
  -- strict thread matches above, loose matches on Subject: below --
2025-05-26  4:28 [PATCH net-next v9 00/15] Begin upstreaming Homa transport protocol John Ousterhout
2025-05-26  4:28 ` [PATCH net-next v9 13/15] net: homa: create homa_timer.c John Ousterhout

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250613144133.GJ414686@horms.kernel.org \
    --to=horms@kernel.org \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=ouster@cs.stanford.edu \
    --cc=pabeni@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.