Con Kolivas wrote:
Interbench is a Linux Kernel Interactivity Benchmark.

Direct download:
http://ck.kolivas.org/apps/interbench/interbench-0.24.tar.bz2
Web:
http://interbench.kolivas.org

Changes:
3 new loads were added:

Gaming benchmark:
This simulates an unlocked frame rate cpu intensive 3d gaming environment. It measures the latencies mean/sd/max and desired cpu percentage only. These should give a marker of frame rate stability (latencies), and maximum frame rates under different loads (desired cpu percentage). As this simulates an unlocked frame rate the deadlines met is meaningless. This does not accurately emulate a 3d game which is gpu bound, only a cpu bound one.

Hackbench:
Taken from Rusty's hackbench code as suggested by Ingo Molnar, this will run 'hackbench 50' repeatedly in the background when benchmarking real time performance.

Custom:
Based on the periodic scheduling used for audio/video, custom will allow you to specify a cpu percentage and frame rate of a custom workload, and this can be used to benchmark this workload's performance under normal scheduling, real time scheduling or it can be used as a background load.


Bugfixes:
Numerous floating point and overflow errors were tracked down and fixed. These are responsible for results like 'nan' and 4294... which is basically 2^32. Unfortunately the standard deviation reported in previous versions appears to have been bogus, but fortunately little value was placed on this result.

Error handling was made _much_ more robust - for example it was found that contrary to 'man sem_wait' but consistent with SUSv3, sem_wait can return -1 with -EINTR.

Lots of little tweaks.

I've just been perusing the code and noticed that there is a bug in calculating the latency standard deviation caused by the fact that the latency that is inserted into the samples array is not necessarily the same as that added to total_latency and could be quite a bit larger. So either the means are too small or the standard deviations are too large.

BTW, there's a method for calculating variances and means that avoids the need to keep an array of samples. Basically, in addition to the sum of the samples (sum_x, say) you keep a sum of the squares of the samples (sum_x_sq, say) and the number of samples (n, say). Then:

mean = sum_x / n
variance = (sum_x_sq - (mean * mean) / n) / (n - 1)
standard deviation = sqrt(variance)

Without the need to keep the array of samples there's no need worry about an arbitrary upper limit on the number of samples.

Peter
--
Peter Williams                                   [EMAIL PROTECTED]

"Learning, n. The kind of ignorance distinguishing the studious."
 -- Ambrose Bierce
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to