[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1d6fbdcaf0ac6657bff3b9de089d9afac6fc757f.camel@intel.com>
Date: Tue, 16 Sep 2025 17:10:08 +0000
From: "Edgecombe, Rick P" <rick.p.edgecombe@...el.com>
To: "kirill@...temov.name" <kirill@...temov.name>
CC: "Gao, Chao" <chao.gao@...el.com>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>, "seanjc@...gle.com" <seanjc@...gle.com>,
"x86@...nel.org" <x86@...nel.org>, "Huang, Kai" <kai.huang@...el.com>,
"dave.hansen@...ux.intel.com" <dave.hansen@...ux.intel.com>,
"mingo@...hat.com" <mingo@...hat.com>, "kirill.shutemov@...ux.intel.com"
<kirill.shutemov@...ux.intel.com>, "bp@...en8.de" <bp@...en8.de>,
"pbonzini@...hat.com" <pbonzini@...hat.com>, "Zhao, Yan Y"
<yan.y.zhao@...el.com>, "linux-coco@...ts.linux.dev"
<linux-coco@...ts.linux.dev>, "kvm@...r.kernel.org" <kvm@...r.kernel.org>,
"tglx@...utronix.de" <tglx@...utronix.de>, "Yamahata, Isaku"
<isaku.yamahata@...el.com>
Subject: Re: [PATCHv2 04/12] x86/virt/tdx: Add tdx_alloc/free_page() helpers
On Tue, 2025-09-16 at 10:22 +0100, Kiryl Shutsemau wrote:
> My git has comment for the check:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git/tree/arch/x86/virt/vmx/tdx/tdx.c?h=tdx/dpamt&id=375706fe73a8499dbdddb22c13d19d7286280ad6#n2160
>
Yes, I saw but wasn't enough for me.
> Consider the following scenario
>
> CPU0 CPU1
> tdx_pamt_put()
> atomic_dec_and_test() == true
> tdx_pamt_get()
> atomic_inc_not_zero() == false
> tdx_pamt_add()
> <takes pamt_lock>
> // CPU0 never removed PAMT memory
> tdh_phymem_pamt_add() == HPA_RANGE_NOT_FREE
> atomic_set(1);
> <drops pamt_lock>
> <takes pamt_lock>
> // Lost the race to CPU1
> atomic_read() > 0
> <drop pamt_lock>
>
> Does it make sense?
Ah, yes thanks. It falls out from the asymmetry of when the inc/dec happens
between get/put.
Powered by blists - more mailing lists