On Thu, 2022-10-27 at 15:54 +0000, Sean Christopherson wrote: > On Thu, Oct 27, 2022, Maxim Levitsky wrote: > > On Mon, 2022-10-24 at 16:10 +0000, Sean Christopherson wrote: > > > On Mon, Oct 24, 2022, Maxim Levitsky wrote: > > > > On Thu, 2022-10-20 at 19:14 +0000, Sean Christopherson wrote: > > > > > On Thu, Oct 20, 2022, Maxim Levitsky wrote: > > > > > > + // ensure that a pending timer is serviced > > > > > > + irq_enable(); > > > > > > > > > > Jumping back to the "nop" patch, I'm reinforcing my vote to add sti_nop(). I > > > > > actually starting typing a response to say this is broken before remembering that > > > > > a nop got added to irq_enable(). > > > > > > > > OK, although, for someone that doesn't know about the interrupt shadow (I > > > > guess most of the people that will look at this code), the above won't > > > > confuse them, in fact sti_nop() might confuse someone who doesn't know about > > > > why this nop is needed. > > > > > > The difference is that sti_nop() might leave unfamiliar readers asking "why", but > > > it won't actively mislead them. And the "why" can be easily answered by a comment > > > above sti_nop() to describe its purpose. A "see also safe_halt()" with a comment > > > there would be extra helpful, as "safe halt" is the main reason the STI shadow is > > > even a thing. > > > > > > On the other hand, shoving a NOP into irq_enable() is pretty much guaranteed to > > > cause problems for readers that do know about STI shadows since there's nothing > > > in the name "irq_enable" that suggests that the helper also intentionally eats the > > > interrupt shadow, and especically because the kernel's local_irq_enable() distills > > > down to a bare STI. > > > > I still don't agree with you on this at all. I would like to hear what other > > KVM developers think about it. > > Why not just kill off irq_enable() and irq_disable() and use sti() and cli()? > Then we don't have to come to any agreement on whether or not shoving a NOP into > irq_enable() is a good idea. > > > safe_halt actually is a example for function that abstacts away the nop - > > just what I want to do. > > The difference is that "safe halt" is established terminology that specifically > means "STI immediately followed by HLT". > OK, let it be. Best regards, Maxim Levitsky