All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: Andrew Melnychenko <andrew@daynix.com>,
	mst@redhat.com, armbru@redhat.com, eblake@redhat.com,
	qemu-devel@nongnu.org, yuri.benditovich@daynix.com,
	yan@daynix.com
Subject: Re: [PATCH v3 0/6] eBPF RSS through QMP support.
Date: Fri, 30 Jun 2023 09:55:26 +0100	[thread overview]
Message-ID: <ZJ6Yfu1pDBT6zaoL@redhat.com> (raw)
In-Reply-To: <CACGkMEsmKH=U7zYt6wtznjW6tcr=VvCkGfZJrfuUxWg1Ces31Q@mail.gmail.com>

On Fri, Jun 30, 2023 at 04:21:02PM +0800, Jason Wang wrote:
> On Fri, Jun 30, 2023 at 4:04 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
> >
> > On Fri, Jun 30, 2023 at 01:06:22PM +0800, Jason Wang wrote:
> > > On Thu, Jun 15, 2023 at 6:29 AM Andrew Melnychenko <andrew@daynix.com> wrote:
> > > >
> > > > This series of patches provides the ability to retrieve eBPF program
> > > > through qmp, so management application may load bpf blob with proper capabilities.
> > > > Now, virtio-net devices can accept eBPF programs and maps through properties
> > > > as external file descriptors. Access to the eBPF map is direct through mmap()
> > > > call, so it should not require additional capabilities to bpf* calls.
> > > > eBPF file descriptors can be passed to QEMU from parent process or by unix
> > > > socket with sendfd() qmp command.
> > > >
> > > > Possible solution for libvirt may look like this: https://github.com/daynix/libvirt/tree/RSS_eBPF (WIP)
> > > >
> > > > Changes since v2:
> > > >  * moved/refactored QMP command
> > > >  * refactored virtio-net
> > >
> > > I've queued this series, but a question left:
> > >
> > > mmap() support for eBPF maps is not supported from day0, should we
> > > fallback to syscall for the OS that doesn't support that?
> >
> > How recent is mmap() support ?
> 
> I don't check.
> 
> > Is it difficult to do a fallback ?
> 
> Nope, but it requires privilege if we go with a syscall.
> 
> >
> > As since is a new feature,
> 
> But it modifies the old rss loading code, no?
> 
> -    for (; i < len; ++i) {
> -        if (bpf_map_update_elem(ctx->map_indirections_table, &i,
> -                                indirections_table + i, 0) < 0) {
> -            return false;
> -        }
> -    }
> +    memcpy(ctx->mmap_indirections_table, indirections_table,
> +            sizeof(*indirections_table) * len);
> 
> > there's no inherant expectation of support
> > for arbitrary old platforms. So only worth investing in a fallback if
> > it is easy, or there's a very compelling reason to support certain
> > old platforms.
> 
> The reason is that we support eBPF RSS with syscall based map updating
> in the past if Qemu was running with privilege. With this series, it
> won't work if the kernel doesn't support mmap.

Oh right, yes, I missed that aspect. So yeah, we do need fallback.


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



  reply	other threads:[~2023-06-30  8:55 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-14 22:10 [PATCH v3 0/6] eBPF RSS through QMP support Andrew Melnychenko
2023-06-14 22:10 ` [PATCH v3 1/6] ebpf: Added eBPF map update through mmap Andrew Melnychenko
2023-06-21  7:58   ` Daniel P. Berrangé
2023-06-14 22:10 ` [PATCH v3 2/6] ebpf: Added eBPF initialization by fds Andrew Melnychenko
2023-06-21  7:58   ` Daniel P. Berrangé
2023-06-14 22:10 ` [PATCH v3 3/6] virtio-net: Added property to load eBPF RSS with fds Andrew Melnychenko
2023-06-21  8:01   ` Daniel P. Berrangé
2023-06-14 22:10 ` [PATCH v3 4/6] ebpf: Added declaration/initialization routines Andrew Melnychenko
2023-06-21  8:02   ` Daniel P. Berrangé
2023-06-14 22:10 ` [PATCH v3 5/6] qmp: Added new command to retrieve eBPF blob Andrew Melnychenko
2023-06-21  8:02   ` Daniel P. Berrangé
2023-07-07 11:45   ` Markus Armbruster
2023-07-10 12:52     ` Andrew Melnichenko
2023-06-14 22:10 ` [PATCH v3 6/6] ebpf: Updated eBPF program and skeleton Andrew Melnychenko
2023-06-21  7:58   ` Daniel P. Berrangé
2023-06-30  5:06 ` [PATCH v3 0/6] eBPF RSS through QMP support Jason Wang
2023-06-30  8:04   ` Daniel P. Berrangé
2023-06-30  8:21     ` Jason Wang
2023-06-30  8:55       ` Daniel P. Berrangé [this message]
2023-06-30 12:53         ` Andrew Melnichenko
2023-06-30  6:59 ` Jason Wang

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=ZJ6Yfu1pDBT6zaoL@redhat.com \
    --to=berrange@redhat.com \
    --cc=andrew@daynix.com \
    --cc=armbru@redhat.com \
    --cc=eblake@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=yan@daynix.com \
    --cc=yuri.benditovich@daynix.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.