Patch "KVM: VMX: Convert vcpu_vmx.exit_reason to a union" has been added to the 5.10-stable tree
A message that is not in the archive (sent off-list or not yet received): [email protected]
+Paolo
Quoted 7 lines · Sasha Levin
This is a note to let you know that I've just added the patch titled
KVM: VMX: Convert vcpu_vmx.exit_reason to a union
to the 5.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
Quoted 6 lines
The filename of the patch is:
kvm-vmx-convert-vcpu_vmx.exit_reason-to-a-union.patch
and it can be found in the queue-5.10 subdirectory.If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
I'm not sure we want this going into stable kernels, even for 5.10 and 5.11. I assume it got pulled in to resolve a conflict with commit 04c4f2ee3f68 ("KVM:
VMX: Don't use vcpu->run->internal.ndata as an array index"), but that's should be trivial to resolve since it's just a collision with surrounding code.
Maybe we'll end up with a more painful conflict in the future that would be best solved by grabbing this refactoring, but I don't think we're there yet.
Quoted 34 lines
commit
1499b54db7d9e7e5f5014307e8391e3ad7986f1fAuthor: Sean Christopherson <[email protected]> Date: Fri Nov 6 17:03:12 2020 +0800KVM: VMX: Convert vcpu_vmx.exit_reason to a union
[ Upstream commit
8e53324021645f820a01bf8aa745711c802c8542]Convert vcpu_vmx.exit_reason from a u32 to a union (of size u32). The full
VM_EXIT_REASONfield is comprised of a 16-bit basic exit reason in bits 15:0, and single-bit modifiers in bits 31:16.Historically, KVM has only had to worry about handling the "failed VM-Entry" modifier, which could only be set in very specific flows and required dedicated handling. I.e. manually stripping the
FAILED_VMENTRYbit was a somewhat viable approach. But even with only a single bit to worry about, KVM has had several bugs related to comparing a basic exit reason against the full exit reason store invcpu_vmx.Upcoming Intel features, e.g. SGX, will add new modifier bits that can be set on more or less any VM-Exit, as opposed to the significantly more restricted
FAILED_VMENTRY, i.e. correctly handling everything in one-off flows isn't scalable. Tracking exit reason in a union forces code to explicitly choose between consuming the full exit reason and the basic exit, and is a convenient way to document and access the modifiers.No functional change intended.
Cc Xiaoyao Li <[email protected]>Signed-off-by Sean Christopherson <[email protected]>Signed-off-by Chenyi Qiang <[email protected]>Message-Id: <[email protected]>
Signed-off-by Paolo Bonzini <[email protected]>Signed-off-by Sasha Levin <[email protected]>
Sasha Levin
maintainerQuoted 14 lines · Sean Christopherson
+Paolo
Quoted 11 lines · Sasha Levin
This is a note to let you know that I've just added the patch titled
KVM: VMX: Convert vcpu_vmx.exit_reason to a union
to the 5.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summaryThe filename of the patch is:
kvm-vmx-convert-vcpu_vmx.exit_reason-to-a-union.patch
and it can be found in the queue-5.10 subdirectory.
Quoted 6 lines
Quoted 2 lines
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
I'm not sure we want this going into stable kernels, even for 5.10 and 5.11. I assume it got pulled in to resolve a conflict with commit
04c4f2ee3f68("KVM:
VMX: Don't usevcpu->run->internal.ndataas an array index"), but that's should
Right.
Quoted 1 line
be trivial to resolve since it's just a collision with surrounding code.
That's probably right too.
Quoted 2 lines
Maybe we'll end up with a more painful conflict in the future that would be best solved by grabbing this refactoring, but I don't think we're there yet.
This is the tricky part: when we start having these conflicts it's usually too late to refactor, no one cares, and backports just don't happen.
I'd actually point to the file shuffling (commits like a821bab2d1ee ("KVM: VMX: Move VMX specific files to a "vmx" subdirectory")) you did a few years ago in arch/x86/kvm/ as an example to why we can't wait: those changes made a lot of sense upstream, but for stable kernels it meant that patches were now trying to touch the wrong files and would often fail or do the wrong thing.
On hindsight, we probably should have moved files around in stable trees as well to match what upstream had, but at this point it's too late to go back and fix that, and we're stuck manually editing paths for the lifetime of most of the LTS trees.
Signature · 2 lines
Thanks, Sasha
Quoted 15 lines · Sasha Levin
Quoted 2 lines · Sean Christopherson
Maybe we'll end up with a more painful conflict in the future that would be best solved by grabbing this refactoring, but I don't think we're there yet.
This is the tricky part: when we start having these conflicts it's usually too late to refactor, no one cares, and backports just don't happen.
I'd actually point to the file shuffling (commits like
a821bab2d1ee("KVM: VMX: Move VMX specific files to a "vmx" subdirectory")) you did a few years ago inarch/x86/kvm/as an example to why we can't wait: those changes made a lot of sense upstream, but for stable kernels it meant that patches were now trying to touch the wrong files and would often fail or do the wrong thing.
Quoted 4 lines
On hindsight, we probably should have moved files around in stable trees as well to match what upstream had, but at this point it's too late to go back and fix that, and we're stuck manually editing paths for the lifetime of most of the LTS trees.
And I guess there's also the argument that inducing even a handful of manual backports is more risky overall than taking this one "unnecessary" patch.
Objection withdrawn, I don't have a strong opinion either way :-)