[openib-general] cycles_to_units is incorrect in rdma_lat, rdma_bw.

Grant Grundler iod00d at hp.com
Thu Jun 9 17:33:52 PDT 2005


On Thu, Jun 09, 2005 at 04:14:17PM -0700, Shirley Ma wrote:
> I used cyclets_to_units() get 

cycles_to_units is a FP value, not a function.
get_cpu_mhz() is probably what you meant.

What does "cat /proc/cpuinfo" say on the boxes you see this on?

> Bandwidth peak (#0 to #972): 1852.72 MByte/sec
> Bandwidth average: 1852.67 MByte/sec

Does rdma_lat have the same issue?
What does rdma_lat report?

> This per secs cycles value is incorrect.

Yes, but I'd like to know what /proc/cpuinfo reports
since that's what it's based on.

> Either change the measurment to 
> gettimeofday() to measure MB/s or
> measure the how many cycles per sec by doing something like that:
> 
> #define MEASURE_TIME 16
> 
> get_cycles(tbegin);
> sleep(MEASURE_TIME);
> get_cycles(tend)
> cycles_to_units = (tend-tbegin)/MEASURE_TIME
> 
> to caculate the right MB/s throughput. 

I think adding such a calibration to get_cpu_mhz()
so we can warn if /proc/cpuinfo data doesn't agree with
gettimeofday() and get_cycles().

Or use gettimeofday() for outside major loops and see how
well that correlates to the sum of the get_cycles() calls.

thanks,
grant



More information about the general mailing list