From patchwork Mon Nov 5 14:03:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vitaly Mayatskih X-Patchwork-Id: 10668325 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D02CC1751 for ; Mon, 5 Nov 2018 14:05:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BF6DA29428 for ; Mon, 5 Nov 2018 14:05:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B3B632959F; Mon, 5 Nov 2018 14:05:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.7 required=2.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3EE1629428 for ; Mon, 5 Nov 2018 14:05:12 +0000 (UTC) Received: from localhost ([::1]:35463 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gJfV9-0008F8-Pp for patchwork-qemu-devel@patchwork.kernel.org; Mon, 05 Nov 2018 09:05:11 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57321) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gJfTs-0007VR-L5 for qemu-devel@nongnu.org; Mon, 05 Nov 2018 09:03:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gJfTm-0005nW-TT for qemu-devel@nongnu.org; Mon, 05 Nov 2018 09:03:52 -0500 Received: from mail-qk1-x742.google.com ([2607:f8b0:4864:20::742]:40747) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gJfTk-0005dE-Pa for qemu-devel@nongnu.org; Mon, 05 Nov 2018 09:03:46 -0500 Received: by mail-qk1-x742.google.com with SMTP id y16so13569048qki.7 for ; Mon, 05 Nov 2018 06:03:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=txUgJk5uckxp05TNB0gn14ZHIz3ZzqOuw10ududkktc=; b=pRP3yIr2xcW2Z/F8bGWtsL88BodSnB3YdNbzitYkn4J/j0vfBTlyORbu1dc2sVPk8d KoVrFBhSrMROI6KzN32rF8b1AQXun/eBzSapqWYuChlcs/c8cVprfZCANtpMcWd5ZV0K wMNN9NQ0be83aSBty28/Qm4KUWs9TAwslnbso4IBK36a7gZcbuSDXDE7SYfqmu9Srp3y 7GoQPp3bhxxxSgYiRN4cMcC5fr5uw+FdDGUMk8qtzcSFnPr9nn3l+Df27F5mN+frwo9S d+1xu4tyNcw3TBjiVfXuKGK14hqPxYnGh7scETfL9Wlox4KSO2SM4axv4RAwr5MUXWgD 4YvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=txUgJk5uckxp05TNB0gn14ZHIz3ZzqOuw10ududkktc=; b=QJCAur8zIg+Xa0iKGNGpAyD1rkBjfotlJOwbQTKyAWQ+aWqsFu3FMT3mIMPXdFzUgY mQuBFSbpxJnPCFeRqqwnpt8Xc8wEhTq4m/9aKIHBxj+5WAA3in0Sk+z9R1yQvWV1LqPc yLSJhQEueLQicKFudNgRVZxuxKJ9Es00k4MvkkTJIJsg6Swl9DCria7knplIHyIj/3ow mw3yUZSLsBTZ3tfO6jSVhiPjtifKMybrDMCnizzVQiDRGNnA6DZhA7ltG3TMuFxClQCX zhcS9l9Ux9OKcCkz/42aQWw7dJAo3kUEXHfpgU1MPdRnqsZlc6NOELwFdhdgpu+r3oOS 2NwQ== X-Gm-Message-State: AGRZ1gKSBJwkD1OaiLL09OhGApzIB9vwG5kHRggRNHVQanmTHVGaMs3o yM4pWFLDxD6kn6TrHTUN1WwHH16wgUg= X-Google-Smtp-Source: AJdET5edb7VDvj+e0MqxwwEcypt1PQrNmpeDUl76CbQ9fsnt2no4TCrTBU8JmSgHUKoUNm69Id//FA== X-Received: by 2002:aed:2946:: with SMTP id s64mr13446906qtd.383.1541426620987; Mon, 05 Nov 2018 06:03:40 -0800 (PST) Received: from u1804-ini.default (pool-96-233-74-252.bstnma.fios.verizon.net. [96.233.74.252]) by smtp.googlemail.com with ESMTPSA id q36-v6sm24118344qte.94.2018.11.05.06.03.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Nov 2018 06:03:40 -0800 (PST) From: Vitaly Mayatskikh To: qemu-devel@nongnu.org Date: Mon, 5 Nov 2018 14:03:26 +0000 Message-Id: <20181105140327.8363-1-v.mayatskih@gmail.com> X-Mailer: git-send-email 2.17.1 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::742 Subject: [Qemu-devel] [PATCH 0/1 resend] Add vhost-pci-blk driver X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , Maxim Levitsky , Vitaly Mayatskikh , "Michael S . Tsirkin" Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP This driver moves virtio-blk host-side processing to kernel (via new vhost_blk kernel driver). It accelerates virtual disk performance close to bare metal levels, especially for parellel loads. For example, fio numjobs=16 gets 101k randread IOPS using virtio-blk and 1202k IOPS using vhost-blk, close to 1480k of raw disk performance. See the IOPS numbers below. The kernel part if you want to try: - vhost_blk: https://lkml.org/lkml/2018/11/2/648 - vhost num-queues scalability fix: https://lkml.org/lkml/2018/11/2/550 # fio num-jobs # A: bare metal over block # B: bare metal over file # C: virtio-blk over block # D: virtio-blk over file # E: vhost-blk over block # F: vhost-blk over file # # A B C D E F 1 171k 151k 148k 151k 187k 175k 2 328k 302k 249k 241k 334k 296k 3 479k 437k 179k 174k 464k 404k 4 622k 568k 143k 183k 580k 492k 5 755k 697k 136k 128k 693k 579k 6 887k 808k 131k 120k 782k 640k 7 1004k 926k 126k 131k 863k 693k 8 1099k 1015k 117k 115k 931k 712k 9 1194k 1119k 115k 111k 991k 711k 10 1278k 1207k 109k 114k 1046k 695k 11 1345k 1280k 110k 108k 1091k 663k 12 1411k 1356k 104k 106k 1142k 629k 13 1466k 1423k 106k 106k 1170k 607k 14 1517k 1486k 103k 106k 1179k 589k 15 1552k 1543k 102k 102k 1191k 571k 16 1480k 1506k 101k 102k 1202k 566k Vitaly Mayatskikh (1): Add vhost-pci-blk driver configure | 10 +++++++ default-configs/virtio.mak | 1 + hw/block/Makefile.objs | 1 + hw/virtio/virtio-pci.c | 60 ++++++++++++++++++++++++++++++++++++++ hw/virtio/virtio-pci.h | 19 ++++++++++++ 5 files changed, 91 insertions(+)