[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250402091839.0a70f23d@kernel.org>
Date: Wed, 2 Apr 2025 09:18:39 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: Allison Henderson <allison.henderson@...cle.com>
Cc: "netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: Re: [PATCH 1/6] net/rds: Avoid queuing superfluous send and recv
work
On Wed, 2 Apr 2025 01:34:40 +0000 Allison Henderson wrote:
> I had a look at the example, how about we move the barriers from
> rds_clear_queued_send_work_bit into rds_cond_queue_send_work? Then
> we have something like this:
>
> static inline void rds_cond_queue_send_work(struct rds_conn_path *cp,
> unsigned long delay) {
> /* Ensure prior clear_bit operations for RDS_SEND_WORK_QUEUED are observed */ smp_mb__before_atomic();
>
> if (!test_and_set_bit(RDS_SEND_WORK_QUEUED, &cp->cp_flags))
> queue_delayed_work(rds_wq, &cp->cp_send_w, delay);
>
> /* Ensure the RDS_SEND_WORK_QUEUED bit is observed before proceeding */ smp_mb__after_atomic();
> }
>
> I think that's more like whats in the example, and in line with what
> this patch is trying to do. Let me know what you think.
Sorry, this still feels like a cargo cult to me.
Let's get a clear explanation of what the barriers order
or just skip the patch.
Powered by blists - more mailing lists