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]

Re: disk access mutex's


On Wednesday 01 September 2004 02:01 am, Savin Zlobec wrote:
> Jeff Cooper wrote:
> >One thing I'm curious about is the lack of mutex's when accessing the CF
> >hardware in the Elatec driver.
> >
> >Is contention for the disk device handled at a layer higher up than the
> > device driver?  I've been digging through the source for the io disk and
> > haven't found any kind of access control.
> >
> >Am I just missing where this is being handled?   If so, can anyone point
> > me in the right direction?
>
> If you intend to access several partitions simultaneousely or one
> partition through an fs
> that doesn't serialize its io operations, then the disk io funs should
> be mutex protected.
>
> In any case you are right io_disk need an mutex and it should be in
> disk.c not in lower layers.

Thanks for the info!

What would be the advantage to handling mutex's in a higher layer rather than 
a lower one?

The only one I can thing of would be that the device driver writer wouldn't 
have to be concerned about knowing where to place the protection and could 
assume that read/write calls are atomic.

But couldn't that also be considered a disadvantage as well?  

My thought is that someone writing a device driver for a particular piece of 
hardware should know when the hardware needs mutex protection.  Doing it in 
the lower layers would allow a finer grain of control over when the hardware 
is blocked.

Thoughts?

thanks,
Jeff

-- 
Jeff Cooper
Senior Embedded Software Engineer
jeffc@logicpd.com
612-436-5176

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