|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH v2 2/8] lib/ukboot: Simplify heap initialization
Hi Simon,
This patch looks good.
Reviewed-by: Felipe Huici <felipe.huici@xxxxxxxxx>
-- Felipe
============================================================
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 09.05.19, 16:27, "Simon Kuenzer" <simon.kuenzer@xxxxxxxxx> wrote:
Use the ukplat_memregion_foreach() macro to simplify initialization of
the memory allocator.
Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
---
lib/ukboot/boot.c | 58 ++++++++++++++---------------------------------
1 file changed, 17 insertions(+), 41 deletions(-)
diff --git a/lib/ukboot/boot.c b/lib/ukboot/boot.c
index 0b68ec67..4dcc0afb 100644
--- a/lib/ukboot/boot.c
+++ b/lib/ukboot/boot.c
@@ -163,7 +163,6 @@ void ukplat_entry_argp(char *arg0, char *argb, __sz
argb_len)
/* defined in <uk/plat.h> */
void ukplat_entry(int argc, char *argv[])
{
- int i;
const uk_ctor_func_t *cfn;
struct thread_main_arg tma;
#if CONFIG_LIBUKALLOC
@@ -188,50 +187,27 @@ void ukplat_entry(int argc, char *argv[])
/* initialize memory allocator
* FIXME: ukallocbbuddy is hard-coded for now
*/
- if (ukplat_memregion_count() > 0) {
- uk_pr_info("Initialize memory allocator...\n");
- for (i = 0; i < ukplat_memregion_count(); ++i) {
- /* Check if memory region is usable for allocators */
- if (ukplat_memregion_get(i, &md) < 0)
- continue;
-
- if ((md.flags & UKPLAT_MEMRF_ALLOCATABLE)
- != UKPLAT_MEMRF_ALLOCATABLE) {
+ uk_pr_info("Initialize memory allocator...\n");
+ ukplat_memregion_foreach(&md, UKPLAT_MEMRF_ALLOCATABLE) {
#if CONFIG_UKPLAT_MEMRNAME
- uk_pr_debug("Skip memory region %d: %p - %p
(flags: 0x%02x, name: %s)\n",
- i, md.base, (void *)((size_t)md.base
- + md.len),
- md.flags, md.name);
+ uk_pr_debug("Try memory region: %p - %p (flags: 0x%02x, name:
%s)...\n",
+ md.base, (void *)((size_t)md.base + md.len),
+ md.flags, md.name);
#else
- uk_pr_debug("Skip memory region %d: %p - %p
(flags: 0x%02x)\n",
- i, md.base, (void *)((size_t)md.base
- + md.len),
- md.flags);
+ uk_pr_debug("Try memory region: %p - %p (flags: 0x%02x)...\n",
+ md.base, (void *)((size_t)md.base + md.len),
+ md.flags);
#endif
- continue;
- }
-#if CONFIG_UKPLAT_MEMRNAME
- uk_pr_debug("Try memory region %d: %p - %p (flags:
0x%02x, name: %s)...\n",
- i, md.base, (void *)((size_t)md.base
- + md.len),
- md.flags, md.name);
-#else
- uk_pr_debug("Try memory region %d: %p - %p (flags:
0x%02x)...\n",
- i, md.base, (void *)((size_t)md.base
- + md.len),
- md.flags);
-#endif
- /* try to use memory region to initialize allocator
- * if it fails, we will try again with the next region.
- * As soon we have an allocator, we simply add every
- * subsequent region to it
- */
- if (unlikely(!a))
- a = uk_allocbbuddy_init(md.base, md.len);
- else
- uk_alloc_addmem(a, md.base, md.len);
- }
+ /* try to use memory region to initialize allocator
+ * if it fails, we will try again with the next region.
+ * As soon we have an allocator, we simply add every
+ * subsequent region to it
+ */
+ if (unlikely(!a))
+ a = uk_allocbbuddy_init(md.base, md.len);
+ else
+ uk_alloc_addmem(a, md.base, md.len);
}
if (unlikely(!a))
uk_pr_warn("No suitable memory region for memory allocator.
Continue without heap\n");
--
2.20.1
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |