From: Sean Christopherson <seanjc@google.com>
To: Thanos Makatos <thanos.makatos@nutanix.com>
Cc: "kvm@vger.kernel.org" <kvm@vger.kernel.org>,
John Levon <john.levon@nutanix.com>,
"mst@redhat.com" <mst@redhat.com>,
"john.g.johnson@oracle.com" <john.g.johnson@oracle.com>,
"dinechin@redhat.com" <dinechin@redhat.com>,
"cohuck@redhat.com" <cohuck@redhat.com>,
"jasowang@redhat.com" <jasowang@redhat.com>,
"stefanha@redhat.com" <stefanha@redhat.com>,
"jag.raman@oracle.com" <jag.raman@oracle.com>,
"eafanasova@gmail.com" <eafanasova@gmail.com>,
"elena.ufimtseva@oracle.com" <elena.ufimtseva@oracle.com>,
"changpeng.liu@intel.com" <changpeng.liu@intel.com>,
"james.r.harris@intel.com" <james.r.harris@intel.com>,
"benjamin.walker@intel.com" <benjamin.walker@intel.com>
Subject: Re: [RFC PATCH] KVM: optionally commit write on ioeventfd write
Date: Tue, 2 Dec 2025 14:53:59 -0800 [thread overview]
Message-ID: <aS9uBw_w7NM_Vnw1@google.com> (raw)
In-Reply-To: <DS0PR02MB93218C62840E0E9FA240FAF68BD8A@DS0PR02MB9321.namprd02.prod.outlook.com>
On Tue, Dec 02, 2025, Thanos Makatos wrote:
> > -----Original Message-----
> > I think it's also worth hoisting the validity
> > checks into kvm_assign_ioeventfd_idx() so that this can use the slightly more
> > optimal __copy_to_user().
> >
> > E.g.
> >
> > if (args->flags & KVM_IOEVENTFD_FLAG_REDIRECT) {
> > if (!args->len || !args->post_addr ||
> > != untagged_addr(args->post_addr) ||
> > !access_ok((void __user *)(unsigned long)args->post_addr, args->len)) {
> > ret = -EINVAL;
> > goto fail;
> > }
> >
> > p->post_addr = (void __user *)(unsigned long)args-
> > >post_addr;
> > }
> >
> > And then the usage here can be
> >
> > if (p->post_addr && __copy_to_user(p->post_addr, val, len))
> > return -EFAULT;
> >
>
> Did you mean to write __copy_to_user(p->redirect, val, len) here?
I don't think so? Ah, it's KVM_IOEVENTFD_FLAG_REDIRECT that's stale. That
should have been something like KVM_IOEVENTFD_FLAG_POST_WRITES.
> > I assume the spinlock in eventfd_signal() provides ordering even on weakly
> > ordered architectures, but we should double check that, i.e. that we don't
> > need an explicitly barrier of some kind.
>
> Are you talking about the possibility of whoever polls the eventfd not
> observing the value being written?
Ya, KVM needs to ensure the write is visible before the wakeup occurs.
Side topic, Paolo had an off-the-cuff idea of adding uAPI to support notifications
on memslot ranges, as opposed to posting writes via ioeventfd. E.g. add a memslot
flag, or maybe a memory attribute, that causes KVM to write-protect a region,
emulate in response to writes, and then notify an eventfd after emulating the
write. It'd be a lot like KVM_MEM_READONLY, except that KVM would commit the
write to memory and notify, as opposed to exiting to userspace.
next prev parent reply other threads:[~2025-12-02 22:54 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-05 21:15 [RFC PATCH] KVM: optionally commit write on ioeventfd write Thanos Makatos
2025-09-05 14:09 ` Sean Christopherson
2025-12-02 9:15 ` Thanos Makatos
2025-12-02 22:53 ` Sean Christopherson [this message]
2025-12-03 14:25 ` Thanos Makatos
2025-12-15 22:42 ` Thanos Makatos
2025-12-19 1:20 ` Sean Christopherson
2025-12-19 10:36 ` John Levon
2026-01-13 19:43 ` Thanos Makatos
2026-01-13 20:00 ` Sean Christopherson
2026-03-02 12:28 ` [PATCH] KVM: optionally post " Thanos Makatos
2026-03-05 1:26 ` Sean Christopherson
2026-03-06 11:14 ` Thanos Makatos
2026-03-05 1:49 ` kernel test robot
2026-03-05 9:39 ` kernel test robot
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=aS9uBw_w7NM_Vnw1@google.com \
--to=seanjc@google.com \
--cc=benjamin.walker@intel.com \
--cc=changpeng.liu@intel.com \
--cc=cohuck@redhat.com \
--cc=dinechin@redhat.com \
--cc=eafanasova@gmail.com \
--cc=elena.ufimtseva@oracle.com \
--cc=jag.raman@oracle.com \
--cc=james.r.harris@intel.com \
--cc=jasowang@redhat.com \
--cc=john.g.johnson@oracle.com \
--cc=john.levon@nutanix.com \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=stefanha@redhat.com \
--cc=thanos.makatos@nutanix.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.