On Fri, 2015-07-17 at 15:20 -0700, Paul E. McKenney wrote:
> The synchronize_rcu_expedited() and synchronize_sched_expedited()
> expedited-grace-period primitives induce OS jitter, which can degrade
> real-time response.  This commit therefore adds a checkpatch.pl warning
> on any patch adding them.
[]
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> +# Check for expedited grace periods that interrupt non-idle non-nohz
> +# online CPUs.  These expedited can therefore degrade real-time response
> +# if used carelessly, and should be avoided where not absolutely
> +# needed.  It is always OK to use synchronize_rcu_expedited() and
> +# synchronize_sched_expedited() at boot time (before real-time applications
> +# start) and in error situations where real-time response is compromised in
> +# any case.  Note that synchronize_srcu_expedited() does -not- interrupt
> +# other CPUs, so don't warn on uses of synchronize_srcu_expedited().
> +# Of course, nothing comes for free, and srcu_read_lock() and
> +# srcu_read_unlock() do contain full memory barriers in payment for
> +# synchronize_srcu_expedited() non-interruption properties.
> +             if ($line =~ 
> /\b(synchronize_rcu_expedited|synchronize_sched_expedited)\(/) {

It'd be faster perl without capture groups:

                if ($line =~ /\b(?:synchronize_(?:rcu|sched)_expedited)\s*\(/) {

> +                     WARN("EXPEDITED_RCU_GRACE_PERIOD",
> +                          "expedited RCU grace periods should be avoided in 
> cases where they can degrade real-time response\n" . $herecurr);

"in cases" is rather redundant.


--
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/

Reply via email to