tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2018.04.30b head: 20bf5e55125a36b7ec82aef23f1d67eae703d2da commit: 3fe178188280d233ea019dfea88d68dbd4dc893a [50/51] rcu: Remove ->gpnum and ->completed config: i386-randconfig-x006-201817 (attached as .config) compiler: gcc-7 (Debian 7.3.0-16) 7.3.0 reproduce: git checkout 3fe178188280d233ea019dfea88d68dbd4dc893a # save the attached .config to linux build tree make ARCH=i386
Note: the rcu/dev.2018.04.30b HEAD 20bf5e55125a36b7ec82aef23f1d67eae703d2da
builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
kernel//rcu/tree.c: In function 'rcu_gp_cleanup':
>> kernel//rcu/tree.c:2034:34: error: 'struct rcu_state' has no member named
>> 'completed'
trace_rcu_this_gp(rnp, rdp, rsp->completed - 1,
^~
vim +2034 kernel//rcu/tree.c
4cdfc175c kernel/rcutree.c Paul E. McKenney 2012-06-22 1966
4cdfc175c kernel/rcutree.c Paul E. McKenney 2012-06-22 1967 /*
7fdefc10e kernel/rcutree.c Paul E. McKenney 2012-06-22 1968 * Clean up
after the old grace period.
7fdefc10e kernel/rcutree.c Paul E. McKenney 2012-06-22 1969 */
4cdfc175c kernel/rcutree.c Paul E. McKenney 2012-06-22 1970 static void
rcu_gp_cleanup(struct rcu_state *rsp)
7fdefc10e kernel/rcutree.c Paul E. McKenney 2012-06-22 1971 {
7fdefc10e kernel/rcutree.c Paul E. McKenney 2012-06-22 1972 unsigned long
gp_duration;
48a7639ce kernel/rcu/tree.c Paul E. McKenney 2014-03-11 1973 bool needgp =
false;
69bdc2d1b kernel/rcu/tree.c Paul E. McKenney 2018-04-26 1974 unsigned long
new_gp_seq;
7fdefc10e kernel/rcutree.c Paul E. McKenney 2012-06-22 1975 struct rcu_data
*rdp;
7fdefc10e kernel/rcutree.c Paul E. McKenney 2012-06-22 1976 struct rcu_node
*rnp = rcu_get_root(rsp);
abedf8e24 kernel/rcu/tree.c Paul Gortmaker 2016-02-19 1977 struct
swait_queue_head *sq;
7fdefc10e kernel/rcutree.c Paul E. McKenney 2012-06-22 1978
7d0ae8086 kernel/rcu/tree.c Paul E. McKenney 2015-03-03 1979
WRITE_ONCE(rsp->gp_activity, jiffies);
2a67e741b kernel/rcu/tree.c Peter Zijlstra 2015-10-08 1980
raw_spin_lock_irq_rcu_node(rnp);
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1981 gp_duration =
jiffies - rsp->gp_start;
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1982 if (gp_duration
> rsp->gp_max)
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1983
rsp->gp_max = gp_duration;
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1984
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1985 /*
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1986 * We know the
grace period is complete, but to everyone else
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1987 * it appears
to still be ongoing. But it is also the case
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1988 * that to
everyone else it looks like there is nothing that
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1989 * they can do
to advance the grace period. It is therefore
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1990 * safe for us
to drop the lock in order to mark the grace
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1991 * period as
completed in all of the rcu_node structures.
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1992 */
67c583a7d kernel/rcu/tree.c Boqun Feng 2015-12-29 1993
raw_spin_unlock_irq_rcu_node(rnp);
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1994
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 1995 /*
3fe178188 kernel/rcu/tree.c Paul E. McKenney 2018-05-01 1996 * Propagate
new ->gp_seq value to rcu_node structures so that
3fe178188 kernel/rcu/tree.c Paul E. McKenney 2018-05-01 1997 * other CPUs
don't have to wait until the start of the next grace
3fe178188 kernel/rcu/tree.c Paul E. McKenney 2018-05-01 1998 * period to
process their callbacks. This also avoids some nasty
3fe178188 kernel/rcu/tree.c Paul E. McKenney 2018-05-01 1999 * RCU
grace-period initialization races by forcing the end of
3fe178188 kernel/rcu/tree.c Paul E. McKenney 2018-05-01 2000 * the current
grace period to be completely recorded in all of
3fe178188 kernel/rcu/tree.c Paul E. McKenney 2018-05-01 2001 * the rcu_node
structures before the beginning of the next grace
3fe178188 kernel/rcu/tree.c Paul E. McKenney 2018-05-01 2002 * period is
recorded in any of the rcu_node structures.
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 2003 */
69bdc2d1b kernel/rcu/tree.c Paul E. McKenney 2018-04-26 2004 new_gp_seq =
rsp->gp_seq;
69bdc2d1b kernel/rcu/tree.c Paul E. McKenney 2018-04-26 2005
rcu_seq_end(&new_gp_seq);
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 2006
rcu_for_each_node_breadth_first(rsp, rnp) {
2a67e741b kernel/rcu/tree.c Peter Zijlstra 2015-10-08 2007
raw_spin_lock_irq_rcu_node(rnp);
658cf23dd kernel/rcu/tree.c Paul E. McKenney 2018-04-30 2008 if
(WARN_ON_ONCE(rcu_preempt_blocked_readers_cgp(rnp)))
658cf23dd kernel/rcu/tree.c Paul E. McKenney 2018-04-30 2009
dump_blkd_tasks(rnp, 10);
5c60d25fa kernel/rcu/tree.c Paul E. McKenney 2015-02-09 2010
WARN_ON_ONCE(rnp->qsmask);
69bdc2d1b kernel/rcu/tree.c Paul E. McKenney 2018-04-26 2011
WRITE_ONCE(rnp->gp_seq, new_gp_seq);
b11cc5760 kernel/rcutree.c Paul E. McKenney 2012-12-17 2012 rdp =
this_cpu_ptr(rsp->rda);
b11cc5760 kernel/rcutree.c Paul E. McKenney 2012-12-17 2013 if (rnp
== rdp->mynode)
48a7639ce kernel/rcu/tree.c Paul E. McKenney 2014-03-11 2014
needgp = __note_gp_changes(rsp, rnp, rdp) || needgp;
78e4bc34e kernel/rcu/tree.c Paul E. McKenney 2013-09-24 2015 /*
smp_mb() provided by prior unlock-lock pair. */
1fc20cd10 kernel/rcu/tree.c Paul E. McKenney 2018-04-12 2016 needgp
= rcu_future_gp_cleanup(rsp, rnp) || needgp;
065bb78c5 kernel/rcu/tree.c Daniel Wagner 2016-02-19 2017 sq =
rcu_nocb_gp_get(rnp);
67c583a7d kernel/rcu/tree.c Boqun Feng 2015-12-29 2018
raw_spin_unlock_irq_rcu_node(rnp);
065bb78c5 kernel/rcu/tree.c Daniel Wagner 2016-02-19 2019
rcu_nocb_gp_cleanup(sq);
7be487444 kernel/rcu/tree.c Paul E. McKenney 2018-03-02 2020
cond_resched_tasks_rcu_qs();
7d0ae8086 kernel/rcu/tree.c Paul E. McKenney 2015-03-03 2021
WRITE_ONCE(rsp->gp_activity, jiffies);
0f41c0dda kernel/rcu/tree.c Paul E. McKenney 2015-03-10 2022
rcu_gp_slow(rsp, gp_cleanup_delay);
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 2023 }
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 2024 rnp =
rcu_get_root(rsp);
69bdc2d1b kernel/rcu/tree.c Paul E. McKenney 2018-04-26 2025
raw_spin_lock_irq_rcu_node(rnp); /* GP before rsp->gp_seq update. */
cabc49c1f kernel/rcutree.c Paul E. McKenney 2012-06-20 2026
765a3f4fe kernel/rcu/tree.c Paul E. McKenney 2014-03-14 2027 /* Declare
grace period done. */
69bdc2d1b kernel/rcu/tree.c Paul E. McKenney 2018-04-26 2028
rcu_seq_end(&rsp->gp_seq);
b0e0a91bf kernel/rcu/tree.c Paul E. McKenney 2018-05-01 2029
trace_rcu_grace_period(rsp->name, rsp->gp_seq, TPS("end"));
77f81fe08 kernel/rcu/tree.c Petr Mladek 2015-09-09 2030 rsp->gp_state =
RCU_GP_IDLE;
1fc20cd10 kernel/rcu/tree.c Paul E. McKenney 2018-04-12 2031 /* Check for GP
requests since above loop. */
5d4b86594 kernel/rcutree.c Paul E. McKenney 2012-07-07 2032 rdp =
this_cpu_ptr(rsp->rda);
a52f3505f kernel/rcu/tree.c Paul E. McKenney 2018-05-01 2033 if
(ULONG_CMP_LT(rnp->gp_seq, rnp->gp_seq_needed)) {
36399f0af kernel/rcu/tree.c Paul E. McKenney 2018-04-12 @2034
trace_rcu_this_gp(rnp, rdp, rsp->completed - 1,
1fc20cd10 kernel/rcu/tree.c Paul E. McKenney 2018-04-12 2035
TPS("CleanupMore"));
1fc20cd10 kernel/rcu/tree.c Paul E. McKenney 2018-04-12 2036 needgp
= true;
1fc20cd10 kernel/rcu/tree.c Paul E. McKenney 2018-04-12 2037 }
48a7639ce kernel/rcu/tree.c Paul E. McKenney 2014-03-11 2038 /* Advance CBs
to reduce false positives below. */
ba3d39d41 kernel/rcu/tree.c Paul E. McKenney 2018-04-12 2039 if
(!rcu_accelerate_cbs(rsp, rnp, rdp) && needgp) {
7d0ae8086 kernel/rcu/tree.c Paul E. McKenney 2015-03-03 2040
WRITE_ONCE(rsp->gp_flags, RCU_GP_FLAG_INIT);
fe355ab27 kernel/rcu/tree.c Paul E. McKenney 2018-04-21 2041
rsp->gp_req_activity = jiffies;
b0e0a91bf kernel/rcu/tree.c Paul E. McKenney 2018-05-01 2042
trace_rcu_grace_period(rsp->name, READ_ONCE(rsp->gp_seq),
bb311eccb kernel/rcutree.c Paul E. McKenney 2013-08-09 2043
TPS("newreq"));
d7e476b4e kernel/rcu/tree.c Paul E. McKenney 2018-04-22 2044 } else {
5406da57f kernel/rcu/tree.c Paul E. McKenney 2018-04-19 2045
WRITE_ONCE(rsp->gp_flags, rsp->gp_flags & RCU_GP_FLAG_INIT);
d7e476b4e kernel/rcu/tree.c Paul E. McKenney 2018-04-22 2046 }
67c583a7d kernel/rcu/tree.c Boqun Feng 2015-12-29 2047
raw_spin_unlock_irq_rcu_node(rnp);
7fdefc10e kernel/rcutree.c Paul E. McKenney 2012-06-22 2048 }
7fdefc10e kernel/rcutree.c Paul E. McKenney 2012-06-22 2049
:::::: The code at line 2034 was first introduced by commit
:::::: 36399f0aff0c32e86e0c30eb47262185db44ecd8 rcu: Make rcu_start_future_gp()
caller select grace period
:::::: TO: Paul E. McKenney <[email protected]>
:::::: CC: Paul E. McKenney <[email protected]>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip

