[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