From: Simon Horman <horms@kernel.org>
To: Jesper Dangaard Brouer <hawk@kernel.org>
Cc: netdev@vger.kernel.org, "Jakub Kicinski" <kuba@kernel.org>,
bpf@vger.kernel.org, tom@herbertland.com,
"Eric Dumazet" <eric.dumazet@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
"Paolo Abeni" <pabeni@redhat.com>,
"Toke Høiland-Jørgensen" <toke@toke.dk>,
dsahern@kernel.org, makita.toshiaki@lab.ntt.co.jp,
kernel-team@cloudflare.com
Subject: Re: [PATCH net-next V2 2/2] net: sched: generalize check for no-op qdisc
Date: Fri, 11 Apr 2025 13:48:00 +0100 [thread overview]
Message-ID: <20250411124800.GE395307@horms.kernel.org> (raw)
In-Reply-To: <174412628464.3702169.81132659219041209.stgit@firesoul>
On Tue, Apr 08, 2025 at 05:31:24PM +0200, Jesper Dangaard Brouer wrote:
> Several drivers (e.g., veth, vrf) contain open-coded checks to determine
> whether a TX queue has a real qdisc attached - typically by testing if
> qdisc->enqueue is non-NULL.
>
> These checks are functionally equivalent to comparing the queue's qdisc
> pointer against &noop_qdisc (qdisc named "noqueue"). This equivalence
> stems from noqueue_init(), which explicitly clears the enqueue pointer
> for the "noqueue" qdisc. As a result, __dev_queue_xmit() treats the qdisc
> as a no-op only when enqueue == NULL.
>
> This patch introduces a common helper, qdisc_txq_is_noop() to standardize
> this check. The helper is added in sch_generic.h and replaces open-coded
> logic in both the veth and vrf drivers.
>
> This is a non-functional change.
>
> Signed-off-by: Jesper Dangaard Brouer <hawk@kernel.org>
...
> diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c
> index 7168b33adadb..d4fe36c55f29 100644
> --- a/drivers/net/vrf.c
> +++ b/drivers/net/vrf.c
> @@ -349,9 +349,8 @@ static bool qdisc_tx_is_default(const struct net_device *dev)
> return false;
>
> txq = netdev_get_tx_queue(dev, 0);
> - qdisc = rcu_access_pointer(txq->qdisc);
nit: the qdisc variable is now unused in this function and can be removed.
Flagged by W=1 builds.
>
> - return !qdisc->enqueue;
> + return qdisc_txq_is_noop(txq);
> }
>
> /* Local traffic destined to local address. Reinsert the packet to rx
...
next prev parent reply other threads:[~2025-04-11 12:48 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-08 15:31 [PATCH net-next V2 0/2] veth: qdisc backpressure and qdisc check refactor Jesper Dangaard Brouer
2025-04-08 15:31 ` [PATCH net-next V2 1/2] veth: apply qdisc backpressure on full ptr_ring to reduce TX drops Jesper Dangaard Brouer
2025-04-11 12:45 ` Simon Horman
2025-04-11 13:56 ` Jesper Dangaard Brouer
2025-04-11 14:32 ` Toke Høiland-Jørgensen
2025-04-08 15:31 ` [PATCH net-next V2 2/2] net: sched: generalize check for no-op qdisc Jesper Dangaard Brouer
2025-04-08 15:47 ` Eric Dumazet
2025-04-09 13:28 ` Jesper Dangaard Brouer
2025-04-09 13:47 ` Toke Høiland-Jørgensen
2025-04-11 12:48 ` Simon Horman [this message]
2025-04-11 12:59 ` [PATCH net-next V2 0/2] veth: qdisc backpressure and qdisc check refactor Jakub Sitnicki
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=20250411124800.GE395307@horms.kernel.org \
--to=horms@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=eric.dumazet@gmail.com \
--cc=hawk@kernel.org \
--cc=kernel-team@cloudflare.com \
--cc=kuba@kernel.org \
--cc=makita.toshiaki@lab.ntt.co.jp \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=toke@toke.dk \
--cc=tom@herbertland.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.