On Fri, Jun 13, 2014 at 10:06:06PM -0700, Paul E. McKenney wrote: > One complication... So if the grace period has gone on for a long time, > and you are returning to kernel mode, RCU will need the scheduling-clock > tick. However, in that very same situation, if you are returning to > idle or to NO_HZ_FULL userspace execution, RCU does -not- need the > scheduling-clock tick set.
Right. > One way I could do this is to have rcu_needs_cpu() return three values: > Zero for RCU doesn't need a scheduling-clock tick for any reason, > one if RCU needs a scheduling-clock tick only if returning to kernel > mode, and two if RCU unconditionally needs the scheduling-clock tick. > Would that work, or is there a better approach? For an interrupt, based on the context tracking state, I can check where we return afterward if we are in an interrupt using context_tracking_in_user(). Now probably rcu_needs_cpu() should check that by itself and, depending on where we return, only tell if we keep the tick or not. What do you think? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/