Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp5450559imu; Wed, 19 Dec 2018 11:22:14 -0800 (PST) X-Google-Smtp-Source: AFSGD/WJ0ulwv8rosq8lvq5EGA+jEkofaSR2gbPviC46P0pd3PZQV4YvYkO3etttiXyGSyPmHFPy X-Received: by 2002:a62:1f9d:: with SMTP id l29mr21589085pfj.14.1545247334387; Wed, 19 Dec 2018 11:22:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545247334; cv=none; d=google.com; s=arc-20160816; b=URr8Q1Xag2PSXSYAiDAcrXRbuqbRzoZ30CYbDn0Oq4QWL90n5LRX/F+3HmYDs8gV9Z fp1eHcTmJCQlYRkPYU+UIwheSCKBDRJ9BP5GOIPMNe9Lx9twOFCL4oJYf5J3aY6rIDV8 MhQ3QYZbuZhJsvJqtjP8yEWD0JwS1bSXY/RiygGgOISrvytF8p3skeZ16Hz7fPt1rL46 pLHhO1tdLvw+aXxXne+vATkseXwanwFJpxAuU1dNLS6BqvysvGwtypeUCFVvfxlbUNTf t5UndZF+NnY98HWp1QvMAFnOOf4yneASwQFNp/3DLa4/CuXp/+NJ+VFOQOviMYo8EbkR z2tw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:references:in-reply-to:date :subject:cc:to:from; bh=V2X7zU6f33+6S/9/dZpg7Uud6vsHe6X5ZQeqP5TIUvM=; b=0MZQJIyYQ0hX2aM/7utB6p+AK021s2Gt2bteLXPFo4wVEL3+0haaXaJCY8mZa5K1M6 ludZMtO7zTVa/RHmtPr7lmx2jXIPsKuWK40LvRMzMMP5K4QupO5lJLMtHJSFelZBaIHQ kiEdn2EFLPS+NGhlBCPe/7mokt92gQ7fRKwszDnOK3GdWG936q7cU2AHKishCYexPTB/ KLvyrz/vzXkopqgIAaOSn9em17lcA+Wbz8E2CkHpzqlmus5eBoLDbJNamn87EvPpPid0 vVCsEgqeaFzkUoxPLf6QcgxlsCdmJ4TgBqzHUm89OFIHV84YFR/mv4u7n1Cj0iyIkxZZ FlRQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w67si16415972pgw.84.2018.12.19.11.21.58; Wed, 19 Dec 2018 11:22:14 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729466AbeLSTTC (ORCPT + 99 others); Wed, 19 Dec 2018 14:19:02 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:59010 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730508AbeLSTSY (ORCPT ); Wed, 19 Dec 2018 14:18:24 -0500 Received: from pps.filterd (m0098393.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id wBJJH8NK065797 for ; Wed, 19 Dec 2018 14:18:23 -0500 Received: from e06smtp04.uk.ibm.com (e06smtp04.uk.ibm.com [195.75.94.100]) by mx0a-001b2d01.pphosted.com with ESMTP id 2pfv0s02c4-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 19 Dec 2018 14:18:23 -0500 Received: from localhost by e06smtp04.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 19 Dec 2018 19:18:21 -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) Wed, 19 Dec 2018 19:18:18 -0000 Received: from d06av21.portsmouth.uk.ibm.com (d06av21.portsmouth.uk.ibm.com [9.149.105.232]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id wBJJIG1u2949598 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 19 Dec 2018 19:18:16 GMT Received: from d06av21.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5518352052; Wed, 19 Dec 2018 19:18:16 +0000 (GMT) Received: from s38lp84.lnxne.boe (unknown [9.152.108.100]) by d06av21.portsmouth.uk.ibm.com (Postfix) with ESMTP id EE7F05204E; Wed, 19 Dec 2018 19:18:15 +0000 (GMT) From: Michael Mueller To: KVM Mailing List Cc: Linux-S390 Mailing List , linux-kernel@vger.kernel.org, kvm390-list@tuxmaker.boeblingen.de.ibm.com, Martin Schwidefsky , Heiko Carstens , Christian Borntraeger , Janosch Frank , David Hildenbrand , Cornelia Huck , Halil Pasic , Pierre Morel , Michael Mueller Subject: [PATCH v5 12/15] KVM: s390: do not restore IAM immediately before SIE entry Date: Wed, 19 Dec 2018 20:17:53 +0100 X-Mailer: git-send-email 2.13.4 In-Reply-To: <20181219191756.57973-1-mimu@linux.ibm.com> References: <20181219191756.57973-1-mimu@linux.ibm.com> X-TM-AS-GCONF: 00 x-cbid: 18121919-0016-0000-0000-00000238D578 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18121919-0017-0000-0000-000032912D04 Message-Id: <20181219191756.57973-13-mimu@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-12-19_10:,, 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=792 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1812190150 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The IAM shall no be restored when deliverable interruptions are delivered to vcpus by means of the PSW swap mechanism. That would trigger the GIB alert millicode although we know that SIE will be able to handle the pending interruption on entry. Signed-off-by: Michael Mueller --- arch/s390/kvm/interrupt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c index 8307717e3caf..48a93f5e5333 100644 --- a/arch/s390/kvm/interrupt.c +++ b/arch/s390/kvm/interrupt.c @@ -328,11 +328,11 @@ static unsigned long disable_iscs(struct kvm_vcpu *vcpu, return active_mask; } -static unsigned long deliverable_irqs(struct kvm_vcpu *vcpu) +static unsigned long deliverable_irqs(struct kvm_vcpu *vcpu, u16 irq_flags) { unsigned long active_mask; - active_mask = pending_irqs(vcpu, IRQ_MASK_ALL); + active_mask = pending_irqs(vcpu, irq_flags); if (!active_mask) return 0; @@ -1090,7 +1090,7 @@ int kvm_s390_ext_call_pending(struct kvm_vcpu *vcpu) int kvm_s390_vcpu_has_irq(struct kvm_vcpu *vcpu, int exclude_stop) { - if (deliverable_irqs(vcpu)) + if (deliverable_irqs(vcpu, IRQ_MASK_ALL | IRQ_FLAG_IAM)) return 1; if (kvm_cpu_has_pending_timer(vcpu)) @@ -1262,7 +1262,7 @@ int __must_check kvm_s390_deliver_pending_interrupts(struct kvm_vcpu *vcpu) if (cpu_timer_irq_pending(vcpu)) set_bit(IRQ_PEND_EXT_CPU_TIMER, &li->pending_irqs); - while ((irqs = deliverable_irqs(vcpu)) && !rc) { + while ((irqs = deliverable_irqs(vcpu, IRQ_MASK_ALL)) && !rc) { /* bits are in the reverse order of interrupt priority */ irq_type = find_last_bit(&irqs, IRQ_PEND_COUNT); switch (irq_type) { -- 2.13.4