Enhanced partition statistics: procfs

Reports enhanced partition statistics in /proc/diskstats.

Signed-off-by: Jerome Marchand <jmarchan@redhat.com>

authored by Jerome Marchand and committed by Jens Axboe 28f39d55 34e8beac

+22 -6
+22 -6
block/genhd.c
··· 584 584 for (n = 0; n < gp->minors - 1; n++) { 585 585 struct hd_struct *hd = gp->part[n]; 586 586 587 - if (hd && hd->nr_sects) 588 - seq_printf(s, "%4d %4d %s %u %u %u %u\n", 589 - gp->major, n + gp->first_minor + 1, 590 - disk_name(gp, n + 1, buf), 591 - hd->ios[0], hd->sectors[0], 592 - hd->ios[1], hd->sectors[1]); 587 + if (!hd || !hd->nr_sects) 588 + continue; 589 + 590 + preempt_disable(); 591 + part_round_stats(hd); 592 + preempt_enable(); 593 + seq_printf(s, "%4d %4d %s %lu %lu %llu " 594 + "%u %lu %lu %llu %u %u %u %u\n", 595 + gp->major, n + gp->first_minor + 1, 596 + disk_name(gp, n + 1, buf), 597 + part_stat_read(hd, ios[0]), 598 + part_stat_read(hd, merges[0]), 599 + (unsigned long long)part_stat_read(hd, sectors[0]), 600 + jiffies_to_msecs(part_stat_read(hd, ticks[0])), 601 + part_stat_read(hd, ios[1]), 602 + part_stat_read(hd, merges[1]), 603 + (unsigned long long)part_stat_read(hd, sectors[1]), 604 + jiffies_to_msecs(part_stat_read(hd, ticks[1])), 605 + hd->in_flight, 606 + jiffies_to_msecs(part_stat_read(hd, io_ticks)), 607 + jiffies_to_msecs(part_stat_read(hd, time_in_queue)) 608 + ); 593 609 } 594 610 595 611 return 0;