[ECOS] "PANIC: zinit: Out of memory" when num sockets increased to 64

Grant Edwards grante@visi.com
Tue Apr 8 20:30:00 GMT 2008

I'm testing some application code using the pc_rltk8139 target
and the net template.  It works fine using the default
FILEIO_NFD and FILEIO_NFILE valus of 16.  But one of the tests
I need to run involves opening and closing a TCP connection
about 40 times in a row.  This test takes a while, since on the
17th iteration the network stack runs out of sockets and stalls
while the 16 zombie sockets that are all in the TIME_WAIT state
hang around until they timeout and go away.

So, I increated FILEIO_NFD and FILEIO_NFILE to 64, which means
there are 64 sockets available.

But now the app fails to start up:

  Booting '/server.elf'

   kernel /server.elf
      [Multiboot-elf, <0x108000:0x4a860:0x879f8>, shtab=0x1db1e0, entry=0x108000]
   [cyg_net_init] Init: mbinit(0x00000000)
   [cyg_net_init] Init: cyg_net_init_devs(0x00000000)
   Init device 'rltk8139_eth0'
   [cyg_net_init] Init: loopattach(0x00000000)
   [cyg_net_init] Init: ifinit(0x00000000)
   [cyg_net_init] Init: domaininit(0x00000000)
   [cyg_net_init] Init: cyg_net_add_domain(0x00152040)
   New domain internet at 0x00000000
   PANIC: zinit: Out of memory

The target configuration is set for 16MB of RAM, and my
application isn't all that large:

  $ size server.elf
     text    data     bss     dec     hex filename
   298992    6248  555512  860752   d2250 server.elf

So there's well over 15MB of unallocated RAM. That seems like
more than enough RAM to handle 64 sockets.
Why am I getting a panic on startup?

Grant Edwards                   grante             Yow! Didn't I buy a 1951
                                  at               Packard from you last March
                               visi.com            in Cairo?

Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list