Lines Matching refs:du
24 static void disk_util_free(struct disk_util *du)
26 if (du == last_du)
29 while (!flist_empty(&du->slaves)) {
32 slave = flist_first_entry(&du->slaves, struct disk_util, slavelist);
37 fio_mutex_remove(du->lock);
38 free(du->sysfs_root);
39 sfree(du);
42 static int get_io_ticks(struct disk_util *du, struct disk_util_stat *dus)
51 dprint(FD_DISKUTIL, "open stat file: %s\n", du->path);
53 f = fopen(du->path, "r");
63 dprint(FD_DISKUTIL, "%s: %s", du->path, p);
78 dprint(FD_DISKUTIL, "%s: stat read ok? %d\n", du->path, ret == 1);
84 static void update_io_tick_disk(struct disk_util *du)
89 if (!du->users)
91 if (get_io_ticks(du, &__dus))
94 dus = &du->dus;
95 ldus = &du->last_dus;
109 dus->s.msec += mtime_since(&du->time, &t);
110 memcpy(&du->time, &t, sizeof(t));
117 struct disk_util *du;
126 du = flist_entry(entry, struct disk_util, list);
127 update_io_tick_disk(du);
139 struct disk_util *du;
144 du = flist_entry(entry, struct disk_util, list);
146 if (major == du->major && minor == du->minor) {
148 return du;
287 struct disk_util *du, *__du;
293 du = smalloc(sizeof(*du));
294 if (!du)
297 memset(du, 0, sizeof(*du));
298 INIT_FLIST_HEAD(&du->list);
299 l = snprintf(du->path, sizeof(du->path), "%s/stat", path);
300 if (l < 0 || l >= sizeof(du->path)) {
302 path, sizeof(du->path) - 1);
303 sfree(du);
306 strncpy((char *) du->dus.name, basename(path), FIO_DU_NAME_SZ - 1);
307 du->sysfs_root = strdup(path);
308 du->major = majdev;
309 du->minor = mindev;
310 INIT_FLIST_HEAD(&du->slavelist);
311 INIT_FLIST_HEAD(&du->slaves);
312 du->lock = fio_mutex_init(FIO_MUTEX_UNLOCKED);
313 du->users = 0;
322 if (!strcmp((char *) du->dus.name, (char *) __du->dus.name)) {
323 disk_util_free(du);
329 dprint(FD_DISKUTIL, "add %s to list\n", du->dus.name);
331 fio_gettime(&du->time, NULL);
332 get_io_ticks(du, &du->last_dus);
334 flist_add_tail(&du->list, &disk_list);
337 find_add_disk_slaves(td, path, du);
338 return du;
440 struct disk_util *du;
449 du = disk_util_exists(majdev, mindev);
450 if (du)
451 return du;
488 f->du = __init_disk_util(td, f);
562 struct disk_util *du;
564 du = flist_first_entry(&disk_list, struct disk_util, list);
565 flist_del(&du->list);
566 disk_util_free(du);
674 struct disk_util *du;
679 du = flist_entry(entry, struct disk_util, list);
681 aggregate_slaves_stats(du);
682 json_array_add_disk_util(&du->dus, &du->agg, array);
690 struct disk_util *du;
715 du = flist_entry(entry, struct disk_util, list);
717 aggregate_slaves_stats(du);
718 print_disk_util(&du->dus, &du->agg, terse, out);