On Mon, Apr 21, 2025 at 09:13:57PM +0800, Yu Kuai wrote: > > I'm not sure why this is needed or related, or even what additional > > distinction is added here. > > Because for rq-based device, there are two different stage, > blk_account_io_start() while allocating new rq, and > blk_mq_start_request() while issuing the rq to driver. > > When will we think the reqeust is inflight? For iostat, my anser is the > former one, because rq->start_time_ns is set here as well. And noted in > iostats api diskstats_show(/proc/diskstats) and part_stat_show > (/sys/block/sda/stat), inflight is get by part_in_flight, which is > different from disk sysfs api(/sys/block/sda/inflight).
Trying to express this in a not very obvious function name isn't going to work very well. Documenting your findings in comments is much better. > > > > I'd just change this helper to call blk_mq_count_in_driver_rw for > > blk-mq devices and remove the conditional from the sysfs code instead. > > That gives us a much more robust and easier to understand API. > > Ok, and another separate patch, right? Yes.