* Addition of a staging subdirectory to virt/ for in-development features
@ 2021-10-20 22:28 Amy Parker
2021-10-20 23:11 ` Sean Christopherson
0 siblings, 1 reply; 4+ messages in thread
From: Amy Parker @ 2021-10-20 22:28 UTC (permalink / raw)
To: kvm, pbonzini, seanjc
Hello all.
Has the idea of having a staging subdirectory for KVM been proposed
before? It could become a buffer place for KVM features currently in
development/not production ready, but that should be able to be
conditionally included into the kernel. With a staging directory,
these features would be divorced from KVM mainline, but would be able
to be rolled out promptly to users while they are being refined.
Any thoughts on this?
- amyip
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: Addition of a staging subdirectory to virt/ for in-development features 2021-10-20 22:28 Addition of a staging subdirectory to virt/ for in-development features Amy Parker @ 2021-10-20 23:11 ` Sean Christopherson 2021-10-21 2:24 ` Amy Parker 0 siblings, 1 reply; 4+ messages in thread From: Sean Christopherson @ 2021-10-20 23:11 UTC (permalink / raw) To: Amy Parker; +Cc: kvm, pbonzini On Wed, Oct 20, 2021, Amy Parker wrote: > Hello all. > > Has the idea of having a staging subdirectory for KVM been proposed before? Not that I know of. > It could become a buffer place for KVM features currently in development/not > production ready, but that should be able to be conditionally included into > the kernel. With a staging directory, these features would be divorced from > KVM mainline, but would be able to be rolled out promptly to users while they > are being refined. Can you give an example? I'm struggling to envision a feature that is both large enough to warrant "staging", yet isolated enough to actually be "divorced from KVM mainline". One of the rules for staging/drivers is that the drivers are standalone and don't require changes to the kernel proper outside of docs, firmware, and perhaps exports. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Addition of a staging subdirectory to virt/ for in-development features 2021-10-20 23:11 ` Sean Christopherson @ 2021-10-21 2:24 ` Amy Parker 2021-10-21 14:31 ` Paolo Bonzini 0 siblings, 1 reply; 4+ messages in thread From: Amy Parker @ 2021-10-21 2:24 UTC (permalink / raw) To: Sean Christopherson; +Cc: kvm, pbonzini On Wed, Oct 20, 2021 at 4:11 PM Sean Christopherson <seanjc@google.com> wrote: > > On Wed, Oct 20, 2021, Amy Parker wrote: > > Hello all. > > > > Has the idea of having a staging subdirectory for KVM been proposed before? > > Not that I know of. Alright, thank you for clarification. > > > It could become a buffer place for KVM features currently in development/not > > production ready, but that should be able to be conditionally included into > > the kernel. With a staging directory, these features would be divorced from > > KVM mainline, but would be able to be rolled out promptly to users while they > > are being refined. > > Can you give an example? > > I'm struggling to envision a feature that is both large enough to warrant > "staging", yet isolated enough to actually be "divorced from KVM mainline". > One of the rules for staging/drivers is that the drivers are standalone and don't > require changes to the kernel proper outside of docs, firmware, and perhaps > exports. I can think of three categories of implementations: 1. Supporting new hardware virtualization technologies, which may take a while to develop but should still be available to users for testing and non-production purposes while being refined, such as on new architectures or by new manufacturers. It's entirely possible that there will be new competitors in the x86_64 space soon, especially with the increasing popularity of the concept of 128-bit computing architectures. 2. Experimental algorithms which optimize current functions; these may not be immediately production-ready, but should be available to the end user in something like the staging folder. 3. Other future virtualization technologies, should they ever be added, such as cross-binary architecture and syscall compatibility. - amyip ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Addition of a staging subdirectory to virt/ for in-development features 2021-10-21 2:24 ` Amy Parker @ 2021-10-21 14:31 ` Paolo Bonzini 0 siblings, 0 replies; 4+ messages in thread From: Paolo Bonzini @ 2021-10-21 14:31 UTC (permalink / raw) To: Amy Parker, Sean Christopherson; +Cc: kvm Hi Amy, I don't think any of these justify a different approach than what we are doing already. On 21/10/21 04:24, Amy Parker wrote: > 1. Supporting new hardware virtualization technologies, which may take > a while to develop but should still be available to users for testing > and non-production purposes while being refined, such as on new > architectures or by new manufacturers. It's entirely possible that > there will be new competitors in the x86_64 space soon, especially > with the increasing popularity of the concept of 128-bit computing > architectures. The issue here would be, first and foremost, whether the architectures would be supported by Linux. As KVM RISC-V is going to be included in Linux 5.16, I'm not sure what other architectures would be supported by Linux but only have experimental status in KVM. In particular, the recent disagreements about including KVM for RISC-V in some kind of "staging" code arose only after the architectural specification had reached considerable stability, and so had the KVM code. > 2. Experimental algorithms which optimize current functions; these may > not be immediately production-ready, but should be available to the > end user in something like the staging folder. These are also not suitable for a separate staging subtree. Almost always such optimizations require changes to existing code, in such a way that the existing code needs to be aware of what the more experimental code is doing. It is okay to include experimental algorithms and optimizations before they have reached feature parity with what they're supposed to replace. See for example the "TDP MMU" code that has been contributed over the past year and has only reached feature parity in 5.15. > 3. Other future virtualization technologies, should they ever be > added, such as cross-binary architecture and syscall compatibility. This is the same as the previous point: we have some code in Linux that is not used widely (KVM for s390 has some microcode testing functionality that is only used internally at IBM, and the Xen emulation layer is only used by Amazon as far as I know), but it's okay to include it if it's maintainable, reasonably mature, and covered by test cases. However, contributions to KVM should follow the same quality standards as the rest of Linux. Thanks, Paolo ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-10-21 14:31 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-10-20 22:28 Addition of a staging subdirectory to virt/ for in-development features Amy Parker 2021-10-20 23:11 ` Sean Christopherson 2021-10-21 2:24 ` Amy Parker 2021-10-21 14:31 ` Paolo Bonzini
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox