From patchwork Mon Jul 3 10:20:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Borntraeger X-Patchwork-Id: 9822461 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 B54D560246 for ; Mon, 3 Jul 2017 10:29:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A7A8B26E49 for ; Mon, 3 Jul 2017 10:29:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9A95A2810E; Mon, 3 Jul 2017 10:29:19 +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 2DF1526E49 for ; Mon, 3 Jul 2017 10:29:19 +0000 (UTC) Received: from localhost ([::1]:33901 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dRybW-0006Fw-F8 for patchwork-qemu-devel@patchwork.kernel.org; Mon, 03 Jul 2017 06:29:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60259) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dRySl-0006sA-Es for qemu-devel@nongnu.org; Mon, 03 Jul 2017 06:20:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dRySi-0005EI-90 for qemu-devel@nongnu.org; Mon, 03 Jul 2017 06:20:15 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:60577 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 1dRySh-0005CQ-TM for qemu-devel@nongnu.org; Mon, 03 Jul 2017 06:20:12 -0400 Received: from pps.filterd (m0098421.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v63AJ3dp054435 for ; Mon, 3 Jul 2017 06:20:10 -0400 Received: from e15.ny.us.ibm.com (e15.ny.us.ibm.com [129.33.205.205]) by mx0a-001b2d01.pphosted.com with ESMTP id 2beytt50rf-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Mon, 03 Jul 2017 06:20:10 -0400 Received: from localhost by e15.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 3 Jul 2017 06:20:10 -0400 Received: from b01cxnp23032.gho.pok.ibm.com (9.57.198.27) by e15.ny.us.ibm.com (146.89.104.202) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 3 Jul 2017 06:20:07 -0400 Received: from b01ledav001.gho.pok.ibm.com (b01ledav001.gho.pok.ibm.com [9.57.199.106]) by b01cxnp23032.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v63AK7jV24182794; Mon, 3 Jul 2017 10:20:07 GMT Received: from b01ledav001.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D22C02803F; Mon, 3 Jul 2017 06:20:00 -0400 (EDT) Received: from oc1450873852.ibm.com (unknown [9.152.224.35]) by b01ledav001.gho.pok.ibm.com (Postfix) with ESMTP id E93F028050; Mon, 3 Jul 2017 06:19:58 -0400 (EDT) To: QingFeng Hao , qemu-devel@nongnu.org, qemu-block@nongnu.org References: <20170703085107.16547-1-haoqf@linux.vnet.ibm.com> <20170703085107.16547-2-haoqf@linux.vnet.ibm.com> From: Christian Borntraeger Date: Mon, 3 Jul 2017 12:20:03 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 MIME-Version: 1.0 In-Reply-To: <20170703085107.16547-2-haoqf@linux.vnet.ibm.com> Content-Language: en-IE X-TM-AS-GCONF: 00 x-cbid: 17070310-0036-0000-0000-0000023E6FD7 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00007312; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000214; SDB=6.00882178; UDB=6.00439962; IPR=6.00662368; 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.00016053; XFM=3.00000015; UTC=2017-07-03 10:20:09 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17070310-0037-0000-0000-000040F4CD7E Message-Id: X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-07-03_07:, , 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-1707030173 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] [PATCH v2 1/1] virtio-scsi-ccw: 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: kwolf@redhat.com, Halil Pasic , zyimin@linux.vnet.ibm.com, famz@redhat.com, peterx@redhat.com, stefanha@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP On 07/03/2017 10:51 AM, QingFeng Hao wrote: > This patch is based on a similar patch from Stefan Hajnoczi - > commit c324fd0a39c (" virtio-pci: use ioeventfd even when KVM is disabled) > > Do not check kvm_eventfds_enabled() 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-scsi-ccw,iothread=iothread0 work even > when KVM is disabled. > > I have tested that virtio-scsi-ccw works under tcg both with and without > iothread. > > This patch fixes qemu-iotests 068, which was accidentally merged early > despite the dependency on ioeventfd. > > Signed-off-by: QingFeng Hao > --- > hw/s390x/virtio-ccw.c | 2 +- > target/s390x/kvm.c | 3 +++ > 2 files changed, 4 insertions(+), 1 deletion(-) > > diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c > index 90d37cb9ff..35896eb007 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 **errp) > 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; > } > > diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c > index a3d00196f4..c37f9c3b9e 100644 > --- a/target/s390x/kvm.c > +++ b/target/s390x/kvm.c > @@ -2220,6 +2220,9 @@ int kvm_s390_assign_subch_ioeventfd(EventNotifier *notifier, uint32_t sch, > .addr = sch, > .len = 8, > }; > + if (!kvm_enabled()) { > + return 0; > + } thinking more about it. wouldnt it be better to do something like this instead FWIW, it seems that we (s390) do not have a functional equivalent function as commit 8c56c1a592b5092d91da8d8943c17777d6462a6f ("memory: emulate ioeventfd") , so we will not use the iothreads. > if (!kvm_check_extension(kvm_state, KVM_CAP_IOEVENTFD)) { > return -ENOSYS; > } > diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index 058ddad..cc47831 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -1240,7 +1240,11 @@ static inline int s390_assign_subch_ioeventfd(EventNotifier *notifier, uint32_t sch_id, int vq, bool assign) { - return kvm_s390_assign_subch_ioeventfd(notifier, sch_id, vq, assign); + if (kvm_enabled()) { + return kvm_s390_assign_subch_ioeventfd(notifier, sch_id, vq, assign); + } else { + return 0; + } } static inline void s390_crypto_reset(void)