From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6B652C11D04 for ; Thu, 20 Feb 2020 12:58:58 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4093824654 for ; Thu, 20 Feb 2020 12:58:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4093824654 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:40943 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j4lPt-0007V4-Em for qemu-devel@archiver.kernel.org; Thu, 20 Feb 2020 07:58:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53948) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j4lOZ-0005tI-I2 for qemu-devel@nongnu.org; Thu, 20 Feb 2020 07:57:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j4lOY-0006N1-DB for qemu-devel@nongnu.org; Thu, 20 Feb 2020 07:57:35 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:64236 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 1j4lOY-0006Lk-88 for qemu-devel@nongnu.org; Thu, 20 Feb 2020 07:57:34 -0500 Received: from pps.filterd (m0098419.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 01KCtITT093196 for ; Thu, 20 Feb 2020 07:57:33 -0500 Received: from e06smtp05.uk.ibm.com (e06smtp05.uk.ibm.com [195.75.94.101]) by mx0b-001b2d01.pphosted.com with ESMTP id 2y8ubygp0m-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 20 Feb 2020 07:57:32 -0500 Received: from localhost by e06smtp05.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 20 Feb 2020 12:57:30 -0000 Received: from b06avi18878370.portsmouth.uk.ibm.com (9.149.26.194) by e06smtp05.uk.ibm.com (192.168.101.135) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Thu, 20 Feb 2020 12:57:29 -0000 Received: from d06av26.portsmouth.uk.ibm.com (d06av26.portsmouth.uk.ibm.com [9.149.105.62]) by b06avi18878370.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 01KCvSr230998824 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 20 Feb 2020 12:57:28 GMT Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0A2C1AE053; Thu, 20 Feb 2020 12:57:28 +0000 (GMT) Received: from d06av26.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C93C0AE045; Thu, 20 Feb 2020 12:57:26 +0000 (GMT) Received: from localhost.localdomain (unknown [9.145.185.143]) by d06av26.portsmouth.uk.ibm.com (Postfix) with ESMTP; Thu, 20 Feb 2020 12:57:26 +0000 (GMT) From: Janosch Frank To: qemu-devel@nongnu.org Subject: [PATCH v4 00/16] s390x: Protected Virtualization support Date: Thu, 20 Feb 2020 07:56:22 -0500 X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 x-cbid: 20022012-0020-0000-0000-000003ABEB54 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 20022012-0021-0000-0000-00002203F0D2 Message-Id: <20200220125638.7241-1-frankja@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.572 definitions=2020-02-20_03:2020-02-19, 2020-02-20 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 clxscore=1015 malwarescore=0 adultscore=0 mlxlogscore=999 spamscore=0 suspectscore=1 mlxscore=0 bulkscore=0 impostorscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2001150001 definitions=main-2002200097 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 148.163.158.5 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-s390x@nongnu.org, mihajlov@linux.ibm.com, david@redhat.com, cohuck@redhat.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Most of the QEMU changes for PV are related to the new IPL type with subcodes 8 - 10 and the execution of the necessary Ultravisor calls to IPL secure guests. Note that we can only boot into secure mode from normal mode, i.e. stfle 161 is not active in secure mode. The other changes related to data gathering for emulation and disabling addressing checks in secure mode, as well as CPU resets. v4: * Dropped reset patches which are already picked up * Sync with KVM changes * Review changes V3: * Use dedicated functions to access SIDA * Smaller cleanups and segfault fixes * Error reporting for Ultravisor calls * Inject of RC of diag308 subcode 10 fails V2: * Split out cleanups * Internal PV state tracking * Review feedback Christian Borntraeger (1): s390x: Add unpack feature to GA1 Janosch Frank (15): Sync pv s390x: protvirt: Add diag308 subcodes 8 - 10 s390x: protvirt: Support unpack facility s390x: protvirt: Add migration blocker s390x: protvirt: Handle diag 308 subcodes 0,1,3,4 s390x: protvirt: KVM intercept changes s390x: Add SIDA memory ops s390x: protvirt: Move STSI data over SIDAD s390x: protvirt: SCLP interpretation s390x: protvirt: Set guest IPL PSW s390x: protvirt: Move diag 308 data over SIDAD s390x: protvirt: Disable address checks for PV guest IO emulation s390x: protvirt: Move IO control structures over SIDA s390x: protvirt: Handle SIGP store status correctly docs: Add protvirt docs docs/protvirt.rst | 53 +++++++++++ hw/s390x/Makefile.objs | 1 + hw/s390x/ipl.c | 81 ++++++++++++++++- hw/s390x/ipl.h | 33 +++++++ hw/s390x/pv.c | 106 ++++++++++++++++++++++ hw/s390x/pv.h | 34 +++++++ hw/s390x/s390-virtio-ccw.c | 135 +++++++++++++++++++++++++++- hw/s390x/sclp.c | 17 ++++ include/hw/s390x/s390-virtio-ccw.h | 1 + include/hw/s390x/sclp.h | 2 + linux-headers/linux/kvm.h | 48 +++++++++- target/s390x/cpu.c | 27 ++++-- target/s390x/cpu.h | 8 +- target/s390x/cpu_features_def.inc.h | 1 + target/s390x/diag.c | 61 ++++++++++--- target/s390x/gen-features.c | 1 + target/s390x/helper.c | 4 + target/s390x/ioinst.c | 113 ++++++++++++++++------- target/s390x/kvm.c | 54 ++++++++++- target/s390x/kvm_s390x.h | 2 + target/s390x/mmu_helper.c | 9 ++ target/s390x/sigp.c | 1 + 22 files changed, 726 insertions(+), 66 deletions(-) create mode 100644 docs/protvirt.rst create mode 100644 hw/s390x/pv.c create mode 100644 hw/s390x/pv.h -- 2.20.1