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 DBA7AC4332F for ; Tue, 7 Nov 2023 12:54:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 535E08D0037; Tue, 7 Nov 2023 07:54:50 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4BD4E8D0001; Tue, 7 Nov 2023 07:54:50 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 339328D0037; Tue, 7 Nov 2023 07:54:50 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 1F2258D0001 for ; Tue, 7 Nov 2023 07:54:50 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id EDC52809C0 for ; Tue, 7 Nov 2023 12:54:49 +0000 (UTC) X-FDA: 81431152698.11.B09FE1B Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) by imf27.hostedemail.com (Postfix) with ESMTP id 3A4A240010 for ; Tue, 7 Nov 2023 12:54:48 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=o2l5z6XE; spf=pass (imf27.hostedemail.com: domain of tabba@google.com designates 209.85.219.49 as permitted sender) smtp.mailfrom=tabba@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699361688; 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=FuFbqjfsVCp34XchBGKV0CWjcihho4T2q4FA5kjS7eU=; b=tbIfL4ftXKBFd4q5+VNeb1jIczurTo1NC9MlTmPWRHnwSP7SN9rEs8+BC7xUuAlhob9zqn kXokLaX65vE95YbNc3Na5X+oWSRQjuVDLE1s/wlcaoK/jvV6fWPYLIbdkmGplDe6lkBnIZ jHUd012yEyBHKDVxe2SSRupkq9pHLoM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699361688; a=rsa-sha256; cv=none; b=f9HxlPAczciXPtTCVZOM5MOwBP02Y67pYU9tWq0xZnvoWTvgXkOfR5QyKebPmZx2GMvEnA xL5tb1K2N8b7J07ZIZnZauG0+PR5w9DJO7eaxg+tXIClua7dyfz21iYT6oTj54gTmlcbG8 vpLLxlk3ectFm6w80CMnwqGc6XYqJq4= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=o2l5z6XE; spf=pass (imf27.hostedemail.com: domain of tabba@google.com designates 209.85.219.49 as permitted sender) smtp.mailfrom=tabba@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-qv1-f49.google.com with SMTP id 6a1803df08f44-66d1a05b816so38671896d6.1 for ; Tue, 07 Nov 2023 04:54:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1699361687; x=1699966487; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=FuFbqjfsVCp34XchBGKV0CWjcihho4T2q4FA5kjS7eU=; b=o2l5z6XEGo43P9aQJm95d+pXI6HGojd9HBwp2pEcqGEJ6LjSQMopZSxqzTlcbNMJVw 3plc/Dyvvcenj34OXXPVhvBRMGX8/ov1gO2/Lo1w1tVZALjBlzlMEbjnG5DmAyJbIk/5 A1Jw7X1xY/SVt8isWsNksxDtULbdI3pwxW2J5cjGEMZLYGbFkOFDesOUk21o7HcPBzAj CE/ZUrGrJjsfJNekLH9ynd+qdLH2kmhjSa06hChaOgQmhY9d9rTVaDR6wYIOjfGLJGTq O0cffa7TiOCELN6MEh0jMAFCErGT2YD5I/Vw/gySqPb6epM7ODwFPRy85O5KbT+rtFQI s8kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699361687; x=1699966487; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FuFbqjfsVCp34XchBGKV0CWjcihho4T2q4FA5kjS7eU=; b=noYvkyNjG/yEcXT3QVU/UySvU5U+ObysMBNRRxn+SDNmYk0yHYtpZhRhCCVOD1CRKR 8zDWIedfEST1Va2xQNWEAJUm9MWyRdbLOX9cqFQE7tfXCpI+DxX6XKooC3zXtfBgmr6l OEw1DMc1UiH1zQgrYqpDWf1EiXKGtkirfbET2viTp8wlko9rwNDyMmT9Wm4pddiEpo8K sWSZuSDdfmPxEJnYZ5zlxtZEOtUbymkE5NDA0KKLzq9C0h83HQotpRvcfId8TsFq9/GK Uv3y9XTUzEOl500bn7F0TLuJAB+mB92SLq2crB+CUNCV6gqj5rRspaTqHY8n2G/aUVm8 v8OA== X-Gm-Message-State: AOJu0YzmF4S91HPigbL5nur0dpY+ujAJaRieUjxlv9eyIx7j6kSxjA/9 xGKV231bC2TgFL8MLx5o2R+cIVrh4Fk36uqZY3uFJg== X-Google-Smtp-Source: AGHT+IHS9JUkEkC/BybEMf4UmdGXo/DmXLNK4bOT/jrKIAqRMkLyM4gXD6uMK1OzLS09666PL8dXekXtndn5vIwFZqQ= X-Received: by 2002:a05:6214:260c:b0:66f:bb36:9a51 with SMTP id gu12-20020a056214260c00b0066fbb369a51mr33614248qvb.36.1699361687221; Tue, 07 Nov 2023 04:54:47 -0800 (PST) MIME-Version: 1.0 References: <20231105163040.14904-1-pbonzini@redhat.com> <20231105163040.14904-31-pbonzini@redhat.com> In-Reply-To: <20231105163040.14904-31-pbonzini@redhat.com> From: Fuad Tabba Date: Tue, 7 Nov 2023 12:54:10 +0000 Message-ID: Subject: Re: [PATCH 30/34] KVM: selftests: Add KVM_SET_USER_MEMORY_REGION2 helper To: Paolo Bonzini Cc: 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 , 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 , Jarkko Sakkinen , Anish Moorthy , David Matlack , Yu Zhang , Isaku Yamahata , =?UTF-8?B?TWlja2HDq2wgU2FsYcO8bg==?= , Vlastimil Babka , Vishal Annapurve , Ackerley Tng , Maciej Szmigiero , David Hildenbrand , Quentin Perret , Michael Roth , Wang , Liam Merwick , Isaku Yamahata , "Kirill A. Shutemov" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: 6rhya6tyd7xwq7j5t9npd7qqbz5mgzuo X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 3A4A240010 X-Rspam-User: X-HE-Tag: 1699361688-367645 X-HE-Meta: U2FsdGVkX1/lSoejEb9JwZGzYc21rpynDncXs9DTP0ajpI5PLHQjsRP4cvV8yf9Nl+Ocrzj8HPDZ0Ia12u4SWvhDAq56UkmzG0sfyjDngbFCR6dNFyp65m1kKNdholyT0f6quspOLkByY6qEXCKaxL2LErX+wVmKSN6xXrREsLRo07yL22Z2DXNhWOGVguO6e4uj3b/q72J5WI71b9GyBZ+oUEmjzh26l2BWzj9lrhOz2okkPeT6mZxRUp6PxDd0SCu0EP8zXikybtQQm01CGTiXw8Tmk3DDP3P4SEoco5fqIf3NQKW6LV5FbD17ZzIo9Vp1nDh5T1+oVMDBWbwQoU9OT6ksxC4nzIOoTO4GZ1wdxMLVOjrACwjMmMtgLFGFM3FERGzJhcbKTXE7RpdP6cgPd7i/V6+wEWSEjb3+fJTWu9frs98ZZhSCga9/7OarZXG50+nCarRzX5no61w1HQ443Y69WyMFX0Lj4DCFChuR3p4noftfXX+UswC2+RYX+O99F1k9yBUbf3MY70GpYS3fMjaYz/SiIF2Vl2lRqspjva3WBAXrvYistAxgxNDpt07dtMYjtK63dwe4De+mvYwSSJYHk99Uku/+15C+p3tAsYhuAtlxk4KJAYdG9tnkBRIS9GFhsUb9gGQHt3IY9EZhFZ9QArxXX9RFwgXWC6fQDsUPBOzPxSyu/lQ5bppimWTVJulyoKMCGDGsm35zMV1sqPtXjjoY9llY3d2APBzRx7lM++JUABaFs+3ykeAbx+Yh83YeY/Ba1v4cqy05rXTlMlKiGRfGVqK+mDGhGFJ7s5hR8pXnRUoeyHglaDjyV6+gzLBRFoUeJT8nIZBUb+9Lcoo5AgHSBz0WVGMa+tLfHW4IaCqiluaHJ7a3qB+SqUfSLfxaeOyD327TRx0PfapXYJ5eqyCiGmtfyaTQOECbWSaq/xFXH3+3ml/s3jJc+d98U1rL7hCv4M7WRTn UylUbEZ2 BbyvWBhNVjXyCQHaNihc7ZgUTxo/gahKJqvNTdNsM/17sf2M3fUMLUvXKuzzoPOt0Qa6NLXu640je1dlZWWma8fkyiJsvZ4vGPO73KINcXHYAaLGA7lMMC4fdH2fRhBAS80LydN3GKEAf+CNUcdC2kPg0pRuP/9+ysgToaXNlzI1MT4qAjs/ttOnj+z4bPNHl8jZQ0MikYZJvpSNqxU8PxegNCbTIWdi3jrTWLjtPkN9d5lpYzTwXftSj9odT6dQkjvpidWS9nVYKQQ2IfAyYlVbg/yKgxhSG/DECFnMr/WDvUEUJNU990qB0eIAa2Wctkm7ZJ6u7QT/gMuGvKq9dBQ8Y5nGXoqK8MEDaFMnq0CqIEccuXlenCYDEAosnSowJI2UuLW8LjNBzogOQdtodNByqPyipvLEd8gsA 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 Sun, Nov 5, 2023 at 4:34=E2=80=AFPM Paolo Bonzini = wrote: > > From: Chao Peng > > Add helpers to invoke KVM_SET_USER_MEMORY_REGION2 directly so that tests > can validate of features that are unique to "version 2" of "set user > memory region", e.g. do negative testing on gmem_fd and gmem_offset. > > Provide a raw version as well as an assert-success version to reduce > the amount of boilerplate code need for basic usage. > > Signed-off-by: Chao Peng > Signed-off-by: Ackerley Tng > Signed-off-by: Sean Christopherson > Message-Id: <20231027182217.3615211-33-seanjc@google.com> > Signed-off-by: Paolo Bonzini > --- Reviewed-by: Fuad Tabba Tested-by: Fuad Tabba Cheers, /fuad > .../selftests/kvm/include/kvm_util_base.h | 7 +++++ > tools/testing/selftests/kvm/lib/kvm_util.c | 29 +++++++++++++++++++ > 2 files changed, 36 insertions(+) > > diff --git a/tools/testing/selftests/kvm/include/kvm_util_base.h b/tools/= testing/selftests/kvm/include/kvm_util_base.h > index 157508c071f3..8ec122f5fcc8 100644 > --- a/tools/testing/selftests/kvm/include/kvm_util_base.h > +++ b/tools/testing/selftests/kvm/include/kvm_util_base.h > @@ -522,6 +522,13 @@ void vm_set_user_memory_region(struct kvm_vm *vm, ui= nt32_t slot, uint32_t flags, > uint64_t gpa, uint64_t size, void *hva); > int __vm_set_user_memory_region(struct kvm_vm *vm, uint32_t slot, uint32= _t flags, > uint64_t gpa, uint64_t size, void *hva); > +void vm_set_user_memory_region2(struct kvm_vm *vm, uint32_t slot, uint32= _t flags, > + uint64_t gpa, uint64_t size, void *hva, > + uint32_t guest_memfd, uint64_t guest_memf= d_offset); > +int __vm_set_user_memory_region2(struct kvm_vm *vm, uint32_t slot, uint3= 2_t flags, > + uint64_t gpa, uint64_t size, void *hva, > + uint32_t guest_memfd, uint64_t guest_mem= fd_offset); > + > void vm_userspace_mem_region_add(struct kvm_vm *vm, > enum vm_mem_backing_src_type src_type, > uint64_t guest_paddr, uint32_t slot, uint64_t npages, > diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/s= elftests/kvm/lib/kvm_util.c > index 1c74310f1d44..d05d95cc3693 100644 > --- a/tools/testing/selftests/kvm/lib/kvm_util.c > +++ b/tools/testing/selftests/kvm/lib/kvm_util.c > @@ -873,6 +873,35 @@ void vm_set_user_memory_region(struct kvm_vm *vm, ui= nt32_t slot, uint32_t flags, > errno, strerror(errno)); > } > > +int __vm_set_user_memory_region2(struct kvm_vm *vm, uint32_t slot, uint3= 2_t flags, > + uint64_t gpa, uint64_t size, void *hva, > + uint32_t guest_memfd, uint64_t guest_mem= fd_offset) > +{ > + struct kvm_userspace_memory_region2 region =3D { > + .slot =3D slot, > + .flags =3D flags, > + .guest_phys_addr =3D gpa, > + .memory_size =3D size, > + .userspace_addr =3D (uintptr_t)hva, > + .guest_memfd =3D guest_memfd, > + .guest_memfd_offset =3D guest_memfd_offset, > + }; > + > + return ioctl(vm->fd, KVM_SET_USER_MEMORY_REGION2, ®ion); > +} > + > +void vm_set_user_memory_region2(struct kvm_vm *vm, uint32_t slot, uint32= _t flags, > + uint64_t gpa, uint64_t size, void *hva, > + uint32_t guest_memfd, uint64_t guest_memf= d_offset) > +{ > + int ret =3D __vm_set_user_memory_region2(vm, slot, flags, gpa, si= ze, hva, > + guest_memfd, guest_memfd_o= ffset); > + > + TEST_ASSERT(!ret, "KVM_SET_USER_MEMORY_REGION2 failed, errno =3D = %d (%s)", > + errno, strerror(errno)); > +} > + > + > /* FIXME: This thing needs to be ripped apart and rewritten. */ > void vm_mem_add(struct kvm_vm *vm, enum vm_mem_backing_src_type src_type= , > uint64_t guest_paddr, uint32_t slot, uint64_t npages, > -- > 2.39.1 > >