Files
scoutfs/kmod/src
Chris Kirby 3f786596e0 Don't overrun the block budget in server_log_merge_free_work().
This fixes a potential fence post failure like the following:

error: 1 holders exceeded alloc budget av: bef 7407 now 7392, fr: bef 8185 now 7672

The code is only accounting for the freed btree blocks, not the dirtying of
other items. So it's possible to be at exactly (COMMIT_HOLD_ALLOC_BUDGET / 2),
dirty some log btree blocks, loop again, then consume another
(COMMIT_HOLD_ALLOC_BUDGET / 2) and blow past the total budget.

In this example, we went over by 13 blocks.

By only consuming up to 1/8 of the budget on each loop, and committing when we
have consumed 3/4 of the budget, we can avoid the fence post condition.

Signed-off-by: Chris Kirby <ckirby@versity.com>
2025-10-06 12:27:25 -05:00
..
2024-06-28 15:09:05 -07:00
2024-10-03 12:41:05 -07:00
2024-10-03 12:41:05 -07:00
2024-10-03 12:41:05 -07:00
2022-10-14 14:03:35 -07:00
2024-06-28 15:09:05 -07:00
2024-06-28 14:53:49 -07:00
2022-12-12 14:59:22 -08:00
2024-01-25 11:30:17 -08:00
2024-01-25 11:30:17 -08:00
2024-06-25 15:11:20 -07:00
2023-06-14 14:12:10 -07:00
2021-08-24 09:11:40 -07:00
2021-08-24 09:11:40 -07:00
2024-10-03 12:41:05 -07:00
2024-06-28 15:09:05 -07:00
2024-06-28 15:09:05 -07:00
2024-06-28 15:09:05 -07:00
2024-06-28 15:09:05 -07:00
2024-06-28 14:53:49 -07:00
2024-10-03 12:41:05 -07:00
2024-06-28 15:09:05 -07:00
2024-06-28 15:09:05 -07:00
2021-08-24 09:12:20 -07:00
2022-07-06 15:16:19 -07:00
2022-03-11 15:28:58 -08:00
2024-01-25 11:25:56 -08:00
2022-12-12 14:59:22 -08:00
2024-06-28 15:09:05 -07:00
2025-01-23 14:28:40 -05:00
2020-11-30 13:35:44 -08:00
2024-10-03 12:41:05 -07:00
2021-07-07 14:13:14 -07:00
2024-10-03 12:41:05 -07:00
2024-06-28 15:09:05 -07:00
2024-06-28 15:09:05 -07:00