This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: ASSERT: cyg_callout_reset() We didn't pick the smallestdelta!
- From: Gary Thomas <gthomas at ecoscentric dot com>
- To: Kevin Hilman <khilman at equator dot com>
- Cc: eCos Discussion <ecos-discuss at sources dot redhat dot com>
- Date: 27 Nov 2002 12:08:11 -0700
- Subject: Re: [ECOS] ASSERT: cyg_callout_reset() We didn't pick the smallestdelta!
- References: <r21y56suif.fsf@equator.com>
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?
> 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