lkml.org 
[lkml]   [2007]   [Jul]   [11]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
    /
    DateWed, 11 Jul 2007 01:02:38 -0400
    FromMathieu Desnoyers <>
    SubjectRe: [patch 10/10] *Tests* Scheduler profiling - Use immediate values
    Hi,
    
    * Li, Tong N (tong.n.li@intel.com) wrote:
    > Mathieu,
    > 
    > > 	cycles_per_iter = 0.0;
    > > 	for (i=0; i<NR_TESTS; i++) {
    > > 		time1 = get_cycles();
    > > 		for (j = 0; j < NR_ITER; j++) {
    > > 			testval = &array[random() % ARRAY_SIZE];
    > > 		}
    > > 		time2 = get_cycles();
    > > 		cycles_per_iter += (time2 - time1)/(double)NR_ITER;
    > > 	}
    > > 	cycles_per_iter /= (double)NR_TESTS;
    > > 	printf("Just getting the pointer, doing noting with it, cycles
    > per
    > > iteration (mean) : %g\n", cycles_per_iter);
    > > 
    > 
    > Some comments on the code:
    > 
    > 1. random() is counted in cycle_per_iter, which can skew the results.
    > You could pre-compute the random addresses and store them in an array.
    > Then, during the actual timing, walk the array:
    > 
    > index = 0;
    > for (i = 0; i < ARRAY_SIZE; i++)
    >       index = *(int *)(array + index * CACHE_LINE_SIZE);
    > 
    > 2. You may want to flush the cache before the timing starts.
    > 
    > 3. You want to access memory at the cache-line granularity to avoid
    > addresses falling into the same line (and thus unwanted hits).
    > 
    
    This is true, my test code was not perfect. Thanks for the hints.
    The improvements you propose will clearly accelerate my test program
    quite a bit, but I doubt that it will cause even higher memory
    latencies. Although using a random() at each memory access is slow, it
    should give a good enough dispersion. And since do 3 cache trashing
    passes in my code, I make sure that each and every cache lines are
    trashed. In fact, since I do multiple accesses to each cache line (as
    you noted in point 3), it takes more time, but makes it more certain
    that I hit all of them at least once.
    
    > If you do these, I expect you'll get a higher memory latency.
    > 
    
    I will use these comments in my next tests, thanks. :) However, I still
    feel confident that the numbers I got from my run still hold.
    
    Mathieu
    
    >   tong
    > 
    
    -- 
    Mathieu Desnoyers
    Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
    OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    
    
    \
     
     \ /
      Last update: 2007-07-11 07:11    [from the cache]
    ©2003-2008