Lines Matching refs:shared
185 static int dm_stat_in_flight(struct dm_stat_shared *shared)
187 return atomic_read(&shared->in_flight[READ]) +
188 atomic_read(&shared->in_flight[WRITE]);
216 struct dm_stat_shared *shared;
222 shared = &s->stat_shared[ni];
223 if (WARN_ON(dm_stat_in_flight(shared))) {
230 atomic_read(&shared->in_flight[READ]),
231 atomic_read(&shared->in_flight[WRITE]));
522 static void dm_stat_round(struct dm_stat *s, struct dm_stat_shared *shared,
536 difference = now - shared->stamp;
540 in_flight_read = (unsigned int)atomic_read(&shared->in_flight[READ]);
541 in_flight_write = (unsigned int)atomic_read(&shared->in_flight[WRITE]);
550 shared->stamp = now;
558 struct dm_stat_shared *shared = &s->stat_shared[entry];
586 dm_stat_round(s, shared, p);
587 atomic_inc(&shared->in_flight[idx]);
591 dm_stat_round(s, shared, p);
592 atomic_dec(&shared->in_flight[idx]);
711 static void __dm_stat_init_temporary_percpu_totals(struct dm_stat_shared *shared,
719 dm_stat_round(s, shared, p);
722 shared->tmp.sectors[READ] = 0;
723 shared->tmp.sectors[WRITE] = 0;
724 shared->tmp.ios[READ] = 0;
725 shared->tmp.ios[WRITE] = 0;
726 shared->tmp.merges[READ] = 0;
727 shared->tmp.merges[WRITE] = 0;
728 shared->tmp.ticks[READ] = 0;
729 shared->tmp.ticks[WRITE] = 0;
730 shared->tmp.io_ticks[READ] = 0;
731 shared->tmp.io_ticks[WRITE] = 0;
732 shared->tmp.io_ticks_total = 0;
733 shared->tmp.time_in_queue = 0;
736 memset(shared->tmp.histogram, 0, (s->n_histogram_entries + 1) * sizeof(unsigned long long));
740 shared->tmp.sectors[READ] += READ_ONCE(p->sectors[READ]);
741 shared->tmp.sectors[WRITE] += READ_ONCE(p->sectors[WRITE]);
742 shared->tmp.ios[READ] += READ_ONCE(p->ios[READ]);
743 shared->tmp.ios[WRITE] += READ_ONCE(p->ios[WRITE]);
744 shared->tmp.merges[READ] += READ_ONCE(p->merges[READ]);
745 shared->tmp.merges[WRITE] += READ_ONCE(p->merges[WRITE]);
746 shared->tmp.ticks[READ] += READ_ONCE(p->ticks[READ]);
747 shared->tmp.ticks[WRITE] += READ_ONCE(p->ticks[WRITE]);
748 shared->tmp.io_ticks[READ] += READ_ONCE(p->io_ticks[READ]);
749 shared->tmp.io_ticks[WRITE] += READ_ONCE(p->io_ticks[WRITE]);
750 shared->tmp.io_ticks_total += READ_ONCE(p->io_ticks_total);
751 shared->tmp.time_in_queue += READ_ONCE(p->time_in_queue);
756 shared->tmp.histogram[i] += READ_ONCE(p->histogram[i]);
765 struct dm_stat_shared *shared;
769 shared = &s->stat_shared[x];
771 __dm_stat_init_temporary_percpu_totals(shared, s, x);
774 p->sectors[READ] -= shared->tmp.sectors[READ];
775 p->sectors[WRITE] -= shared->tmp.sectors[WRITE];
776 p->ios[READ] -= shared->tmp.ios[READ];
777 p->ios[WRITE] -= shared->tmp.ios[WRITE];
778 p->merges[READ] -= shared->tmp.merges[READ];
779 p->merges[WRITE] -= shared->tmp.merges[WRITE];
780 p->ticks[READ] -= shared->tmp.ticks[READ];
781 p->ticks[WRITE] -= shared->tmp.ticks[WRITE];
782 p->io_ticks[READ] -= shared->tmp.io_ticks[READ];
783 p->io_ticks[WRITE] -= shared->tmp.io_ticks[WRITE];
784 p->io_ticks_total -= shared->tmp.io_ticks_total;
785 p->time_in_queue -= shared->tmp.time_in_queue;
793 p->histogram[i] -= shared->tmp.histogram[i];
853 struct dm_stat_shared *shared;
880 shared = &s->stat_shared[x];
885 __dm_stat_init_temporary_percpu_totals(shared, s, x);
890 shared->tmp.ios[READ],
891 shared->tmp.merges[READ],
892 shared->tmp.sectors[READ],
893 dm_jiffies_to_msec64(s, shared->tmp.ticks[READ]),
894 shared->tmp.ios[WRITE],
895 shared->tmp.merges[WRITE],
896 shared->tmp.sectors[WRITE],
897 dm_jiffies_to_msec64(s, shared->tmp.ticks[WRITE]),
898 dm_stat_in_flight(shared),
899 dm_jiffies_to_msec64(s, shared->tmp.io_ticks_total),
900 dm_jiffies_to_msec64(s, shared->tmp.time_in_queue),
901 dm_jiffies_to_msec64(s, shared->tmp.io_ticks[READ]),
902 dm_jiffies_to_msec64(s, shared->tmp.io_ticks[WRITE]));
907 DMEMIT("%s%llu", !i ? " " : ":", shared->tmp.histogram[i]);