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