From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A6C453F328F for ; Thu, 23 Jul 2026 21:08:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.199 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784840905; cv=none; b=qhZEovqVtY/VX6Waqo6LdWVbmIcN4T+n/jRpHSCdol94N5lkDdzREjfj1Uzk4C3uol8G7qpMzyu6V/0wFY8gcdvUJZAdeE4N41LVXBe4c+YOcUv/a3V/H6E9iZezsdB4s2/YulAVspCtr40Y4c3AxbjpeBvHHoit4zySLldbwKU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784840905; c=relaxed/simple; bh=il5fIgZarUP1i40dd38C4qltoZmuiFcM1dhxxldYAls=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=R6Edn327+6SBZMVOmRmn60ktT7zWtSqfDUI3EnqkroA8oIRBpJLflNhU4E7TSAta9Q1JBYvg9PFsKDsNnFKIR7HYy8Qerj/ieOBJuXvk4EMPioGsRm9L0ld7v0s/+q1B+vXFXkrcCdxe5Q7VnnsZWYMVB7A9m+/l55WW4xeCfHU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=C2CQpFHB; arc=none smtp.client-ip=209.85.215.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="C2CQpFHB" Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-cb5bdd8450dso794602a12.0 for ; Thu, 23 Jul 2026 14:08:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1784840899; x=1785445699; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:reply-to:from:to:cc:subject:date:message-id :reply-to:content-type; bh=0RRn9GYYGgZRcSQviEMPgCBppz0KQJ7kyoL5I72dbzg=; b=C2CQpFHBlSOJWv5/sTEL811ABB69eR8brYbJ2Vv74yoXB2du9mpW3Plka8ElTcVXJ6 yblLCaYXqW9DKG89nLNMKbvJAc4L65plKluvGOjIfmMCa9Npo3jYip/chceU0iuak67L izcJBuzVJqnu2xS1VNcQsqpZ92/c3fLwTTl2BJpflJ5sMc0PjwgdC3vOtW8PGlSAc2Aw gAS+nu7WMMGvGgwpfwj3HeUexaKdhmS738htuZkOYA9eq4LLjjtKg4hnC6fdnFwze0Sv OuZUr9SyX/TrSl8PriDHizMCH82EkfNFNQBNSF8xQqODrTmROkpvaA5bJT7ad7/Ekgm8 tLMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784840899; x=1785445699; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:reply-to:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to:content-type; bh=0RRn9GYYGgZRcSQviEMPgCBppz0KQJ7kyoL5I72dbzg=; b=jM+woKiEgjT6OKzg4a804i1+3GIug5Pv6bHVC/017Yxx7BLwXdQdGl5fAreNJTSWRe udA/Z+1/HYXOHio9Z5uogcdCvrU8iOnHDazdlJzwV88zRh1YqGybPbfw2HSHWG8jjh+J 5LBFU2SfO1xeip5uGIpPkNGnAOqadRCjLofx0eu5esYvqw+P9/+8eYlHv3iC05YIVpTl kwycU5VFNVJGyKhZvpq7keZxSr5qeqgmZxeVGx1fETYxRmSP7cJ4+DZaTM99ho0QcTLM fasCeQ5CmhCV5Qvm6K6XQKjRepnJ+RP/HTFbiWeMtPp66tGhC6l+zQOSMHg10YsAd/kt 6CYA== X-Forwarded-Encrypted: i=1; AHgh+RqJcShvx/58iVKjhAefKgsupsxqAxM4Ni3oWH+WtIw3rjpSq8DCLYjPm4eJg1QngqlHhkycwIuNOKitc0U=@vger.kernel.org X-Gm-Message-State: AOJu0YwiEB2aArhN5RwOJrelepsviHkp7GU6YCy6c4n7wmaFjoJfTRqi tbfrL1PcghzXvVA4jFXoEssFV6MhvSns/XIzJ42RcsMCr75C8m1aNsCuRyy5Yy+QA28P7nOGZ26 5oJOV6g== X-Received: from pfll21.prod.google.com ([2002:a05:6a00:1595:b0:84e:4f2:22c]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:21cd:b0:845:ba94:a56 with SMTP id d2e1a72fcca58-84e2b82f77fmr5623035b3a.5.1784840898995; Thu, 23 Jul 2026 14:08:18 -0700 (PDT) Reply-To: Sean Christopherson Date: Thu, 23 Jul 2026 14:08:08 -0700 In-Reply-To: <20260723210811.72720-1-seanjc@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260723210811.72720-1-seanjc@google.com> X-Mailer: git-send-email 2.55.0.229.g6434b31f56-goog Message-ID: <20260723210811.72720-7-seanjc@google.com> Subject: [PATCH v6 6/9] KVM: guest_memfd: Only "prepare" folios for private pages From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Fuad Tabba , Ackerley Tng , Xiaoyao Li , Michael Roth , Fuad Tabba Content-Type: text/plain; charset="UTF-8" From: Ackerley Tng When getting a guest_memfd pfn, prepare the folio, i.e. convert its pages to private, if and only if the page is actually private. The misnamed prepare() hook exists specifically to allow x86's SNP to assign pages to the owning VM in the RMP when mapping private memory into a guest. Guarding the call will allow renaming the prepare() hook to better reflect its role, without creating a semantic mess, and will become a hard requirement once in-place conversion is supported, i.e. when CoCo VMs support SHARED guest_memfd pages. For all intents, no functional change intended (the sole arch hook is a nop for SHARED memory). Suggested-by: Michael Roth Reviewed-by: Fuad Tabba [sean: rewrite changelog to fit the context] Signed-off-by: Ackerley Tng --- virt/kvm/guest_memfd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/virt/kvm/guest_memfd.c b/virt/kvm/guest_memfd.c index e9d61410e5fb..f64cd87ec8b0 100644 --- a/virt/kvm/guest_memfd.c +++ b/virt/kvm/guest_memfd.c @@ -814,7 +814,8 @@ int kvm_gmem_get_pfn(struct kvm *kvm, struct kvm_memory_slot *slot, folio_mark_uptodate(folio); } - r = kvm_gmem_prepare_folio(kvm, slot, gfn, folio); + if (kvm_gmem_is_private_mem(file_inode(file), index)) + r = kvm_gmem_prepare_folio(kvm, slot, gfn, folio); folio_unlock(folio); -- 2.55.0.229.g6434b31f56-goog