T321: kernel: non power-of-2 sized capabilities remove need for aligning memory.
authorSimon Gerber <simon.gerber@inf.ethz.ch>
Mon, 7 Nov 2016 10:01:43 +0000 (11:01 +0100)
committerSimon Gerber <simon.gerber@inf.ethz.ch>
Mon, 7 Nov 2016 10:01:50 +0000 (11:01 +0100)
Remove bandaid fix for running out of slots in super cnode as we can now
create non-power-of-2 sized caps. Closes trac(!) ticket #253.

Closes T321.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>

kernel/arch/k1om/startup_arch.c
kernel/arch/x86_64/startup_arch.c

index 059e087..5d3b705 100644 (file)
@@ -468,20 +468,7 @@ struct dcb *spawn_bsp_init(const char *name, alloc_phys_func alloc_phys,
 
     /* Create caps for init to use */
     create_module_caps(&spawn_state);
-    // XXX: temporary fix for trac ticket #253: make it more unlikely that
-    // we run out of root cnode slots by aligning the memory we declare free
-    // to 1MB.
-    lpaddr_t init_alloc_end = alloc_phys(0);
-    lpaddr_t align = 4UL << 20; // 4MB
-    // XXX: No checks are in place to make sure that init_alloc_end_aligned
-    // is actually a valid physical memory address (e.g. a location at which
-    // RAM exists.
-    lpaddr_t init_alloc_end_aligned = (init_alloc_end + align) & ~(align-1);
-    printf("aligning free memory start to 0x%"PRIxLPADDR" (was 0x%"PRIxLPADDR
-           "): wasting %lu kB\n",
-           init_alloc_end_aligned, init_alloc_end,
-           (init_alloc_end_aligned - init_alloc_end) / 1024);
-    create_phys_caps(init_alloc_end_aligned);
+    create_phys_caps(init_alloc_end);
 
     /* Fill bootinfo struct */
     bootinfo->mem_spawn_core = NEEDED_KERNEL_SPACE; // Size of kernel
index 284bf13..4c63be9 100644 (file)
@@ -451,20 +451,8 @@ struct dcb *spawn_bsp_init(const char *name, alloc_phys_func alloc_phys,
 
     /* Create caps for init to use */
     create_module_caps(&spawn_state);
-    // XXX: temporary fix for trac ticket #253: make it more unlikely that
-    // we run out of root cnode slots by aligning the memory we declare free
-    // to 1MB.
     lpaddr_t init_alloc_end = alloc_phys(0);
-    lpaddr_t align = 4UL << 20; // 1MB
-    // XXX: No checks are in place to make sure that init_alloc_end_aligned
-    // is actually a valid physical memory address (e.g. a location at which
-    // RAM exists.
-    lpaddr_t init_alloc_end_aligned = (init_alloc_end + align) & ~(align-1);
-    printf("aligning free memory start to 0x%"PRIxLPADDR" (was 0x%"PRIxLPADDR
-           "): wasting %lu kB\n",
-           init_alloc_end_aligned, init_alloc_end,
-           (init_alloc_end_aligned - init_alloc_end) / 1024);
-    create_phys_caps(init_alloc_end_aligned);
+    create_phys_caps(init_alloc_end);
 
     /* Fill bootinfo struct */
     bootinfo->mem_spawn_core = NEEDED_KERNEL_SPACE; // Size of kernel