Finally: LBAcache-13nov02.zip should be more efficient :-)
Eric Auer <[email protected]> Wed, 13 Nov 2002 04:38:47 +0100 (MET)
| Newsgroups | gmane.os.freedos.devel,gmane.spam.detected |
|---|---|
| Message-ID | <[email protected]> |
Hi, the LBAcache in http://www.coli.uni-sb.de/~eric/stuff/soft/ lbacache-13nov02.zip now finally contains a less stupid allocation algorithm (still verry simplistic): It may scan a whole lot of entries (6300 for a 25M cache) until it finds back a cached sector (bad) but it can store the sector in any of those (good). The old version had a fixed mapping of sector number to cache entry. So the allocated XMS should be used much more efficiently now! Further changes: Better GNU public license disclaimer in each .asm file, .lsm package description now included. The lbacached.com and lbacached.sys will print a short debugging message on the screen whenever they decide to discard a sector from cache to make room for a new sector (actually, discard up to 8 for up to 8, but the message does not tell you about that). Useful for determining a good cache size for you. The README.TXT has also been improved :-). Old changes: Advantages of LBACACHE-DEVEL compared to LBACACHE: - shorter help and info screen, which you can redirect to a file with the usual shell "... > file" method. - human readable number of read/write hit/miss and read/write hit percentage display in info mode (no rounding of the percentage now: was broken). - fixed an old fatal bug that occured when you tried to unload several instances at the same time with lbacache stop (only for .com instances under certain circumstances). - the new version detects up to 8 harddisks and does LBA-ability and sanity checking for each of them, the old version detects up to 4 harddisks and only does LBA-ability checking for the whole BIOS once. - the new version consumes 4k plus for each allocated 0.25MB (maximum is 99*0.25MB=24.75MB) an additional 0.5k of DOS RAM (DEVICEHIGH and LOADHI are possible), the old version consumed 2k for each 0.5MB (maximum was 9*0.5MB=4.5MB) of XMS, plus the same 4k. The old version allowed you to use either no or 500 bytes of local stack. The new version always uses 300 bytes which you can no longer turn off. This is safer for FreeDOS. - Floppy disk caching probably is better now: It might be the case that you can now cache 1.2MB disks in 1.2MB drives (and XXXk disks in XXXk drives in general) without trashing all data copied to/from them. Only 1.44MB are officially supported, and using an XXXk disk in an YYYk drive still is VERY likely to trash data! Remember that if you do not dare to cache floppies, just do not enable the floppy cache. To enable the floppy cache, use the FLOP option. To disable the harddisk cache, use the DRV NULL option. - the new version automatically detects when it is short on DOS RAM (DOS 5+ required) and will shrink itself then and give a warning. The old version crashed your system sooner or later in that case. Important for people who use big LBAcache caches but load them into (too) small UMB areas... - the new version allows you to use a debugger (or a tool you would have to write) to make cache entries persistent (protected from being reused by other sectors). You may want to read the internal "table" table anyway, for example to create some nifty histogram of the cache usage statistics. - most changes should also be mentioned in README.TXT, and there may be changes that I forgot to mention in this mail. For the announcement: Please use this short text for the announcement: /--- Hi, the LBAcache in http://www.coli.uni-sb.de/~eric/stuff/soft/ lbacache-13nov02.zip now finally contains a less stupid allocation algorithm (still verry simplistic). This will take more CPU time but will use the allocated XMS more efficiently. The hit percentage display in the info screen now finally works, and the screen output is now generally shorter (two columns, redirection to a file with ">" is possible, unless you have a buggy kernel). LBACACHD works like LBACACHE but prints debugging messages when the cache spills (is full). Further important changes comparing the DEVEL version to the STABLE (lbacache.zip) version: DEVEL detects up to 8 harddisks, may work with 1.2M floppies now (only 1.44MB recommended! Read the warning in README.TXT), and uses memory much better now (STABLE crashes sometimes when uninstalling with LBAcache STOP, and STABLE crashes when installed in a too small UMB). Also uses less DOS RAM than STABLE. While STABLE was limited to using 4.5MB of XMS, DEVEL now allows using 24.75MB with the BUF 99 option. Detection of harddisks on systems with several BIOSes is now better. For more information on everything, please read README.TXT before using LBAcache. Have fun! Please send benchmark results, comparing LBAcache to SMARTDRV and NWCACHE (make sure to use the same amounts of XMS or EMS, and the /X option with SMARTDRV or the /DELAY=OFF (alternatively /W=0) option with NWCACHE). I am especially interested in the effect of varying the /BL (or /BU or /BE) option value in NWCACHE or the /B option value in SMARTDRV, and the /E option value in SMARTDRV. Or send other suggestions for improving LBAcache (apart from: "please add delayed writing" or "please add CD-ROM caching" - too complicated for now). \--- Have fun with this one. I hope it runs fine, stable and efficient now, but as usual with drivers under GNU GPL you cannot know. But I promise that I did not include any intentional bugs or damage-causing code... Cheers, Eric.