• Paul E. McKenney's avatar
    rcu-tasks: Handle sparse cpu_possible_mask in rcu_tasks_invoke_cbs() · ab2756ea
    Paul E. McKenney authored
    If the cpu_possible_mask is sparse (for example, if bits are set only for
    CPUs 0, 4, 8, ...), then rcu_tasks_invoke_cbs() will access per-CPU data
    for a CPU not in cpu_possible_mask.  It makes these accesses while doing
    a workqueue-based binary search for non-empty callback lists.  Although
    this search must pass through CPUs not represented in cpu_possible_mask,
    it has no need to check the callback list for such CPUs.
    
    This commit therefore changes the rcu_tasks_invoke_cbs() function's
    binary search so as to only check callback lists for CPUs present in
    cpu_possible_mask.
    Reported-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
    ab2756ea
tasks.h 60.1 KB