Ram Yalamanchili
2007-Apr-21 05:09 UTC
[syslinux] Patch: Optimized partition/drive/fs support for syslinux
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>