Changes in Sysbench 0.9.2 (best viewed in E.EXE with wordwrap on) 1) Fixed a problem when using an application called LTClock at release 0.4 or lower which caused a SYS3175 when the titlebar text was updated. LTClock 0.4 or lower adds extra text to the titlebar and it then extends beyond the 60 chars allowed by OS/2. 2) Fixed a problem where the current drive did not have enough space to perform file i/o tests. I was busy checking the available space on the next drive up (so if current drive C: has less than 10Mb free I was looking at D:'s space). This caused the File I/O menu item to be erroneously greyed out. 3) Added a fix for the Media Vision Reno 2x portable CD-ROM drive connected to an Adaptec APA-1460 SCSI-2 PCMCIA card. This drive doesn't respond correctly to the lock drive command and then CD tests are skipped. Added a specific check for "command not supported" from the lock. 4) Added the S3 Trio 764 video chip to the table of video chipsets. 5) Changed the font that's used on the display if displaying at 1600x12nn resolution on the screen. It was too small to read otherwise. 6) Fixed a paint problem that happened if you had more than 1 CD and it had spun down by the time the program queried it. Moved the CD drive query code inside the code that operates before the main window is displayed. It's now done when the "Please wait..." dialog window is showing. 7) Added code to query the number of processors on the machine. All CPU tests now spin off a separate _process_ for each processor and the benchmark totals are cumulative (ie, if processor 1 scores 120 and processor 2 scores 121, the CPU score is 241). This change does mean that CPU integer and floating point scores are NOT directly comparable to those from previous versions of Sysbench (though fairly close). All executables MUST be in the same directory for the CPU tests to function. The executables are: pmbflops.exe pmbhanoi.exe pmbheaps.exe pmblinpk.exe pmbsieve.exe pmb_dhry.exe pmb_fft.exe sysbench.exe Bumped the version number to 0.9.2 since I reckon I've finally made enough changes to this beast to justify it!! 8) Changed CPU utilisation code to use DosPerfSysCall if the version of Warp we're running on supports this API. This improves the accuracy of the CPU usage figures from somthing that's vaguely correct to something that's fairly reliable. If it cannot use this method of calculating CPU usage the line now says "percent (approx)" by the side of it instead of the normal "percent". 9) Finally bit the bullet and changed the DISK scoring methodology to take much less notice of the cache/bus transfer figures since these are largely meaningless. This means that total scores from previous versions may NOT be compared with those from 0.9.2 and later though the individual test figures themselves are largely the same. 10) Added code to check the invocation path so I can load the other EXE files from the same place. 11) Changed the display code around to add [+] and [-] signs to each group of tests. The default is to display each group in summary mode so that only the overall result figure is visible. Clicking anywhere on the line with a [+] sign next to it will expand the group so you can see all the test results. Similarly, clicking anywhere on the line with a [-] next to it will contract the group again. In addition each group will auto-expand as the tests are performed. If you've manually expanded the test group then it'll stay expanded otherwise it'll shrink itself again after the test group is complete. Saving the results to a file or to HTML is unaffected by these display options. 12) Added an "Expand all" menu choice to display in the same mode as previous versions with all results showing. This option is saved across executions of Sysbench. The default is to display unexpanded and the setting is now saved in SYSBENCH.INI and restored in the same mode as when you quit. 13) Moved some of the choices on the File menu around and added a couple of separators to structure the options better (maybe). 14) Changed display colours around and added code to centre the test group titles and pad the line with a horizontal line. Added a border line around each group of tests to delineate them from the other tests more clearly. 15) Changed the legend on the display of File I/O so it says R or W instead of Y and N to indicate whether it's reading or writing. Also changed the cache column to Cached and Uncached. Removed these legends from the header line for the test group. 16) Fixed a bug that allowed lots of blank lines to appear at the end of the display. 17) Made the main window open with animation enabled. 18) Adjusted some of the descriptions and titles of the tests to remove some unnecessary abbreviations. 19) Fixed a problem in FLOPS test that didn't compensate for the length of time of the test. It's now normalised to a 15 second interval (though runs for considerably longer). This means that the FLOPS test results will probably be much lower (in the order of 33%) than in prior releases but should be more consistent. 20) Added code to the graphics tests that terminates the current test (with no result) if the test window loses the focus during the test. This is primarily to fix a loop that occurred if the window was hidden. The self-adaptive nature of the test meant that it kept adjusting its run-time upwards because the test completed too quickly. If you then brought the window forward again it would spend about 10 minutes trying to complete the tests it was performing merrily when in the background. The fix I've put in for this is a bit of a kludge but better than having it take your entire system away with it for 10 minutes. 21) Hmmm, maybe I've found a different way around that... made all the graphics tests perform fullscreen PM. This does mean that the results are not comparable (though they are similar) to previous versions but since I've changed so much already... I've left the code to terminate the test if the focus is lost in there so if the effects are too much for you, you can hit Ctrl-ESC to get the task list and the test will terminate shortly thereafter. As part of this exercise I've also fixed some bugs that crept out of the woodwork in the horizontal lines, Bitblt and the (pretty much rewritten) text render. 22) Added an approximate speed rating to the CD i/o test "Average transfer rate" so it now says "Kilobytes/second (~10.4X)". This is worked out by dividing the kb/sec figure by 150Kb. 23) Split the CPU utilisation code off into a separate EXE file since I discovered that attempting to even load the program that made the DosPerfSysCall API call on a Warp 3 system without any fixpacks applied caused a TRAP 000E to occur. This now resides in SBCPUSE.EXE and anyone wishing to TRAP their (non-fixpacked Warp 3) system at will can just run this! Changes in Sysbench 0.9.1d 1) Added a progress indicator to the title bar when you're running multiple tests. It now says, for instance, "Sysbench 0.9.1d - Running All tests (DIVE M->S)". 2) Renamed all source files with >8 character names so that they'll fit on FAT formatted disks. 3) Attempted to fix a bug with >4Gb disks showing up in the selection menu for the Fileio tests as (size-4Gb). Not sure if I've been successful since I don't have a single partition >4Gb to test this. 4) Ported Kai Uwe Rommel's new Diskio 1.13 code into Sysbench. Separated most of the specific code for Sysbench into a new source file to make future ports easier. 5) Re-arranged data on screen so that Disk statistics appear at the end of the display. Added tests for CD drives to perform similar tests to those done for hard disks (code also from Diskio 1.13). 6) Re-arranged menu items and order of tests to match the new order on-screen. Added code to list all disk and CD devices on the screen and menu items to perform disk tests on all disks and the same for CD's. 7) Added a status indicator to the "Initialising" title bar as startup now takes some time since it scans all available disks and CD drives. If these are powered down we have to wait for them to spin up. 8) Added menu item to save results in HTML format so they can be posted to the Sysbench results centre and added to the list there easily. The results file generated using this method can be displayed using any (tested using Netscape/2 and WebEx) Web browser. 9) Changed the machine configuration dialog into a notebook with two pages. The first page has all of the data that the old dialog window used to contain. The second page is a list of all disk drives and CD drives in the system. Each line on the second page can be doubleclicked to display a dialog window that allows you to enter the description of the drive. This data is saved to the SYSBENCH.INI file. This data is now displayed in the text and HTML results files. 10) Fixed a potential problem with the machine configuration notebook being displayed when the INI file is empty (eg on fresh installs). The data about the machine is still being gathered at this point so some disks were not listed. 11) Changed the serialisation method between threads in the File I/O tests to better cater for use on SMP machines. Since I don't have Warp Server Advanced I'm unable to test this but I'm told it still doesn't work. Final nailing of this bug is pending IBM releasing a Warp SMP client o/s. Works fine on UP machines. 12) Added code to identify the manufacturer of the BIOS on the machine, the video card chipset and memory installed. If the video manufacturer and/or chip type is not identified correctly, you can do a save results and look at the manufacturer code and chip type in there and send them to me for inclusion in the next release. 13) Added an "end of all tests" beep and the option to turn it on/off. 14) Added a new verb to the commandline to save HTML format results on an automatic invocation. Now you can use /H:filename 15) Disabled the automatic display for machine properties when the program is run using /ALL. Otherwise it just sits there looking stupid and affects the results. 16) Fixed a bug where Fileio would be disabled if Sysbench was run from a LAN drive. Changes in Sysbench 0.9.1c 1) fixed problems with disks larger than 2Gb whose size didn't display correctly when the number hit 2Gb and then went negative. When I acquired a 4.3Gb disk, I rewrote this fix again as it still didn't work correctly. It should now handle disks up to the terrabyte range so it should last a couple of years at least :-) 2) Added a new suite of disk tests. The existing ones perform i/o directly to the disk bypassing any and all operating system caching. I've now added a longish set of tests that read and write both sequentially and randomly at varying blocksizes with caching enabled and disabled. The idea of these new tests is so that you can gain some idea about the performance of your machine using different cache sizes and parameters. Compare and contrast the results obtained after adjusting things and see if they've made it better or worse. The new tests each run for 15 seconds and there are 40 of them so they add quite a bit to the elapsed time of the benchmark. This benchmark isn't really designed to be used to compare different systems, more so you can see the effect that tuning the file system cache has on your own. 3) If you are on a network and have remote drives mapped the startup of Sysbench may take some time. It queries all attached drives and checks them to see if the filesystem is eligible for the new file tests. If your LAN connections have timed out it has to wait for OS/2 to re-make them before it can continue. If the host machine is down the connection attempt needs to time out. I don't know if I can make this wait-time any shorter since, as far as I am aware, the only way to find out if it's a LAN drive is to query it (catch-22). What I've done instead is to put up a nice little dialog window with a flashing LED on it to keep you all amused while it does its stuff ;-). You'll also see this if you have a drive without a CD in it. 4) Added a bunch of new code that monitors swapper.dat during the benchmark. It also looks at various settings in CONFIG.SYS and recommends changes that you might want to make. It looks at speed of processor and MAXWAIT, size of RAM and diskcaches and how much space in each file system you have. If you quit the application using File/Quit rather than Alt+F4 or the Warp 4 Xit box you'll see these recommendations if any are to be made. If you use Alt+F4 or the exit button then you will not see these recommendations (such as they are) at all. I've deliberately coded it this way so that there's a fast exit way out of the app if you want it. 5) Added an option to the "File" menu to allow you to specify various data elements that will appear in the saved results. This includes machine name, motherboard, chipset, manufacturer, cache, processor, graphics card and disk controller. You can use up to 100 characters in each of these fields, freeform text. This data is written to a SYSBENCH.INI file and remembered for the next time you run the program. If the file doesn't exist, Sysbench will display the dialog window automatically when you start it. Subsequent runs should be as normal. 6) Added a couple of command line options for the program so you can run the suite of tests without intervention. These are /ALL - run all tests and then quit saving the results to the current directory as RESULT.TXT /R:filename - specify the filename to which to save results. It must specify a pre-existing directory if a directory name is given. Running SYSBENCH /all /r:y:\sysbench\res091c.686 will run all tests and save the results to the file \sysbench\res091c.686 on the Y: drive. 7) Added "mnemonic" keys to all menu options so that you can now access the entire range using the keyboard only. 8) Corrected the amount of installed RAM which was under reported by 384Kb. Results from this release should be comparable to those from any release back to 0.9.1. Sysbench 0.9.1b V0.9.1b: fixed a display problem when scrolling through the window using the arrow keys on some machines. Symptoms were repeated lines and shadow data. Fixed various divide by zero problems that hit the Linpack CPU benchmark on fast machines. Fixed DIVE problem at 800x600 on video cards that use bank switching. This caused the display to be garbage on first and third tests and it to disappear with a SYS3175 during the second DIVE test. Disabled DIVE tests on releases of OS/2 prior to Warp as reports indicate it fails or crashes the machine on 2.11. Added information to printouts to identify more about the machine being tested. This adds swapfile current and initial sizes and video resolution/colour depths to the current RAM size, priority, maxwait and co-processor listings. Also listed some data about video characteristics that will aid debugging any future video problems. Changed coding in all files to eliminate compilation warnings and informational messages. The whole suite now compiles cleanly using IBM's VisualAge C++ 3.0 product. Sysbench 0.9.1a Ooops. Recompiled with the GA version of VisualAge C++ with all the latest fixes on and finally found the switch to turn off debug mode! (Duh!). Cuts the size of the EXE in half and then some and pushes the CPU and memory benchmarks up by 40%. Corrected bug that causes a SYS3175 on machines with video memory that don't have enough space to fit the same number of vertical lines as horizontal lines. Machines at 800x600x64K with only 1Mb would hit this - maybe others too. Bug fixes from original code I have revised various routines to fix some bugs, notably some of the CPU benchmarks returned impossible values on very fast machines as some of the passes through the code completed before the timer could register a value.... dividing by zero gives some very strange results! The memory tests also gave invalid values on some of the smaller values. Now uses DISKIO 1.9 code In addition, I have incorporated the latest DiskIO benchmark code (1.9) into this release and have modified the display to include some of the new values reported by this. I have doubts about my implementation of the concurrent disk i/o and CPU test as it returns results sometimes that are wildly out of kilter with the norm. Treat this one with suspicion for the present ;-). Thanks go to Kai Uwe Rommel for this code - bugs are mine. DIVE Tests now enabled I have enabled the DIVE tests and checked them out on both my machines. I have written a lot of code for bank-switched graphics cards and it seems to work fine. In case it's not immediately obvious what these tests look like in use, the first should move the entire screen image downwards with the image that disappears from the bottom of the screen re-appearing from the top. The movement should be quite smooth. The second test squashes the screen image from top and bottom and eventually flips it over completely upside-down, then back up the right way and finally stretches and compresses various parts of the image. If you see something radically different from this, I either haven't described it very well or you have a bug. I am not sure what Henrik's intent was when he wrote the original DIVE programs but I have eliminated two of the tests from the program as they seemed to be identical to each other. As it is, two of the tests actually do identical things (the first and third) but report their values in different ways, one as MB/second and one as frames/second. I've left them both there as this seemed quite useful. I didn't think it useful to run the same test four times... To run the DIVE tests you must have a graphics card that's enabled for it. My ATI GPT does not support DIVE when running at 1024x768x16.7M colours - it's necessary to reset to a lower colour depth in order to run the DIVE tests. If you don't have a card that supports DIVE, the tests will just blink the screen momentarily and the test will be skipped.