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 30E73C4332F for ; Mon, 30 Oct 2023 22:06:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 86FD46B0258; Mon, 30 Oct 2023 18:06:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 81F496B0269; Mon, 30 Oct 2023 18:06:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6E7C46B028E; Mon, 30 Oct 2023 18:06:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 5C2CB6B0258 for ; Mon, 30 Oct 2023 18:06:01 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 2CE9B12082D for ; Mon, 30 Oct 2023 22:06:01 +0000 (UTC) X-FDA: 81403511322.22.90B5D6C Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) by imf11.hostedemail.com (Postfix) with ESMTP id 6389440012 for ; Mon, 30 Oct 2023 22:05:59 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Qc8VRWQL; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf11.hostedemail.com: domain of 3xihAZQYKCEk3plyunrzzrwp.nzxwty58-xxv6lnv.z2r@flex--seanjc.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=3xihAZQYKCEk3plyunrzzrwp.nzxwty58-xxv6lnv.z2r@flex--seanjc.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1698703559; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=1IwVDVsbZSN9+qsHUIXJ8IN4aMaIP7o7r0dMzi80JWo=; b=kd8DAO7M6bYOQNzzzApGS6C26Fst/FmsnLc93yoA1hA8zVBR7LL39q0W+lkr8/rxsw0hAP k7Y7HZL3/5xAPGWq1K3roNEAfTEgCKFa38IIvIy9kRR+gmrdbfddzPHjKtPaRC4W5Lqf3L YfweI7L5QCDI7gqXUK9d1mchI3wwXhM= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Qc8VRWQL; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf11.hostedemail.com: domain of 3xihAZQYKCEk3plyunrzzrwp.nzxwty58-xxv6lnv.z2r@flex--seanjc.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=3xihAZQYKCEk3plyunrzzrwp.nzxwty58-xxv6lnv.z2r@flex--seanjc.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1698703559; a=rsa-sha256; cv=none; b=NhQyAy+C3wtyB88Gl3OlRESwv2SbGVfdXdvHommUgDLsgc3dX7w6Yr2UJXcgJLNtKHQZjI /8y38OM3jTj598ojvvurQ/mnxKER3ELXzm4E7cKauDVjx2EYZWQEYRG7qqjTRz/VtRG24/ YCfN/JiGudUGwhCGxSyZBHPe2owdBaQ= Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-da04fb79246so4543369276.2 for ; Mon, 30 Oct 2023 15:05:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1698703558; x=1699308358; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=1IwVDVsbZSN9+qsHUIXJ8IN4aMaIP7o7r0dMzi80JWo=; b=Qc8VRWQLYXd3RB0dJbe2Nbb3dOWZn8YGR7T4VH4suHChkR7bEt9508rl+I7z8GjQRx mgKVrH7+Skt9wUXPMaimauJvdsR3AKL4i3Hp8xaPHYm5z3cVPjO9hr1XZ+omiBtz4SUJ a+7+MYPBjblAVcs+3LXv0208RYoX1LTcN/h6fOGFUZ1LesihUAPmwrcU9eDaC+9fpmtk 77akKACVciGvhCX2oIsq7ASArRQ8zQDE862N/IXADLb/Y9bUF8EDpd5tTFISrd5cMLeX eIGBUXlaJz4FPL0iLZYN5KQ87vhESvQ9ACdcFxkMblohSNVAVdZGxeO8mg+vPHh+Aiqf qaTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698703558; x=1699308358; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=1IwVDVsbZSN9+qsHUIXJ8IN4aMaIP7o7r0dMzi80JWo=; b=NI8Vt2wrmmwCDiqfuVl3i70Xk9cDgGhFL/swgkCG04LDaS3j+Wxfi1bocfXrWOFk8H g01njXl8tzSfqwhhLsr1DHAKHgb4LHJ94bvA4oiZ4bqVRsYnWswm9i2Fz2V/B9iqTiTz HkDohHsXR+E2/JHyXTJpG2Jqn6H5cnu2Lbll+OdaGza2pjNCRvyTJpDcxkK9K3yBSGMC mlvAkcIQ6iO0TAWozdnYH/7VUmHZG/+YAIT7FviNXM4iSuNWXvUgUmxV9w5rlUoxz2ox BTwN/qnMi0hEp8MW1XqTOGVsfo3ke7X8bS4QgzatpSbRYzyFdmWDhO/9Ux6apNRs8QG7 Ciwg== X-Gm-Message-State: AOJu0YxV8tT7Y7CxziqJsRqtkOUA+hYHom1VOeF49KZIfPnjZITyVMmF U+9LWdGIPnt2Z0KSFngPnpRFwc2bVlk= X-Google-Smtp-Source: AGHT+IEdUnGiaB+HWnyvBXIWgJEvc4p4Jj6o8XAknp5F2BcjElHvOjmW/sQ9BadeZP3HZD1+EeGEwSi+J0Q= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:b108:0:b0:d99:3750:d607 with SMTP id g8-20020a25b108000000b00d993750d607mr203752ybj.8.1698703558464; Mon, 30 Oct 2023 15:05:58 -0700 (PDT) Date: Mon, 30 Oct 2023 15:05:56 -0700 In-Reply-To: Mime-Version: 1.0 References: <20231027182217.3615211-1-seanjc@google.com> <20231027182217.3615211-14-seanjc@google.com> Message-ID: Subject: Re: [PATCH v13 13/35] KVM: Introduce per-page memory attributes From: Sean Christopherson To: Chao Gao Cc: Paolo Bonzini , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , 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 , Fuad Tabba , Jarkko Sakkinen , Anish Moorthy , David Matlack , Yu Zhang , Isaku Yamahata , "=?utf-8?Q?Micka=C3=ABl_Sala=C3=BCn?=" , 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="us-ascii" X-Rspamd-Queue-Id: 6389440012 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: kt4mbgokzu5etkxy93w5tc8id3x3z911 X-HE-Tag: 1698703559-196629 X-HE-Meta: U2FsdGVkX188uV6P2TCSIxG55Sjk13xj56tipjVCqyM3WhldeNoAvmc0dezTsf4mFXXc1fCjkEDNSTG506MxwjkdAKz9TCS6pAHzm56t8bgSSOvDMsr7gbXWD9DQmnjCzA8ST+E2kkruLUIdJpW+dlhKECLErwYT/Hj1MqeR1hgjbXzjSVajO9Kdb2P3CbeNVgDyvgQXENPNWGhgHnrmJ8Ibf9u85iia8FqCkI3dNk8mZmr21RbaYie5pq0JAuYBNxoktERqOCCUQEQk2eW2RaFq8w9ElB9pHo/lL64pssfvc/jSfP5swlPBk55/H+BFHuo5iD8JnYMt+lTuS4Pi69qtxPEXjoRgRO7dWXTWxeIhw86wK5Bc1gegmxamt1Zu1LiGD/vxXDLi/d6PHvNPEjE1ZJIfNjpF1yNL5P+td9SdOW1nL7vWnpscRaR8jmIRVAgg5kOf/n7QSfLTpTp65y2IBgJsSuetrGT9+311j7ayKp38ds24xO3DCtREJFXhtj09dAfs8t8qTJ4FzLs9/MCMRo9aBpiwdYAqqs0UYwfZ+5vq8Kb9lLm+cfm5mN2hRNyWWG2n9MyVtj5Mv1suBxU62NDoLnE7c/VYKt5bTzemiVAALxAp6IqDMLvhKmv/Yr1+MbcHAPq5L/LbExXq8Dy0VEPLH8Snz42Jc4yfFxg3AWzY7KXrn47AXJPTkfQ2hdAnxHi7ZVE5IJ+/KlDMdNDePWuN2ehHXEV5hDfaePp+4T6pIL+165jiCgwKiHmK9mPAz2UdtNQ8ITwl3Dnwxsea5M57CmjbTVRSkF4+dCWWPUFKbjHuxZ3s0aQ0qH5Z8hXFtjMkFyWWs1P2k+wmqmUtQGHcybKjegQ0qnujkSgBPWI6Xo5W2o+bl72MVeoR/nADEWBPTPzGIuB6eu85k4RC1LuVSG71yoGMggSlM1O1TqQlnCLN5F5nX7JqXCIapHawE/bfmZ+7bzj+MpM TKZm9fWk johqY1XCON0rDndwFeGMiBKrQLy5Qr/TCi1TthEpfY95PNKnjAUvVhE2ot3b1XeF9FMaccIJZ9sqA0zTC6WnMoTzPUnjjrpXGxbQLvvRocPWngDArbFaqk25YDoYabw3/an9l6YhCWZaRgf2kZqK8h24vAa9SXpQGy5sqNSRHVfuA+i5b6xQDFhksnLUOVA2ZM5kjrArlBohtrPWEN4V9CbC9vAVKtrLsNhbIgkfmXKAMC6laVDif2pi25/ZbTV9osZ0wSZHh4ogi4PdA/pSrbUMDBhVUS6BaxONXjnCVCNcMCIDAQHvlZEPn4X8arT2Beo4z6PuXdBqlfbCyKLZBU6lW38J9PaIHpBqzZHbN1OZrBKWNwn/4Y1IT0cRzzKHP0g/f5N6LIgoj/GZfvz4bd+4/wRHzurhUYeXMy5Ck9kbAsxlfE175NS1Ixjx+MFShglY/uGMBlGyRWrW6c8g+qh8uUVVqzmswCkfS266txLqV7usKesJtQBJCxVUICmLwikjUs/LA9dA+WvNsT1G15AeRfWqXzYZhS0e0fRCylmfx8g2UK85KQjppD3t1j2N84/Um3tS+UVM25IyMw2OWD1HZJBffe1mjWeH1J83YEagl3sJM7DkEJ2QSalTmaxfFNDG9gnSlSMFKXGxn3IG4lVhg56/KJy23kGz96vGMamfIWYs= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, 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 Mon, Oct 30, 2023, Sean Christopherson wrote: > On Mon, Oct 30, 2023, Chao Gao wrote: > > On Fri, Oct 27, 2023 at 11:21:55AM -0700, Sean Christopherson wrote: > > >From: Chao Peng > > > > > >In confidential computing usages, whether a page is private or shared is > > >necessary information for KVM to perform operations like page fault > > >handling, page zapping etc. There are other potential use cases for > > >per-page memory attributes, e.g. to make memory read-only (or no-exec, > > >or exec-only, etc.) without having to modify memslots. > > > > > >Introduce two ioctls (advertised by KVM_CAP_MEMORY_ATTRIBUTES) to allow > > >userspace to operate on the per-page memory attributes. > > > - KVM_SET_MEMORY_ATTRIBUTES to set the per-page memory attributes to > > > a guest memory range. > > > > > - KVM_GET_SUPPORTED_MEMORY_ATTRIBUTES to return the KVM supported > > > memory attributes. > > > > This ioctl() is already removed. So, the changelog is out-of-date and needs > > an update. > > Doh, I lost track of this and the fixup for KVM_CAP_MEMORY_ATTRIBUTES below. > > > >+:Capability: KVM_CAP_MEMORY_ATTRIBUTES > > >+:Architectures: x86 > > >+:Type: vm ioctl > > >+:Parameters: struct kvm_memory_attributes(in) > > > > ^ add one space here? > > Ah, yeah, that does appear to be the standard. > > > > > > >+static bool kvm_pre_set_memory_attributes(struct kvm *kvm, > > >+ struct kvm_gfn_range *range) > > >+{ > > >+ /* > > >+ * Unconditionally add the range to the invalidation set, regardless of > > >+ * whether or not the arch callback actually needs to zap SPTEs. E.g. > > >+ * if KVM supports RWX attributes in the future and the attributes are > > >+ * going from R=>RW, zapping isn't strictly necessary. Unconditionally > > >+ * adding the range allows KVM to require that MMU invalidations add at > > >+ * least one range between begin() and end(), e.g. allows KVM to detect > > >+ * bugs where the add() is missed. Rexlaing the rule *might* be safe, > > > > ^^^^^^^^ Relaxing > > > > >@@ -4640,6 +4850,17 @@ static int kvm_vm_ioctl_check_extension_generic(struct kvm *kvm, long arg) > > > case KVM_CAP_BINARY_STATS_FD: > > > case KVM_CAP_SYSTEM_EVENT_DATA: > > > return 1; > > >+#ifdef CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES > > >+ case KVM_CAP_MEMORY_ATTRIBUTES: > > >+ u64 attrs = kvm_supported_mem_attributes(kvm); > > >+ > > >+ r = -EFAULT; > > >+ if (copy_to_user(argp, &attrs, sizeof(attrs))) > > >+ goto out; > > >+ r = 0; > > >+ break; > > > > This cannot work, e.g., no @argp in this function and is fixed by a later commit: > > > > fcbef1e5e5d2 ("KVM: Add KVM_CREATE_GUEST_MEMFD ioctl() for guest-specific backing memory") > > I'll post a fixup patch for all of these, thanks much! Heh, that was an -ENOCOFFEE. Fixup patches for a changelog goof and an ephemeral bug are going to be hard to post. Paolo, do you want to take care of all of these fixups and typos, or would you prefer that I start a v14 branch and then hand it off to you at some point?