On Mon, Nov 13, 2023 at 2:44 PM Akihiko Odaki <akihiko.od...@daynix.com> wrote:
> On 2023/11/13 20:44, Yuri Benditovich wrote: > > > > > > On Sat, Nov 11, 2023 at 5:28 PM Akihiko Odaki <akihiko.od...@daynix.com > > <mailto:akihiko.od...@daynix.com>> wrote: > > > > On 2023/11/03 22:14, Yuri Benditovich wrote: > > > > > > > > > On Fri, Nov 3, 2023 at 11:55 AM Akihiko Odaki > > <akihiko.od...@daynix.com <mailto:akihiko.od...@daynix.com> > > > <mailto:akihiko.od...@daynix.com > > <mailto:akihiko.od...@daynix.com>>> wrote: > > > > > > On 2023/11/03 18:35, Yuri Benditovich wrote: > > > > > > > > > > > > On Thu, Nov 2, 2023 at 4:56 PM Akihiko Odaki > > > <akihiko.od...@daynix.com <mailto:akihiko.od...@daynix.com> > > <mailto:akihiko.od...@daynix.com <mailto:akihiko.od...@daynix.com>> > > > > <mailto:akihiko.od...@daynix.com > > <mailto:akihiko.od...@daynix.com> > > > <mailto:akihiko.od...@daynix.com > > <mailto:akihiko.od...@daynix.com>>>> wrote: > > > > > > > > On 2023/11/02 19:20, Yuri Benditovich wrote: > > > > > > > > > > > > > > > On Thu, Nov 2, 2023 at 11:33 AM Michael S. Tsirkin > > > > <m...@redhat.com <mailto:m...@redhat.com> > > <mailto:m...@redhat.com <mailto:m...@redhat.com>> > > > <mailto:m...@redhat.com <mailto:m...@redhat.com> > > <mailto:m...@redhat.com <mailto:m...@redhat.com>>> > > > > > <mailto:m...@redhat.com <mailto:m...@redhat.com> > > <mailto:m...@redhat.com <mailto:m...@redhat.com>> > > > <mailto:m...@redhat.com <mailto:m...@redhat.com> > > <mailto:m...@redhat.com <mailto:m...@redhat.com>>>>> wrote: > > > > > > > > > > On Thu, Nov 02, 2023 at 11:09:27AM +0200, Yuri > > > Benditovich wrote: > > > > > > Probably we mix two different patches in this > > > discussion. > > > > > > Focusing on the patch in the e-mail header: > > > > > > > > > > > > IMO it is not acceptable to fail QEMU run > > for one > > > feature > > > > that we > > > > > can't make > > > > > > active when we silently drop all other > > features in > > > such a > > > > case. > > > > > > > > > > If the feature is off by default then it seems > more > > > reasonable > > > > > and silent masking can be seen as a bug. > > > > > Most virtio features are on by default this is > > why it's > > > > > reasonable to mask them. > > > > > > > > > > > > > > > If we are talking about RSS: setting it initially > > off is the > > > > development > > > > > time decision. > > > > > When it will be completely stable there is no > reason to > > > keep it > > > > off by > > > > > default, so this is more a question of time and of a > > > readiness of > > > > libvirt. > > > > > > > > It is not ok to make "on" the default; that will > > enable RSS > > > even when > > > > eBPF steering support is not present and can result in > > > performance > > > > degradation. > > > > > > > > > > > > Exactly as it is today - with vhost=on the host does not > > suggest RSS > > > > without eBPF. > > > > I do not understand what you call "performance > > degradation", can you > > > > describe the scenario? > > > > > > I was not clear, but I was talking about the case of > > vhost=off or peers > > > other than tap (e.g., user). rss=on employs in-qemu RSS, > > which incurs > > > overheads for such configurations. > > > > > > > > > So, vhost=off OR peers other than tap: > > > > > > In the case of peers other than tap (IMO) we're not talking about > > > performance at all. > > > Backends like "user" (without vnet_hdr) do not support _many_ > > > performance-oriented features. > > > If RSS is somehow "supported" for such backends this is rather a > > > misunderstanding (IMO again). > > > > We do not need to ensure good performance when RSS is enabled by the > > guest for backends without eBPF steering program as you say. In-QEMU > > RSS > > is only useful for testing and not meant to improve the performance. > > > > However, if you set rss=on, QEMU will advertise the availability of > RSS > > feature. The guest will have no mean to know if it's implemented in a > > way not performance-wise so it may decide to use the feature to > improve > > the performance, which can result in performance degradation. > > Therefore, > > it's better not to set rss=on for such backends. > > > > > > I still do not understand what is the scenario where you see or suspect > > the mentioned "performance degradation". > > We can discuss whether such a problem exists as soon as you explain it. > > The scenario is that: > - rss=on, > - A backend without eBPF steering support is in use, and > - The guest expects VIRTIO_NET_F_RSS has little overheads as hardware > RSS implementations do. > > I consider the risk of the performance degradation in such a situation > is the reason why virtio-net emits a warning ("Can't load eBPF RSS - > fallback to software RSS") when in-QEMU RSS is in use. > In a described scenario (vhost=off) I do not see why the performance degradation should happen: the SW RSS (if activated) will place each packet into proper queue (even if the auto_mq in kernel is not able to do that) and such a way the guest will not need to reschedule the packet to proper CPU