block: Add and use op_stat_group() for indexing disk_stat fields.
authorMichael Callahan <michaelcallahan@fb.com>
Wed, 18 Jul 2018 11:47:39 +0000 (04:47 -0700)
committerJens Axboe <axboe@kernel.dk>
Wed, 18 Jul 2018 14:44:20 +0000 (08:44 -0600)
commitddcf35d397976421a4ec1d0d00fbcc027a8cb034
treeebffc9e2971b6c7bc3223a1c584a9c81372a34bc
parentdbae2c551377b6533a00c11fc7ede370100ab404
block: Add and use op_stat_group() for indexing disk_stat fields.

Add and use a new op_stat_group() function for indexing partition stat
fields rather than indexing them by rq_data_dir() or bio_data_dir().
This function works similarly to op_is_sync() in that it takes the
request::cmd_flags or bio::bi_opf flags and determines which stats
should et updated.

In addition, the second parameter to generic_start_io_acct() and
generic_end_io_acct() is now a REQ_OP rather than simply a read or
write bit and it uses op_stat_group() on the parameter to determine
the stat group.

Note that the partition in_flight counts are not part of the per-cpu
statistics and as such are not indexed via this function.  It's now
indexed by op_is_write().

tj: Refreshed on top of v4.17.  Updated to pass around REQ_OP.

Signed-off-by: Michael Callahan <michaelcallahan@fb.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Joshua Morris <josh.h.morris@us.ibm.com>
Cc: Philipp Reisner <philipp.reisner@linbit.com>
Cc: Matias Bjorling <mb@lightnvm.io>
Cc: Kent Overstreet <kent.overstreet@gmail.com>
Cc: Alasdair Kergon <agk@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
13 files changed:
block/bio.c
block/blk-core.c
drivers/block/drbd/drbd_req.c
drivers/block/rsxx/dev.c
drivers/block/zram/zram_drv.c
drivers/lightnvm/pblk-cache.c
drivers/lightnvm/pblk-read.c
drivers/md/bcache/request.c
drivers/md/dm.c
drivers/md/md.c
drivers/nvdimm/nd.h
include/linux/bio.h
include/linux/blk_types.h