From: sashiko-bot@kernel.org
To: "Rick Edgecombe" <rick.p.edgecombe@intel.com>
Cc: kvm@vger.kernel.org
Subject: Re: [PATCH v7 06/11] KVM: TDX: Allocate PAMT memory for TD and vCPU control structures
Date: Sat, 18 Jul 2026 02:03:47 +0000 [thread overview]
Message-ID: <20260718020348.3B4221F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260718014500.2231262-7-rick.p.edgecombe@intel.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
Pre-existing issues:
- [High] cpus_read_lock() is acquired while holding kvm->lock, violating the KVM lock ordering.
- [High] misc_cg_uncharge() is called unconditionally on the error path, underflowing the cgroup limit when misc_cg_try_charge() fails.
--
--- Patch [6]: [PATCH v7 06/11] KVM: TDX: Allocate PAMT memory for TD and vCPU control structures ---
commit 16605575e9c07ab8d7ae8c15ce1e960fccfd95db
Author: Kiryl Shutsemau <kas@kernel.org>
KVM: TDX: Allocate PAMT memory for TD and vCPU control structures
Use control page helpers for allocating and freeing TD control structures,
such that these operations can work for Dynamic PAMT.
> diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c
> index d1af0a752e97e..528ebb3cb0389 100644
> --- a/arch/x86/kvm/vmx/tdx.c
> +++ b/arch/x86/kvm/vmx/tdx.c
[ ... ]
> @@ -2459,7 +2459,7 @@ static int __tdx_td_init(struct kvm *kvm, struct td_params *td_params,
>
> ret = -ENOMEM;
>
> - tdr_page = alloc_page(GFP_KERNEL_ACCOUNT);
> + tdr_page = tdx_alloc_control_page();
> if (!tdr_page)
> goto free_hkid;
[Severity: High]
This isn't a bug introduced by this patch, but doesn't jumping to free_hkid
when misc_cg_try_charge() fails result in an underflow?
If misc_cg_try_charge(MISC_CG_RES_TDX, kvm_tdx->misc_cg, 1) in
arch/x86/kvm/vmx/tdx.c:__tdx_td_init() fails, it jumps to free_hkid.
tdx_hkid_free() then unconditionally calls misc_cg_uncharge(), underflowing
the limit.
[Severity: High]
This is a pre-existing issue, but does calling cpus_read_lock() inside
__tdx_td_init() violate KVM lock ordering?
The KVM_TDX_INIT_VM ioctl acquires kvm->lock via tdx_vm_state_guard() in
arch/x86/kvm/vmx/tdx.c:tdx_vm_ioctl(), and then __tdx_td_init() calls
cpus_read_lock() while kvm->lock is already held. Can this create a reverse
locking dependency against CPU hotplug threads?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260718014500.2231262-1-rick.p.edgecombe@intel.com?part=6
next prev parent reply other threads:[~2026-07-18 2:03 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-18 1:44 [PATCH v7 00/11] Dynamic PAMT Rick Edgecombe
2026-07-18 1:44 ` [PATCH v7 01/11] x86/virt/tdx: Simplify PAMT layout calculation Rick Edgecombe
2026-07-18 1:44 ` [PATCH v7 02/11] x86/virt/tdx: Allocate page bitmap for Dynamic PAMT Rick Edgecombe
2026-07-18 1:44 ` [PATCH v7 03/11] x86/virt/tdx: Add tdx_alloc/free_control_page() helpers Rick Edgecombe
2026-07-18 1:44 ` [PATCH v7 04/11] x86/virt/tdx: Allocate refcounts for Dynamic PAMT memory Rick Edgecombe
2026-07-18 1:44 ` [PATCH v7 05/11] x86/virt/tdx: Handle multiple callers in tdx_pamt_get/put() Rick Edgecombe
2026-07-18 1:44 ` [PATCH v7 06/11] KVM: TDX: Allocate PAMT memory for TD and vCPU control structures Rick Edgecombe
2026-07-18 2:03 ` sashiko-bot [this message]
2026-07-18 1:44 ` [PATCH v7 07/11] x86/tdx: Add APIs to support Dynamic PAMT ops from KVM's fault path Rick Edgecombe
2026-07-18 1:44 ` [PATCH v7 08/11] KVM: TDX: Get/put PAMT pages when (un)mapping private memory Rick Edgecombe
2026-07-18 6:10 ` sashiko-bot
2026-07-18 1:44 ` [PATCH v7 09/11] x86/virt/tdx: Enable Dynamic PAMT Rick Edgecombe
2026-07-18 1:56 ` sashiko-bot
2026-07-18 1:44 ` [PATCH v7 10/11] Documentation/x86: Add documentation for TDX's " Rick Edgecombe
2026-07-18 1:45 ` [PATCH v7 11/11] x86/virt/tdx: Optimize tdx_pamt_get/put() Rick Edgecombe
2026-07-18 2:00 ` sashiko-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260718020348.3B4221F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=rick.p.edgecombe@intel.com \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.