From patchwork Mon Nov 19 17:25:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Mueller X-Patchwork-Id: 10688979 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 A2F3714E2 for ; Mon, 19 Nov 2018 17:26:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8744F29699 for ; Mon, 19 Nov 2018 17:26:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7B562297CB; Mon, 19 Nov 2018 17:26:06 +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 vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0BDE929699 for ; Mon, 19 Nov 2018 17:26:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404546AbeKTDu2 (ORCPT ); Mon, 19 Nov 2018 22:50:28 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:53246 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404485AbeKTDuZ (ORCPT ); Mon, 19 Nov 2018 22:50:25 -0500 Received: from pps.filterd (m0098396.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id wAJHPuvs100022 for ; Mon, 19 Nov 2018 12:26:01 -0500 Received: from e06smtp04.uk.ibm.com (e06smtp04.uk.ibm.com [195.75.94.100]) by mx0a-001b2d01.pphosted.com with ESMTP id 2nv0pq2sjp-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 19 Nov 2018 12:26:00 -0500 Received: from localhost by e06smtp04.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 19 Nov 2018 17:25:52 -0000 Received: from b06cxnps4074.portsmouth.uk.ibm.com (9.149.109.196) by e06smtp04.uk.ibm.com (192.168.101.134) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Mon, 19 Nov 2018 17:25:48 -0000 Received: from d06av22.portsmouth.uk.ibm.com (d06av22.portsmouth.uk.ibm.com [9.149.105.58]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id wAJHPluU6554014 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 19 Nov 2018 17:25:47 GMT Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 474FE4C040; Mon, 19 Nov 2018 17:25:47 +0000 (GMT) Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CD1654C04A; Mon, 19 Nov 2018 17:25:46 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9]) by d06av22.portsmouth.uk.ibm.com (Postfix) with ESMTP; Mon, 19 Nov 2018 17:25:46 +0000 (GMT) From: Michael Mueller To: kvm@vger.kernel.org, linux-s390@vger.kernel.org Cc: Martin Schwidefsky , Heiko Carstens , Christian Borntraeger , Janosch Frank , David Hildenbrand , Cornelia Huck , Michael Mueller , Halil Pasic , Pierre Morel Subject: [PATCH v2 00/12] KVM: s390: make use of the GIB Date: Mon, 19 Nov 2018 18:25:24 +0100 X-Mailer: git-send-email 2.16.4 X-TM-AS-GCONF: 00 x-cbid: 18111917-0016-0000-0000-000002295394 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18111917-0017-0000-0000-00003281884D Message-Id: <20181119172536.52649-1-mimu@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-11-19_06:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=359 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1811190159 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The Guest Information Area (GIB) and its mechanics is part of the AIV facility. It provides hardware support to process Adapter Interruptions (AI) for pagable storage mode guests. Whenever a guest cannot process an AI because none of its vcpus is running in SIE context, a GIB alert interruption is sent to and handled by the host program to dispatch a vcpu of the respective guest. Eventually, the AI is handled by the guest. v1->v2: patch 01/12: New patch. Tt can go also standalone without the rest of the GIB series presented here but is a requirement patch 03/12: kvm_s390_gib_init() now has a return code patch 06/12: unlink_gib_alert_list() now uses cmpxchg() instead of atomic_xchg() patch 08/12: New patch. Foctors out __find_vcpu_for_floating_irq() patch 09/12: process_gib_alert_list() has been simplified the GISA clear/destroy cases have been removed patch 11/12: kvm_s390_gisa_clear/destroy() now clear the IAM and process the alert list directly The IAM now gets restored in vcpu_post_run() only if the GISA is not in alert list patch 12/12: during kvm_arch_init() now the return code of kvm_s390_gib_init() is honored. All other patches are unchanged. Michael Mueller (12): KVM: s390: leave AIs in IPM of GISA during vcpu_pre_run() s390/cio: add function chsc_sgib() KVM: s390: add the GIB and its related life-cyle functions KVM: s390: factor out nullify_gisa() KVM: s390: add metric vcpus_in_sie to struct kvm_arch KVM: s390: add function unlink_gib_alert_list() KVM: s390: add kvm reference to struct sie_page2 KVM: s390: factor out __find_vcpu_for_floating_irq() KVM: s390: add function process_gib_alert_list() KVM: s390: add functions to (un)register GISC with GISA KVM: s390: add and wire function gib_alert_irq_handler() KVM: s390: start using the GIB arch/s390/include/asm/cio.h | 1 + arch/s390/include/asm/irq.h | 1 + arch/s390/include/asm/isc.h | 1 + arch/s390/include/asm/kvm_host.h | 20 +++- arch/s390/kernel/irq.c | 1 + arch/s390/kvm/interrupt.c | 249 ++++++++++++++++++++++++++++++++------- arch/s390/kvm/kvm-s390.c | 18 +++ arch/s390/kvm/kvm-s390.h | 7 ++ drivers/s390/cio/chsc.c | 37 ++++++ drivers/s390/cio/chsc.h | 1 + 10 files changed, 295 insertions(+), 41 deletions(-)