Sys_basher is offered free of charge by Polybus Systems corporation under a BSD style open source license.
Polybus offers Intellectual Property including InfiniBand Link Layer and Transport Layer cores. Polybus also provides FPGA and ASIC design services.
Polybus is the leading supplier of InfiniBand cores for use in Xilinx Virtex2P, Virtex4FX, Virtex5FXT and Altera Stratix2GX and Stratix4GX FPGAs as well for ASICs. We offer an IBA Release 1.1 compliant Link Layer core (10GBit/Second), an IBA Release 1.2 compliant Double Data Rate Link Layer core (20GBit/Second), 1.2 compliant 8X QDR LInk Layer Cores (80GBits/Sec) , and SDR and DDR UC Target Channel Adapters.
If you are looking for FPGA or ASIC design consulting or would like more information about our cores please contact Joshua Rosen bjrosen@polybus.com, (978) 828-0944.
sys_basher may be downloaded here,
Sys_basher is a multithreaded memory and disk exerciser. It's purpose is to provide a system reliablity test, it is not designed to identify individual failed components. Sys_basher can keep all the cores in a system running at 100% capacity using 100% of the memory bandwidth. The floating point tests use the FP multipliers, adders, and memory system at the maximum possible rate, this should heat the CPU as much as any application will. It is also capable of doing continuous disk I/O to upto 32 separate directories.
Sys_basher is a 64 bit program, it should have no trouble running on systems with > 4G of RAM. If it is compiled on a 32 bit system it will only be able to test about 3G of RAM which is the limit imposed by the 32 bit Linux kernel. The program is POSIX compliant so it should work on any *nix system, although it's only been tested on Fedora 9,10, CentOS 5.2 and Cygwin on WinXP.
Sys_basher can spawn multiple threads, each running the selected suite of tests. The default number of Cores supported is 16 however this number can be changed by modifying the MAX_CORES value in sys_structs.h and recompiling. The default number of threads is the number of CPUs in the system, the thread limit can be changed with the --threads switch which allows the user to specify from 1 to MAX_CORES threads.
Sys_basher can test most of the physical memory on a system. The default is to test only the free memory however a switch is provided which allows the user to set the test array size to the total memory size minus a specified number of megabytes. If the test array is set to totalmem - 300 MBytes, or smaller, the memory tests will usually run without swapping. To increase the amount of memory that's testable it is suggested that you run at INIT 3 (no X) with no other programs running.
As of rev 1.0.7 sys_basher logs CPU and system temperatures. The current temperatures are displayed after each test completes and a table of maximum temperatures is displayed at the end ot the test. Temperature logging is available for Linux only and requires the installation of lm-sensors and the libsensors development library.
To run without swapping,
sys_basher -totalmem 300
If swapping is desired then set the reserve space to 0,
sys_basher -totalmem 0
------------------------------------------------------------------------------------------------------------------
Building sys_basher.
Sys_basher can be built with or without sensors.
To build it with sensors you will have to install the libsensors development package.
For Redhat and Clones yum -y install lm_sensors-devel
For Ubuntu sudo apt-get libsensors-dev
To build it without you will need to do a make nosensors instead of make or make sys_basher
make sys_basher
make nosensors Make without lm-sensors
make win Make for Cygwin
make install Make sys_basher and move it to /usr/bin
------------------------------------------------------------------------------------------------------------------
Report Files
Sys_basher generates a report in two formats, .rpt and .csv. The .rpt format is human readable text file format, .csv is a comma separated format thats allows the user to import the results into a spreadsheet.
To generate the report files use the -r switch,
sys_basher -r report
------------------------------------------------------------------------------------------------------------------
Verbosity control
The default output from sys_basher is simple pass/fail status. The -v switch adds detailed test by test status results including the temperature after each test. The information in the verbose mode is also available in the report files so for healthy systems it is recommended that you don't use the -v switch. For unstable systems the verbose mode can be very useful in determining the source of the unreliability so for systems that crash it is recommended that the -v switch be used and that the output be redirected to a log file,
sys_basher -v >& log
------------------------------------------------------------------------------------------------------------------
Running sys_basher
sys_basher [options]
options:
-d,--disk Run disk tests only
-du,--dutycyle Dutycycle n Duty cycle in percent, the default is 100
Inserts Sleeps between tests to reduce the overall CPU duty cycle
-f,--fast Skip the memory tests, just run the disk, fp and memory bandwidth tests.
-fp,--fp Run floating point tests only
-h,--help Print this help message
-ho #,--hours # Run for at least # hours.
-i,--int Run integer tests only
-l #,--loops # Number of iterations.
-mb,--mbandwidth Run memory bandwidth only
-m,--mem Run memory tests only
-mi,--minutes # Run for at least # minutes.
-p n0..nx,--path n0..nx Directory path(s) for the disk tests, upto 32 paths maybe specified. The default path is ./
-r name,--report name Report file name, generate name.rpt and name.csv. Default is not report
-s,--swap Force use of swap space. This option is incredibly slow.
-th,--threads n Maximum number of threads. Spawn 1-n threads, the default is 2.
-t,--totalmem n Allocate total ram - (n * 1M) for testing. If -totalmem is not called then the free space is used.
-v,--verbose Verbose, print detailed results, default is PASS/FAIL only.
-ve,--version Version number
------------------------------------------------------------------------------------------------------------------
Examples,
Run benchmarks and fast tests only,
sys_basher -fast >& log &
Run two iterations, use totalmem - 256M, do disk tests on 2 partitions,
sys_basher -loops 2 -path /fcx/projects /home/bjrosen -totalmem 256 >& log.$1 &
Run for 8 hours, use totalmem - 256M, do disk tests on 4 partitions, set the maximum thread count to 4 and loop on the maximum threads
sys_basher -hours 8 -th 4 -tm -path /fcw/projects /fcx/projects /fcx/projects /home/bjrosen -totalmem 256 >& log.$1 &
Force swapping,
sys_basher -totalmem 0 >& log &
------------------------------------------------------------------------------------------------------------------
Revision History
1.0.1 First version
1.0.2 Added disk tests
1.0.3 Added No sync mode for disk tests in addition to the sync mode that was introduced into 1.0.2
Added -hours, -minutes and -path switches
Added floating point tests
Improved the output formatting
1.0.4 Added check to see that malloc succeeded. Fix FP Sum of Products tests.
There are some issues with the Disk Tests which will be addressed in the next rev.
If the disk tests fail DON'T PANIC, it's probably my code.
1.0.5 Fixed disk tests and improved FP tests.
1.0.6 Added duty cycle control.
1.0.7 Added CPU Temperature monitoring, Cygwin support
1.0.8 Added integer arithmetic tests. Fixed Cygwin bug.
1.0.9 Added -memonly
1.1.0 Added report files, added 16 bit integer tests, added verbose mode switch. Made the number of supported cores scalable
Cygwin version now does disk I/O and uses POSIX threads
1.1.1 Cleaned up the stdio output. Switches can be preceeded by either - or --.
Added transcript file, sys_basher.log
1.1.2 Added support for libsensors3
1.1.5 Added -tm switch which loops on the maximum number of threads. Improved memory tests. All integer and FP tests now
run for a minimum of .5 seconds. The default number of threads is set to the number of CPUs.
1.1.6 A little cleanup in the report file, no test or feature changes.
|