824{
827 long long last_value[2];
828 long long cycles_this_slice = 0;
831
833
834
836
837 thread_data = mpx_events->
mythr;
839
843
845 ? last_value[0] : last_value[1];
846
847
848
849
852
855 }
856 else {
858 }
859#ifdef MPX_NONDECR_HYBRID
860
861
862
863
864
865
866
867 if (called_by_stop) {
868
869
870
871
876 ( cycles_this_slice +
880 ( "%s:%d:: Inactive %d, stop values=%lld (est. %lld, rate %g, cycles %lld)\n",
883 cycles_this_slice + thread_data->
total_c -
885 } else {
891 ( "%s:%d:: -Active- %d, stop values=%lld (est. %lld, rate %g, cycles %lld)\n",
895 }
896 }
897 }
898#endif
899 }
900
901 mpx_events->
stop_c = thread_data->
total_c + cycles_this_slice;
902
903
905 }
906
907
910 long long elapsed_slices = 0;
913
914
915
916
917
918
921
924 elapsed_slices ? ( elapsed_values / elapsed_slices ) : 0;
925 }
926 MPXDBG(
"%s:%d:: event %d, values=%lld ( %lld - %lld), cycles %lld\n",
927 __FILE__, __LINE__,
i,
928 elapsed_values,
931 }
932
934}
Read hardware counters from an event set.
static long long values[NUM_EVENTS]
struct _masterevent * mev[PAPI_MAX_SW_MPX_EVENTS]
long long stop_values[PAPI_MAX_SW_MPX_EVENTS]
long long start_values[PAPI_MAX_SW_MPX_EVENTS]
long long start_hc[PAPI_MAX_SW_MPX_EVENTS]
struct _threadlist * mythr