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] |
On Wednesday 01 September 2004 02:01 am, Savin Zlobec wrote:Since some data is shared between the master disk device and per partition devices it should be
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.The low level read and write funs are just about fetching or storing one sector to/from the
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.
-- 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] |