• Boris Burkov's avatar
    blk-cgroup: show global disk stats in root cgroup io.stat · ef45fe47
    Boris Burkov authored
    In order to improve consistency and usability in cgroup stat accounting,
    we would like to support the root cgroup's io.stat.
    
    Since the root cgroup has processes doing io even if the system has no
    explicitly created cgroups, we need to be careful to avoid overhead in
    that case.  For that reason, the rstat algorithms don't handle the root
    cgroup, so just turning the file on wouldn't give correct statistics.
    
    To get around this, we simulate flushing the iostat struct by filling it
    out directly from global disk stats. The result is a root cgroup io.stat
    file consistent with both /proc/diskstats and io.stat.
    
    Note that in order to collect the disk stats, we needed to iterate over
    devices. To facilitate that, we had to change the linkage of a disk_type
    to external so that it can be used from blk-cgroup.c to iterate over
    disks.
    Suggested-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarBoris Burkov <boris@bur.io>
    Acked-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    ef45fe47
blk-cgroup.c 49.2 KB