diff options
| author | Qu Wenruo <wqu@suse.com> | 2026-02-04 13:24:07 +1030 |
|---|---|---|
| committer | David Sterba <dsterba@suse.com> | 2026-04-07 18:55:53 +0200 |
| commit | c84053d9f7f758c79320716caa098cafc70a74da (patch) | |
| tree | 16639dd88d59cbdbd76be8cb724681ab249be20b /tools/perf/scripts/python/parallel-perf.py | |
| parent | 52fead5eb8a743384bab24ca8c3695257c755f0f (diff) | |
btrfs: update per-profile available estimation
This involves the following timing:
- Chunk allocation
- Chunk removal
- After Mount
- New device
- Device removal
- Device shrink
- Device enlarge
And since the function btrfs_update_per_profile_avail() will not return
an error, this won't cause new error handling path.
Although when btrfs_update_per_profile_avail() failed (only ENOSPC
possible) it will mark the per-profile available estimation as
unreliable, so later btrfs_get_per_profile_avail() will return false and
require the caller to have a fallback solution.
The function btrfs_update_per_profile_avail() will be executed with
chunk_mutex hold, thus it will slightly slow down those involved
functions, but not a lot.
As all the core workload is just various u64 calculations inside a loop,
without any tree search, the overhead should be acceptable even for all
supported 9 profiles.
For 4 disks (which exercises all 9 profiles), the execution time of that
function will still be less than 10 us.
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tools/perf/scripts/python/parallel-perf.py')
0 files changed, 0 insertions, 0 deletions
