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 B5AA0C4332F for ; Sun, 5 Nov 2023 16:34:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 531FA44016B; Sun, 5 Nov 2023 11:34:20 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4E158440150; Sun, 5 Nov 2023 11:34:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 35B7744016B; Sun, 5 Nov 2023 11:34:20 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 236FA440150 for ; Sun, 5 Nov 2023 11:34:20 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id F23E1B52B0 for ; Sun, 5 Nov 2023 16:34:19 +0000 (UTC) X-FDA: 81424448238.03.68F832F Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf21.hostedemail.com (Postfix) with ESMTP id 5381B1C0015 for ; Sun, 5 Nov 2023 16:34:18 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=C2TjZUkk; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf21.hostedemail.com: domain of pbonzini@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=pbonzini@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699202058; 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=bLOqqs5CF8yk4LC9a+1vwMzoSy4qflmSUsjtCkwDz0I=; b=1RcCprZVzvBIXbYnMa2Oesms77/XFCnrojScz+1iKUWITHMh3yRR/9pUqEC7OmAnC9U2ZI rqJ2+3dasLOM/J1we4Hk1/Pu2G0OYCfg7b5RNHK+WTJySi3zposPPO0PrEeDn3fwUdycsK naSL5gowp4GAJQw4pKz3jdKS2aSm7vk= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=C2TjZUkk; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf21.hostedemail.com: domain of pbonzini@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=pbonzini@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699202058; a=rsa-sha256; cv=none; b=r6fs/FzTg0w0wL9b+/xWt8t1ofVG7mfcSq8h6ExSmIES/2d2ip82jP3yGPkCOf+qi12rvH 2RpnKDe133wncCPk4fhmQ8P7v+ocJ/izZhy5Usj7bzNbSvWnIbnwtt8n0x3sBfV8NYy8gr rN4mABKRr+6bJ45wWBMVxdHLi5S3X0M= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1699202057; h=from:from: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; bh=bLOqqs5CF8yk4LC9a+1vwMzoSy4qflmSUsjtCkwDz0I=; b=C2TjZUkkagdZTuzQJYta05l7kMuZsAh1pXg8CIAGpo21orMO0inQrF8pl8xfUJEpl4NbeO JySPHdoMECmwCFCotlM94aF5Bu4rp3uvcI3+rONGHt5i1Pnh2OzDlpI25DgecnlqLbxXS5 Vz5ep5I9E/W2AXZIDl7JgOAK8Y6Yj7Q= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-609-RNp8mDoTP1q6dpHOGd7mDg-1; Sun, 05 Nov 2023 11:34:13 -0500 X-MC-Unique: RNp8mDoTP1q6dpHOGd7mDg-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A0FE33C0FC8E; Sun, 5 Nov 2023 16:34:11 +0000 (UTC) Received: from avogadro.redhat.com (unknown [10.39.192.93]) by smtp.corp.redhat.com (Postfix) with ESMTP id E29DF2166B26; Sun, 5 Nov 2023 16:34:04 +0000 (UTC) From: Paolo Bonzini To: Paolo Bonzini , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Sean Christopherson , Alexander Viro , Christian Brauner , "Matthew Wilcox (Oracle)" , Andrew Morton Cc: kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Xiaoyao Li , Xu Yilun , Chao Peng , Fuad Tabba , Jarkko Sakkinen , Anish Moorthy , David Matlack , Yu Zhang , Isaku Yamahata , =?UTF-8?q?Micka=C3=ABl=20Sala=C3=BCn?= , Vlastimil Babka , Vishal Annapurve , Ackerley Tng , Maciej Szmigiero , David Hildenbrand , Quentin Perret , Michael Roth , Wang , Liam Merwick , Isaku Yamahata , "Kirill A. Shutemov" Subject: [PATCH 26/34] KVM: selftests: Add helpers to do KVM_HC_MAP_GPA_RANGE hypercalls (x86) Date: Sun, 5 Nov 2023 17:30:29 +0100 Message-ID: <20231105163040.14904-27-pbonzini@redhat.com> In-Reply-To: <20231105163040.14904-1-pbonzini@redhat.com> References: <20231105163040.14904-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.6 X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 5381B1C0015 X-Stat-Signature: 5a6mtjfycr3sn5835t8rfht3x1bdeigz X-Rspam-User: X-HE-Tag: 1699202058-720797 X-HE-Meta: U2FsdGVkX18XNAQSdXJdQXP1zNGutipslEN6rkgUPG6eHKCdC41lqvteyK5yARqCl1Nb0KUFfiY5KXJhVr0qosicRFGxaWJjF86Gu+WjbhiVc7udVZT4wQD9bwqQOrFZdPiYY/y84NN0LgdzfZJuPo9RydAup5nNfZza44sMMusiVeis2oKPvSfuHcgZRc4Q2FK5M7FvGC+XsoeYM+yaUqVosyN4YkPOHHnGNQ4/ZVhjPIQ5grADcF+9jtiuP9Wx74zHWDlVfxx64jHm4LfRjjE4+hOPnNWAdCEOkw4yoLbQFm9Wh8t+Th9zhJEfir1Dkic6RdXCPicjqctgR7JWIUjdbUv04tB9bWkt76/WvfB5XHBWjqQMF7gqeXU7pczRaTkos8vEJUDy+ztn4ISfnB7yHiga6lf0rF150d4xQiMhL9uGcjXhFZm/cthSVXDgDTgIsczEXfuXzq1lel6yM6ViwU3bQ+NUht1+97s4dNow1gMuCO/5tKlQu/8HaSGehb+addj+bLNXJ6hHfHWiFuONQhU1wIfwZRPB61CpnSIZiaU1pkTF8l7G5xdD/4bM2ebw7alPe+nebsrZdoNx/21OYP1gfqIWpd9BaB9hP7NC++RRhJVPITwID9ZoOddHlLBj4vcwpwmylWB99D9FepsL73DDtMnnHcuxnWHu2BkWgWp7ldY9MCslEPEAXPQsSik9ltLAjxWd1/cgE+kAR/qGcfwMmNxxEwuykDCCUw4fiUyfnmSAEEYpW/3yX/ae2qFdJgrDUZBd/2Laoogu7T0AIOB8gJ1lW5ffQt3f/o6w6xyKBmSV4so6heT08/6uPJukQJWFam/uvmK/FgaetqI3WVEm/iaIoWxGJPZM5W/NsjMMMU+upwUQPB0zhUCzZGUXREUePSSTHolMrsHhyjTkVPBK5J/XslzC4xGBZpT2ginYZR8meVRPPSgr/dw1xUwu9XkPyw31vmX+sTZ PffDJghA 0c0Kt9hUBExBiWKVukvGmjyiS3MArsX7JeLtlyb+uK/dr26UU/dkoA/42qygo1al9uvRpOsLq+P5wVQ9EBqRhADZgyUwuIhEyoTOyyMkXrT3W/Gm0R/NOZxo6e3C76OT9XYkQ1vPQnbaQzwNtsmuPKW+XlcBL/h18BvfLr1CFKE2+OD74+uq5nNY/Q0bwjmVknfa3qeytlVi0WcKmnUherhg9fDk83u1xDbaMdT3xjsNyvjUJDezJlEzpJgOm39L//B5P1nlJSvT5DGL8rL45H8Qfe7+XbA+vy1xo5qjOPYUTtlNDtauPCNoEPZY6Gg4AandqFrw/Uf82+Gs= 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: From: Vishal Annapurve Add helpers for x86 guests to invoke the KVM_HC_MAP_GPA_RANGE hypercall, which KVM will forward to userspace and thus can be used by tests to coordinate private<=>shared conversions between host userspace code and guest code. Signed-off-by: Vishal Annapurve [sean: drop shared/private helpers (let tests specify flags)] Signed-off-by: Sean Christopherson Message-Id: <20231027182217.3615211-29-seanjc@google.com> Signed-off-by: Paolo Bonzini --- .../selftests/kvm/include/x86_64/processor.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tools/testing/selftests/kvm/include/x86_64/processor.h b/tools/testing/selftests/kvm/include/x86_64/processor.h index 25bc61dac5fb..a84863503fcb 100644 --- a/tools/testing/selftests/kvm/include/x86_64/processor.h +++ b/tools/testing/selftests/kvm/include/x86_64/processor.h @@ -15,6 +15,7 @@ #include #include +#include #include #include "../kvm_util.h" @@ -1194,6 +1195,20 @@ uint64_t kvm_hypercall(uint64_t nr, uint64_t a0, uint64_t a1, uint64_t a2, uint64_t __xen_hypercall(uint64_t nr, uint64_t a0, void *a1); void xen_hypercall(uint64_t nr, uint64_t a0, void *a1); +static inline uint64_t __kvm_hypercall_map_gpa_range(uint64_t gpa, + uint64_t size, uint64_t flags) +{ + return kvm_hypercall(KVM_HC_MAP_GPA_RANGE, gpa, size >> PAGE_SHIFT, flags, 0); +} + +static inline void kvm_hypercall_map_gpa_range(uint64_t gpa, uint64_t size, + uint64_t flags) +{ + uint64_t ret = __kvm_hypercall_map_gpa_range(gpa, size, flags); + + GUEST_ASSERT(!ret); +} + void __vm_xsave_require_permission(uint64_t xfeature, const char *name); #define vm_xsave_require_permission(xfeature) \ -- 2.39.1