Re: [PATCH v2 07/18] x86/reboot: Disable virtualization during reboot iff callback is registered

From: Huang, Kai
Date: Mon Mar 13 2023 - 20:51:01 EST


On Mon, 2023-03-13 at 11:40 -0700, Sean Christopherson wrote:
> On Mon, Mar 13, 2023, Huang, Kai wrote:
> > On Fri, 2023-03-10 at 13:42 -0800, Sean Christopherson wrote:
> > > Attempt to disable virtualization during an emergency reboot if and only
> > > if there is a registered virt callback, i.e. iff a hypervisor (KVM) is
> > > active. If there's no active hypervisor, then the CPU can't be operating
> > > with VMX or SVM enabled (barring an egregious bug).
> >
> > IIUC, this patch is the final one that you want to achieve how the "disable
> > virtualization" callback should work in the non-KVM core kernel (the rest
> > patches are related to moving VMXOFF code to KVM as the core-kernel now just
> > calls the callback, etc). �
> >
> > There are middle step patches (2-7) to eventually help to get to this point.
> > But to be honest, personally, I am not sure whether those patches are necessary,
> > i.e. to me they actually cost more time to review since I have to think whether
> > such intermediate status is reasonable or not. I am wondering whether we can
> > just merge those patches together as single one, so it's easy to see what is the
> > final goal to achieve?
>
> I agree that the fine granularity makes it difficult to see the final form, but
> from a bisection perspective I really, really want each change to be isolated as
> much as possible. This code is extremely difficult, if not practically impossible,
> to exhaustively test due to multiple points of entry from "this should never happen!"
> types of flows. If any of these changes breaks someones deployment, I want to
> make it as easy as possible for that someone to determine exactly what broke.

Yeah sure.

Yes in general I agree we should make bisection easy to pinpoint the exact code
which breaks something, but I think over-splitting is also unnecessary
especially when code change is small ;)