This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
fast networking thread
- From: paape at Hi-Techniques dot com
- To: ecos-discuss at sources dot redhat dot com
- Date: Wed, 23 Jun 2004 18:17:11 -0500
- Subject: [ECOS] fast networking thread
Hello,
I'm seeing some odd behavior in the bsd_tcp stack, specifically with alarms
and the fast networking thread. When I bring up the interface I see that
the alarm thread is running periodically as a result of a call to
"do_alarm()". The hardware is plugged into a hub to establish a link.
There is nothing else connected.
This seems to continue indefinetely until I enable an unrelated (128msec)
interrupt source at which time the periodic alarm stops and
the network no longer responds (after reconnecting the hub to our network).
However, if I disable interrupts around the cyg_flag_wait() in the alarm
thread and around the cyg_flag_setbits() in the do_alarm() routine
everything is OK. I have looked at the ..._flag_... synchronization
routines and see that there is a scheduler lock protecting them but I am
wondering...
Isn't the do_alarm() routine called out of clock interrupt context rather
than thread context?
As to why my unrelated interrupt source would induce this (the isr acks the
interrupt and reenables, that's it) I can only speculate that the "lock
step" of the network alarm may be sufficiently perturbed.
I am using the ecos2.1 source distribution on a ppc440 (Q&D port from the
405). Apart from this, the network operation seems fine.
Any help would be greatly appreciated.
Dan Paape
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss