Message ID | 20240503202445.1415560-1-danielj@nvidia.com (mailing list archive) |
---|---|
Headers | show |
Series | Remove RTNL lock protection of CVQ | expand |
On Fri, 3 May 2024 23:24:39 +0300, Daniel Jurgens <danielj@nvidia.com> wrote: > Currently the buffer used for control VQ commands is protected by the > RTNL lock. Previously this wasn't a major concern because the control VQ > was only used during device setup and user interaction. With the recent > addition of dynamic interrupt moderation the control VQ may be used > frequently during normal operation. > > This series removes the RNTL lock dependency by introducing a mutex > to protect the control buffer and writing SGs to the control VQ. > For the series, keep tags: Reviewed-by: Heng Qi <hengqi@linux.alibaba.com> Tested-by: Heng Qi <hengqi@linux.alibaba.com> > v6: > - Rebased over new stats code. > - Added comment to cvq_lock, init the mutex unconditionally, > and replaced some duplicate code with a goto. > - Fixed minor grammer errors, checkpatch warnings, and clarified > a comment. > v5: > - Changed cvq_lock to a mutex. > - Changed dim_lock to mutex, because it's held taking > the cvq_lock. > - Use spin/mutex_lock/unlock vs guard macros. > v4: > - Protect dim_enabled with same lock as well intr_coal. > - Rename intr_coal_lock to dim_lock. > - Remove some scoped_guard where the error path doesn't > have to be in the lock. > v3: > - Changed type of _offloads to __virtio16 to fix static > analysis warning. > - Moved a misplaced hunk to the correct patch. > v2: > - New patch to only process the provided queue in > virtnet_dim_work > - New patch to lock per queue rx coalescing structure. > > Daniel Jurgens (6): > virtio_net: Store RSS setting in virtnet_info > virtio_net: Remove command data from control_buf > virtio_net: Add a lock for the command VQ. > virtio_net: Do DIM update for specified queue only > virtio_net: Add a lock for per queue RX coalesce > virtio_net: Remove rtnl lock protection of command buffers > > drivers/net/virtio_net.c | 288 +++++++++++++++++++++++---------------- > 1 file changed, 173 insertions(+), 115 deletions(-) > > -- > 2.44.0 > >
On Mon, May 6, 2024 at 2:20 PM Heng Qi <hengqi@linux.alibaba.com> wrote: > > On Fri, 3 May 2024 23:24:39 +0300, Daniel Jurgens <danielj@nvidia.com> wrote: > > Currently the buffer used for control VQ commands is protected by the > > RTNL lock. Previously this wasn't a major concern because the control VQ > > was only used during device setup and user interaction. With the recent > > addition of dynamic interrupt moderation the control VQ may be used > > frequently during normal operation. > > > > This series removes the RNTL lock dependency by introducing a mutex > > to protect the control buffer and writing SGs to the control VQ. > > > > For the series, keep tags: > > Reviewed-by: Heng Qi <hengqi@linux.alibaba.com> > Tested-by: Heng Qi <hengqi@linux.alibaba.com> > Acked-by: Jason Wang <jasowang@redhat.com> Thanks
Hello: This series was applied to netdev/net-next.git (main) by Paolo Abeni <pabeni@redhat.com>: On Fri, 3 May 2024 23:24:39 +0300 you wrote: > Currently the buffer used for control VQ commands is protected by the > RTNL lock. Previously this wasn't a major concern because the control VQ > was only used during device setup and user interaction. With the recent > addition of dynamic interrupt moderation the control VQ may be used > frequently during normal operation. > > This series removes the RNTL lock dependency by introducing a mutex > to protect the control buffer and writing SGs to the control VQ. > > [...] Here is the summary with links: - [net-next,v6,1/6] virtio_net: Store RSS setting in virtnet_info https://git.kernel.org/netdev/net-next/c/fce29030c565 - [net-next,v6,2/6] virtio_net: Remove command data from control_buf https://git.kernel.org/netdev/net-next/c/ff7c7d9f5261 - [net-next,v6,3/6] virtio_net: Add a lock for the command VQ. https://git.kernel.org/netdev/net-next/c/6f45ab3e0409 - [net-next,v6,4/6] virtio_net: Do DIM update for specified queue only https://git.kernel.org/netdev/net-next/c/650d77c51e24 - [net-next,v6,5/6] virtio_net: Add a lock for per queue RX coalesce https://git.kernel.org/netdev/net-next/c/4d4ac2ececd3 - [net-next,v6,6/6] virtio_net: Remove rtnl lock protection of command buffers https://git.kernel.org/netdev/net-next/c/f8befdb21be0 You are awesome, thank you!