rcu: Adjust FQS offline checks for exact online-CPU detection
Commit 7ec99de36f
("rcu: Provide exact CPU-online tracking for RCU"),
as its title suggests, got rid of RCU's remaining CPU-hotplug timing
guesswork. This commit therefore removes the one-jiffy kludge that was
used to paper over this guesswork.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
This commit is contained in:
parent
3a19b46a5c
commit
38d30b336c
|
@ -1276,21 +1276,8 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/* Check for the CPU being offline. */
|
||||||
* Check for the CPU being offline, but only if the grace period
|
if (!(rdp->grpmask & rcu_rnp_online_cpus(rnp))) {
|
||||||
* is old enough. We don't need to worry about the CPU changing
|
|
||||||
* state: If we see it offline even once, it has been through a
|
|
||||||
* quiescent state.
|
|
||||||
*
|
|
||||||
* The reason for insisting that the grace period be at least
|
|
||||||
* one jiffy old is that CPUs that are not quite online and that
|
|
||||||
* have just gone offline can still execute RCU read-side critical
|
|
||||||
* sections.
|
|
||||||
*/
|
|
||||||
if (ULONG_CMP_GE(rdp->rsp->gp_start + 2, jiffies))
|
|
||||||
return 0; /* Grace period is not old enough. */
|
|
||||||
barrier();
|
|
||||||
if (cpu_is_offline(rdp->cpu)) {
|
|
||||||
trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("ofl"));
|
trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("ofl"));
|
||||||
rdp->offline_fqs++;
|
rdp->offline_fqs++;
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in New Issue