Home | History | Annotate | Line # | Download | only in benchmark
      1 // SPDX-FileCopyrightText: 2009 Mathieu Desnoyers <mathieu.desnoyers (at) efficios.com>
      2 //
      3 // SPDX-License-Identifier: GPL-2.0-or-later
      4 
      5 /*
      6  * Userspace RCU library - test cycles per loop
      7  */
      8 
      9 #include <urcu/arch.h>
     10 #include <stdio.h>
     11 
     12 #define NR_LOOPS 1000000UL
     13 
     14 static inline void loop_sleep(unsigned long loops)
     15 {
     16 	while (loops-- != 0)
     17 		caa_cpu_relax();
     18 }
     19 
     20 int main()
     21 {
     22 	caa_cycles_t time1, time2;
     23 
     24 	time1 = caa_get_cycles();
     25 	loop_sleep(NR_LOOPS);
     26 	time2 = caa_get_cycles();
     27 	printf("CPU clock cycles per loop: %g\n", (time2 - time1) /
     28 						  (double)NR_LOOPS);
     29 	return 0;
     30 }
     31