[RFC v2 0/5] rcu: Introduce for_each_leaf_node_cpu()

From: Boqun Feng
Date: Wed Dec 14 2016 - 21:43:29 EST


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