From patchwork Thu Nov 22 16:35:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre Morel X-Patchwork-Id: 10694471 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 15B6E14BD for ; Thu, 22 Nov 2018 16:37:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F32BD2CD3E for ; Thu, 22 Nov 2018 16:37:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E70A72CD48; Thu, 22 Nov 2018 16:37:45 +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.9 required=2.0 tests=BAYES_00,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 76FA72CD3E for ; Thu, 22 Nov 2018 16:37:45 +0000 (UTC) Received: from localhost ([::1]:47623 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gPrz6-0000Qu-H4 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 22 Nov 2018 11:37:44 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59380) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gPrxa-0007eQ-VL for qemu-devel@nongnu.org; Thu, 22 Nov 2018 11:36:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gPrxW-0008Rf-31 for qemu-devel@nongnu.org; Thu, 22 Nov 2018 11:36:11 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:32908 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 1gPrxU-0008MQ-DS for qemu-devel@nongnu.org; Thu, 22 Nov 2018 11:36:05 -0500 Received: from pps.filterd (m0098417.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id wAMGYFIE103075 for ; Thu, 22 Nov 2018 11:36:03 -0500 Received: from e06smtp07.uk.ibm.com (e06smtp07.uk.ibm.com [195.75.94.103]) by mx0a-001b2d01.pphosted.com with ESMTP id 2nwya82357-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 22 Nov 2018 11:36:02 -0500 Received: from localhost by e06smtp07.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 22 Nov 2018 16:36:01 -0000 Received: from b06cxnps4075.portsmouth.uk.ibm.com (9.149.109.197) by e06smtp07.uk.ibm.com (192.168.101.137) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Thu, 22 Nov 2018 16:35:57 -0000 Received: from d06av22.portsmouth.uk.ibm.com (d06av22.portsmouth.uk.ibm.com [9.149.105.58]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id wAMGZtM12228640 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 22 Nov 2018 16:35:56 GMT Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D418A4C044; Thu, 22 Nov 2018 16:35:55 +0000 (GMT) Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 689324C046; Thu, 22 Nov 2018 16:35:55 +0000 (GMT) Received: from morel-ThinkPad-W530.boeblingen.de.ibm.com (unknown [9.152.224.168]) by d06av22.portsmouth.uk.ibm.com (Postfix) with ESMTP; Thu, 22 Nov 2018 16:35:55 +0000 (GMT) From: Pierre Morel To: borntraeger@de.ibm.com Date: Thu, 22 Nov 2018 17:35:49 +0100 X-Mailer: git-send-email 2.7.4 X-TM-AS-GCONF: 00 x-cbid: 18112216-0028-0000-0000-0000031EF43E X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18112216-0029-0000-0000-000023DB01E4 Message-Id: <1542904555-1136-1-git-send-email-pmorel@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-11-22_11:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=347 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1811220147 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.158.5 Subject: [Qemu-devel] [PATCH v2 0/6] s390x/vfio: VFIO-AP interrupt control interception 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: akrowiak@linux.ibm.com, peter.maydell@linaro.org, david@redhat.com, cohuck@redhat.com, qemu-devel@nongnu.org, agraf@suse.de, pasic@linux.ibm.com, eric.auger@redhat.com, qemu-s390x@nongnu.org, mst@redhat.com, pbonzini@redhat.com, rth@twiddle.net Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP This series has 3 different type of patches: The first two: s390x/vfio: ap: Finding the AP bridge s390x/vfio: ap: Use the APdevice as a child of the APBus Are dealing with the QEMU Object Model and how we retrieve the AP devices from instruction interception. A lifting of the AP bridge, bus and device was necessary to ease the process and allow future extensions. The third one is a place holder to ease reviewing: s390x/vfio: ap: Linux uapi VFIO place holder The last three are really dealing with PQAP/AQIC instruction interception and associate IOCTL calls to the VFIO AP device driver. s390x/cpumodel: Set up CPU model for AQIC interception s390x/vfio: ap: Definition for AP Adapter type s390x/vfio: ap: Implementing AP Queue Interrupt Control The S390 APQP/AQIC instruction is intercepted by the host to configure the AP queues interruption redirection. It retrieves the ISC used by the host and the one used by the guest and setup the indicator address. This patch series - define the AQIC feature in the cpumodel, - extend the APDevice type for per card and queue interrupt handling, - intercept the APQP/AQIC instruction, uses the S390 adapter interface to setup the adapter - and use a VFIO ioctl to let the VFIO-AP driver handle the host instruction associated with the intercepted guest instruction. This patch serie can be tested with the Linux/KVM patch series for the VFIO-AP driver: "s390: vfio: ap: Using GISA for AP Interrupt" Pierre Morel (6): s390x/vfio: ap: Finding the AP bridge s390x/vfio: ap: Use the APdevice as a child of the APBus s390x/vfio: ap: Linux uapi VFIO place holder s390x/cpumodel: Set up CPU model for AQIC interception s390x/vfio: ap: Definition for AP Adapter type s390x/vfio: ap: Implementing AP Queue Interrupt Control hw/s390x/ap-bridge.c | 12 ++++ hw/s390x/ap-device.c | 22 +++++++ hw/vfio/ap.c | 131 +++++++++++++++++++++++++++++++++++++--- include/hw/s390x/ap-bridge.h | 1 + include/hw/s390x/ap-device.h | 65 ++++++++++++++++++++ include/hw/s390x/css.h | 1 + linux-headers/linux/vfio.h | 25 ++++++++ target/s390x/cpu_features.c | 1 + target/s390x/cpu_features_def.h | 1 + target/s390x/cpu_models.c | 1 + target/s390x/gen-features.c | 1 + target/s390x/kvm.c | 31 ++++++++++ 12 files changed, 282 insertions(+), 10 deletions(-)