Re: [Xen-devel] [PATCH RFC 00/15] dom0less step1: boot multiple domains from device tree
On Thu, 14 Jun 2018, Edgar E. Iglesias wrote: > On Wed, Jun 13, 2018 at 03:15:09PM -0700, Stefano Stabellini wrote: > > Hi all, > > > > This is first step toward "dom0less" as discussed in the various > > certifications related threads and discussions. > > > > The goal of this series is to enable Xen to boot multiple domains in > > parallel, in addition to dom0, out of information found on device tree. > > > > The device tree based boot protocol is extended to carry information > > about DomUs. Based on that information, Xen creates and starts one or > > more DomUs. DomUs created this way don't have access to xenstore, as > > xenstore is not started yet. This is actually OK, because this is meant > > for mission critical applications that typically only access directly > > assigned devices. They cannot tolerate interference or increased IRQ > > latency due to PV protocols. Device assignment is not actually covered > > by this series, it will be added later. > > > > DomUs can print to the Xen serial using the CONSOLEIO hypercalls. A > > virtual PL011 is also emulated for them so that they can use their > > regular PL011 driver. This allows unmodified guests to run as Xen on ARM > > guests -- no Xen support needed at all. Console input also comes from > > the Xen serial: the Ctrl-AAA switching mechanism is extended to switch > > among domUs, dom0, and Xen. > > Hi Stefano, > > I think this looks very promising! > > A question, do you have any thoughts on how we in the long run could > try to keep xl configs somewhat on par with the format here? > > Or would the device-tree naming of options eventually have to diverge. > > Eventually we'll need support for describing arbitrary memory maps and > device passthrough via device-tree for these domUs. I think it makes sense to try to keep the two set of options somewhat similar. I am keen on minimizing meaningless differences between the two. Especially arbitrary memory maps and device passthrough configurations, that are complex options -- it is worth trying to keep them the same. However, in general, I don't think we can promise to keep them exactly identical. There are a lot of xl config options that won't be supported as part of device tree booting. And when they are supported, there might be additional parameters that are ignored. docs/misc/arm/device-tree/booting.txt will be the official doc for device tree booting options, while docs/man/xl.cfg.pod.5 will be the official doc for xl config file options. ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH RFC 00/15] dom0less step1: boot multiple domains from device tree
On Wed, Jun 13, 2018 at 03:15:09PM -0700, Stefano Stabellini wrote: > Hi all, > > This is first step toward "dom0less" as discussed in the various > certifications related threads and discussions. > > The goal of this series is to enable Xen to boot multiple domains in > parallel, in addition to dom0, out of information found on device tree. > > The device tree based boot protocol is extended to carry information > about DomUs. Based on that information, Xen creates and starts one or > more DomUs. DomUs created this way don't have access to xenstore, as > xenstore is not started yet. This is actually OK, because this is meant > for mission critical applications that typically only access directly > assigned devices. They cannot tolerate interference or increased IRQ > latency due to PV protocols. Device assignment is not actually covered > by this series, it will be added later. > > DomUs can print to the Xen serial using the CONSOLEIO hypercalls. A > virtual PL011 is also emulated for them so that they can use their > regular PL011 driver. This allows unmodified guests to run as Xen on ARM > guests -- no Xen support needed at all. Console input also comes from > the Xen serial: the Ctrl-AAA switching mechanism is extended to switch > among domUs, dom0, and Xen. Hi Stefano, I think this looks very promising! A question, do you have any thoughts on how we in the long run could try to keep xl configs somewhat on par with the format here? Or would the device-tree naming of options eventually have to diverge. Eventually we'll need support for describing arbitrary memory maps and device passthrough via device-tree for these domUs. Thanks & Best regards, Edgar > > Cheers, > > Stefano > > > Stefano Stabellini (15): > xen: allow console_io hypercalls from DomUs on ARM > xen/arm: move a few guest related #defines to public/arch-arm.h > xen/arm: extend device tree based multiboot protocol > xen/arm: do not pass dt_host to make_memory_node and > make_hypervisor_node > xen/arm: rename acpi_make_chosen_node to make_chosen_node > xen/arm: add BOOTMOD_DOMU_KERNEL/RAMDISK > xen/arm: increase MAX_MODULES > xen/arm: probe domU kernels and initrds > xen/arm: refactor construct_dom0 > xen/arm: introduce construct_domU > xen/arm: generate a simple device tree for domUs > xen/arm: generate vpl011 node on device tree for domU > xen/arm: Allow vpl011 to be used by DomU > xen/arm: call construct_domU from start_xen and start DomU VMs > xen: support console_switching between Dom0 and DomUs on ARM > > docs/misc/arm/device-tree/booting.txt | 102 +++ > tools/libxl/libxl_arm.c | 26 -- > xen/arch/arm/bootfdt.c| 4 + > xen/arch/arm/domain_build.c | 533 > +++--- > xen/arch/arm/kernel.c | 54 > xen/arch/arm/kernel.h | 2 + > xen/arch/arm/setup.c | 52 +++- > xen/arch/arm/vpl011.c | 98 +-- > xen/common/device_tree.c | 6 +- > xen/drivers/char/console.c| 51 +++- > xen/include/asm-arm/setup.h | 10 +- > xen/include/asm-arm/vpl011.h | 2 + > xen/include/asm-x86/setup.h | 2 + > xen/include/public/arch-arm.h | 26 ++ > xen/include/xen/device_tree.h | 2 +- > 15 files changed, 789 insertions(+), 181 deletions(-) > > ___ > Xen-devel mailing list > Xen-devel@lists.xenproject.org > https://lists.xenproject.org/mailman/listinfo/xen-devel ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
[Xen-devel] [PATCH RFC 00/15] dom0less step1: boot multiple domains from device tree
Hi all, This is first step toward "dom0less" as discussed in the various certifications related threads and discussions. The goal of this series is to enable Xen to boot multiple domains in parallel, in addition to dom0, out of information found on device tree. The device tree based boot protocol is extended to carry information about DomUs. Based on that information, Xen creates and starts one or more DomUs. DomUs created this way don't have access to xenstore, as xenstore is not started yet. This is actually OK, because this is meant for mission critical applications that typically only access directly assigned devices. They cannot tolerate interference or increased IRQ latency due to PV protocols. Device assignment is not actually covered by this series, it will be added later. DomUs can print to the Xen serial using the CONSOLEIO hypercalls. A virtual PL011 is also emulated for them so that they can use their regular PL011 driver. This allows unmodified guests to run as Xen on ARM guests -- no Xen support needed at all. Console input also comes from the Xen serial: the Ctrl-AAA switching mechanism is extended to switch among domUs, dom0, and Xen. Cheers, Stefano Stefano Stabellini (15): xen: allow console_io hypercalls from DomUs on ARM xen/arm: move a few guest related #defines to public/arch-arm.h xen/arm: extend device tree based multiboot protocol xen/arm: do not pass dt_host to make_memory_node and make_hypervisor_node xen/arm: rename acpi_make_chosen_node to make_chosen_node xen/arm: add BOOTMOD_DOMU_KERNEL/RAMDISK xen/arm: increase MAX_MODULES xen/arm: probe domU kernels and initrds xen/arm: refactor construct_dom0 xen/arm: introduce construct_domU xen/arm: generate a simple device tree for domUs xen/arm: generate vpl011 node on device tree for domU xen/arm: Allow vpl011 to be used by DomU xen/arm: call construct_domU from start_xen and start DomU VMs xen: support console_switching between Dom0 and DomUs on ARM docs/misc/arm/device-tree/booting.txt | 102 +++ tools/libxl/libxl_arm.c | 26 -- xen/arch/arm/bootfdt.c| 4 + xen/arch/arm/domain_build.c | 533 +++--- xen/arch/arm/kernel.c | 54 xen/arch/arm/kernel.h | 2 + xen/arch/arm/setup.c | 52 +++- xen/arch/arm/vpl011.c | 98 +-- xen/common/device_tree.c | 6 +- xen/drivers/char/console.c| 51 +++- xen/include/asm-arm/setup.h | 10 +- xen/include/asm-arm/vpl011.h | 2 + xen/include/asm-x86/setup.h | 2 + xen/include/public/arch-arm.h | 26 ++ xen/include/xen/device_tree.h | 2 +- 15 files changed, 789 insertions(+), 181 deletions(-) ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel