From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35392) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WwRkY-0001Yi-KM for qemu-devel@nongnu.org; Mon, 16 Jun 2014 03:54:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WwRkT-00069v-Uw for qemu-devel@nongnu.org; Mon, 16 Jun 2014 03:54:42 -0400 Received: from mail-wi0-x235.google.com ([2a00:1450:400c:c05::235]:40654) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WwRkT-00069p-MP for qemu-devel@nongnu.org; Mon, 16 Jun 2014 03:54:37 -0400 Received: by mail-wi0-f181.google.com with SMTP id n3so3519669wiv.8 for ; Mon, 16 Jun 2014 00:54:36 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <539EA2B5.3000808@redhat.com> Date: Mon, 16 Jun 2014 09:54:29 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1401847555-8306-1-git-send-email-ming.lei@canonical.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] hw/virtio: enable common virtio feature for mmio device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Ming Lei , Peter Maydell , qemu-devel@nongnu.org Il 09/06/2014 10:00, Ming Lei ha scritto: > On Wed, Jun 4, 2014 at 10:05 AM, Ming Lei wrote: >> Both 'indirect_desc' and 'event_idx' are bus independent features, >> and they should be enabled for mmio devices too. >> >> On arm64 quad core VM(qemu-kvm), the patch can increase block I/O >> performance a lot with latest linux tree: >> - without the patch: 14K IOPS >> - with the patch: 34K IOPS >> >> fio script: >> [global] >> direct=1 >> bsrange=4k-4k >> timeout=10 >> numjobs=4 >> ioengine=libaio >> iodepth=64 >> >> filename=/dev/vdc >> group_reporting=1 >> >> [f1] >> rw=randread >> >> Cc: Peter Maydell >> Signed-off-by: Ming Lei >> --- >> hw/virtio/virtio-mmio.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c >> index 8829eb0..18c6e5b 100644 >> --- a/hw/virtio/virtio-mmio.c >> +++ b/hw/virtio/virtio-mmio.c >> @@ -369,10 +369,16 @@ static void virtio_mmio_realizefn(DeviceState *d, Error **errp) >> sysbus_init_mmio(sbd, &proxy->iomem); >> } >> >> +static Property virtio_mmio_properties[] = { >> + DEFINE_VIRTIO_COMMON_FEATURES(VirtIOMMIOProxy, host_features), >> + DEFINE_PROP_END_OF_LIST(), >> +}; >> + >> static void virtio_mmio_class_init(ObjectClass *klass, void *data) >> { >> DeviceClass *dc = DEVICE_CLASS(klass); >> >> + dc->props = virtio_mmio_properties; >> dc->realize = virtio_mmio_realizefn; >> dc->reset = virtio_mmio_reset; >> set_bit(DEVICE_CATEGORY_MISC, dc->categories); >> -- >> 1.7.9.5 Looks good. Can you look into moving DEFINE_VIRTIO_COMMON_FEATURES from all virtio pci devices to TYPE_VIRTIO_PCI, too? Thanks, Paolo