On Fri, Oct 18, 2024, Bernhard Kauer wrote: > It used a static key to avoid loading the lapic pointer from > the vcpu->arch structure. However, in the common case the load > is from a hot cacheline and the CPU should be able to perfectly > predict it. Thus there is no upside of this premature optimization. Do you happen to have performance numbers? I've been itching for an excuse to excise this code for a few years now, the only reason I haven't ripped it out is because I didn't want to do so without numbers to back up my claim that it's a premature optimization. In other words, I agree with your analysis, but I don't want to yank out the code without at least _some_ numbers to back up the claim, because then we're essentially committing the same crime of optimizing without measuring. > The downside is that code patching including an IPI to all CPUs > is required whenever the first VM without an lapic is created or > the last is destroyed. In practice, this almost never happens though. Do you have a use case for creating VMs without in-kernel local APICs?