All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Jurgens <danielj@nvidia.com>
To: Heng Qi <hengqi@linux.alibaba.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Cc: "mst@redhat.com" <mst@redhat.com>,
	"jasowang@redhat.com" <jasowang@redhat.com>,
	"xuanzhuo@linux.alibaba.com" <xuanzhuo@linux.alibaba.com>,
	"virtualization@lists.linux.dev" <virtualization@lists.linux.dev>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"edumazet@google.com" <edumazet@google.com>,
	"kuba@kernel.org" <kuba@kernel.org>,
	"pabeni@redhat.com" <pabeni@redhat.com>,
	Jiri Pirko <jiri@nvidia.com>
Subject: RE: [PATCH net-next 0/4] Remove RTNL lock protection of CVQ
Date: Tue, 26 Mar 2024 04:11:05 +0000	[thread overview]
Message-ID: <CH0PR12MB8580BA6DB62352F6378E8EBFC9352@CH0PR12MB8580.namprd12.prod.outlook.com> (raw)
In-Reply-To: <23e442f0-a18b-4da0-9321-f543b028cd7e@linux.alibaba.com>

> From: Heng Qi <hengqi@linux.alibaba.com>
> Sent: Monday, March 25, 2024 9:54 PM
> To: Dan Jurgens <danielj@nvidia.com>; netdev@vger.kernel.org
> Cc: mst@redhat.com; jasowang@redhat.com; xuanzhuo@linux.alibaba.com;
> virtualization@lists.linux.dev; davem@davemloft.net;
> edumazet@google.com; kuba@kernel.org; pabeni@redhat.com; Jiri Pirko
> <jiri@nvidia.com>
> Subject: Re: [PATCH net-next 0/4] Remove RTNL lock protection of CVQ
> 
> 
> 
> 在 2024/3/26 上午5:49, Daniel Jurgens 写道:
> > 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 dependancy by introducing a spin
> > lock to protect the control buffer and writing SGs to the control VQ.
> 
> Hi Daniel.
> 
> It's a nice piece of work, but now that we're talking about ctrlq adding
> interrupts, spin lock has some conflicts with its goals. For example, we expect
> the ethtool command to be blocked.
> Therefore, a mutex lock may be more suitable.
> 
> Any how, the final conclusion may require some waiting.

Thanks, Heng

I took this a step further and made the ctrlq interrupt driven, but an internal reviewer pointed me to this:
https://lore.kernel.org/lkml/20230413064027.13267-1-jasowang@redhat.com/ (sorry if it gets safelinked)

It seemed there was little appetite to go that route last year, because of set RX mode behavior change, and consumption of an additional IRQ.

Either way, I think the spin lock is still needed. In my interrupt driven implantation I was allocating a new control buffer instead of just the data fields. The spin lock was tighter around virtqueue_add_sgs, after the kick it would unlock and wait for a completion that would be triggered from the cvq callback. 


> 
> Regards,
> Heng
> 
> >
> > Daniel Jurgens (4):
> >    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: Remove rtnl lock protection of command buffers
> >
> >   drivers/net/virtio_net.c | 185 ++++++++++++++++++++++-----------------
> >   1 file changed, 104 insertions(+), 81 deletions(-)
> >


  reply	other threads:[~2024-03-26  4:11 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-25 21:49 [PATCH net-next 0/4] Remove RTNL lock protection of CVQ Daniel Jurgens
2024-03-25 21:49 ` [PATCH net-next 1/4] virtio_net: Store RSS setting in virtnet_info Daniel Jurgens
2024-03-25 21:49 ` [PATCH net-next 2/4] virtio_net: Remove command data from control_buf Daniel Jurgens
2024-03-26  7:06   ` Heng Qi
2024-03-28 13:35   ` Simon Horman
2024-03-28 15:29     ` Michael S. Tsirkin
2024-03-25 21:49 ` [PATCH net-next 3/4] virtio_net: Add a lock for the command VQ Daniel Jurgens
2024-03-25 21:49 ` [PATCH net-next 4/4] virtio_net: Remove rtnl lock protection of command buffers Daniel Jurgens
2024-03-26  8:54   ` Heng Qi
2024-03-26 15:18     ` Dan Jurgens
2024-03-27  2:10       ` Heng Qi
2024-03-27 12:00         ` Heng Qi
2024-03-26  1:33 ` [PATCH net-next 0/4] Remove RTNL lock protection of CVQ Xuan Zhuo
2024-03-26  2:54 ` Heng Qi
2024-03-26  4:11   ` Dan Jurgens [this message]
2024-03-26  6:05     ` Heng Qi

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=CH0PR12MB8580BA6DB62352F6378E8EBFC9352@CH0PR12MB8580.namprd12.prod.outlook.com \
    --to=danielj@nvidia.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hengqi@linux.alibaba.com \
    --cc=jasowang@redhat.com \
    --cc=jiri@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=mst@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=virtualization@lists.linux.dev \
    --cc=xuanzhuo@linux.alibaba.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.