Re: [PATCH net-next v3 1/2] netconsole: publish the userdata payload with RCU
Gustavo Luiz Duarte <[email protected]>
| Newsgroups | org.kernel.vger.netdev,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest |
|---|---|
| Message-ID | <CAGSyskV0naEEDZ1oYKz5S_2mLnwODATLy4Ej1OpE7XKcnag+ew@mail.gmail.com> |
On Mon, Aug 10, 2026 at 10:36 AM Breno Leitao <[email protected]> wrote: > > update_userdata() takes target_list_lock to swap nt->userdata and > nt->userdata_length, then frees the old buffer. Since commit > 7eab73b18630 ("netconsole: convert to NBCON console infrastructure") > that lock is also the console's device_lock, so writing a userdata value > from configfs serialises against the printk core emitting messages. > > The buffer is immutable once published, which is what RCU is for. Move > the string and its length into a single netcons_userdata object and > publish it with rcu_replace_pointer(), freeing the old one with > kfree_rcu(). > > New userdata design: > > 0) Unify the userdata fields into a struct netcons_userdata > 1) update_userdata() no longer needs target_list_lock. > 2) writers stay serialised by dynamic_netconsole_mutex. > 3) reading userdata needs an RCU read lock. > > No functional change intended. > > Signed-off-by: Breno Leitao <[email protected]> Reviewed-by: Gustavo Luiz Duarte <[email protected]>