mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-03-01 14:14:47 +07:00
block/rsxx: use generic io stats accounting functions to simplify io stat accounting
Use generic io stats accounting help functions (generic_{start,end}_io_acct) to simplify io stat accounting. Signed-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
18c0b223cf
commit
fa573f7279
@ -112,37 +112,16 @@ static const struct block_device_operations rsxx_fops = {
|
|||||||
|
|
||||||
static void disk_stats_start(struct rsxx_cardinfo *card, struct bio *bio)
|
static void disk_stats_start(struct rsxx_cardinfo *card, struct bio *bio)
|
||||||
{
|
{
|
||||||
struct hd_struct *part0 = &card->gendisk->part0;
|
generic_start_io_acct(bio_data_dir(bio), bio_sectors(bio),
|
||||||
int rw = bio_data_dir(bio);
|
&card->gendisk->part0);
|
||||||
int cpu;
|
|
||||||
|
|
||||||
cpu = part_stat_lock();
|
|
||||||
|
|
||||||
part_round_stats(cpu, part0);
|
|
||||||
part_inc_in_flight(part0, rw);
|
|
||||||
|
|
||||||
part_stat_unlock();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void disk_stats_complete(struct rsxx_cardinfo *card,
|
static void disk_stats_complete(struct rsxx_cardinfo *card,
|
||||||
struct bio *bio,
|
struct bio *bio,
|
||||||
unsigned long start_time)
|
unsigned long start_time)
|
||||||
{
|
{
|
||||||
struct hd_struct *part0 = &card->gendisk->part0;
|
generic_end_io_acct(bio_data_dir(bio), &card->gendisk->part0,
|
||||||
unsigned long duration = jiffies - start_time;
|
start_time);
|
||||||
int rw = bio_data_dir(bio);
|
|
||||||
int cpu;
|
|
||||||
|
|
||||||
cpu = part_stat_lock();
|
|
||||||
|
|
||||||
part_stat_add(cpu, part0, sectors[rw], bio_sectors(bio));
|
|
||||||
part_stat_inc(cpu, part0, ios[rw]);
|
|
||||||
part_stat_add(cpu, part0, ticks[rw], duration);
|
|
||||||
|
|
||||||
part_round_stats(cpu, part0);
|
|
||||||
part_dec_in_flight(part0, rw);
|
|
||||||
|
|
||||||
part_stat_unlock();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bio_dma_done_cb(struct rsxx_cardinfo *card,
|
static void bio_dma_done_cb(struct rsxx_cardinfo *card,
|
||||||
|
Loading…
Reference in New Issue
Block a user