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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 80828E77188 for ; Fri, 20 Dec 2024 11:40:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DF2996B007B; Fri, 20 Dec 2024 06:40:13 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DA2736B0083; Fri, 20 Dec 2024 06:40:13 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C69946B0085; Fri, 20 Dec 2024 06:40:13 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id A8F826B007B for ; Fri, 20 Dec 2024 06:40:13 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 2EB7B120937 for ; Fri, 20 Dec 2024 11:40:13 +0000 (UTC) X-FDA: 82915142226.01.675BB8B Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by imf09.hostedemail.com (Postfix) with ESMTP id 8FD65140002 for ; Fri, 20 Dec 2024 11:39:47 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=OoKJa2OT; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf09.hostedemail.com: domain of imbrenda@linux.ibm.com designates 148.163.158.5 as permitted sender) smtp.mailfrom=imbrenda@linux.ibm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734694778; a=rsa-sha256; cv=none; b=iCwcaa+QDIb9MqMN9N1J1e2X3IKVsvH8vDzygE6hpSkVBWsBuho8MM2Vaq3KftEgAXVoxh ie4BgmuUfPSH/+Bgim1+warU1pwJF47nD7Nju8Xs4PKzMvHlhshl1pEufoGvK8/Zjecg0v wHOmC1OXgTTA1DUG2JlHiXoJ4N7iJ/M= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=OoKJa2OT; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf09.hostedemail.com: domain of imbrenda@linux.ibm.com designates 148.163.158.5 as permitted sender) smtp.mailfrom=imbrenda@linux.ibm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734694778; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=fnar1v3bUbKiofJIJSzNvUN45XUYPBZkxMAeFYTNDMY=; b=3pPCa9SubDa5ABvH9WDVsVWu0FnpTsYsFXY4WrdIY1m8BxfWwzVVHN4uRi6sEQNAKoRMvD y/K+C+ZkSTeVsgNkU8wKwpobqSPRBaMo+CXNsFq253vGVvZbm3CbU7xjfjnY5TlvAvFw9L j113kj6nrvao/PWm3d9TlYJW1hGf65M= Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4BJNbB8U010287; Fri, 20 Dec 2024 11:40:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=fnar1v 3bUbKiofJIJSzNvUN45XUYPBZkxMAeFYTNDMY=; b=OoKJa2OTh1nnPEZ4djdc3l KLrxFerDd2RnWGBSJHX5sGP5AzXkiv9QD/j7EQF5Dyr4lyN0qvomunyWqdfkAb8O 5m5uDsOksMc0w+xnLgd3tkgSVrUcLz/3zlb1c90TVKrKfrXOwKY6fjAIuHoEpUiH Hza8qNFiQjezp5sZNao+RkJBxPhxl4kk2NisYZk6/RBZWDYAgEsuff0PnFciIsnS 4SQy4Mno7dQS77uqPKLMQNGo72a1pB6v8ABcj2aPf2eGgfjykg51pl/QS2VCZhOr eVm0jvtUcVr4cmejgPPtW40r/764wqkJa36K2OaxtSMlMgXV2QHpVFNamZgFIpWw == Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 43mwaajhgp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 20 Dec 2024 11:40:05 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 4BK92Tb0014961; Fri, 20 Dec 2024 11:40:04 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 43hmqyj35t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 20 Dec 2024 11:40:04 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 4BKBe2vm29557490 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Dec 2024 11:40:03 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D134520040; Fri, 20 Dec 2024 11:40:02 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B45C22004B; Fri, 20 Dec 2024 11:40:02 +0000 (GMT) Received: from p-imbrenda (unknown [9.152.224.66]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Fri, 20 Dec 2024 11:40:02 +0000 (GMT) Date: Fri, 20 Dec 2024 12:40:01 +0100 From: Claudio Imbrenda To: David Hildenbrand Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, linux-s390@vger.kernel.org Subject: Re: [PATCH 2/2] s390: Convert vsie code to use page->private Message-ID: <20241220124001.49076e55@p-imbrenda> In-Reply-To: <0b45aab7-a0d0-4471-b3d1-c50283f19515@redhat.com> References: <20241219162252.1025317-1-willy@infradead.org> <20241219162252.1025317-3-willy@infradead.org> <0b45aab7-a0d0-4471-b3d1-c50283f19515@redhat.com> Organization: IBM X-Mailer: Claws Mail 4.3.0 (GTK 3.24.43; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: H5xlgEpJB1y2g2e8btVQ1H5FnpoH0qP_ X-Proofpoint-GUID: H5xlgEpJB1y2g2e8btVQ1H5FnpoH0qP_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1051,Hydra:6.0.680,FMLib:17.12.62.30 definitions=2024-10-15_01,2024-10-11_01,2024-09-30_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 mlxscore=0 priorityscore=1501 suspectscore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 mlxlogscore=999 phishscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2411120000 definitions=main-2412200095 X-Stat-Signature: d56cyfbrxfdaojkwdh7wqdammo1gfipk X-Rspam-User: X-Rspamd-Queue-Id: 8FD65140002 X-Rspamd-Server: rspam08 X-HE-Tag: 1734694787-530561 X-HE-Meta: U2FsdGVkX1/xDTizUhTEY26SiASZHDZzdVCDAvJwA4kBJJp0VBiEASKEEOgkSktcLg77zpqFUuNZD1TP+uJoZNuIm8bDQfDycWOqzfWL1VuYUkZbThzCYXJmi9PtuIWxjDg7ujfte+9Z79O4rejjhNmGaky3yzAn1eCsRGVqOvF6gphA5ich5brv+yJpBpbcFwKMG4r1d4VUFpmrIoEJdDNcu9zxaUL5K/ScXer7+mx0eq5SnKnq8N1zGghzkbuRywH6e3v5frtYnf/6KstYrVeFOM9t3gJ3jZvykjfUHnMqW+/yZ/jtDSfzK3Ei1AkOz8Zq0QK3Av9hpx/zIjpEQtPI+z6vo4uSQINBdhfiTnom15xL4fLeKsGlyOXw3RohEKxfOKyVq5+yJpJCsYYrIrWVkI0mUsJptgM6IA2Tlt44iemq+y2ankzOpCJuILMglqdwg70s+bv3vDdFPx+3IILFpRUeiOv7t3YrY+qRESIRw8p2ooLM/z2EtgEP09Zp+y3kjwiHFOgjFHJaAc4v2m6utjDFCNOHmY2crmJAmt6Tzap4/MrsO7GuKsQGI88iq6KLM4/L/xrJhS3nGa6ETOvS9zT1xcxR7zSa4WfiCAMbZIBKOb5z4Zl+2VUlWDCkMjtsvb9GR/YfMCm9LE+wLmF2IlOKJCkrR7tgXQ/w33Sz/djAQ0fzrdFT1YVq51NlaOlea8rbGRpuEis8063fnqz3Ti8GcAP5CKLC5W74q9OZYmGwNx5QT1iHLQyIH/xP7PLTZ5XIbHdzT+ornxHbbw48hxjIni1Lf5R0Cw0mOJttJgY46XI6KmkMPfkj5IwmLfqhMpEtfmBDqhGq2/GwbPuhP2PvRqj20paD54DUnpqSb03f2U6T/xbHxdxTi4bsVxOGDMJqj92dLMXV7SSHzVzHVss1iTM9ICH2jFP8CjtgdNHZuepe9e7n6EPSkWv2lbSe0f8Q/JwpLwfpCuQ TvNKI97a TEmKfQYS7h4Lj7Dt3Ca0N+Gg09XmG4Y4jPrKEtnVI+HOZvi20hpEGF7NBWd5ntQbQx8gBiFXjkjq2YdlTmoQP5AzkYOr0Oqiu/gqR/ZNIWCHc3aLNqaYKZZE51OLwQMXwouYrzxu06lzUQa6WYQxs/sFBrHu/I/M3VXp77bSNKliq3qvhAqP6AXL1Xb+XtB4iLCwsZMRiRgk112mSsEQiV4OhdvKyTozwnJ89hPJ8Q9SfqSyIqTA5y7uRKg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, 20 Dec 2024 10:55:44 +0100 David Hildenbrand wrote: > On 19.12.24 17:22, Matthew Wilcox (Oracle) wrote: > > The vsie pages are not standard page tables, so do not convert them to > > use ptdesc. > > They are not page tables "at all" :) > > A vsie_page is used when emulating hardware virtualization (SIE -- > Start Interpretive Executio) for a CPU: vSIE -- virtual SIE > > These pages primarily hold the shadowed "SIE control block" (SCB) that tells > the hardware what to do when entering hardware virtualization (SIE), and > include things like CPU state such as registers. We store some other > information in the same page. > > We have to the SCB provided by the VM VCPU when running the nested VM VCPU. The > SCB resides in guest physical memory. So similar to shadowing of page tables, > we have to detect modifications to the SCB, so we can update out shadowed version > accordingly. > > We use grab a page and fill a vsie page VCPU wants to execute the SIE instruction > (executing the nested VM VCPU), and return it to the pool when we are done > emulating the SIE instruction. We try to reuse the same vsie pages over various > runs, thats why we store the address of the last SCB address we shadowed, > to look it up. (improves HW performance) > > > So page->index will hold the "guest physical address of the SCB we shadowed > the last time this vsie page was used". > > We seem to have space in the vsie page, so I think we can avoid messing > with page-> completely! I really like this. > > From c94e4ecd6ee791ef9cda1c0577a1e765e5ce2867 Mon Sep 17 00:00:00 2001 > From: David Hildenbrand > Date: Fri, 20 Dec 2024 10:53:46 +0100 > Subject: [PATCH] tmp > > Signed-off-by: David Hildenbrand > --- > arch/s390/kvm/vsie.c | 19 ++++++++++++++----- > 1 file changed, 14 insertions(+), 5 deletions(-) > > diff --git a/arch/s390/kvm/vsie.c b/arch/s390/kvm/vsie.c > index 150b9387860ad..0a8cffe9b80bf 100644 > --- a/arch/s390/kvm/vsie.c > +++ b/arch/s390/kvm/vsie.c > @@ -46,7 +46,13 @@ struct vsie_page { > gpa_t gvrd_gpa; /* 0x0240 */ > gpa_t riccbd_gpa; /* 0x0248 */ > gpa_t sdnx_gpa; /* 0x0250 */ > - __u8 reserved[0x0700 - 0x0258]; /* 0x0258 */ > + /* > + * guest address of the original SCB. Remains set for free vsie > + * pages, so we can properly look them up in our addr_to_page > + * radix tree. > + */ > + gpa_t scb_gpa; /* 0x0258 */ > + __u8 reserved[0x0700 - 0x0260]; /* 0x0260 */ > struct kvm_s390_crypto_cb crycb; /* 0x0700 */ > __u8 fac[S390_ARCH_FAC_LIST_SIZE_BYTE]; /* 0x0800 */ > }; > @@ -1383,6 +1389,7 @@ static struct vsie_page *get_vsie_page(struct kvm *kvm, unsigned long addr) > page_ref_inc(page); > kvm->arch.vsie.pages[kvm->arch.vsie.page_count] = page; > kvm->arch.vsie.page_count++; > + vsie_page = page_to_virt(page); > } else { > /* reuse an existing entry that belongs to nobody */ > while (true) { > @@ -1393,9 +1400,11 @@ static struct vsie_page *get_vsie_page(struct kvm *kvm, unsigned long addr) > kvm->arch.vsie.next++; > kvm->arch.vsie.next %= nr_vcpus; > } > - radix_tree_delete(&kvm->arch.vsie.addr_to_page, page->index >> 9); > + vsie_page = page_to_virt(page); > + radix_tree_delete(&kvm->arch.vsie.addr_to_page, > + vsie_page->scb_gpa >> 9); > } > - page->index = addr; > + vsie_page->scb_gpa = addr; > /* double use of the same address */ > if (radix_tree_insert(&kvm->arch.vsie.addr_to_page, addr >> 9, page)) { > page_ref_dec(page); > @@ -1404,7 +1413,6 @@ static struct vsie_page *get_vsie_page(struct kvm *kvm, unsigned long addr) > } > mutex_unlock(&kvm->arch.vsie.mutex); > > - vsie_page = page_to_virt(page); > memset(&vsie_page->scb_s, 0, sizeof(struct kvm_s390_sie_block)); > release_gmap_shadow(vsie_page); > vsie_page->fault_addr = 0; > @@ -1496,7 +1504,8 @@ void kvm_s390_vsie_destroy(struct kvm *kvm) > vsie_page = page_to_virt(page); > release_gmap_shadow(vsie_page); > /* free the radix tree entry */ > - radix_tree_delete(&kvm->arch.vsie.addr_to_page, page->index >> 9); > + radix_tree_delete(&kvm->arch.vsie.addr_to_page, > + vsie_page->scb_gpa >> 9); > __free_page(page); > } > kvm->arch.vsie.page_count = 0;