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]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]