|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] Some considerations of ARM Unikraft supports
Hi Wei, hi Julien, thanks a lot for discussing this already, I put my comments inline. On 05.02.2018 08:22, Wei Chen wrote: Hi Julien, Thanks for your comments! Replies inline.-----Original Message----- From: Julien Grall [mailto:julien.grall@xxxxxxxxxx] Sent: 2018年2月2日 18:43 To: Wei Chen <Wei.Chen@xxxxxxx>; Simon Kuenzer <simon.kuenzer@xxxxxxxxx> Cc: Felipe Huici <Felipe.Huici@xxxxxxxxx>; Kaly Xin <Kaly.Xin@xxxxxxx>; Shijie Huang <Shijie.Huang@xxxxxxx>; Florian Schmidt <Florian.Schmidt@xxxxxxxxx>; Costin Lupu <costin.lup@xxxxxxxxx>; nd <nd@xxxxxxx>; minios- devel@xxxxxxxxxxxxx Subject: Re: [Minios-devel] Some considerations of ARM Unikraft supports Hi, On 02/02/18 09:10, Wei Chen wrote:This week I am trying to boot Unikraft on ARM64/KVM platform. In thisprogress I havegot some considerations and written a simple proposal: My first target is to enable Unikraft on ARM64+Kvm, so this proposal wouldfocus on ARM64+Kvm.But the goal of ARM support is to enable Unikraft on ARM32/ARM64 basedhypervisors (ARM32/64 Kvm,ARM64 Xen and etc). So we have to consider to keep current multi-archframework and reuse common What is this vendor variable about? Is it something that applies to a specific silicon? Is it required to add subfolders for it? If some C codes are very similar between arm32 and arm64, I think this code would be very similar between arm and x86 too. We can place these codes in Unikraft/lib. Above 2 options would affect the common framework, so I still want to get some Comments from Simon. I welcome this discussion because one of the exercises of Unikraft's 0.2 releases is to figure out how to do the right split. I am okay with changing the structure of the arch folder substructure if we can foresee already that it will make sense. In such a case, I would also like to adopt the same principle to the x86 architecture folder. The idea of architecture libraries is that they contain code which is only special to the CPU but the same to all of the target platforms (xen, kvm, linux). We were originally expecting that this is mostly assembly code but we might be wrong with our original assumption. So, if you foresee any common C code for 32 and 64bit ARM that would be duplicated otherwise, we should use a single arm folder instead.
Is it okay for you to wait with the driver folder a bit? I am currently working on PCI for x86 KVM and I figured that Unikraft need an mechanism to select drivers for devices (and maybe buses) individually for each platform. But drivers are still something that depend on the platform. For instance Xen could reuse the same PCI drivers with pcifront, linux with VFIO, but a third platform might not support PCI at all. Because of this, I am currently considering to introduce an folder in plat: e.g., plat/common/drivers/pci/virtio-net. What do you guys think?
Sorry for my stupid question: Would this hardcode the guest device configuration that you would need to set with KVM? I mean, how are network devices (or other) are handover to the guest? If yes, I am concerned that Unikraft is getting difficult to use on ARM. I would rather prefer to provide a configuration option where users could disable that the image scans the device tree and expects devices at hardcoded places. At least from Xen PoV, the memory layout is not part of the ABI and a guest should rely on the DT for getting the correct addresses.I understand your concern. It's not a part of the ABI. So the addresses can be changed for different boards. I think we must do a tradeoff between flexibility and deploy density (boot time and footprint) If this makes sense for you: I prefer having the most flexible as default and provide configuration options with Config.uk to switch them off individually. I think Unikraft should handover such tradeoff question to Unikernel builders.
This is fine for the first version. The other platforms also just support a single CPU for now.
Please contact Costin what is required from the Unikraft's scheduler API. I CC'ed him.
Good. 6. Implement PSCI interface to support machine shutdown.FWIW, system_off only exist from PSCI 0.2 and onwards.It seem the psci-0.2 is the default PSCI version of mach-virt with KVM. After we agreed how Unikraft should include drivers we can start with porting them. Is KVM on ARM using virtio-net, too? Is there a virtual PCI bus attached? There are no emulation provided on Xen, so you would need PV drivers to get access to the network/block. This is fine ;-). Yes, I have the same opinion with you 😊Cheers, -- Julien Grall Thanks, Simon _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |