Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp7265939ioo; Fri, 3 Jun 2022 03:11:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwAUdJyjTHnmg24o5H5Fjz6jTM/oKaBl5xy/NXno+Qz3Xf0gv6fgADADFzMTT2Tz7s6AR+s X-Received: by 2002:a17:90b:33c4:b0:1e0:55d:d625 with SMTP id lk4-20020a17090b33c400b001e0055dd625mr10185533pjb.218.1654251083708; Fri, 03 Jun 2022 03:11:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654251083; cv=none; d=google.com; s=arc-20160816; b=P4nRfmoanlQ3/Vq3MmStS9ilqL9unJ2Mr2QAW2bMd3OHISJ7RHgx2UZD3ABTURYgwX BMdjBAJ5ZEAWsDj5HRVYT2Q66+cAfD86iGIr2X23LdwrlmX4qBkWeYtJEkRFQ0VXts01 18bBTXjjx2q41+Ta7ncUwLBsGxgVbNW8NzpKhrlEuggzCOdrVxFGwqJqqPdYuFd5ROzN klLa5+gOLxJ0qXMFmp9mXGJhwbaT2GYtYeCWVzVLYv5/rTvfYJUK+XKzf2scIUMdpUdV Xr2xqKPfViVITg/Ddy/aY2ch15faMLiY+CJzjCN+zbeE0U41Y5UodZGjR13a/4pUqJt+ bjtQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=U7zjOhUvzlfalfZy4EVmQNDestGzQTGCVtpndFy144w=; b=VIAGbr+PmUI2MJ6nUMG8fcvE+vmlgMCe4qxRxMEtFivMC/jCEHROHW4Ys+79Lad/KY goARffQFXcdSbw80w+9QHxU6sjiXjlYR2/Iyi+dQHR40uzmz3upW6VqTozzQIFwcjpKY vpDWtSATXZs1F+avc+8s6UqkyukbfwWSbxiyE0q81VBHMeLqGhICsQfcBbHtTG23WuOi AwB3DeCppWgQ+ZzUiXZsrfPHQxOLXAGQJw0qrQD8alj++QQhp0TyHZA3C6JKQupjV+4/ YeQGPcgBVEcPV8ut3iYuCptsgDRMPuNKs1PJrYnDZT/pJOSzKHaGe2bTbZYU6ahimPrZ ESjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=Q3Es+V6L; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f5-20020a056a00228500b004faac3a73f6si9692246pfe.79.2022.06.03.03.11.09; Fri, 03 Jun 2022 03:11:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=Q3Es+V6L; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241684AbiFCG61 (ORCPT + 99 others); Fri, 3 Jun 2022 02:58:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33640 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241814AbiFCG5F (ORCPT ); Fri, 3 Jun 2022 02:57:05 -0400 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 04A5E111F; Thu, 2 Jun 2022 23:56:58 -0700 (PDT) Received: from pps.filterd (m0098393.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 2536hph9031322; Fri, 3 Jun 2022 06:56:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=U7zjOhUvzlfalfZy4EVmQNDestGzQTGCVtpndFy144w=; b=Q3Es+V6L7SqrL0dvcvr90b65Y9hxO38YZ80weHs6zMxIDX++ckNbJj1w/Cob+BPtaLOa Vo8rKZ0NKzFbgNzfd3xcZh1DobnQDBRIWaZvY0wtY1TAMCXxLtNWZ8hi4IFArxUl417k pmOpAydqCGKDvAB1j5WAwGfpPb4zirYMkN0C71IFPaQMXCNzQNxrWF+zE6EFCAsrV0C2 RNu0DpqNTrXxWhU8SfVxAR2+JaSeCBdLQA+wVvd6IukhVBWeQVRhIUr3iCWTNOeTSRHe QOU3mg2u473gzifPcK9RNjDNbxh2mpnYL+F4sqbaKndQ/haXloJI+vNHLtX1Aid1DQGI hg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3gfd9r85sq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 03 Jun 2022 06:56:58 +0000 Received: from m0098393.ppops.net (m0098393.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 2536obBL020119; Fri, 3 Jun 2022 06:56:57 GMT Received: from ppma06ams.nl.ibm.com (66.31.33a9.ip4.static.sl-reverse.com [169.51.49.102]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3gfd9r85rx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 03 Jun 2022 06:56:57 +0000 Received: from pps.filterd (ppma06ams.nl.ibm.com [127.0.0.1]) by ppma06ams.nl.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 2536pN7x001083; Fri, 3 Jun 2022 06:56:55 GMT Received: from b06cxnps3074.portsmouth.uk.ibm.com (d06relay09.portsmouth.uk.ibm.com [9.149.109.194]) by ppma06ams.nl.ibm.com with ESMTP id 3gf40prgh9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 03 Jun 2022 06:56:55 +0000 Received: from d06av24.portsmouth.uk.ibm.com (d06av24.portsmouth.uk.ibm.com [9.149.105.60]) by b06cxnps3074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 2536up9131392060 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 3 Jun 2022 06:56:51 GMT Received: from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A915F42049; Fri, 3 Jun 2022 06:56:51 +0000 (GMT) Received: from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5A40242042; Fri, 3 Jun 2022 06:56:51 +0000 (GMT) Received: from p-imbrenda.boeblingen.de.ibm.com (unknown [9.152.224.40]) by d06av24.portsmouth.uk.ibm.com (Postfix) with ESMTP; Fri, 3 Jun 2022 06:56:51 +0000 (GMT) From: Claudio Imbrenda To: kvm@vger.kernel.org Cc: borntraeger@de.ibm.com, frankja@linux.ibm.com, thuth@redhat.com, pasic@linux.ibm.com, david@redhat.com, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, scgl@linux.ibm.com, mimu@linux.ibm.com, nrb@linux.ibm.com Subject: [PATCH v11 13/19] KVM: s390: pv: destroy the configuration before its memory Date: Fri, 3 Jun 2022 08:56:39 +0200 Message-Id: <20220603065645.10019-14-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220603065645.10019-1-imbrenda@linux.ibm.com> References: <20220603065645.10019-1-imbrenda@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: rUjMD7Sd6FWE3qepbwCvHEjfL2dqp2lI X-Proofpoint-GUID: xQErXYPrwZYiHz13SYeaSBiW0KJ2_T2C X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.874,Hydra:6.0.517,FMLib:17.11.64.514 definitions=2022-06-03_01,2022-06-02_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 mlxlogscore=974 priorityscore=1501 impostorscore=0 lowpriorityscore=0 clxscore=1015 malwarescore=0 phishscore=0 spamscore=0 bulkscore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2206030027 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Move the Destroy Secure Configuration UVC before the loop to destroy the memory. If the protected VM has memory, it will be cleaned up and made accessible by the Destroy Secure Configuraion UVC. The struct page for the relevant pages will still have the protected bit set, so the loop is still needed to clean that up. Switching the order of those two operations does not change the outcome, but it is significantly faster. Signed-off-by: Claudio Imbrenda --- arch/s390/kvm/pv.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/s390/kvm/pv.c b/arch/s390/kvm/pv.c index a389555d62e7..6cffea26c47f 100644 --- a/arch/s390/kvm/pv.c +++ b/arch/s390/kvm/pv.c @@ -163,6 +163,9 @@ int kvm_s390_pv_deinit_vm(struct kvm *kvm, u16 *rc, u16 *rrc) { int cc; + cc = uv_cmd_nodata(kvm_s390_pv_get_handle(kvm), + UVC_CMD_DESTROY_SEC_CONF, rc, rrc); + WRITE_ONCE(kvm->arch.gmap->guest_handle, 0); /* * if the mm still has a mapping, make all its pages accessible * before destroying the guest @@ -172,9 +175,6 @@ int kvm_s390_pv_deinit_vm(struct kvm *kvm, u16 *rc, u16 *rrc) mmput(kvm->mm); } - cc = uv_cmd_nodata(kvm_s390_pv_get_handle(kvm), - UVC_CMD_DESTROY_SEC_CONF, rc, rrc); - WRITE_ONCE(kvm->arch.gmap->guest_handle, 0); if (!cc) { atomic_dec(&kvm->mm->context.protected_count); kvm_s390_pv_dealloc_vm(kvm); -- 2.36.1