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

From: Dave Hansen
Date: Tue Jun 04 2024 - 12:09:01 EST


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.
> 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.