From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [Qemu-devel] Re: [PATCH] virtio: Use ioeventfd for virtqueue notify Date: Mon, 04 Oct 2010 11:20:19 -0500 Message-ID: <4CA9FEC3.20205@linux.vnet.ibm.com> References: <1285855312-11739-1-git-send-email-stefanha@linux.vnet.ibm.com> <4CA862A7.2080302@redhat.com> <20101003135138.GA19775@redhat.com> <4CA89185.6070302@redhat.com> <20101003142828.GB19775@redhat.com> <4CA92B79.2030805@linux.vnet.ibm.com> <4CA98A8D.4000500@redhat.com> <4CA9DE2A.5080309@linux.vnet.ibm.com> <20101004161238.GB5795@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Avi Kivity , Steve Dobbelstein , Stefan Hajnoczi , kvm@vger.kernel.org, qemu-devel@nongnu.org, Khoa Huynh , sri@linux.vnet.ibm.com To: "Michael S. Tsirkin" Return-path: Received: from e31.co.us.ibm.com ([32.97.110.149]:37446 "EHLO e31.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752315Ab0JDQU6 (ORCPT ); Mon, 4 Oct 2010 12:20:58 -0400 Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e31.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id o94G8Q6U024040 for ; Mon, 4 Oct 2010 10:08:26 -0600 Received: from d03av05.boulder.ibm.com (d03av05.boulder.ibm.com [9.17.195.85]) by d03relay04.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id o94GKs0c111494 for ; Mon, 4 Oct 2010 10:20:55 -0600 Received: from d03av05.boulder.ibm.com (loopback [127.0.0.1]) by d03av05.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id o94GKq4p009271 for ; Mon, 4 Oct 2010 10:20:54 -0600 In-Reply-To: <20101004161238.GB5795@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 10/04/2010 11:12 AM, Michael S. Tsirkin wrote: > On Mon, Oct 04, 2010 at 09:01:14AM -0500, Anthony Liguori wrote: > >> On 10/04/2010 03:04 AM, Avi Kivity wrote: >> >>> On 10/04/2010 03:18 AM, Anthony Liguori wrote: >>> >>>> On 10/03/2010 09:28 AM, Michael S. Tsirkin wrote: >>>> >>>>> >>>>>> This is using eventfd as well. >>>>>> >>>>> Sorry, I meant irqfd. >>>>> >>>> I've tried using irqfd in userspace. It hurts performance quite >>>> a bit compared to doing an ioctl so I would suspect this too. >>>> >>>> A last_used_idx or similar mechanism should help performance >>>> quite a bit on top of ioeventfd too. >>>> >>>> >>> Any idea why? While irqfd does quite a bit of extra locking, it >>> shouldn't be that bad. >>> >> Not really. It was somewhat counter intuitive. >> >> A worthwhile experiment might be to do some layering violations and >> have vhost do an irq injection via an ioctl and see what the >> performance delta is. >> > I think you don't even need to try that hard. > Just comment this line: > // proxy->pci_dev.msix_mask_notifier = virtio_pci_mask_notifier; > this is what switches to irqfd when msi vector is unmasked. > That drops to userspace though for all irqs, no? Or did you mean that commenting that line out improves performance demonstrating the overhead of irqfd? Regards, Anthony Liguori > >> I suspect it could give vhost a nice boost. >> >> Regards, >> >> Anthony Liguori >>