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 7897CC4345F for ; Fri, 19 Apr 2024 16:12:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CAE8C6B0092; Fri, 19 Apr 2024 12:12:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C5DC06B0093; Fri, 19 Apr 2024 12:12:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AD8BB6B0098; Fri, 19 Apr 2024 12:12:29 -0400 (EDT) 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 8DD526B0092 for ; Fri, 19 Apr 2024 12:12:29 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id D96BEA02FC for ; Fri, 19 Apr 2024 16:12:28 +0000 (UTC) X-FDA: 82026773976.02.DCEE1F1 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf03.hostedemail.com (Postfix) with ESMTP id AB7812001A for ; Fri, 19 Apr 2024 16:12:26 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=BzV4BJKy; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf03.hostedemail.com: domain of pbonzini@redhat.com designates 170.10.133.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=1713543146; 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=9uBiWyy2Y6aSUbUd2veflvDo2gmH6uQXxYZf3A1GRsI=; b=p3x5gfO52VhC7mNUX1aMq8Z0Nai9IGD2kJL0FbqVXR042tDZyflq6FcyFK7B1+Gsc1dRK5 epSwtt+SGjHn09356a1WdoVyhecvG/t0tFEsNJnnHxBUKGZqEWkKn059f6+nuBR2+sran4 khQo2lFd+om9784Jq8J1mZ5jkxhtmSw= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=BzV4BJKy; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf03.hostedemail.com: domain of pbonzini@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=pbonzini@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713543146; a=rsa-sha256; cv=none; b=z1AKv5GdV1TNiVrPCUzgEI02x1C16j7WaCX+0DCsTBWZ36r6UX9p8v7Z0AOzC+yVw8N6Ie lYVFaoI+f5tZUeojKymSMJtzGS7+efwTMWb/6bnbpdnUs5CDBcrgC9l/9VdAkkBcT3qJqn yErQiBrThSBd+AddRVOY0uS+WiJHW+Y= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1713543146; 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=9uBiWyy2Y6aSUbUd2veflvDo2gmH6uQXxYZf3A1GRsI=; b=BzV4BJKyqk7hJjh0On+5j+foOmt+69ti/kM0nQYgbT+oafjmAQUPAvWIlwhaMERdBQvjCP CDzOGTy55TCavSdOFLREZyYKVJEIhq1bDZw+N8yQ0ikKfh0SPlaABXe154iPJZ9npxmddW w/7mfqcVzZ4P0C6cYCkCUK5VdXLFrcs= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-500--1Zo6v-qMPuHVpl9DNXyqA-1; Fri, 19 Apr 2024 12:12:24 -0400 X-MC-Unique: -1Zo6v-qMPuHVpl9DNXyqA-1 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-349c63ea688so1326684f8f.0 for ; Fri, 19 Apr 2024 09:12:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713543143; x=1714147943; 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=9uBiWyy2Y6aSUbUd2veflvDo2gmH6uQXxYZf3A1GRsI=; b=Kj6qiwzL+rlcwiNH/Jk2yOPtWsIogT8btt+rPfv7ks9F7jrLRXoiz7L4cXMvVIQZNP NeK1vIJWEXWAWYfPTde+9YK9+kwY0QP2vaQUs7v8sL2k+efKdmxHEvTNVr4siqUgKT9V Sm9j48GTh4Sa/iBX5GakzFEI5vn+F3BDZ6umTnULMkVz+xt3Ws/NiEvvhkBtOblAcDYn oDRzvJnhPLZ1VPPYuU6NCJ7BPu9DGz89fTWZaPQe3V51avIbz1zb/D0uIoH/ZFISfdWi UpXnSOyaJXslvAbqSSpTzRBhXaR3nIDAUaJ0RZVdQX+jeIU1HQ/ez+9TsodQxlpKd2Lg TRiw== X-Forwarded-Encrypted: i=1; AJvYcCWOR7ui2TkGV9wYI1kZx1HrIAqcwPYfoq8/8k0M3DSp3ohOnW0+CMvA41+7pt9offovFHpP5NRn7keVj5EV5kq06Dg= X-Gm-Message-State: AOJu0YxhmmoKDUq5dlJL2t551mX4YITBxEg5bDAprk14Ax3KnGAaNRHe F8HmE5Rf75V5OMiM+gpPve2jgNXhk7fnRg2OGhjYItlnwnlU2K2tUVsEtu092rjRyCPYPfRWQrv q3XUCHF9Xxkih29nm8jOvXFzKtMOiUVGGD8rugjZS5jJ8VV9sDhSnRfJzECWqBNoCKdU8FBQ0wc yIKzV1zURNRvKsP0eHxNY6tBM= X-Received: by 2002:a05:6000:f:b0:34a:72d:8dae with SMTP id h15-20020a056000000f00b0034a072d8daemr1744509wrx.22.1713543142968; Fri, 19 Apr 2024 09:12:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGu/laGQnrA9BrIF/Cu+lsjfknC5maDVu87SwW7AhUXq8hp5tDZF8U2qhpYBw4LEzoXCxA4xzi8O802s4cFw3o= X-Received: by 2002:a05:6000:f:b0:34a:72d:8dae with SMTP id h15-20020a056000000f00b0034a072d8daemr1744478wrx.22.1713543142601; Fri, 19 Apr 2024 09:12:22 -0700 (PDT) MIME-Version: 1.0 References: <20240418194133.1452059-1-michael.roth@amd.com> <20240418194133.1452059-11-michael.roth@amd.com> In-Reply-To: From: Paolo Bonzini Date: Fri, 19 Apr 2024 18:12:11 +0200 Message-ID: Subject: Re: [PATCH v13 10/26] KVM: SEV: Add KVM_SEV_SNP_LAUNCH_UPDATE command To: Michael Roth Cc: kvm@vger.kernel.org, linux-coco@lists.linux.dev, linux-mm@kvack.org, linux-crypto@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, jroedel@suse.de, thomas.lendacky@amd.com, hpa@zytor.com, ardb@kernel.org, seanjc@google.com, vkuznets@redhat.com, jmattson@google.com, luto@kernel.org, dave.hansen@linux.intel.com, slp@redhat.com, pgonda@google.com, peterz@infradead.org, srinivas.pandruvada@linux.intel.com, rientjes@google.com, dovmurik@linux.ibm.com, tobin@ibm.com, bp@alien8.de, vbabka@suse.cz, kirill@shutemov.name, ak@linux.intel.com, tony.luck@intel.com, sathyanarayanan.kuppuswamy@linux.intel.com, alpergun@google.com, jarkko@kernel.org, ashish.kalra@amd.com, nikunj.dadhania@amd.com, pankaj.gupta@amd.com, liam.merwick@oracle.com, Brijesh Singh X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: AB7812001A X-Stat-Signature: ecnfi8zmezrabxjqzejizamedw3f6o6f X-HE-Tag: 1713543146-617226 X-HE-Meta: U2FsdGVkX1++sM+ob4nOb4untPrrDqKRjiMfWYuQFGjIJ5IHOv5RL/BuLpbA+NTnlvPj3zSVWDqjVyzTnvnRhXv0haSZOLWulHuax1Uh+XL3KM9TIcGWVveVyfecblkzXyiilsvskNiWU9oaTzgjs4Gy6i9F2+lMBD74LQIfiT/+gQhtmGVIN6KEXPM+LMOU9B6PrcaG5wea44CO9j6fqvULuHZsNHJKKf6rVtvJf33l7bnQn0Ce+9yYow1ohN/FlFVEvvverL6AMdhWlU3ztKgwJtNigZ0aL10jRJz5Sf4OWxYGlKQbCRxvuc0sdCpg2yu+Gv52GTVSF3AZmDn7/h7/OFr4LyxKJsDYveRHhG3lQ8/QPPnWl4ToWaR4/JxjqzaVlzbdXrlm7pY/hyiREeHDgaqAYEMWK1VIMISv7/seXixN9zs/xxB+nEy4EqC0x9a80hnm8jPBG3Ke9Zm/rFT5dO1dzAY+J6VmJXsDaCU7LZ9S7EG+9KfX+5CCco1mcW7P1Bn2VuMwQr4ZAz5Pll+3Ky7O9ND9bGS5ICKVn1nQfZS+i9d+K2YkEj/Gzzl4vNiGDycu/9wHZCCw1rCv79erQE9Vfpbjx0gOc0EgE8hOVIo55ENH+czJeT5aPn2JzLpsqlyiV/i3fxqsGJIWPLnzP+cQezrJx1IpkEIKJfeKpA8y9+gbZR3/KktaiC9/gW+SG8IPKkVaBZJcp0/tc6UGfgdEwRXAf4yMojfhwBya/NMeOQYQUfjTpDEc1ScoXGlyaAPqQsQmTi91OPSvpj1jGxWAaJZSc3gqxOrp5b0QzijKpzWY+38CZ+y3eJ4lrKUJWt2qq9HVmh07WC48uMpZkMAudUcPBAYRjTHGK4lRXnstynjT2djSBvts9N6JNCv8jvJLsV1pSLJRSVendUlcfnQcCO/KX0iGoOvuRRWYkKMnAH4lpkruT4yzeW+lLFNbql46ZcJP8QZ9VeA XjRfBCOM reiy/z6ZD8Ur+dxglXz17lxl7pu8J6bLU42OXo0igi0vS6ov8EGcIK0iSk1CnqcsB7aE89Mrl8/oz5i1XwWozNkDi1YgBJg3amlUnImXykkYL8FhwmEvQM3rpdQGJ2UVnDxi49vcXNym3DGr6PwhZ2ohMBvDawGmt63vwN8/reDmvFbwTMCHlylXjyhalZxGTu7bjnOeitg+Pfglh1u/1HP2ozw== 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, Apr 19, 2024 at 1:56=E2=80=AFPM Paolo Bonzini = wrote: > > + ret =3D kvm_gmem_populate(kvm, params.gfn_start, u64_to_user_pt= r(params.uaddr), > > + npages, sev_gmem_post_populate, &sev_po= pulate_args); > > + if (ret < 0) { > > + argp->error =3D sev_populate_args.fw_error; > > + pr_debug("%s: kvm_gmem_populate failed, ret %d (fw_erro= r %d)\n", > > + __func__, ret, argp->error); > > + } else if (ret < npages) { > > + params.len =3D ret * PAGE_SIZE; > > + ret =3D -EINTR; > > This probably should 1) update also gfn_start and uaddr 2) return 0 > for consistency with the planned KVM_PRE_FAULT_MEMORY ioctl (aka > KVM_MAP_MEMORY). To be more precise, params.len should be set to the number of bytes *left*,= i.e. params.len -=3D ret * PAGE_SIZE; params.gfn_start +=3D ret * PAGE_SIZE; if (params.type !=3D KVM_SEV_SNP_PAGE_TYPE_ZERO) params.uaddr +=3D ret * PAGE_SIZE; Also this patch needs some other changes: 1) snp_launch_update() should have something like this: src =3D params.type =3D=3D KVM_SEV_SNP_PAGE_TYPE_ZERO ? NULL : u64_to_user_ptr(params.uaddr),; so that then... > + vaddr =3D kmap_local_pfn(pfn + i); > + ret =3D copy_from_user(vaddr, src + i * PAGE_SIZE, PAGE_S= IZE); > + if (ret) { > + pr_debug("Failed to copy source page into GFN 0x%= llx\n", gfn); > + goto out_unmap; > + } ... the copy can be done only if src is non-NULL 2) the struct should have some more fields > + struct kvm_sev_snp_launch_update { > + __u64 gfn_start; /* Guest page number to load/enc= rypt data into. */ > + __u64 uaddr; /* Userspace address of data to = be loaded/encrypted. */ > + __u32 len; /* 4k-aligned length in bytes to= copy into guest memory.*/ > + __u8 type; /* The type of the guest pages b= eing initialized. */ __u8 pad0; __u16 flags; // must be zero __u64 pad1[5]; with accompanying flags check in snp_launch_update(). If you think IMI can be implemented already (with a bit in flags) go ahead and do it. Paolo