From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NkjFI-0005vY-TA for qemu-devel@nongnu.org; Thu, 25 Feb 2010 14:19:36 -0500 Received: from [199.232.76.173] (port=46993 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NkjFI-0005uH-Ca for qemu-devel@nongnu.org; Thu, 25 Feb 2010 14:19:36 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1NkjFG-000175-NL for qemu-devel@nongnu.org; Thu, 25 Feb 2010 14:19:36 -0500 Received: from mail-qy0-f201.google.com ([209.85.221.201]:35002) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NkjFG-00016z-CC for qemu-devel@nongnu.org; Thu, 25 Feb 2010 14:19:34 -0500 Received: by qyk39 with SMTP id 39so1221678qyk.22 for ; Thu, 25 Feb 2010 11:19:33 -0800 (PST) Message-ID: <4B86CD42.205@codemonkey.ws> Date: Thu, 25 Feb 2010 13:19:30 -0600 From: Anthony Liguori MIME-Version: 1.0 References: <0de4c8d7d8f9a7e6fdfc1f161f7c95b6a2866f3e.1267122331.git.mst@redhat.com> In-Reply-To: <0de4c8d7d8f9a7e6fdfc1f161f7c95b6a2866f3e.1267122331.git.mst@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCHv2 02/12] kvm: add API to set ioeventfd List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: quintela@redhat.com, mtosatti@redhat.com, qemu-devel@nongnu.org, avi@redhat.com, amit.shah@redhat.com, kraxel@redhat.com On 02/25/2010 12:28 PM, Michael S. Tsirkin wrote: > Comment on kvm usage: rather than require users to do if (kvm_enabled()) > and/or ifdefs, this patch adds an API that, internally, is defined to > stub function on non-kvm build, and checks kvm_enabled for non-kvm > run. > > While rest of qemu code still uses if (kvm_enabled()), I think this > approach is cleaner, and we should convert rest of code to it > long term. > I'm not opposed to that. > Signed-off-by: Michael S. Tsirkin > --- > > Avi, Marcelo, pls review/ack. > > kvm-all.c | 22 ++++++++++++++++++++++ > kvm.h | 16 ++++++++++++++++ > 2 files changed, 38 insertions(+), 0 deletions(-) > > diff --git a/kvm-all.c b/kvm-all.c > index 1a02076..9742791 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -1138,3 +1138,25 @@ int kvm_set_signal_mask(CPUState *env, const sigset_t *sigset) > > return r; > } > + > +#ifdef KVM_IOEVENTFD > +int kvm_set_ioeventfd(uint16_t addr, uint16_t data, int fd, bool assigned) > I think this API could use some love. You're using a very limited set of things that ioeventfd can do and you're multiplexing creation and destruction in a single call. I think: kvm_set_ioeventfd_pio_word(int fd, uint16_t addr, uint16_t data); kvm_unset_ioeventfd_pio_word(int fd, uint16_t addr, uint16_t data); Would be better. Alternatively, an API that matched ioeventfd exactly: kvm_set_ioeventfd(int fd, uint64_t addr, int size, uint64_t data, int flags); kvm_unset_ioeventfd(...); Could work too. Regards, Anthony Liguori