Lines Matching refs:stats
187 void dm_stats_init(struct dm_stats *stats) in dm_stats_init() argument
192 mutex_init(&stats->mutex); in dm_stats_init()
193 INIT_LIST_HEAD(&stats->list); in dm_stats_init()
194 stats->last = alloc_percpu(struct dm_stats_last_position); in dm_stats_init()
196 last = per_cpu_ptr(stats->last, cpu); in dm_stats_init()
202 void dm_stats_cleanup(struct dm_stats *stats) in dm_stats_cleanup() argument
208 while (!list_empty(&stats->list)) { in dm_stats_cleanup()
209 s = container_of(stats->list.next, struct dm_stat, list_entry); in dm_stats_cleanup()
226 free_percpu(stats->last); in dm_stats_cleanup()
229 static int dm_stats_create(struct dm_stats *stats, sector_t start, sector_t end, in dm_stats_create() argument
312 mutex_lock(&stats->mutex); in dm_stats_create()
314 list_for_each(l, &stats->list) { in dm_stats_create()
330 mutex_unlock(&stats->mutex); in dm_stats_create()
337 mutex_unlock(&stats->mutex); in dm_stats_create()
344 static struct dm_stat *__dm_stats_find(struct dm_stats *stats, int id) in __dm_stats_find() argument
348 list_for_each_entry(s, &stats->list, list_entry) { in __dm_stats_find()
358 static int dm_stats_delete(struct dm_stats *stats, int id) in dm_stats_delete() argument
363 mutex_lock(&stats->mutex); in dm_stats_delete()
365 s = __dm_stats_find(stats, id); in dm_stats_delete()
367 mutex_unlock(&stats->mutex); in dm_stats_delete()
372 mutex_unlock(&stats->mutex); in dm_stats_delete()
391 static int dm_stats_list(struct dm_stats *stats, const char *program, in dm_stats_list() argument
403 mutex_lock(&stats->mutex); in dm_stats_list()
404 list_for_each_entry(s, &stats->list, list_entry) { in dm_stats_list()
415 mutex_unlock(&stats->mutex); in dm_stats_list()
533 void dm_stats_account_io(struct dm_stats *stats, unsigned long bi_rw, in dm_stats_account_io() argument
551 last = raw_cpu_ptr(stats->last); in dm_stats_account_io()
563 list_for_each_entry_rcu(s, &stats->list, list_entry) in dm_stats_account_io()
627 static int dm_stats_clear(struct dm_stats *stats, int id) in dm_stats_clear() argument
631 mutex_lock(&stats->mutex); in dm_stats_clear()
633 s = __dm_stats_find(stats, id); in dm_stats_clear()
635 mutex_unlock(&stats->mutex); in dm_stats_clear()
641 mutex_unlock(&stats->mutex); in dm_stats_clear()
666 static int dm_stats_print(struct dm_stats *stats, int id, in dm_stats_print() argument
682 mutex_lock(&stats->mutex); in dm_stats_print()
684 s = __dm_stats_find(stats, id); in dm_stats_print()
686 mutex_unlock(&stats->mutex); in dm_stats_print()
734 mutex_unlock(&stats->mutex); in dm_stats_print()
739 static int dm_stats_set_aux(struct dm_stats *stats, int id, const char *aux_data) in dm_stats_set_aux() argument
744 mutex_lock(&stats->mutex); in dm_stats_set_aux()
746 s = __dm_stats_find(stats, id); in dm_stats_set_aux()
748 mutex_unlock(&stats->mutex); in dm_stats_set_aux()
754 mutex_unlock(&stats->mutex); in dm_stats_set_aux()
761 mutex_unlock(&stats->mutex); in dm_stats_set_aux()