From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: Jiri Pirko <jiri@resnulli.us>,
Jason Xing <kerneljasonxing@gmail.com>,
Heng Qi <hengqi@linux.alibaba.com>,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, xuanzhuo@linux.alibaba.com,
virtualization@lists.linux.dev, ast@kernel.org,
daniel@iogearbox.net, hawk@kernel.org, john.fastabend@gmail.com,
netdev@vger.kernel.org
Subject: Re: [patch net-next] virtio_net: add support for Byte Queue Limits
Date: Fri, 7 Jun 2024 02:39:53 -0400 [thread overview]
Message-ID: <20240607023358-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <CACGkMEv1+ZSPiy5w1SN=a73-XCwCR6vE35LWNpqhaVAom71afQ@mail.gmail.com>
On Fri, Jun 07, 2024 at 02:22:31PM +0800, Jason Wang wrote:
> On Thu, Jun 6, 2024 at 9:41 PM Jiri Pirko <jiri@resnulli.us> wrote:
> >
> > Thu, Jun 06, 2024 at 06:25:15AM CEST, jasowang@redhat.com wrote:
> > >On Thu, Jun 6, 2024 at 10:59 AM Jason Xing <kerneljasonxing@gmail.com> wrote:
> > >>
> > >> Hello Jason,
> > >>
> > >> On Thu, Jun 6, 2024 at 8:21 AM Jason Wang <jasowang@redhat.com> wrote:
> > >> >
> > >> > On Wed, Jun 5, 2024 at 7:51 PM Heng Qi <hengqi@linux.alibaba.com> wrote:
> > >> > >
> > >> > > On Wed, 5 Jun 2024 13:30:51 +0200, Jiri Pirko <jiri@resnulli.us> wrote:
> > >> > > > Mon, May 20, 2024 at 02:48:15PM CEST, jiri@resnulli.us wrote:
> > >> > > > >Fri, May 10, 2024 at 09:11:16AM CEST, hengqi@linux.alibaba.com wrote:
> > >> > > > >>On Thu, 9 May 2024 13:46:15 +0200, Jiri Pirko <jiri@resnulli.us> wrote:
> > >> > > > >>> From: Jiri Pirko <jiri@nvidia.com>
> > >> > > > >>>
> > >> > > > >>> Add support for Byte Queue Limits (BQL).
> > >> > > > >>
> > >> > > > >>Historically both Jason and Michael have attempted to support BQL
> > >> > > > >>for virtio-net, for example:
> > >> > > > >>
> > >> > > > >>https://lore.kernel.org/netdev/21384cb5-99a6-7431-1039-b356521e1bc3@redhat.com/
> > >> > > > >>
> > >> > > > >>These discussions focus primarily on:
> > >> > > > >>
> > >> > > > >>1. BQL is based on napi tx. Therefore, the transfer of statistical information
> > >> > > > >>needs to rely on the judgment of use_napi. When the napi mode is switched to
> > >> > > > >>orphan, some statistical information will be lost, resulting in temporary
> > >> > > > >>inaccuracy in BQL.
> > >> > > > >>
> > >> > > > >>2. If tx dim is supported, orphan mode may be removed and tx irq will be more
> > >> > > > >>reasonable. This provides good support for BQL.
> > >> > > > >
> > >> > > > >But when the device does not support dim, the orphan mode is still
> > >> > > > >needed, isn't it?
> > >> > > >
> > >> > > > Heng, is my assuption correct here? Thanks!
> > >> > > >
> > >> > >
> > >> > > Maybe, according to our cloud data, napi_tx=on works better than orphan mode in
> > >> > > most scenarios. Although orphan mode performs better in specific benckmark,
> > >> >
> > >> > For example pktgen (I meant even if the orphan mode can break pktgen,
> > >> > it can finish when there's a new packet that needs to be sent after
> > >> > pktgen is completed).
> > >> >
> > >> > > perf of napi_tx can be enhanced through tx dim. Then, there is no reason not to
> > >> > > support dim for devices that want the best performance.
> > >> >
> > >> > Ideally, if we can drop orphan mode, everything would be simplified.
> > >>
> > >> Please please don't do this. Orphan mode still has its merits. In some
> > >> cases which can hardly be reproduced in production, we still choose to
> > >> turn off the napi_tx mode because the delay of freeing a skb could
> > >> cause lower performance in the tx path,
> > >
> > >Well, it's probably just a side effect and it depends on how to define
> > >performance here.
> > >
> > >> which is, I know, surely
> > >> designed on purpose.
> > >
> > >I don't think so and no modern NIC uses that. It breaks a lot of things.
> > >
> > >>
> > >> If the codes of orphan mode don't have an impact when you enable
> > >> napi_tx mode, please keep it if you can.
> > >
> > >For example, it complicates BQL implementation.
> >
> > Well, bql could be disabled when napi is not used. It is just a matter
> > of one "if" in the xmit path.
>
> Maybe, care to post a patch?
>
> The trick part is, a skb is queued when BQL is enabled but sent when
> BQL is disabled as discussed here:
>
> https://lore.kernel.org/netdev/21384cb5-99a6-7431-1039-b356521e1bc3@redhat.com/
>
> Thanks
Yes of course. Or we can stick a dummy value in skb->destructor after we
orphan, maybe that's easier.
> >
> >
> > >
> > >Thanks
> > >
> > >>
> > >> Thank you.
> > >>
> > >
> >
next prev parent reply other threads:[~2024-06-07 6:40 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-09 11:46 [patch net-next] virtio_net: add support for Byte Queue Limits Jiri Pirko
2024-05-09 12:41 ` Michael S. Tsirkin
2024-05-09 13:31 ` Jiri Pirko
2024-05-09 14:28 ` Michael S. Tsirkin
2024-05-10 4:25 ` Jason Wang
2024-05-10 10:37 ` Jiri Pirko
2024-05-10 10:52 ` Michael S. Tsirkin
2024-05-10 11:11 ` Jiri Pirko
2024-05-10 11:27 ` Michael S. Tsirkin
2024-05-10 11:36 ` Jiri Pirko
2024-05-15 7:34 ` Jiri Pirko
2024-05-15 8:20 ` Michael S. Tsirkin
2024-05-15 10:12 ` Jiri Pirko
2024-05-15 12:54 ` Jiri Pirko
2024-05-16 4:48 ` Jason Wang
2024-05-16 10:54 ` Jiri Pirko
2024-05-16 12:31 ` Michael S. Tsirkin
2024-05-16 15:25 ` Jiri Pirko
2024-05-16 19:04 ` Michael S. Tsirkin
2024-05-17 7:52 ` Jiri Pirko
[not found] ` <CAA93jw6WanAQrPAFZ1hYVTXuWDwP+4J70LnmPOD2ugNwYK6HMA@mail.gmail.com>
2024-06-06 7:30 ` Jiri Pirko
2024-05-10 4:25 ` Jason Wang
2024-05-10 7:11 ` Heng Qi
2024-05-10 10:35 ` Jiri Pirko
2024-05-20 12:48 ` Jiri Pirko
2024-06-05 11:30 ` Jiri Pirko
2024-06-05 11:42 ` Heng Qi
2024-06-06 0:20 ` Jason Wang
2024-06-06 2:58 ` Jason Xing
2024-06-06 4:25 ` Jason Wang
2024-06-06 6:05 ` Michael S. Tsirkin
2024-06-06 7:56 ` Jason Wang
2024-06-06 13:45 ` Jiri Pirko
2024-06-07 6:25 ` Jason Wang
2024-06-07 6:39 ` Jiri Pirko
2024-06-07 6:43 ` Michael S. Tsirkin
2024-06-07 6:47 ` Jason Wang
2024-06-07 9:57 ` Jiri Pirko
2024-06-07 10:23 ` Michael S. Tsirkin
2024-06-07 11:30 ` Jiri Pirko
2024-06-10 14:18 ` Michael S. Tsirkin
2024-06-17 1:44 ` Jason Wang
2024-06-17 9:30 ` Jiri Pirko
2024-06-17 16:16 ` Michael S. Tsirkin
2024-06-18 1:19 ` Jason Wang
2024-06-18 0:52 ` Jason Wang
2024-06-18 18:23 ` Michael S. Tsirkin
2024-06-17 16:18 ` Michael S. Tsirkin
2024-06-07 11:22 ` Jason Xing
2024-06-06 11:42 ` Jason Xing
2024-06-06 12:00 ` Michael S. Tsirkin
2024-06-06 13:41 ` Jiri Pirko
2024-06-07 6:22 ` Jason Wang
2024-06-07 6:39 ` Michael S. Tsirkin [this message]
2024-06-07 6:40 ` Jiri Pirko
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=20240607023358-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=ast@kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=hengqi@linux.alibaba.com \
--cc=jasowang@redhat.com \
--cc=jiri@resnulli.us \
--cc=john.fastabend@gmail.com \
--cc=kerneljasonxing@gmail.com \
--cc=kuba@kernel.org \
--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.