This is the mail archive of the ecos-discuss@sourceware.org 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: How to debug synchronisation in the usbs.c in a new usb-driver for the ARM at91sam7s...


>>>>> "Gary" == Gary Thomas <gary@mlbassoc.com> writes:

    Gary> On Thu, 2006-02-16 at 17:25 +0100, Andrew Lunn wrote:
    >> On Thu, Feb 16, 2006 at 11:15:25AM -0500, Derek Bouius wrote:
    >> 
    >> > I am not registered for the mailing list, but peruse it once in a
    >> > while, so I am not sure if my mail will go through to it. Feel free
    >> > to repost it if it doesn't.
    >> 
    >> It got through.
    >> 
    >> > What we did to fix the locking issue was change the mutex to a
    >> > semaphore. See the patch. It seems to work reliably.
    >> 
    >> Did you understand what the problem was with the condition variable?
    >> Could you explain it?

    Gary> This seems like a pretty heavyweight solution.  I think that Bart
    Gary> may want/need to review this before it's accepted into CVS.

Yes, although it has been a while since I looked at that code.

A problem with semaphores is that they are only available in kernel
configurations. The driver API only has condition variables as a way
of signalling events from a DSR to a thread. That is fine for
complicated I/O, but in most of my drivers I only need something
simple. A counting semaphore in the driver API would make it easier to
write drivers, and would require less code and data than a
mutex/condition variable combination.

Does anybody remember why counting semaphores were left out of the
driver API?

Bart

-- 
Bart Veer                       eCos Configuration Architect
http://www.ecoscentric.com/     The eCos and RedBoot experts


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