Re: [PATCHv11 09/19] x86/tdx: Account shared memory

From: Kirill A. Shutemov
Date: Tue Jun 04 2024 - 12:24:51 EST


On Tue, Jun 04, 2024 at 09:08:25AM -0700, Dave Hansen wrote:
> On 5/28/24 02:55, Kirill A. Shutemov wrote:
> > Keep track of the number of shared pages. This will allow for
> > cross-checking against the shared information in the direct mapping
> > and reporting if the shared bit is lost.
>
> It's probably also worth mentioning that conversions are slow and
> relatively rare and even though a global atomic isn't really scalable,
> it also isn't worth doing anything fancier.

Okay, will do.

> > diff --git a/arch/x86/coco/tdx/tdx.c b/arch/x86/coco/tdx/tdx.c
> > index 26fa47db5782..979891e97d83 100644
> > --- a/arch/x86/coco/tdx/tdx.c
> > +++ b/arch/x86/coco/tdx/tdx.c
> > @@ -38,6 +38,8 @@
> >
> > #define TDREPORT_SUBTYPE_0 0
> >
> > +static atomic_long_t nr_shared;
>
> Doesn't this technically need to be:
>
> static atomic_long_t nr_shared = ATOMIC_LONG_INIT(0);
>
> ? I thought we had some architectures where the 0 logical value wasn't
> actually all 0's.

Hm. I am not aware of such requirement. I see plenty uninitilized
atomic_long_t in generic code. For instance, invalid_kread_bytes.

And I doubt TDX will ever be built for non-x86 :P

--
Kiryl Shutsemau / Kirill A. Shutemov