From: Bobby Eshleman <bobbyeshleman@gmail.com>
To: Jakub Kicinski <kuba@kernel.org>
Cc: "Bobby Eshleman" <bobby.eshleman@gmail.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Bobby Eshleman" <bobby.eshleman@bytedance.com>,
"Cong Wang" <cong.wang@bytedance.com>,
"Jiang Wang" <jiang.wang@bytedance.com>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Stefano Garzarella" <sgarzare@redhat.com>,
"Jason Wang" <jasowang@redhat.com>,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Paolo Abeni" <pabeni@redhat.com>,
kvm@vger.kernel.org, virtualization@lists.linux-foundation.org,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
"Toke Høiland-Jørgensen" <toke@toke.dk>
Subject: Re: [PATCH 3/6] vsock: add netdev to vhost/virtio vsock
Date: Tue, 16 Aug 2022 10:50:55 +0000 [thread overview]
Message-ID: <Yvt2f5i5R9NNNYUL@bullseye> (raw)
In-Reply-To: <20220816181528.5128bc06@kernel.org>
On Tue, Aug 16, 2022 at 06:15:28PM -0700, Jakub Kicinski wrote:
> On Tue, 16 Aug 2022 08:29:04 +0000 Bobby Eshleman wrote:
> > > We've been burnt in the past by people doing the "let me just pick
> > > these useful pieces out of netdev" thing. Makes life hard both for
> > > maintainers and users trying to make sense of the interfaces.
> > >
> > > What comes to mind if you're just after queuing is that we already
> > > bastardized the CoDel implementation (include/net/codel_impl.h).
> > > If CoDel is good enough for you maybe that's the easiest way?
> > > Although I suspect that you're after fairness not early drops.
> > > Wireless folks use CoDel as a second layer queuing. (CC: Toke)
> >
> > That is certainly interesting to me. Sitting next to "codel_impl.h" is
> > "include/net/fq_impl.h", and it looks like it may solve the datagram
> > flooding issue. The downside to this approach is the baking of a
> > specific policy into vsock... which I don't exactly love either.
> >
> > I'm not seeing too many other of these qdisc bastardizations in
> > include/net, are there any others that you are aware of?
>
> Just what wireless uses (so codel and fq as you found out), nothing
> else comes to mind.
>
> > > Eh, I was hoping it was a side channel of an existing virtio_net
> > > which is not the case. Given the zero-config requirement IDK if
> > > we'll be able to fit this into netdev semantics :(
> >
> > It's certainly possible that it may not fit :/ I feel that it partially
> > depends on what we mean by zero-config. Is it "no config required to
> > have a working socket" or is it "no config required, but also no
> > tuning/policy/etc... supported"?
>
> The value of tuning vs confusion of a strange netdev floating around
> in the system is hard to estimate upfront.
I think "a strange netdev floating around" is a total
mischaracterization... vsock is a networking device and it supports
vsock networks. Sure, it is a virtual device and the routing is done in
host software, but the same is true for virtio-net and VM-to-VM vlan.
This patch actually uses netdev for its intended purpose: to support and
manage the transmission of packets via a network device to a network.
Furthermore, it actually prepares vsock to eliminate a "strange" use of
a netdev. The netdev in vsockmon isn't even used to transmit
packets, it's "floating around" for no other reason than it is needed to
support packet capture, which vsock couldn't support because it didn't
have a netdev.
Something smells when we are required to build workaround kernel modules
that use netdev for ciphoning packets off to userspace, when we could
instead be using netdev for its intended purpose and get the same and
more benefit.
>
> The nice thing about using a built-in fq with no user visible knobs is
> that there's no extra uAPI. We can always rip it out and replace later.
> And it shouldn't be controversial, making the path to upstream smoother.
The issue is that after pulling in fq for one kind of flow management,
then as users observe other flow issues, we will need to re-implement
pfifo, and then TBF, and then we need to build an interface to let users
select one, and to choose queue sizes... and then after awhile we've
needlessly re-implemented huge chunks of the tc system.
I don't see any good reason to restrict vsock users to using suboptimal
and rigid queuing.
Thanks.
next prev parent reply other threads:[~2022-08-17 17:13 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-15 17:56 [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc Bobby Eshleman
2022-08-15 17:56 ` [PATCH 1/6] vsock: replace virtio_vsock_pkt with sk_buff Bobby Eshleman
2022-08-16 2:30 ` Bobby Eshleman
2022-08-15 17:56 ` [PATCH 2/6] vsock: return errors other than -ENOMEM to socket Bobby Eshleman
2022-08-15 20:01 ` kernel test robot
2022-08-15 23:13 ` kernel test robot
2022-08-16 2:16 ` kernel test robot
2022-08-16 2:30 ` Bobby Eshleman
2022-08-17 5:28 ` [virtio-dev] " Arseniy Krasnov
2022-09-26 13:21 ` Stefano Garzarella
2022-09-26 21:30 ` Bobby Eshleman
2022-08-15 17:56 ` [PATCH 3/6] vsock: add netdev to vhost/virtio vsock Bobby Eshleman
2022-08-16 2:31 ` Bobby Eshleman
2022-08-16 16:38 ` Michael S. Tsirkin
2022-08-16 6:18 ` Bobby Eshleman
2022-08-16 18:07 ` Jakub Kicinski
2022-08-16 7:02 ` Bobby Eshleman
2022-08-16 23:07 ` Jakub Kicinski
2022-08-16 8:29 ` Bobby Eshleman
2022-08-17 1:15 ` Jakub Kicinski
2022-08-16 10:50 ` Bobby Eshleman [this message]
2022-08-17 17:20 ` Michael S. Tsirkin
2022-08-18 4:34 ` Jason Wang
2022-08-17 1:23 ` [External] " Cong Wang .
2022-09-06 10:58 ` Michael S. Tsirkin
2022-08-18 14:20 ` Bobby Eshleman
2022-08-15 17:56 ` [PATCH 4/6] virtio/vsock: add VIRTIO_VSOCK_F_DGRAM feature bit Bobby Eshleman
2022-08-16 2:31 ` Bobby Eshleman
2022-09-26 13:17 ` Stefano Garzarella
2022-09-26 21:52 ` Bobby Eshleman
2022-08-15 17:56 ` [PATCH 5/6] virtio/vsock: add support for dgram Bobby Eshleman
2022-08-15 21:02 ` kernel test robot
2022-08-16 2:32 ` Bobby Eshleman
2022-08-17 5:01 ` [virtio-dev] " Arseniy Krasnov
2022-08-16 9:57 ` Bobby Eshleman
2022-08-18 8:24 ` Arseniy Krasnov
2022-08-17 5:42 ` Arseniy Krasnov
2022-08-16 9:58 ` Bobby Eshleman
2022-08-18 8:35 ` Arseniy Krasnov
2022-08-16 20:52 ` Bobby Eshleman
2022-08-19 4:30 ` Arseniy Krasnov
2022-08-15 20:39 ` [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc Michael S. Tsirkin
2022-08-16 1:55 ` Bobby Eshleman
2022-08-16 2:29 ` Bobby Eshleman
[not found] ` <CAGxU2F7+L-UiNPtUm4EukOgTVJ1J6Orqs1LMvhWWvfL9zWb23g@mail.gmail.com>
2022-08-16 2:35 ` Bobby Eshleman
2022-08-17 6:54 ` Michael S. Tsirkin
2022-08-16 9:42 ` Bobby Eshleman
2022-08-17 17:02 ` Michael S. Tsirkin
2022-08-16 11:08 ` Bobby Eshleman
2022-08-17 17:53 ` Michael S. Tsirkin
2022-08-16 12:10 ` Bobby Eshleman
2022-08-18 4:28 ` Jason Wang
2022-09-06 9:00 ` Stefano Garzarella
2022-09-06 13:26 ` Stefan Hajnoczi
2022-08-18 14:39 ` Bobby Eshleman
2022-09-08 8:30 ` Stefano Garzarella
2022-09-08 14:36 ` Call to discuss vsock netdev/sk_buff [was Re: [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc] Stefano Garzarella
2022-09-09 18:13 ` Bobby Eshleman
2022-09-12 18:12 ` Stefano Garzarella
2022-09-09 23:33 ` Bobby Eshleman
2022-09-16 3:51 ` Stefano Garzarella
2022-09-10 16:29 ` Bobby Eshleman
2022-09-26 13:42 ` [PATCH 0/6] virtio/vsock: introduce dgrams, sk_buff, and qdisc Stefano Garzarella
2022-09-26 21:44 ` Bobby Eshleman
2022-09-27 17:45 ` Stefano Garzarella
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=Yvt2f5i5R9NNNYUL@bullseye \
--to=bobbyeshleman@gmail.com \
--cc=bobby.eshleman@bytedance.com \
--cc=bobby.eshleman@gmail.com \
--cc=cong.wang@bytedance.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=jasowang@redhat.com \
--cc=jiang.wang@bytedance.com \
--cc=kuba@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sgarzare@redhat.com \
--cc=stefanha@redhat.com \
--cc=toke@toke.dk \
--cc=virtualization@lists.linux-foundation.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox