diff options
author | Mike Snitzer <[email protected]> | 2022-02-17 23:40:32 -0500 |
---|---|---|
committer | Mike Snitzer <[email protected]> | 2022-02-21 15:36:33 -0500 |
commit | 0fbb4d93b38bce1f8235aacfa37e90ad8f011473 (patch) | |
tree | 0e952a46f944ff4559ebfd5d0579b1d766ef54cb /scripts/gdb/linux/mm.py | |
parent | e6fc9f62ce6e412acb1699a5373174aa42ca2bd3 (diff) |
dm: add dm_submit_bio_remap interface
Where possible, switch from early bio-based IO accounting (at the time
DM clones each incoming bio) to late IO accounting just before each
remapped bio is issued to underlying device via submit_bio_noacct().
Allows more precise bio-based IO accounting for DM targets that use
their own workqueues to perform additional processing of each bio in
conjunction with their DM_MAPIO_SUBMITTED return from their map
function. When a target is updated to use dm_submit_bio_remap() they
must also set ti->accounts_remapped_io to true.
Use xchg() in start_io_acct(), as suggested by Mikulas, to ensure each
IO is only started once. The xchg race only happens if
__send_duplicate_bios() sends multiple bios -- that case is reflected
via tio->is_duplicate_bio. Given the niche nature of this race, it is
best to avoid any xchg performance penalty for normal IO.
For IO that was never submitted with dm_bio_submit_remap(), but the
target completes the clone with bio_endio, accounting is started then
ended and pending_io counter decremented.
Reviewed-by: Mikulas Patocka <[email protected]>
Signed-off-by: Mike Snitzer <[email protected]>
Diffstat (limited to 'scripts/gdb/linux/mm.py')
0 files changed, 0 insertions, 0 deletions