[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH 0/5] plat/kvm: x86: Add support for initramdisks
Hi Felipe, thanks for having a look. On 08.05.19, 09:41, "Felipe Huici" <Felipe.Huici@xxxxxxxxx> wrote: Hi Simon, Thanks for the patch, two comments: * Running this with an empty initrd file (e.g., touch file.txt) results in the following crash: [...] [ 0.000000] Info: [libukboot] boot.c @ 192 : Initialize memory allocator... [ 0.000000] Info: [libukallocbbuddy] bbuddy.c @ 470 : Initialize binary buddy allocator 122000 [ 0.000000] ERR: [libukallocbbuddy] bbuddy.c @ 362 : 122000: Failed to add memory region 124000-123000: Invalid range after applying page alignments [ 0.000000] Info: [libukboot] boot.c @ 246 : Initialize IRQ subsystem... [ 0.000000] Info: [libukboot] boot.c @ 253 : Initialize platform time... [ 0.000000] Warn: [libukallocbbuddy] bbuddy.c @ 278 : 122000: Cannot handle palloc request of order 0: Out of memory [ 0.000000] CRIT: [libkvmplat] time.c @ 78 : Failed to register timer interrupt handler [ 0.000000] Info: [libkvmplat] shutdown.c @ 35 : Unikraft halted Oh sorry. I know how to fix this. It is a corner case having an initrd with 0 bytes which is not handled properly yet. I will provide a v2. * I was wondering whether it wouldn't make sense to provide a cleaner "API" to these patches, something like a get_initrd function that would loop through the different memory region types and retrieve the initrd, should there be one. Otherwise we'll end up writing (and re-writing) this type of code in multiple libraries and applications. Perhaps this would be a separate patch? I was thinking about this also already. Let me try to provide a marco~ish helper in uk/memory.h. I will provide it as another patch for the series. Thanks, -- Felipe Thanks, Simon ============================================================ Dr. Felipe Huici Chief Researcher, Systems and Machine Learning Group NEC Laboratories Europe GmbH Kurfuerstenanlage 36, D-69115 Heidelberg Tel. +49 (0)6221 4342-241 Fax: +49 (0)6221 4342-155 e-mail: felipe.huici@xxxxxxxxx ============================================================ Registered at Amtsgericht Mannheim, Germany, HRB728558 On 10.04.19, 18:26, "Simon Kuenzer" <simon.kuenzer@xxxxxxxxx> wrote: Introduces support to locate a loaded initramdisk. For this purpose, we introduce required platform API definitons. The idea is that an Unikraft application finds an initramdisk by querying the memory regions. This is similar to the detection of memory regions that can be used for the heap. This series inplements initrd support for KVM on x86. Additionally, this series is reorganizing KVMs way to store detected platform configuration during boot: Instead of having individual platform-global variables (e.g., _libkvmplat_heap_start, _libkvmplat_stack_top, _libkvmplat_mem_end), we introduce a single platform-global configuration struct. This is done for readability reasons. Simon Kuenzer (5): include/essentials: Introduce range test macros include/plat: Add flags for initramdisk memory regions plat/kvm: Introduce platform configuration struct plat/kvm: Add initrd fields to configuration struct plat/kvm: x86: Retrieve initrd location from Multiboot include/uk/essentials.h | 20 ++++ include/uk/plat/memory.h | 14 ++- plat/common/arm/pl011.c | 15 +-- plat/common/arm/time.c | 13 ++- plat/kvm/arm/setup.c | 67 +++++++++----- plat/kvm/include/kvm/config.h | 66 +++++++++++++ plat/kvm/memory.c | 49 +++++++--- plat/kvm/x86/setup.c | 169 +++++++++++++++++++++++++++++++--- 8 files changed, 346 insertions(+), 67 deletions(-) create mode 100644 plat/kvm/include/kvm/config.h -- 2.21.0 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |