[ECOS] ASSERT: cyg_callout_reset() We didn't pick the smallest delta!

Kevin Hilman khilman@equator.com
Wed Nov 27 15:37:00 GMT 2002


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'

Kev

[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: 0x801f6f50, next: 0x804c1284
IFP: 0x804c1284, next: 0x00000000
[cyg_net_init] Init: domaininit(0x00000000)
[cyg_net_init] Init: cyg_net_add_domain(0x801faa40)
New domain internet at 0x00000000
[cyg_net_init] Init: cyg_net_add_domain(0x801f9a60)
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: 0xa0acffbd
        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 = 170610
Set background load = 20% 
Set background load = 0% 
High Load[20] = 167715 => 2% 
Set background load = 20% 
Set background load = 0% 
High Load[40] = 168664 => 2% 
Set background load = 20% 
Set background load = 0% 
High Load[80] = 167876 => 2% 
Set background load = 20% 
Set background load = 0% 
High Load[160] = 166217 => 3% 
Set background load = 20% 
Set background load = 0% 
High Load[320] = 163017 => 5% 
Set background load = 20% 
Set background load = 0% 
High Load[640] = 156668 => 9% 
Set background load = 20% 
Set background load = 0% 
High Load[1280] = 143882 => 16% 
Set background load = 20% 
Set background load = 0% 
High Load[2560] = 118385 => 31% 
Set background load = 20% 
Set background load = 0% 
Load[1920] = 131203 => 24% 
Set background load = 20% 
Set background load = 0% 
Load[1600] = 137707 => 20% 
Set background load = 20% 
Set background load = 0% 
Final load[1600] = 137665 => 20% 
Start test for eth0
TCP echo - 64 buffers, 10240 bytes
connection from 10.0.16.79.51008
Bad delta: 0, callout: 0x8034b868, fun: 0x8018a7a8(8034b750)
ASSERT FAIL: <3>timeout.c[321]cyg_callout_reset() delta is right now, or even sooner!
ASSERT FAIL: <3>timeout.c           [ 321] cyg_callout_reset()                                                                                  delta is right now, or even sooner!


It appears that callout is somewhere in net_mempool_area, fun is
cyg_tcp_timer_2msl and p is also somewhere net_mempool_area.

Parts of nm output (I can send the whole thing if necessary):

8018a420 T cyg_tcp_slowtimo
8018a4b4 T cyg_tcp_canceltimers
8018a5ac T cyg_tcp_timer_delack
8018a7a8 T cyg_tcp_timer_2msl
8018aaa8 T cyg_tcp_timer_keep
8018b070 T cyg_tcp_timer_persist
8018b470 T cyg_tcp_timer_rexmt
8018bc20 T cyg_tcp_init
8018bed4 T cyg_tcp_fillheaders
8018c028 T cyg_tcp_maketemplate
8018c0f4 T cyg_tcp_respond
8018c934 T cyg_tcp_newtcpcb
8018cbc0 T cyg_tcp_drop
8018cd34 T cyg_tcp_close
8018d6cc T cyg_tcp_drain
8018d924 t tcp_notify
8018dab8 T cyg_tcp_ctlinput
8018dff0 T cyg_tcp_new_isn
8018e494 T cyg_tcp_quench
8018e4c8 T cyg_tcp_drop_syn_sent
8018e5b0 T cyg_tcp_mtudisc
8018e874 T cyg_tcp_rtlookup
8018e9d0 T cyg_tcp_gettaocache

[...]

8033eb20 b net_mem
8033eb40 b net_mbufs
8033eb60 b net_clusters
8033eb80 b vm_zones
8033eba0 b net_mempool_area
8034eba0 b net_mem_pool
8034ebc8 b net_mbufs_area
8035ebc8 b net_mbufs_pool
8035ebec b net_clusters_area
8037ebec b net_clusters_pool
8037ec10 b net_clusters_refcnt
8037ec60 b _netisr_handlers
8037ece0 b .ktime_alarm.41
8037ed20 b netint_thread_data
8037edd8 b netint_stack
80394358 b netint_thread_handle

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



More information about the Ecos-discuss mailing list