This series fixes the blk-iocost hweight cache publication race and adds a fail-safe for invalid donation weights.
Previous version: https://lists.openwall.net/linux-kernel/2026/10/15/1954 Replies: https://lists.openwall.net/linux-kernel/2026/10/16/1431 https://lists.openwall.net/linux-kernel/2026/10/16/2798 Changes since v1: - split into two patches: the donation fail-safe and the atomic cache; - add the Fixes tags agreed on the list (e08d02aa5fc9, 7caa47151ab2) and Cc stable on the fail-safe; - drop the donating > 1 guard, which only changed the value printed by the warning; - do not add max(after, 1): the no-race path has not been shown to be reachable and the total budget invariant has not been re-validated; - use GENMASK/FIELD_PREP/FIELD_GET helpers for the packed cache; - have tracepoints decode the packed cache without refreshing it, and only evaluate that read when the tracepoint is enabled; - explain the activation-time cache update; - update iocost_monitor.py; - document the AI-assisted work. The no-race invalid-weight path is still under investigation: a hand-built input can trigger the divide at the function level, but runtime reachability has not been demonstrated. The first patch is therefore a fail-safe, not a claim that the path is reachable without a race. Kunhai Dai (2): blk-iocost: abort weight transfer on invalid donation weights blk-iocost: publish hweights as one atomic value block/blk-iocost.c | 111 +++++++++++++++++++++++++++------ include/trace/events/iocost.h | 7 ++- tools/cgroup/iocost_monitor.py | 7 ++- 3 files changed, 101 insertions(+), 24 deletions(-) -- 2.27.0
