On Mon 05-05-14 13:47:43, John Stultz wrote: > Two of the three prink_deferred uses are really printk_once style > uses, so add a printk_deferred_once macro to simplify those call > sites. > > Cc: Jan Kara <j...@suse.cz> > Cc: Peter Zijlstra <pet...@infradead.org> > Cc: Jiri Bohac <jbo...@suse.cz> > Cc: Thomas Gleixner <t...@linutronix.de> > Cc: Ingo Molnar <mi...@redhat.com> > Cc: Andrew Morton <a...@linux-foundation.org> > Cc: Steven Rostedt <rost...@goodmis.org> > Reviewed-by: Steven Rostedt <rost...@goodmis.org> > Signed-off-by: John Stultz <john.stu...@linaro.org> The patch looks good. You can add: Reviewed-by: Jan Kara <j...@suse.cz>
Honza > --- > include/linux/printk.h | 11 +++++++++++ > kernel/sched/deadline.c | 7 +------ > kernel/sched/rt.c | 8 +------- > 3 files changed, 13 insertions(+), 13 deletions(-) > > diff --git a/include/linux/printk.h b/include/linux/printk.h > index 7847301..f086d6c 100644 > --- a/include/linux/printk.h > +++ b/include/linux/printk.h > @@ -266,9 +266,20 @@ extern asmlinkage void dump_stack(void) __cold; > printk(fmt, ##__VA_ARGS__); \ > } \ > }) > +#define printk_deferred_once(fmt, ...) \ > +({ \ > + static bool __print_once __read_mostly; \ > + \ > + if (!__print_once) { \ > + __print_once = true; \ > + printk_deferred(fmt, ##__VA_ARGS__); \ > + } \ > +}) > #else > #define printk_once(fmt, ...) \ > no_printk(fmt, ##__VA_ARGS__) > +#define printk_deferred_once(fmt, ...) \ > + no_printk(fmt, ##__VA_ARGS__) > #endif > > #define pr_emerg_once(fmt, ...) \ > diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c > index 657ed68..80837e9 100644 > --- a/kernel/sched/deadline.c > +++ b/kernel/sched/deadline.c > @@ -348,12 +348,7 @@ static void replenish_dl_entity(struct sched_dl_entity > *dl_se, > * entity. > */ > if (dl_time_before(dl_se->deadline, rq_clock(rq))) { > - static bool lag_once = false; > - > - if (!lag_once) { > - lag_once = true; > - printk_deferred("sched: DL replenish lagged to much\n"); > - } > + printk_deferred_once("sched: DL replenish lagged to much\n"); > dl_se->deadline = rq_clock(rq) + pi_se->dl_deadline; > dl_se->runtime = pi_se->dl_runtime; > } > diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c > index e7dc728..ea4d500 100644 > --- a/kernel/sched/rt.c > +++ b/kernel/sched/rt.c > @@ -890,14 +890,8 @@ static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq) > * but accrue some time due to boosting. > */ > if (likely(rt_b->rt_runtime)) { > - static bool once = false; > - > rt_rq->rt_throttled = 1; > - > - if (!once) { > - once = true; > - printk_deferred("sched: RT throttling > activated\n"); > - } > + printk_deferred_once("sched: RT throttling > activated\n"); > } else { > /* > * In case we did anyway, make it go away, > -- > 1.9.1 > -- Jan Kara <j...@suse.cz> SUSE Labs, CR -- 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/