public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: Ilias Stamatis <ilstam@amazon.co.uk>
Cc: "kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	 Paul Durrant <pdurrant@amazon.co.uk>,
	 "nh-open-source@amazon.com" <nh-open-source@amazon.com>,
	David Woodhouse <dwmw@amazon.co.uk>,
	 "paul@xen.org" <paul@xen.org>
Subject: Re: [PATCH v3 2/6] KVM: Add KVM_CREATE_COALESCED_MMIO_BUFFER ioctl
Date: Thu, 29 Aug 2024 07:55:03 -0700	[thread overview]
Message-ID: <ZtCLx3zn3QznN8La@google.com> (raw)
In-Reply-To: <7af072f062cb4df5aac10540d4af994dc2fcd466.camel@amazon.co.uk>

On Thu, Aug 29, 2024, Ilias Stamatis wrote:
> On Wed, 2024-08-28 at 07:25 -0700, Sean Christopherson wrote:
> > > returns a file descriptor to the caller but does not allocate a ring
> > > buffer. Userspace can then pass this fd to mmap() to actually allocate a
> > > buffer and map it to its address space.
> > > 
> > > Subsequent patches will allow userspace to:
> > > 
> > > - Associate the fd with a coalescing zone when registering it so that
> > >   writes to that zone are accumulated in that specific ring buffer
> > >   rather than the VM-wide one.
> > > - Poll for MMIO writes using this fd.
> > 
> > Why?  I get the desire for a doorbell, but KVM already supports "fast" I/O for
> > doorbells. 
> 
> What do you refer to here? ioeventfd? 

Ya.

> Correct me if I am wrong, but my understanding is that with an
> ioeventfd the write value is not available. And that is a problem when
> that value is a head or tail pointer. 

Ah.  Can you describe (or point at) an example device?  I don't read many device
specs (understatement).  It would be helpful to have a concrete use case for
reviewing the design itself.

In a perfect world, poll() support would come from a third party file type, as
this doesn't seem _that_ unique (to KVM).  But AFAICT there isn't an existing
type that is a good fit, probably because it's such a simple thing.

  reply	other threads:[~2024-08-29 14:55 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-20 13:33 [PATCH v3 0/6] KVM: Improve MMIO Coalescing API Ilias Stamatis
2024-08-20 13:33 ` [PATCH v3 1/6] KVM: Fix coalesced_mmio_has_room() Ilias Stamatis
2024-08-24  0:04   ` Sean Christopherson
2024-08-20 13:33 ` [PATCH v3 2/6] KVM: Add KVM_CREATE_COALESCED_MMIO_BUFFER ioctl Ilias Stamatis
2024-08-28 14:25   ` Sean Christopherson
2024-08-29 11:20     ` Stamatis, Ilias
2024-08-29 14:55       ` Sean Christopherson [this message]
2024-08-29 17:42         ` Stamatis, Ilias
2024-08-20 13:33 ` [PATCH v3 3/6] KVM: Support poll() on coalesced mmio buffer fds Ilias Stamatis
2024-08-20 13:33 ` [PATCH v3 4/6] KVM: Add KVM_(UN)REGISTER_COALESCED_MMIO2 ioctls Ilias Stamatis
2024-08-20 13:33 ` [PATCH v3 5/6] KVM: Documentation: Document v2 of coalesced MMIO API Ilias Stamatis
2024-08-20 13:33 ` [PATCH v3 6/6] KVM: selftests: Add coalesced_mmio_test Ilias Stamatis
2024-08-28 17:20   ` Sean Christopherson

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=ZtCLx3zn3QznN8La@google.com \
    --to=seanjc@google.com \
    --cc=dwmw@amazon.co.uk \
    --cc=ilstam@amazon.co.uk \
    --cc=kvm@vger.kernel.org \
    --cc=nh-open-source@amazon.com \
    --cc=paul@xen.org \
    --cc=pbonzini@redhat.com \
    --cc=pdurrant@amazon.co.uk \
    /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