Re: [PATCH v19 039/130] KVM: TDX: initialize VM with TDX specific parameters

From: Kirill A. Shutemov
Date: Fri May 17 2024 - 10:59:43 EST


On Fri, May 17, 2024 at 04:37:16PM +0200, Juergen Gross wrote:
> On 17.05.24 16:32, Kirill A. Shutemov wrote:
> > On Mon, Feb 26, 2024 at 12:25:41AM -0800, isaku.yamahata@xxxxxxxxx wrote:
> > > @@ -725,6 +967,17 @@ static int __init tdx_module_setup(void)
> > > tdx_info->nr_tdcs_pages = tdcs_base_size / PAGE_SIZE;
> > > + /*
> > > + * Make TDH.VP.ENTER preserve RBP so that the stack unwinder
> > > + * always work around it. Query the feature.
> > > + */
> > > + if (!(tdx_info->features0 & MD_FIELD_ID_FEATURES0_NO_RBP_MOD) &&
> > > + !IS_ENABLED(CONFIG_FRAME_POINTER)) {
> >
> > I think it supposed to be IS_ENABLED(CONFIG_FRAME_POINTER). "!" shouldn't
> > be here.
>
> No, I don't think so.
>
> With CONFIG_FRAME_POINTER %rbp is being saved and restored, so there is no
> problem in case the seamcall is clobbering it.

Could you check setup_tdparams() in your tree?

Commit

[SEAM-WORKAROUND] KVM: TDX: Don't use NO_RBP_MOD for backward compatibility

in my tree comments out the setting TDX_CONTROL_FLAG_NO_RBP_MOD.

I now remember there was problem in EDK2 using RBP. So the patch is
temporary until EDK2 is fixed.

--
Kiryl Shutsemau / Kirill A. Shutemov