__u64 event;
__u64 umask;
struct perf_event_attr pe;
- struct membw_read_format return_value;
int fd;
};
* Take overflow into consideration before calculating total bandwidth.
*/
for (imc = 0; imc < imcs; imc++) {
+ struct membw_read_format measurement;
struct imc_counter_config *r =
&imc_counters_config[imc];
- if (read(r->fd, &r->return_value,
- sizeof(struct membw_read_format)) == -1) {
+ if (read(r->fd, &measurement, sizeof(measurement)) == -1) {
ksft_perror("Couldn't get read bandwidth through iMC");
return -1;
}
- __u64 r_time_enabled = r->return_value.time_enabled;
- __u64 r_time_running = r->return_value.time_running;
+ __u64 r_time_enabled = measurement.time_enabled;
+ __u64 r_time_running = measurement.time_running;
if (r_time_enabled != r_time_running)
of_mul_read = (float)r_time_enabled /
(float)r_time_running;
- reads += r->return_value.value * of_mul_read * SCALE;
+ reads += measurement.value * of_mul_read * SCALE;
}
*bw_imc = reads;