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 12:05, Kevin Hilman wrote:
> > Hello,
> > 
> > I've recently added the FreeBSD networking stack to our port of eCos.
> > Our device has a PCI interface and I'm using the i82559 driver for an
> > Intel EtherExpress Pro.
> > 
> > Most of the network tests are running OK, but a few trigger some
> > asserts in the timeout code.  Since I'm kind of a TCP novice, I'm
> > wondering if anyone here can give me some insight into what may be
> > going on here, and where to start digging.
> > 
> > The first assert I saw was the at the end of cyg_callout_reset() in
> > net/bsd_tcpip/current/src/ecos/timeout.c:
> > 
> >   CYG_ASSERT( delta == last_delta, "We didn't pick the smallest delta!" );
> > 
> 
> This problem was fixed on Nov 12.  Have you updated your sources since
> then?

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.

> > thinking that the trace messages (in buffer mode) may be causing too
> > much time lag, I disabled tracing.
> > 
> > That seemed to get rid of the problem for the ftp_test, and the
> > ftp_test now passes,  but for the nc_test_slave it changed a little
> > but still asserts.  Sometimes it asserts at the same place, but it
> > also sometimes asserts at the beginning of cyg_callout_reset() at:
> > 
> >   CYG_ASSERT( 0 < delta, "delta is right now, or even sooner!" );
> > 
> > Using tcpdump, I see many (several hundred) packets exchange between
> > slave and master before the assert.
> > 
> > NOTE: the other net tests run OK, such as flood, ping_test, dhcp_test,
> > ftp_test, tcp_lo_select, tcp_lo_test, udp_lo_test, ...
> > 
> > Here's an example run of nc_test_slave.  If it helps, I could also
> > send a tcpdump trace and the output of nc_test_master on linux.
> > 
> > --
> > Kevin Hilman
> > Equator Technologies
> > 
> > [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: 0x801f0ed0, next: 0x804ba244
> > IFP: 0x804ba244, next: 0x00000000
> > [cyg_net_init] Init: domaininit(0x00000000)
> > [cyg_net_init] Init: cyg_net_add_domain(0x801f4940)
> > New domain internet at 0x00000000
> > [cyg_net_init] Init: cyg_net_add_domain(0x801f3940)
> > 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: 0xcd57ffbd
> >         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 = 169425
> > Set background load = 20% 
> > Set background load = 0% 
> > High Load[20] = 167795 => 1% 
> > Set background load = 20% 
> > Set background load = 0% 
> > High Load[40] = 167752 => 1% 
> > Set background load = 20% 
> > Set background load = 0% 
> > High Load[80] = 167874 => 1% 
> > Set background load = 20% 
> > Set background load = 0% 
> > High Load[160] = 166283 => 2% 
> > Set background load = 20% 
> > Set background load = 0% 
> > High Load[320] = 163135 => 4% 
> > Set background load = 20% 
> > Set background load = 0% 
> > High Load[640] = 156687 => 8% 
> > Set background load = 20% 
> > Set background load = 0% 
> > High Load[1280] = 144147 => 15% 
> > Set background load = 20% 
> > Set background load = 0% 
> > High Load[2560] = 118626 => 30% 
> > Set background load = 20% 
> > Set background load = 0% 
> > Load[1920] = 131328 => 23% 
> > Set background load = 20% 
> > Set background load = 0% 
> > Load[1600] = 137666 => 19% 
> > Set background load = 20% 
> > Set background load = 0% 
> > Final load[1684] = 136168 => 20% 
> > Start test for eth0
> > TCP echo - 64 buffers, 10240 bytes
> > connection from 10.0.16.79.50353
> > ASSERT FAIL: <3>timeout.c[418]cyg_callout_reset() We didn't pick the smallest delta!
> > ASSERT FAIL: <3>timeout.c           [ 418] cyg_callout_reset()                                                                                  We didn't pick the smallest delta!
> > 
> > -- 
> > Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
> > and search the list archive: http://sources.redhat.com/ml/ecos-discuss
> 
> -- 
> ------------------------------------------------------------
> Gary Thomas                  |
> eCosCentric, Ltd.            |  
> +1 (970) 229-1963            |  eCos & RedBoot experts
> gthomas@ecoscentric.com      |
> http://www.ecoscentric.com/  |
> ------------------------------------------------------------

-- 
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]