From: Breno Leitao <leitao@debian.org>
To: "David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
Andrew Lunn <andrew+netdev@lunn.ch>
Cc: netdev@vger.kernel.org, asantostc@gmail.com, gustavold@gmail.com,
linux-kernel@vger.kernel.org, kernel-team@meta.com
Subject: Re: [PATCH net-next v2 0/8] netconsole: stop charging netpoll users for netconsole-only data
Date: Mon, 6 Jul 2026 04:55:35 -0700 [thread overview]
Message-ID: <akuUkNgyjVOTHMuz@gmail.com> (raw)
In-Reply-To: <20260702-netconsole_move_more-v2-0-1ebedd921dcb@debian.org>
On Thu, Jul 02, 2026 at 05:19:44AM -0700, Breno Leitao wrote:
> This work continue to untangle netconsole and netpoll, improving
> memory usage for netpoll users that are not netconsole.
Quick follow up on the sashiko findings. most of them are assuming that
netconsole_write is called locklelly, which is not the case, except
on panic (CON_NBCON_ATOMIC_UNSAFE).
There are in order as they appear in
https://sashiko.dev/#/patchset/20260702-netconsole_move_more-v2-0-1ebedd921dcb%40debian.org
Tl;DR: There are two pre-existing issue that I will get fixed, but
I don't think they are blockers for this series (IMO).
Details of the findings and analyzes:
1) This isn't a bug introduced by this patch, but is it safe to modify
target_list using standard list primitives while netconsole_write()
iterates over it locklessly?
netconsole_write() is never called without the lock, unless on
emergency, which is known to be unsafe (CON_NBCON_ATOMIC_UNSAFE).
Sashiko doesn't undersatnd that nbcon .device_lock
(netconsole_device_lock), is called before netconsole_write
2) This is a pre-existing issue, but I noticed a potential race
condition between netdevice events and configfs rmdir that skips
cleanup. If netconsole_netdev_event() processes NETDEV_RELEASE or
NETDEV_JOIN, it sets nt->state = STATE_DISABLED and moves the target
to target_cleanup_list:
This is a pre-existing issue, and I am happy to fix in here or as
a follow-up
3) This isn't a bug introduced by this patch, but I found a potential
lockless iteration race in netconsole_write() in this file.
Again, netconsole_write() is not called locklelssly.
4) This is a pre-existing issue, but does lockless iteration of
target_list in netconsole_write() race with non-RCU list
modifications?
Same as above.
5) This is a pre-existing issue, but is there a race condition between
interface disablement and configfs removal that skips cleanup?
This is a pre-existing issue, and I am happy to fix in here or as
a follow-up.
6) This is a pre-existing issue, but does skb_dequeue() acquire
a spinlock_t in NMI contexts?
netconsole is not used on NMI contexts, unless on emergency
(CON_NBCON_ATOMIC_UNSAFE).
7) When netconsole_write() is called as an atomic console callback, it
iterates target_list locklessly. Concurrently, if a privileged user
removes the target via configfs:
netconsole_write() is only called on atomic context on emergencies.
There is no conflict with configfs.
8) This isn't a bug introduced by this patch, but could the lockless
iteration of target_list in netconsole_write() race with list
removal? In drivers/net/netconsole.c:netconsole_write():
Same as above, netconsole_write() are not called locklessly except on
ops.
next prev parent reply other threads:[~2026-07-06 11:55 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-02 12:19 [PATCH net-next v2 0/8] netconsole: stop charging netpoll users for netconsole-only data Breno Leitao
2026-07-02 12:19 ` [PATCH net-next v2 1/8] netpoll: export refill_skbs(), refill_skbs_work_handler(), skb_pool_flush() Breno Leitao
2026-07-02 12:19 ` [PATCH net-next v2 2/8] netconsole: take over skb pool lifecycle from netpoll Breno Leitao
2026-07-02 12:19 ` [PATCH net-next v2 3/8] netconsole: move refill_skbs_work_handler() " Breno Leitao
2026-07-02 12:19 ` [PATCH net-next v2 4/8] netconsole: move refill_skbs() and skb-pool sizing macros " Breno Leitao
2026-07-02 12:19 ` [PATCH net-next v2 5/8] netconsole: move skb_pool_flush() " Breno Leitao
2026-07-02 12:19 ` [PATCH net-next v2 6/8] netconsole: move skb_pool / refill_wq from struct netpoll to netconsole_target Breno Leitao
2026-07-02 12:19 ` [PATCH net-next v2 7/8] netconsole: move local_port / remote_port " Breno Leitao
2026-07-02 12:19 ` [PATCH net-next v2 8/8] netconsole: move remote_mac " Breno Leitao
2026-07-06 11:55 ` Breno Leitao [this message]
2026-07-09 10:19 ` [PATCH net-next v2 0/8] netconsole: stop charging netpoll users for netconsole-only data Simon Horman
2026-07-09 10:27 ` Paolo Abeni
2026-07-09 16:38 ` Breno Leitao
2026-07-09 10:20 ` Paolo Abeni
2026-07-10 9:46 ` Breno Leitao
2026-07-10 11:01 ` Breno Leitao
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=akuUkNgyjVOTHMuz@gmail.com \
--to=leitao@debian.org \
--cc=andrew+netdev@lunn.ch \
--cc=asantostc@gmail.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gustavold@gmail.com \
--cc=horms@kernel.org \
--cc=kernel-team@meta.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--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.