This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ASSERT: cyg_callout_reset() We didn't pick the smallest delta!


Gary Thomas <gthomas@ecoscentric.com> writes:

> On Wed, 2002-11-27 at 16:37, Kevin Hilman wrote:
> > Gary Thomas <gthomas@ecoscentric.com> writes:
> > 
> > > > Nope, my last update was Nov 6.  However, now I've merged the latest
> > > > CVS, and this assert goes away.  Now I'm consistently hitting the
> > > > assert below, the "delta is right now" one.
> > > > 
> > > 
> > > Harrumph!  I've never seen that one.  Maybe you could detect this case
> > > and print some data so we can analyze the failure (asserts are nice, but
> > > sometimes one needs more).  Something like this:
> > >   if (delta <= 0) {
> > >      diag_printf("Bad delta: %d, callout: %p, fun: %p(%x)\n", delta, c, f, p);
> > 
> > This run shows a failure with your suggested diag_printf().  I've also
> > included some relevant parts of 'nm'
> > 
> 
> I'm still not sure why this fails.  Two more things to try:
>   * Change the 'assert' to be CYG_ASSERT(0 <= delta, ...)
>   * Print one more piece (using the previos setup/test)
>     diag_printf("Called from %p\n", __builtin_return_address(0));

OK, changing the assert to <= makes it run happily for quite a while
longer but eventually runs into problems running out of mbufs and then
packets out of sequence and then some different timeout error (see
output below).  The caller is the same every time and is
cyg_tcp_input().

> BTW - What sort of platform is this?

It's a VLIW architecture "media processor" by Equator Technologies (my
employer.)  We also have a linux-2.2 port working and stable.  If
you're interested, you can see some more product details at

  http://www.equator.com/products/index.html

--
Kevin

[cyg_net_init] Init: mbinit(0x00000000)
[cyg_net_init] Init: cyg_net_init_devs(0x00000000)
Init device 'i82559_eth0'
eth0 XXX: driver didn't set ifq_maxlen
[cyg_net_init] Init: loopattach(0x00000000)
[cyg_net_init] Init: ifinit(0x00000000)
IFP: 0x801f7050, next: 0x804c1384
IFP: 0x804c1384, next: 0x00000000
[cyg_net_init] Init: domaininit(0x00000000)
[cyg_net_init] Init: cyg_net_add_domain(0x801fab40)
New domain internet at 0x00000000
[cyg_net_init] Init: cyg_net_add_domain(0x801f9b60)
New domain route at 0x00000000
[cyg_net_init] Init: cyg_route_init(0x00000000)
[cyg_net_init] Done
Start Network Characterization - SLAVE
BOOTP[eth0] op: REQUEST
       htype: Ethernet
        hlen: 6
        hops: 0
         xid: 0xad0cffbd
        secs: 0
       flags: 0x80
       hw_addr: 00:02:b3:1b:f1:bd
     client IP: 0.0.0.0
         my IP: 10.0.16.152
     server IP: 10.0.16.20
    gateway IP: 0.0.0.0
  options:
        DHCP message: 3 REQUEST
        DHCP server id: 10.0.16.20
        DHCP time 51: 604800
        DHCP time 58: 302400
        DHCP time 59: 529200
        subnet mask: 255.255.255.0
            gateway: 10.0.16.1
      domain server: 10.0.16.20, 10.0.0.20
        domain name: sea.equator.com
        DHCP option: 37/55.9: 54 51 58 59 1 3 6 15 28
        DHCP option: 39/57.2: 576
        DHCP requested ip: 10.0.16.152
No load = 169263
Set background load = 20% 
Set background load = 0% 
High Load[20] = 167703 => 1% 
Set background load = 20% 
Set background load = 0% 
High Load[40] = 168627 => 1% 
Set background load = 20% 
Set background load = 0% 
High Load[80] = 167723 => 1% 
Set background load = 20% 
Set background load = 0% 
High Load[160] = 166316 => 2% 
Set background load = 20% 
Set background load = 0% 
High Load[320] = 163115 => 4% 
Set background load = 20% 
Set background load = 0% 
High Load[640] = 156609 => 8% 
Set background load = 20% 
Set background load = 0% 
High Load[1280] = 143949 => 15% 
Set background load = 20% 
Set background load = 0% 
High Load[2560] = 118404 => 31% 
Set background load = 20% 
Set background load = 0% 
Load[1920] = 131083 => 23% 
Set background load = 20% 
Set background load = 0% 
Load[1600] = 137739 => 19% 
Set background load = 20% 
Set background load = 0% 
Final load[1684] = 136081 => 20% 
Start test for eth0
TCP echo - 64 buffers, 10240 bytes
connection from 10.0.16.79.51067
Bad delta: 0, callout: 0x8034b968, fun: 0x8018a8a8(8034b850)
Called from 0x8017f360
Set background load = 0% 
Set background load = 0% 
UDP echo - 2048 buffers, 1024 bytes
TCP echo - 2048 buffers, 1024 bytes
connection from 10.0.16.79.51068
Bad delta: 0, callout: 0x8034b700, fun: 0x8018a8a8(8034b5e8)
Called from 0x8017f360
Set background load = 10% 
UDP echo - 2048 buffers, 1024 bytes
TCP echo - 2048 buffers, 1024 bytes
connection from 10.0.16.79.51069
Bad delta: 0, callout: 0x8034b700, fun: 0x8018a8a8(8034b5e8)
Called from 0x8017f360
Set background load = 20% 
UDP echo - 2048 buffers, 1024 bytes
TCP echo - 2048 buffers, 1024 bytes
connection from 10.0.16.79.51070
Bad delta: 0, callout: 0x8034b700, fun: 0x8018a8a8(8034b5e8)
Called from 0x8017f360
Set background load = 30% 
UDP echo - 2048 buffers, 1024 bytes
TCP echo - 2048 buffers, 1024 bytes
connection from 10.0.16.79.51071
Bad delta: 0, callout: 0x8034b700, fun: 0x8018a8a8(8034b5e8)
Called from 0x8017f360
Set background load = 40% 
UDP echo - 2048 buffers, 1024 bytes
TCP echo - 2048 buffers, 1024 bytes
connection from 10.0.16.79.51072
Bad delta: 0, callout: 0x8034b700, fun: 0x8018a8a8(8034b5e8)
Called from 0x8017f360
Set background load = 50% 
UDP echo - 2048 buffers, 1024 bytes
warning: eth_recv out of MBUFs
warning: eth_recv out of MBUFs
warning: eth_recv out of MBUFs
warning: eth_recv out of MBUFs
warning: eth_recv out of MBUFs
warning: eth_recv out of MBUFs
warning: eth_recv out of MBUFs
warning: eth_recv out of MBUFs
warning: eth_recv out of MBUFs
warning: eth_recv out of MBUFs
warning: eth_recv out of MBUFs
warning: eth_recv out of MBUFs
warning: eth_recv out of MBUFs
warning: eth_recv out of MBUFs
Packets out of sequence - recvd: 514, expected: 456
Packets out of sequence - recvd: 552, expected: 538
recvfrom timeout, expecting seq #2048
recvfrom timeout, expecting seq #2049
recvfrom timeout, expecting seq #2050
recvfrom timeout, expecting seq #2051
recvfrom timeout, expecting seq #2052
recvfrom timeout, expecting seq #2053
.. giving up
TCP echo - 2048 buffers, 1024 bytes



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]