v1: https://marc.info/?l=linux-kernel&m=148127336205765
Changes since v1: * Rename the primitive to for_each_leaf_node_cpu() for a shorter and hopefully better name * Fix a bug report by Colin King about bit shifting * Drop iterator @bit based on suggestions from Mark Rutland * Add a WARN_ON_ONCE() for !cpu_possible(cpu). Based on -rcu's rcu/dev branch, commit 278c19fe5bc7 "rcu: Adjust FQS offline checks for exact online-CPU detection". Tested by 0day and rcutorture on a 12-cpu host, the results of rcutorture are all fine except: TREE07 ------- 7655 grace periods (4.25278 per second) WARNING: BAD SEQ 3901:3901 last:7652 version 61 /home/boqun/linux/tools/testing/selftests/rcutorture/res/2016.12.14-13:17:10/TREE07/console.log WARNING: Assertion failure in /home/boqun/linux/tools/testing/selftests/rcutorture/res/2016.12.14-13:17:10/TREE07/console.log WARNING: Summary: Stalls: 4 CPU count limited from 16 to 12 The same WARNING could be reproduced without this patchset. Paul, given the sentence "CPU count limited from 16 to 12", is this just a problem for my setup? Maybe I should descrease the SMP numbers or increase rcutorture.stat_interval? Regards, Boqun