From patchwork Mon Jul 3 06:01:45 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Hao QingFeng X-Patchwork-Id: 9821963 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id EF0926035F for ; Mon, 3 Jul 2017 06:02:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DFA3726785 for ; Mon, 3 Jul 2017 06:02:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D429328504; Mon, 3 Jul 2017 06:02:41 +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=-6.9 required=2.0 tests=BAYES_00,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 4B3AB28505 for ; Mon, 3 Jul 2017 06:02:40 +0000 (UTC) Received: from localhost ([::1]:60479 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dRuRS-0003kN-Ts for patchwork-qemu-devel@patchwork.kernel.org; Mon, 03 Jul 2017 02:02:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55897) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dRuQq-0003jW-0x for qemu-devel@nongnu.org; Mon, 03 Jul 2017 02:02:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dRuQl-0006EK-3t for qemu-devel@nongnu.org; Mon, 03 Jul 2017 02:02:00 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:43254 helo=mx0a-001b2d01.pphosted.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dRuQk-0006Dj-UB for qemu-devel@nongnu.org; Mon, 03 Jul 2017 02:01:55 -0400 Received: from pps.filterd (m0098414.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v635wf79114635 for ; Mon, 3 Jul 2017 02:01:53 -0400 Received: from e19.ny.us.ibm.com (e19.ny.us.ibm.com [129.33.205.209]) by mx0b-001b2d01.pphosted.com with ESMTP id 2bf13v1jau-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Mon, 03 Jul 2017 02:01:53 -0400 Received: from localhost by e19.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 3 Jul 2017 02:01:52 -0400 Received: from b01cxnp22033.gho.pok.ibm.com (9.57.198.23) by e19.ny.us.ibm.com (146.89.104.206) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 3 Jul 2017 02:01:49 -0400 Received: from b01ledav005.gho.pok.ibm.com (b01ledav005.gho.pok.ibm.com [9.57.199.110]) by b01cxnp22033.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v6361lPw46333972; Mon, 3 Jul 2017 06:01:49 GMT Received: from b01ledav005.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2C4ADAE043; Mon, 3 Jul 2017 02:01:53 -0400 (EDT) Received: from [9.125.67.96] (unknown [9.125.67.96]) by b01ledav005.gho.pok.ibm.com (Postfix) with ESMTPS id 9CFB5AE03C; Mon, 3 Jul 2017 02:01:51 -0400 (EDT) To: Kevin Wolf References: <1498234919-27316-1-git-send-email-kwolf@redhat.com> <1498234919-27316-12-git-send-email-kwolf@redhat.com> <4c7f09a2-04b4-25b0-b9c7-cbdb5dc3c795@linux.vnet.ibm.com> <20170628102213.GB5378@noname.redhat.com> From: QingFeng Hao Date: Mon, 3 Jul 2017 14:01:45 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <20170628102213.GB5378@noname.redhat.com> X-TM-AS-GCONF: 00 x-cbid: 17070306-0056-0000-0000-0000039C4ACA X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00007311; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000214; SDB=6.00882092; UDB=6.00439911; IPR=6.00662282; BA=6.00005449; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00016051; XFM=3.00000015; UTC=2017-07-03 06:01:51 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17070306-0057-0000-0000-000007D24E3B Message-Id: <799c3d2f-237c-9833-e8fe-0af6d461e252@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-03_03:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1707030099 X-MIME-Autoconverted: from 8bit to quoted-printable by mx0b-001b2d01.pphosted.com id v635wf79114635 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.158.5 Subject: Re: [Qemu-devel] [Qemu-block] [PULL 11/61] virtio-pci: use ioeventfd even when KVM is disabled 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: stefanha@redhat.com, Fam Zheng , qemu-devel@nongnu.org, qemu-block@nongnu.org Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP 在 2017/6/28 18:22, Kevin Wolf 写道: > Am 28.06.2017 um 12:11 hat QingFeng Hao geschrieben: >> 在 2017/6/24 0:21, Kevin Wolf 写道: >>> From: Stefan Hajnoczi >>> >>> Old kvm.ko versions only supported a tiny number of ioeventfds so >>> virtio-pci avoids ioeventfds when kvm_has_many_ioeventfds() returns 0. >>> >>> Do not check kvm_has_many_ioeventfds() when KVM is disabled since it >>> always returns 0. Since commit 8c56c1a592b5092d91da8d8943c17777d6462a6f >>> ("memory: emulate ioeventfd") it has been possible to use ioeventfds in >>> qtest or TCG mode. >>> >>> This patch makes -device virtio-blk-pci,iothread=iothread0 work even >>> when KVM is disabled. >>> >>> I have tested that virtio-blk-pci works under TCG both with and without >>> iothread. >>> >>> Cc: Michael S. Tsirkin >>> Signed-off-by: Stefan Hajnoczi >>> Reviewed-by: Michael S. Tsirkin >>> Signed-off-by: Kevin Wolf >>> --- >>> hw/virtio/virtio-pci.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c >>> index 20d6a08..301920e 100644 >>> --- a/hw/virtio/virtio-pci.c >>> +++ b/hw/virtio/virtio-pci.c >>> @@ -1740,7 +1740,7 @@ static void virtio_pci_realize(PCIDevice *pci_dev, Error **errp) >>> bool pcie_port = pci_bus_is_express(pci_dev->bus) && >>> !pci_bus_is_root(pci_dev->bus); >>> >>> - if (!kvm_has_many_ioeventfds()) { >>> + if (kvm_enabled() && !kvm_has_many_ioeventfds()) { >>> proxy->flags &= ~VIRTIO_PCI_FLAG_USE_IOEVENTFD; >>> } >> This response is actually for mail thread "Re: [Qemu-devel] [PATCH >> 1/5] virtio-pci: use ioeventfd even when KVM is disabled" >> which I didn't receive, sorry. >> I also saw the failed case of 068 as Fam due to the same cause on >> s390x and x86. >> With this patch applied, no failure found. Further investigation >> shows that the error is in >> virtio_scsi_dataplane_setup: >> if (!virtio_device_ioeventfd_enabled(vdev)) { >> error_setg(errp, "ioeventfd is required for iothread"); >> return; >> } >> call flow is: >> virtio_device_ioeventfd_enabled-->virtio_bus_ioeventfd_enabled >> -->k->ioeventfd_enabled-->virtio_pci_ioeventfd_enabled >> virtio_pci_ioeventfd_enabled checks flag >> VIRTIO_PCI_FLAG_USE_IOEVENTFD which was >> cleared in virtio_pci_realize if this patch isn't applied. > Yes, we know all of this. However, this patch is not correct and causes > 'make check' failures on some platforms. The open question is where that > failure comes from. Before this is solved, the patch can't be applied. Sorry that I found case 068 of the latest master still fails on s390x (but passed on x86) and the cause is that s390x uses "-device virtio-scsi-ccw" instead of "-device virtio-scsi-pci", so the change in virtio_ccw_device_realize is also needed: I'll send out a patch for that. Thanks! > Kevin > diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index 90d37cb..35896eb 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -711,7 +711,7 @@ static void virtio_ccw_device_realize(VirtioCcwDevice *dev, Error sch->cssid, sch->ssid, sch->schid, sch->devno, ccw_dev->devno.valid ? "user-configured" : "auto-configured"); - if (!kvm_eventfds_enabled()) { + if (kvm_enabled() && !kvm_eventfds_enabled()) { dev->flags &= ~VIRTIO_CCW_FLAG_USE_IOEVENTFD; }