Re: [PATCH v10 21/45] x86/mm: Add support to validate memory when changing C-bit

From: Kirill A. Shutemov
Date: Tue Feb 15 2022 - 08:14:37 EST


On Tue, Feb 15, 2022 at 01:54:48PM +0100, Borislav Petkov wrote:
> On Tue, Feb 15, 2022 at 03:43:31PM +0300, Kirill A. Shutemov wrote:
> > I don't think it works. TDX and SME/SEV has opposite polarity of the mask.
> > SME/SEV has to clear the mask to share the page. TDX has to set it.
> >
> > Making a single global mask only increases confusion.
>
> Didn't you read the rest of the thread with Tom's suggestion? I think
> there's a merit in having a cc_vendor or so which explicitly states what
> type of HV the kernel runs on...

I have no problem with cc_vendor idea. It looks good.

Regarding the masks, if we want to have common ground here we can add two
mask: cc_enc_mask and cc_dec_mask. And then

pgprotval_t cc_enc(pgprotval_t protval)
{
protval |= cc_enc_mask;
protval &= ~cc_dec_mask;
return protval;
}

pgprotval_t cc_dec(pgprotval_t protval)
{
protval |= cc_dec_mask;
protval &= ~cc_enc_mask;
return protval;
}

It assumes (cc_enc_mask & cc_dec_mask) == 0.

Any opinions?

--
Kirill A. Shutemov