Thanks for your answers,<div><br><div class="gmail_quote">2011/7/7 Chris Johns <span dir="ltr"><<a href="mailto:chrisj@rtems.org">chrisj@rtems.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">On 6/07/11 9:29 PM, Christophe Huriaux wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
    I have good news concerning the iso9660 file-system implementation<br>
project as part of the GSoC. My test workbench is now able to mount an<br>
iso9660 volume, to navigate throughout the directory structure and to<br>
perform basic file operations (open/read/close) on the volume. The<br>
source device for the mount operation can be either a block device (and<br>
the device access is thus handled by a libblock bdbuf layer) or a<br>
regular file on another file-system (device I/O is handled with standard<br>
posix call in this case).<br>
<br>
</blockquote>
<br></div>
Great work and well done.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
   Until the GSoC mid-term deadline (next week), I will concentrate my<br>
efforts on finishing the file management part (the FS still miss some<br>
calls like seek() ), cleaning up the code and add the missing doxygen<br>
documentation.<br>
</blockquote>
<br></div>
Nice.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
   My further work will firstly be dedicated to the improvement of the<br>
cache for this file-system. Since it's a read-only FS I plan to<br>
implement a FIFO cache based on block access time : when a new block has<br>
to be put in the cache, the oldest (from an access time point of view)<br>
is uncached (the smallest entity in the ISO is called a sector and is<br>
2,048 bytes long). This method should help often accessed blocks to stay<br>
in the cache while the less accessed will be discarded. However, I still<br>
need some comments on this point since I'm not a cache manager guru. :-)<br>
</blockquote>
<br></div>
How important is the need for an extra layer of cache over the libblock cache ? A CDROM is not a fast device so caching is important.<br>
<br>
The libblock cache will cache at the sector size if configured to do so. The media block size for ATA(PI?) is 512 bytes how-ever the file system layer can specify the file system block size to the libblock cache.<div class="im">

<br></div></blockquote><div><br></div><div> I understand that adding others level of caching over libblock may not be beneficial to the filesystem performance, but what about the direct device I/O layer ? Should I rely on the underlying filesystem cache (which may or may not use libblock) in this case ? </div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
   Another point of the implementation on which I'd like some comments<br>
is the filename formatting. Currently the iso9660 implementation handles<br>
only the real ISO9660 standard-compliant volumes without extension,<br>
therefore filenames and directory names are limited to a tiny character<br>
set consisting of only capital letters, digits and underscore. If one<br>
mounts such an ISO volume under Linux, the names will be displayed and<br>
handled lowercase, while others OS leave them unchanged. I wonder how<br>
the RTEMS implementation should handle them : unchanged (uppercase),<br>
lowercase, case-insensitive, application-defined ?<br>
</blockquote>
<br></div>
Can this be a mount option ?<br></blockquote><div><br></div><div> Of course, I have not thought of this alternative, it's way better to decide at runtime.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<font color="#888888">
<br>
Chris<br>
</font></blockquote></div><br>Regards,<br>Christophe Huriaux<br>
</div>