[Barrelfish-users] Issue building new application -- Cannot create more caps in CNode
Georgios Varisteas
yorgos at kth.se
Fri Apr 12 10:17:06 CEST 2013
In case you need it, during a ~4GB successful boot I get the same first printk:
kernel 0: RAM 76b7000--dfffd000 [init_alloc_addr:76b7000]
but not the second:
kernel 0: RAM 100000000--1bff00000 [init_alloc_addr:76b7000]
cheers,
Georgios
________________________________________
From: Georgios Varisteas [yorgos at kth.se]
Sent: Friday, April 12, 2013 09:59
To: Kornilios Kourtis; Benjamin Shelton; barrelfish-users at lists.inf.ethz.ch
Subject: Re: [Barrelfish-users] Issue building new application -- Cannot create more caps in CNode
Hi Kornillios,
Since I sent an email on the same issue yesterday, let me jump into this.
First of, the requested printout is attached.
Moreover, on the Simics simulator (not Qemu) I get this issue by running a fresh unaltered clone from hg.barrelfish.org/barrelfish. Default menu.lst, no other application added, booting from a hd image. The hw configuration I'm using simulates 7GB of memory and 32 x86_64 cores. All previous to the latest releases run without a hitch on the exact same configuration. Thus we can safely assume that this is mostly related to a bug introduced sometime during 2013.
It's really interesting that by simulating 4GB of memory the error disappears. I initially thought that the irregular 7GB size was the reason; then again, the error persists with 8GB. I tried 4097MB also and BF booted normally. Is there a undocumented limit to the RAM size supported or any hard assumption around it?
cheers,
Georgios
________________________________________
From: Kornilios Kourtis [kornilios.kourtis at inf.ethz.ch]
Sent: Thursday, April 11, 2013 19:31
To: Benjamin Shelton; barrelfish-users at lists.inf.ethz.ch
Subject: Re: [Barrelfish-users] Issue building new application -- Cannot create more caps in CNode
On Thu, Apr 11, 2013 at 07:25:09PM +0200, Kornilios Kourtis wrote:
> [1]
> diff --git a/kernel/startup.c b/kernel/startup.c
> index bfa443d..2d3aeaa 100644
> --- a/kernel/startup.c
> +++ b/kernel/startup.c
> @@ -168,8 +168,12 @@ struct dcb *spawn_module(struct spawn_state *st,
>
> // Super cnode in root cnode
> st->supercn = caps_locate_slot(CNODE(&rootcn), ROOTCN_SLOT_SUPERCN);
> - err = caps_create_new(ObjType_CNode, alloc_phys(BASE_PAGE_SIZE),
> - BASE_PAGE_BITS, DEFAULT_CNODE_BITS, st->supercn);
> + const int supercn_bits = BASE_PAGE_BITS;
Actually, this is the same as before. I meant:
+ const int supercn_bits = BASE_PAGE_BITS + 1;
> + err = caps_create_new(ObjType_CNode,
> + alloc_phys(1UL<<supercn_bits),
> + supercn_bits,
> + supercn_bits - OBJBITS_CTE,
> + st->supercn);
> assert(err_is_ok(err));
cheers,
Kornilios.
--
Kornilios Kourtis
_______________________________________________
Barrelfish-users mailing list
Barrelfish-users at lists.inf.ethz.ch
https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
More information about the Barrelfish-users
mailing list