[syslinux] ISOLINUX and readdir: Performance

Gene Cumm gene.cumm at gmail.com
Sat Mar 28 04:40:22 PDT 2009


Since my last e-mail, I've done some more exploring on the code.  I've
discovered that all variants currently use at least 3 64 kiB segments.

I was surprised to see that ISOLINUX does not implement any cache
segment yet SYSLINUX and EXTLINUX, the disk-based variants do.  Are
there any ideas on why the faster disk-based variants have cache?  Is
it as simple as no one has attempted to dedicate the time to it?

Unless I create some sort of dirent structure in ISOLINUX (probably
similar to ISO-9660's structure, having a record length, file length,
attributes and file name), utilizing readdir will be extremely slow,
even on a relatively empty directory, as each call to readdir only
wants to return one entry but must fetch data from the device (optical
drive in this case).

With that in mind and a statement by HPA that performance is almost a
non-issue except when it comes to disk-like device I/O (floppy, hdd,
optical CD/DVD) and graphics, it seems that it may be time to
implement the cache.  If the cache were to be implemented, it would
either have to have pass through routines when in debug mode ("%define
DEBUG_MESSAGES 1") to reduce size or some of the uninitialized data in
the first segment needs to move elsewhere, probably a new data segment
(for a total of 5 segments in ISOLINUX).

-Gene




More information about the Syslinux mailing list