RE: kmem_alloc: out of kernel memory

Jan Stoess <[email protected]> Tue, 19 Jul 2011 08:55:56 +0000
Newsgroups gmane.comp.micro-kernel.l4.l4ka.general
Message-ID <[email protected]>
Really cool. Thanks for fixing this, I've just committed the patch.=20

(I had already spotted the error down to memory descriptors myself, but did=
n't find the root cause yet).


-Jan

--
Dr. Jan Stoess, KIT System Architecture Group
Phone: +49 (721) 6084 4056


> -----Original Message-----
> From: [email protected] [mailto:[email protected]
> karlsruhe.de] On Behalf Of Norman Feske
> Sent: Monday, July 18, 2011 3:57 PM
> To: [email protected]
> Subject: Re: kmem_alloc: out of kernel memory
>=20
> Hello,
>=20
> we hit the same problem today. Apparently, it is triggered by recent vers=
ions
> of binutils, which seem to interpret the result of the address calculatio=
n for
> Pistachio's '_memory_descriptors_raw' as section-relative value. But this
> symbol address must be absolute. The attached patch fixes the problem by
> explicitly using ld's 'ABSOLUTE'
> function.
>=20
> Cheers
> Norman
>=20
> On 06/29/2011 09:52 AM, Jan Stoess wrote:
> > There seems to be something terribly broken :-/
> >
> > Can you do me a favor and send me your kernel config (the config dir in
> your build directory)?
> >
> > Thanks,
> > -Jan
> >
> > --
> > Dr. Jan Stoess, KIT System Architecture Group
> > Phone: +49 (721) 6084 4056
> >
> >> -----Original Message-----
> >> From: [email protected] [mailto:[email protected]
> >> karlsruhe.de] On Behalf Of David Silcott
> >> Sent: Monday, May 30, 2011 9:28 PM
> >> To: [email protected]
> >> Subject: kmem_alloc: out of kernel memory
> >>
> >> Hi,
> >>
> >> I've synced my local copy of Pistachio against the latest available
> >> and now all of my builds are reporting an out of memory error when I
> >> try to run any application, even pingpong or memtest. Below is the
> >> output I receive when I attempt to run memtest
> >>
> >>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >> =3D=3D=3D=3D=3D=3D=3D
> >>
> >> KickStart 0.13.06
> >> Detected multiboot compliant loader
> >>  kernel    (0x00824000-0x0090ad41)   =3D> 0x001ef4d0
> >>   (0x00824000-0x0083f388) -> 0x00100000-0x0011b388
> >>   (0x00840000-0x00840028) -> 0x0011c000-0x0011c028
> >>   (0x00841000-0x0084a376) -> 0x0011d000-0x00126376
> >>   (0x0084b000-0x008ef0c0) -> 0x00127000-0x001cb0c0
> >>   (0x008f0000-0x008f4338) -> 0x001ec000-0x001f0338
> >>  sigma0    (0x0090b000-0x0092eb24)   =3D> 0x00020000
> >>   (0x0090c000-0x00915524) -> 0x00020000-0x00029524
> >>  roottask  (0x0092f000-0x0093d424)   =3D> 0x00400000
> >>   (0x00930000-0x00935044) -> 0x00400000-0x00405044 Launching kernel ..=
.
> >>
> >> L4Ka::Pistachio - built on May 28 2011 21:39:10 by david@andesite
> >> using gcc version 3.3.6
> >> --- "KD# kmem_alloc: out of kernel memory" ---
> >> --------------------------------- (eip=3Df010909c, esp=3D00000000) ---
> >>
> >>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >> =3D=3D=3D=3D=3D=3D=3D
> >>
> >>
> >> A query of the memory statistics reveals the following:
> >>
> >>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >> =3D=3D=3D=3D=3D=3D=3D
> >>
> >> /stats> kmem
> >> Kernel memory statistics:
> >>   Chunk size  =3D 1024 bytes
> >>   Free chunks =3D 2 (2KB)
> >>
> >>   Consecutive   Number of
> >>   chunks        matches
> >>         1            2
> >>         2            1
> >>         4            0
> >>         8            0
> >>        16            0
> >>        32            0
> >>        64            0
> >>       128            0
> >>       256            0
> >>       512            0
> >>      1024+           0
> >>
> >>   Max consecutive chunks: 2
> >>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >> =3D=3D=3D=3D=3D=3D=3D
> >>
> >>
> >>  I get the same results even if I explicitly pass  memory values to
> >> kickstart:    maxmem=3D1G  kmem=3D128M
> >>
> >> I have tried several versions of GCC with 3.3.6 being the last but
> >> all have reported some form of 'out of memory' error and the error
> >> occurs both on qemu and on a physical machine.
> >>
> >> The processor and memory spcecs of my test machine are:
> >>
> >> CPU: Intel Core 2 duo
> >> Memory: 4G
> >>
> >> Can anyone see what I am doing wrong? I didn't have this problem
> >> before updated pistachio
> >>
> >> I have attached a copy of my config.out file.
> >>
> >> Regards
> >> David
>=20
> --
> Dr.-Ing. Norman Feske
> Genode Labs
>=20
> http://www.genode-labs.com =B7 http://genode.org
>=20
> Genode Labs GmbH =B7 Amtsgericht Dresden =B7 HRB 28424 =B7 Sitz Dresden
> Gesch=E4ftsf=FChrer: Dr.-Ing. Norman Feske, Christian Helmuth