On Thu, 2022-01-13 at 16:26 +0000, Sean Christopherson wrote: > On Thu, Jan 13, 2022, Vitaly Kuznetsov wrote: > > Maxim Levitsky <mlevitsk@xxxxxxxxxx> writes: > > > For my nested AVIC work I would really want the APIC ID of a VCPU to be read-only > > > and be equal to vcpu_id. > > > > > > > Doesn't APIC ID have topology encoded in it? > > Yeah, APIC IDs are derived from the topology. From the SDM (this doesn't > talk about core/SMT info, but that's included as well): > > The hardware assigned APIC ID is based on system topology and includes encoding > for socket position and cluster information. > > The SDM also says: > > Some processors permit software to modify the APIC ID. However, the ability of > software to modify the APIC ID is processor model specific. > > So I _think_ we could define KVM behavior to ignore writes from the _guest_, but > the APIC_ID == vcpu_id requirement won't fly as userspace expects to be able to > stuff virtual toplogy info into the APIC ID. > That is a very good piece of information! Thanks! Best regards, Maxim Levitsky