[syslinux] Patch: Optimized partition/drive/fs support for syslinux

Ram Yalamanchili ramyinc at gmail.com
Fri Apr 20 22:09:16 PDT 2007


Here is some a bit more optimized version and bug fixed patch of my
previous patchset. In my testing of trying to boot from a USB flash
device, I have gotten anywhere from 6x-16x better performance using
these patches compared to syslinux's default open/read_file data path
when using mboot.c (modified to use fs->ops.open() interface). I'm
loading about 50MB of source kernel/modules into memory in my testing.
A USB 2.0 compatible bios is doing the join in 6 secs, and a USB 1.1
bios is giong at around 30 secs.

Earlier my times were about 45sec and 2min 30sec respectively.

Part of the optimization has to do with libfat's cache and the other
with synchronizing read block size with that of gzip's buffer reads.
The vanilla file_read method in syslinux does a "cached" read which
goes thru 2 memcpy's on every read, which is useless imo for a
bootloader, since most of the reads are to load big files into the
memory, and hopefully are read in chunks of atleast or bigger than
MAXBLOCK size.

Other improvements in this patch is the shortname support for open. No
need to make your own FAT short names anymore, instead
fs->ops.open("myfile.gz") will work fine. Make sure you dont have
conflicts on the FAT filesystem itself though. I haven't done long
file name support since I dont need it ;)

Finally, Peter: I fail to understand your fear of "syslinux turning
into grub" by having any of this support. All this provides is a way
to interface from com32 layer with any partition/drive/fs (well libfat
for now, but it can be extended to other fs's). The menu or the kernel
loading features of syslinux itself are not changed and can't be made
to load files from other partitions/drives in the present form. Did
you have a chance to read what the patch contains?

thanks.

--
Ram
-------------- next part --------------
A non-text attachment was scrubbed...
Name: drive_partition_fs_syslinux2.patch
Type: text/x-patch
Size: 42253 bytes
Desc: not available
URL: <http://www.zytor.com/pipermail/syslinux/attachments/20070420/612c385d/attachment.bin>


More information about the Syslinux mailing list