lockbus test seems to have gone missing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Stress-ng |
Invalid
|
Undecided
|
Unassigned |
Bug Description
At some point in a recent update, the lockbus test case in stress-ng seems to have disappeared:
Running stress-ng lockbus stressor for 300 seconds....
stress-ng: unrecognized option '--lockbus'
Try 'stress-ng --help' for more information.
return_code is 1
*******
** Error 1 reported on stressor lockbus!)
*******
I've checked on both s390 and amd64 and in both cases, stress-ng says --lockbus is not a valid option.
However, the man page shows --lockbus as a valid test:
--lockbus N
start N workers that rapidly lock and increment 64 bytes of randomly chosen memory from a 16MB mmap'd region (Intel x86 CPUs only). This will cause cacheline misses and stalling of CPUs.
The man page says intel x86 cpus, so I presume this is simply not an option for x86_64 and s390... OR has it been removed alltogether? It seems odd to have different builds of the same tool with different commandline options.
If this is the case, a better option, IMO would be something like this:
# stress-ng --lockbus
on x86: Test runs
on !x86: Returns a warning like: "This test case is not valid for this architecture" and exits 0 to avoid breaking jobs that are expecting non-zero to mean a legitimate testcase failure, not a case of an unsupported option.
Which version of stress-ng are you running?
$ stress-ng -h | head -1
stress-ng, version 0.05.23
$ stress-ng --lockbus 1 -t 1
stress-ng: info: [32563] dispatching hogs: 1 lockbus
stress-ng: info: [32563] cache allocate: default cache size: 3072K
stress-ng: info: [32563] successful run completed in 1.00s
$ uname -a
Linux lenovo 4.4.0-18-generic #34-Ubuntu SMP Wed Apr 6 14:01:02 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
..so it's definitely available on x86_64 arches.
When stress-ng builds it auto detects the availability of system calls, API features and arch specific features and disables stressors if these are not available. I guess I could add a build time option that when one uses a not implemented stressor feature it reports that it is not available and returns some kind of exit status to indicate this.
BTW, you need to consult the man page for the exist status values. non-zero does not necessarily imply total failure.