From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.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 24D80344031 for ; Tue, 18 Aug 2026 08:13:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.199 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787040783; cv=none; b=Ori3upZcQjlmHB78lAnzLktIGmLGQ4SHmiND6wNElvrWydl66+HgnvLI2jetjNsSaBPlqawCS5WDrky0Hsb0LVsL6i3Kv4nqPg0yqqg+EYtyooO3YaELOHwdpDsd0UjY94Wr3kEn75BP14F98NSa7Df2V4iR1TxaxOyHG7gbKos= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787040783; c=relaxed/simple; bh=HBAMvv39sFk8+6D6cJKyVCd7nwzLeY+DW3CPjKwbem4=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=CCmG5xG3xw85YHcGh+sIfJ+k3D3qY1FyT33HL8rUX5VG5+ceizHC7MWyCvKYbL0xBYXlzcdoR8CacVosfT1mBsrIgcF6r3so4YTzHcjYPQE0SEX+hfPFIDpLsWQD0P6fdOy9cbsBvsQAZHdRz9doWk4cyFobAyn6/xlAinq4E34= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--ackerleytng.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=UiiKD+bl; arc=none smtp.client-ip=209.85.214.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--ackerleytng.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="UiiKD+bl" Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2cfc52ddc55so71427735ad.3 for ; Tue, 18 Aug 2026 01:13:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1787040779; x=1787645579; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=py9oGM3siJXhjPmyy5yHILORKpTNDQOmPG7vid7oKT4=; b=UiiKD+blmv72foumMyyOR3CvMjGGlbmRtrgaENMGWWzaCL+6alLF6HkdQxb/LthHFD wntIlAL9mHTrYxZpwI9ecYnYX0PbObpag2qtF9S0qX17msF42CIWCG/GxIBB71kW/7VF HDryp6uCgKqWuDEeh8SyWT3/zvG2NkmIx/58TJcIwnhc3OzM+VIoys1TWHSKDEU6hGJ4 w/MtqA/JCcMEWA4Ls1v+1GN5hWg2k5FbOHkisckRJi6ppdvP+u9iuC9Z5/9UgWL8YKZF N6FMQRDcrzmtwrUvQ88FpDKv+AYoK3wHF9hS+U8bpCKgHvUxbNTjijzkfRclfVR53eze rcyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787040779; x=1787645579; h=content-type: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:content-type; bh=py9oGM3siJXhjPmyy5yHILORKpTNDQOmPG7vid7oKT4=; b=o59jgaf7e8n081chYCxDtlu5Kn8vSX4aStrromAJIYpeQYYACUDQdugW8+eX6TEMjj BkpSewF+A/wwXJ5yv/82T4QWMKPoe9IHi3DC7h7IZPo3rWREJOfsx9Ub3LDeiaANYVd5 A4HLguaEJ/R95bthp6mVOUro58tTGfCO78OYp4ZFiqdcFZiQCWMUiWa4AqkmXDCzql4n FJSTLLyurznBaxaoiBsaXNJ/ZG275Lx7XEpo3a2JkiCGkkKklh4/b+TgqLrNyXheQDc5 Y9MWkwQCbKc3v3glpZue8S+yfnytP34YA7bTRr2kpsDUFXzYcEIBczmBc2VKQ67sW/cz gfvA== X-Forwarded-Encrypted: i=1; AHgh+RobUaXzGpsW0nO5o8baR9VpI8Z1NxSdoHE1IAnAhhtIxMgMwiM9PaJ6nA5CPwv1Uqqoz1ywdD7VZI+BnkE=@vger.kernel.org X-Gm-Message-State: AOJu0Yw5TK0qnSFvt26YpFYm8EmuwwuAzNabzXkpmEv2rPPaudK+wnGA 9OucQKwCI8T9BpQWzRVeQ05wmkJ5UW6b8i22bby7Yn6RNRKd9IFnJUhEu5s/W2IfwOEpKOeepBq 2LY29YCFK5URbTsQHYx/xNu8LJw== X-Received: from plpw11.prod.google.com ([2002:a17:902:9a8b:b0:2cf:2ac5:9098]) (user=ackerleytng job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:ce04:b0:2c8:2808:3ec9 with SMTP id d9443c01a7336-2d3b0d5e658mr384056035ad.12.1787040779293; Tue, 18 Aug 2026 01:12:59 -0700 (PDT) Date: Tue, 18 Aug 2026 08:12:37 +0000 In-Reply-To: <20260818-gmem-no-return-page-v1-0-4f8d939efdbc@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260818-gmem-no-return-page-v1-0-4f8d939efdbc@google.com> X-Developer-Key: i=ackerleytng@google.com; a=ed25519; pk=sAZDYXdm6Iz8FHitpHeFlCMXwabodTm7p8/3/8xUxuU= X-Developer-Signature: v=1; a=ed25519-sha256; t=1787040773; l=1303; i=ackerleytng@google.com; s=20260225; h=from:subject:message-id; bh=HBAMvv39sFk8+6D6cJKyVCd7nwzLeY+DW3CPjKwbem4=; b=mOyqx2L3EUevN+HReTiR9BLbQbbIVJKA9Szdy3xkBVDx5LW4GH0t8FRgmGB1JMIT6leK1f26j KObbm72z9rQACvWlEFb2sbi6pWXRCUOdCOO3xSedy+PeOf8JyXHnclA X-Mailer: b4 0.16.0 Message-ID: <20260818-gmem-no-return-page-v1-3-4f8d939efdbc@google.com> Subject: [PATCH 3/4] KVM: SEV: Drop page refcount early in VMSA reload From: Ackerley Tng To: Sean Christopherson , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Ashish Kalra , Michael Roth , Brijesh Singh , Marc Zyngier , Oliver Upton , Joey Gouly , Steffen Eiden , Suzuki K Poulose , Zenghui Yu , Catalin Marinas , Will Deacon , David Hildenbrand , Fuad Tabba , Yan Zhao , "Edgecombe, Rick P" , Vishal Annapurve Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, Ackerley Tng Content-Type: text/plain; charset="utf-8" When reloading the guest VMSA for an SEV-SNP vCPU, KVM retrieves the PFN from guest_memfd. Drop the page reference immediately after retrieving the PFN instead of holding it across MMU lock acquisition in preparation for a follow-up patch to stop returning page pointers from guest_memfd PFN lookups. This is safe because the page's validity and presence are governed by KVM's MMU invalidation protocol rather than the page reference. No functional change intended. Signed-off-by: Ackerley Tng --- arch/x86/kvm/svm/sev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 19c31fa944e34..3fc582fa343cc 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -4062,6 +4062,7 @@ static void __sev_snp_reload_vmsa(struct kvm_vcpu *vcpu, gpa_t gpa) */ if (kvm_gmem_get_pfn(vcpu->kvm, slot, gfn, &pfn, &page, NULL)) return; + kvm_release_page_clean(page); read_lock(&kvm->mmu_lock); /* @@ -4076,8 +4077,6 @@ static void __sev_snp_reload_vmsa(struct kvm_vcpu *vcpu, gpa_t gpa) else svm->vmcb->control.vmsa_pa = pfn_to_hpa(pfn); read_unlock(&kvm->mmu_lock); - - kvm_release_page_clean(page); } /* -- 2.55.0.699.gb54405d56f-goog