mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 08:34:20 +08:00
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;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for the CPU being offline, but only if the grace period
|
||||
* 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)) {
|
||||
/* Check for the CPU being offline. */
|
||||
if (!(rdp->grpmask & rcu_rnp_online_cpus(rnp))) {
|
||||
trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("ofl"));
|
||||
rdp->offline_fqs++;
|
||||
return 1;
|
||||
|
Loading…
Reference in New Issue
Block a user