[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <d9736cb80ce91c0c947b4a975f8a4843fa6e16c4.camel@oracle.com>
Date: Thu, 3 Apr 2025 01:27:15 +0000
From: Allison Henderson <allison.henderson@...cle.com>
To: "kuba@...nel.org" <kuba@...nel.org>
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, 2025-04-02 at 09:18 -0700, Jakub Kicinski wrote:
> 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.
>
Sure, I'm out of town tomorrow through Monday, but I'll see what I can do when I get back Tues. I'm working on some
other fixes I'd like to add to the set, but they need the performance assist to not time out in the selftests, so I'll
have to find something else.
Allison
Powered by blists - more mailing lists