On Fri, Apr 19, 2024 at 04:31:54PM +0800, Binbin Wu <binbin.wu@xxxxxxxxxxxxxxx> wrote: > > > On 2/26/2024 4:26 PM, isaku.yamahata@xxxxxxxxx wrote: > > From: Isaku Yamahata <isaku.yamahata@xxxxxxxxx> > > > > The TDX module API doesn't provide API for VMM to inject INIT IPI and SIPI. > > Instead it defines the different protocols to boot application processors. > > Ignore INIT and SIPI events for the TDX guest. > > > > There are two options. 1) (silently) ignore INIT/SIPI request or 2) return > > error to guest TDs somehow. Given that TDX guest is paravirtualized to > > boot AP, the option 1 is chosen for simplicity. > > > > Signed-off-by: Isaku Yamahata <isaku.yamahata@xxxxxxxxx> > > --- > [...] > > + > > +static void vt_vcpu_deliver_init(struct kvm_vcpu *vcpu) > > +{ > > + if (is_td_vcpu(vcpu)) { > > + /* TDX doesn't support INIT. Ignore INIT event */ > > + vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE; > Why change the mp_state to KVM_MP_STATE_RUNNABLE here? > > And I am not sure whether we can say the INIT event is ignored since > mp_state could be modified. We should drop the line. Now it's not necessary and KVM_TDX_INIT_VCPU change it. -- Isaku Yamahata <isaku.yamahata@xxxxxxxxx>