On Fri, 2022-01-14 at 10:58 +0800, Chao Gao wrote: > On Thu, Jan 13, 2022 at 10:19:21PM +0000, Sean Christopherson wrote: > > On Tue, Jan 11, 2022, Maxim Levitsky wrote: > > > Both Intel and AMD's PRM also state that changing APIC ID is implementation > > > dependent. > > > > > > I vote to forbid changing apic id, at least in the case any APIC acceleration > > > is used, be that APICv or AVIC. > > > > That has my vote as well. For IPIv in particular there's not much concern with > > backwards compability, i.e. we can tie the behavior to enable_ipiv. Great! > > Hi Sean and Levitsky, > > Let's align on the implementation. > > To disable changes for xAPIC ID when IPIv/AVIC is enabled: > > 1. introduce a variable (forbid_apicid_change) for this behavior in kvm.ko > and export it so that kvm-intel, kvm-amd can set it when IPIv/AVIC is > enabled. To reduce complexity, this variable is a module level setting. > > 2. when guest attempts to change xAPIC ID but it is forbidden, KVM prints > a warning on host and injects a #GP to guest. > > 3. remove AVIC code that deals with changes to xAPIC ID. > I have a patch for both, I attached them. I haven't tested either of these patches that much other than a smoke test, but I did test all of the guests I have and none broke in regard to boot. I will send those patches as part of larger patch series that implements nesting for AVIC. I hope to do this next week. Best regards, Maxim Levitsky