|
[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 |