[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [RFC PATCH] xen/arm: Rebranding dom0less feature
On Fri, 7 Jul 2023, Christopher Clark wrote: > +CC openxt, Jason, Marek > > On Fri, Jul 7, 2023 at 2:06 PM Christopher Clark > <christopher.w.clark@xxxxxxxxx> wrote: > +CC members of the Hyperlaunch Working Group + participants on earlier > Hyperlaunch threads > > On Thu, Jul 6, 2023 at 2:39 PM Stefano Stabellini > <stefano.stabellini@xxxxxxx> wrote: > On Thu, 6 Jul 2023, George Dunlap wrote: > > On Wed, Jul 5, 2023 at 11:14 PM Stefano Stabellini > <stefano.stabellini@xxxxxxx> wrote: > > On Wed, 5 Jul 2023, George Dunlap wrote: > > > On Mon, Jul 3, 2023 at 9:55 PM P S <pairspace@xxxxxxxxx> > wrote: > > > > On Jul 3, 2023, at 15:45, Luca Fancellu > <luca.fancellu@xxxxxxx> wrote: > > > > > > > >> On 3 Jul 2023, at 18:48, Stefano Stabellini > <sstabellini@xxxxxxxxxx> wrote: > > > >> > > > >>> On Mon, 3 Jul 2023, Daniel P. Smith wrote: > > > >>> On 7/1/23 11:13, Luca Fancellu wrote: > > > >>>>> On 1 Jul 2023, at 08:53, Andrew Cooper > <andrew.cooper3@xxxxxxxxxx> wrote: > > > >>>>> > > > >>>>> On 30/06/2023 10:12 am, Luca Fancellu wrote: > > > >>>>>> The "dom0less" feature was intended to be the > feature where a domU > > > >>>>>> domain could be launched without the control > domain (Dom0) > > > >>>>>> intervention, however the name seems to suggest > that Dom0 cannot > > > >>>>>> be part of the configuration, while instead it's > a possible use case. > > > >>>>>> > > > >>>>>> To avoid that, rename the "dom0less" > configuration with the name > > > >>>>>> "hyperlaunch", that is less misleading. > > > >>>>>> > > > >>>>>> Signed-off-by: Luca Fancellu > <luca.fancellu@xxxxxxx> > > > >>>>>> --- > > > >>>>>> This is an RFC to get the feeling of the > community about the name > > > >>>>>> change, for now it's everything in one patch > just to see how it > > > >>>>>> will look like, if there is interest on > proceeding into it, I can > > > >>>>>> split in more commit. > > > >>>>> > > > >>>>> Have you discussed this with Dan and Chris at > all? You haven't even > > > >>>>> CC'd them. > > > >>>> > > > >>>> No, this rename idea started from a chat during > the summit, anyway Julien > > > >>>> promptly add them to the CC, because I forgot. > > > >>> > > > >>> No worries and thank you for considering and taking > the time to do this RFC. > > > >>> It is greatly appreciated that there is a strong > willingness to have dom0less > > > >>> and hyperlaunch merged. > > > >>> > > > >>>>> > > > >>>>> While there is a lot of end-goal in common > between the dom0less and > > > >>>>> hyperlaunch, and that the name dom0less is deeply > misleading, > > > >>>>> hyperlaunch is specifically not this. > > > >>>> > > > >>>> Yes Hyperlaunch is more than this, however as I > said, with this RFC I would > > > >>>> like > > > >>>> to ear opinions, @Daniel @Christopher could it be > a proper name for the > > > >>>> dom0less > > > >>>> feature? > > > >>> > > > >>> As Andy has alluded, hyperlaunch is meant to > provide a flexible means to > > > >>> handle domain construction at boot to meet a wide > range of possible use cases. > > > >>> One of those use cases is dom0less, so yes, > ultimately what dom0less does > > > >>> today will be achievable under hyperlaunch. Our > intended approach to align the > > > >>> two implementations is one that is meant to be > minimally disruptive, since > > > >>> dom0less is considered a supported (SUPPORT.md) > capability. As mentioned, we > > > >>> are greatly appreciative to the openness to adopt > the name, > > > >> > > > >> Thanks Daniel! > > > >> > > > >> > > > >>> but a big concern > > > >>> I personally have is the confusion it could cause a > general user. A blanket > > > >>> rename would end up with two documents in the docs > tree that provide two > > > >>> different explanations of hyperlaunch and two > different device tree > > > >>> definitions. So I think a more measured approach > should be considered here. > > > >>> > > > >>>> If this patch makes things more difficult for the > Hyperlunch serie, I’m ok > > > >>>> to drop it, > > > >>>> my only aim was just to find a less misleading > name for the feature. > > > >>> > > > >>> What I would like to suggest as a good first step > would be an update to the > > > >>> dom0less document. Provide a note at the beginning > that points to the > > > >>> hyperlaunch design doc as a more general approach > that will eventually subsume > > > >>> dom0less. This would provide a gentler transition > for exist users of dom0less. > > > >>> > > > >>> If it is not too much, I would also ask, please > have a look at the design for > > > >>> boot modules in the series Christopher just posted. > The design pulls from the > > > >>> work done by dom0less and expanded upon it. I major > step into merging the two > > > >>> capabilities will be to have a common set of > structures. Once those are in > > > >>> place, we can move to a common device tree > representation, and at that point > > > >>> we would be fairly close, if not at the point of a > formal merger of between > > > >>> the two. > > > >> > > > >> At the moment we have a concrete problem with > explaining dom0less and > > > >> hyperlaunch to potential new users. Using two > different names for a > > > >> similar feature on arm and x86 causes confusion. It > is hurting Xen as a > > > >> solution. Personally I already had to switch to use > the word > > > >> "hyperlaunch" for everything in my users-facing > presentations. > > > >> > > > >> At the summit, we discussed that it would be a good > idea to use a single > > > >> name to refer to both features on arm and x86. Given > that "dom0less" > > > >> causes additional issues because it makes people > think that there is no > > > >> Dom0, the suggestion was to use "hyperlaunch" to > refer to both features. > > > >> > > > >> We don't need to 100% align the two implementations > and data structures. > > > >> This is not for engineers that are going to look at > the specifications > > > >> and improve them. This is for users/customers of Xen > that are trying to > > > >> understand what the hypervisor enables them to do. > We need to be able to > > > >> show users architecture slides with the same name > and explanation on > > > >> both ARM and x86. > > > >> > > > >> I am sure that Daniel and Christopher remember, but > for the others on > > > >> this email thread, the name "hyperlaunch" was born > exactly to be that: > > > >> the one name to cover both features on ARM and x86 > even if they have a > > > >> different implementation. Appended an old email for > reference. > > > >> > > > >> Also I agree with Daniel that we need to be careful > about the two docs > > > >> under docs/. I think he is right we need to add a > paragraph explaining > > > >> the history and a pointer to the other document. > Something like: > > > >> > > > >> "Dom0less is the name that was used when initially > introducing the > > > >> feature on ARM. Then, the "dom0less" name was > retired in favor of > > > >> "hyperlaunch" to avoid confusion (a Dom0 might still > be present) and to > > > >> align with x86 (where a similar feature was called > hyperlaunch from the > > > >> start)." > > > > > > > > I’m fully ok to add a section like this pointing to > the Hyperlaunch design. > > > > > > _If_ this text is added, please include > links/references to the Hyperlaunch wiki page and Hyperlaunch > design docs. > > > > > > > @Daniel and @Christopher would it be ok for you or > the changes in the serie > > > > are going to be problematic for your future work? In > the end it’s just a mechanical > > > > rename, so I guess we just need to agree on naming > conventions. > > > > > > Please see the history of trademark litigation about > the use of symbolic names to reference > similar-but-different > > artifacts. > > > It is much easier to use the same name to refer to > entirely different objects. Historically, confusion > arises when a > > name is > > > used in similar contexts. > > > > > > There is also versioning. Could we refer to dom0less > as "Hyperlaunch Version -1"? > > > > > > How about renaming dom0less to "Hyperlaunch Lite"? > > > > > > > > > Perhaps it would be helpful if you could explain more clearly > your concerns. I take it that you want a name > which can be > > used specifically > > > to indicate the full "domB measured boot" functionality that > was Daniel and Christopher's original goal, and > that you're > > afraid that using > > > plain "Hyperlaunch" for only the "start VMs from Xen on boot" > functionality will dilute that? > > > > > > The "start VMs from Xen on boot" functionality is the *only* > thing that a big chunk of the users of this > functionality want; > > referring to > > > it as "Hyperlaunch Lite" or "Hyperlaunch -1" will undermine > the value of the functionality. > > > > > > What if we use "Measured Hyperlaunch", or "Hyperlaunch > Measured Boot" to refer to the full measured boot > functionality? > > > > I think this is the best way. > > > > > > > Or, "Hyperlaunch DT" for "Booting VMs from Xen using Device > Tree" (without the involvement of a domB), > "Hyperlaunch Boot > > Domain / > > > Hyperlaunch domB" for a more general "domB" functionality, > and "Hyperlaunch Measured Boot" for the full > functionality > > (assuming there's > > > more to this than simply having a domB involved)? > > > > > > We need an overarching name to cover the feature "start VMs > from Xen on > > boot" on both ARM and x86. From my understanding and from the > original > > emails on the subject, the name "hyperlaunch" was it. > > > > > > Sure; but think "guitar" vs "acoustic guitar" vs "electric guitar". > "Electric guitar" is new, "guitar" covers them > both, but you sometimes > > need a way to specify "acoustic". Right now target configurations > we're talking about include: > > > > 1. Booting all your domains directly from Xen using DT configurations > > 2. Booting a domB, which then executes some more complicated > programmatic configuration to launch VMs before > disappearing > > 3. Doing full measured boot on the whole system using a domB. > > > > If "Hyperlaunch" means 1-3, we not only need a way to specify that > you're talking about 3, but *also* a way to specify > that you're talking > > about 1. In the vast majority of cases for the foreseeable future > are going to be 1. Additionally, we want to make > sure that > > "Hyperlaunch" *actually* turns out to mean 1-3, and not just 1. > > > > The thing I like about "Hyperlaunch DT" is that to me it sounds > pretty cool but also is very descriptive: I haven't > talked to people > > building these systems, but it seems like saying, "The hypervisor > launches VMs based on a Device Tree passed to it at > boot" will be > > immediately understood, and stick in people's minds. > > > > So maybe informally, or in "short usage" use "Hyperlaunch", but in > documentation or reference systems, when talking > specifically about #1, > > try to use "Hyperlaunch DT", just to reinforce the idea that there's > more to Hyperlaunch that's coming down the road? > > "Hyperlaunch DT" would refer to both the x86 and ARM implementations > because they are both based on DT. > > I think it is better than "Hyperlaunch Lite" but I am not a fan of > either of these two names because "DT" and "Lite" get easily lost in > presentations and discussions. For the next few years many will talk > about HyperLaunch just to refer to what is Dom0less today. So if the > goal when we say "HyperLaunch" is to bring Measure Boot or XSM to > people's minds, I don't think this will work well. > > If we want to keep "Hyperlaunch" to mean 1-3 above, highlighting Measure > Boot or XSM, then I think we should consider using "Dom0less" for 1. > Yes, it is misleding, but at least it is unique, and a google search for > "dom0less" leads the user to the right results. > > If we do that, we should rename "Hyperlaunch" with "Dom0less" in > docs/designs/launch/hyperlaunch.rst. That's because "Hyperlaunch" is > defined as "the ability of a hypervisor to construct and start one or > more virtual machines at system launch in a specific way", which falls > under Dom0less in this discussion. > > In my opinion, it is better to have specific names for specific > features. So I would use "HyperLaunch" to mean "the ability of a > hypervisor to construct and start one or more virtual machines at system > launch in a specific way" as it is defined today. > > When we add Measure Boot or XSM or other security/safety features, I > would call them out specifically. For instance, "HyperLaunch with XSM". > It is more descriptive and highlights each feature. > > Note that at AMD we'll need HyperLaunch without an all-powerful Dom0, > probably with XSM. So I am not writing this because I don't think the > other features 2-3 are not important. They definitely are important. > > > > Thanks to all the participants in this thread for the interest in Hyperlaunch > and > the support for enabling common advanced boot functionality for Xen across > architectures. > > I'm aiming to provide here a hopefully-fairly-objective overview of the issues > being raised so that we can ensure that these are covered, and then I will > also > give my views afterwards. > > ------------------------------------------------------------ > = Naming and communication > > - Ensuring expectations are set correctly for the Hyperlaunch name > - communicating the value of it, differentiation for Xen > - avoiding sub-branding it for feature subsets, use cases, technologies > > - Retiring the term 'dom0less' > > - How to describe the "starting multiple VMs at host boot" functionality > > - How to describe further Hyperlaunch functionality beyond this > - eg. isolation properties and relevance to critical systems > - eg. running without a classic dom0 > > - How Hyperlaunch relates to other boot functionalities and technologies, > including: > - architecture-specific aspects and architecture-neutral aspects > - Device Tree > - boot domain > - control domain, hardware domain, dom0 > - domain builder > - system measurement > - XSM > - DRTM > - etc. > > > = Migration > > - Providing a forward path for existing users of dom0less functionality > across the technical changes for Hyperlaunch cross-architecture implementation > - document compatibility > - support a "dom0less mode" with existing Device Tree structure > - documentation updates to be paired with progress on code implementation > > > = Community resourcing > > - Supporting code review and merge of Hyperlaunch changes into Xen > - transitioning existing Arm logic into common, including FDT > > - Provision of accurate, consistent documentation materials to support > effective communication to existing and prospective users, developers and > other > stakeholders > - Ensuring that the document structure supports ongoing maintenance: > - Multiple use cases, structure docs accordingly: eg. > - use case: static partitioning, critical + non-critical VMs > - use case: measured launch with a boot domain > - use case: fast VM start for embedded systems > - Architecture of Hyperlaunch, relevance to other hypervisors > - nested systems > > - Design, review and agreement for common cross-architecture and > arch-extensible interfaces, including: > - common boot data structures > - Device Tree structure > - hypfs entries > - introspection to determine hyperlaunched system status > > - Development of test cases > > - CI of Hyperlaunch interfaces, to ensure that it stays working > > ------------------------------------------------------------ > > Views arrived at in discussion with Rich and Daniel, and after reading the > thread contributions, follow this point. > > "Hyperlaunch" is to be the common name across architectures for a flexible, > configurable boot system for coordinating the launch of multiple VMs by the > hypervisor, with a common implementation, pooling resources and development > risk across the Xen community. The interfaces are core to it. > > From the Hyperlaunch design document (reviewed + committed to the tree): > > "The design enables seamless transition for existing systems that require a > dom0, and provides a new general capability to build and > launch alternative configurations of virtual machines, including support for > static partitioning and accelerated start of VMs during > host boot, while adhering to the principles of least privilege. It > incorporates the existing dom0less functionality, extended to fold > in the new developments from the Hyperlaunch project, with support for both > x86 and Arm platform architectures, building upon and > replacing the earlier 'late hardware domain' feature for disaggregation of > dom0. > > Hyperlaunch is designed to be flexible and reusable across multiple use > cases, and our aim is to ensure that it is capable, widely > exercised, comprehensively tested, and well understood by the Xen community." > > https://xenbits.xen.org/docs/4.17-testing/designs/launch/hyperlaunch.html > > ie. Hyperlaunch was created to move away from point solutions that hard-code > specific launch configurations, isolation properties and threat models. It > isn't just about starting domains -- it is about enabling the construction of > complex use cases runtimes for Xen. It is the result of iterative design > starting with the disaggregation for the late hardware domain, through > dom0less development and then with the comprehensive hyperlaunch design and > implementation that builds upon them both. > > The current interest and investment in Hyperlaunch is driven by its relevance > to Safety Critical systems due to the isolation properties and improvement > in the ability to certify the software -- this is closely related to but > slightly different from starting multiple VMs at host boot. > > To encourage commonality and allow for future development, we should not > use architecture-specific or vendor-specific name variations, and also avoid > technology-specific name variations (eg. Device Tree or "DT"). > > Instead, the use case configurations should themselves be describable. Thanks Christopher, Daniel and all! So if I understand correctly, you are in favor if renaming Dom0less to Hyperlaunch throughout the Xen codebase? And we need a clarification of the docs/, especially docs/features/dom0less.pandoc?
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |