void __rdev_perf_init(device_t *disk_device) { exaperf_t *eh = serverd_get_exaperf(); exa_uuid_str_t device_uuid_str; uuid2str(&disk_device->uuid, device_uuid_str); disk_device->rdev_dur[__READ] = exaperf_duration_init_from_template(eh, "RDEV_DUR_READ", device_uuid_str, true); disk_device->rdev_dur[__WRITE] = exaperf_duration_init_from_template(eh, "RDEV_DUR_WRITE", device_uuid_str, true); disk_device->inter_arrival_repart[__READ] = exaperf_repart_init_from_template(eh, "RDEV_INTERARRIVAL_READ", device_uuid_str, NB_RDEV_REPART_INTER, limits_inter); disk_device->inter_arrival_repart[__WRITE] = exaperf_repart_init_from_template(eh, "RDEV_INTERARRIVAL_WRITE", device_uuid_str, NB_RDEV_REPART_INTER, limits_inter); disk_device->last_req_time[__READ] = 0; disk_device->last_req_time[__WRITE] = 0; }
exaperf_sensor_t *exaperf_repart_init(exaperf_t *eh, const char *name, unsigned int size, const double *limits) { return exaperf_repart_init_from_template(eh, name, name, size, limits); }
void __rdev_perf_init(rdev_perfs_t *rdev_perfs, const char *path) { exaperf_t *eh = exa_perf_instance_get(); rdev_perfs->rdev_dur[__READ] = exaperf_duration_init_from_template(eh, "RDEV_DUR_READ", path, true); rdev_perfs->rdev_dur[__WRITE] = exaperf_duration_init_from_template(eh, "RDEV_DUR_WRITE", path, true); rdev_perfs->inter_arrival_repart[__READ] = exaperf_repart_init_from_template(eh, "RDEV_INTERARRIVAL_READ", path, NB_RDEV_REPART_INTER, limits_inter); rdev_perfs->inter_arrival_repart[__WRITE] = exaperf_repart_init_from_template(eh, "RDEV_INTERARRIVAL_WRITE", path, NB_RDEV_REPART_INTER, limits_inter); rdev_perfs->last_req_time[__READ] = 0; rdev_perfs->last_req_time[__WRITE] = 0; }