Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40dc11ff authored by Eric Dumazet's avatar Eric Dumazet Committed by Ingo Molnar
Browse files

printk: Use this_cpu_{read|write} api on printk_pending



__get_cpu_var() is a bit inefficient, lets use __this_cpu_read() and
__this_cpu_write() to manipulate printk_pending.

printk_needs_cpu(cpu) is called only for the current cpu :
Use faster __this_cpu_read().

Remove the redundant unlikely on (cpu_is_offline(cpu)) test:

 # size kernel/printk.o*
   text	   data	    bss	    dec	    hex	filename
   9942	    756	 263488	 274186	  42f0a	kernel/printk.o.new
   9990	    756	 263488	 274234	  42f3a	kernel/printk.o.old

Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Christoph Lameter <cl@linux.com>
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1290788536.2855.237.camel@edumazet-laptop>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 806c09a7
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1074,17 +1074,17 @@ static DEFINE_PER_CPU(int, printk_pending);

void printk_tick(void)
{
	if (__get_cpu_var(printk_pending)) {
		__get_cpu_var(printk_pending) = 0;
	if (__this_cpu_read(printk_pending)) {
		__this_cpu_write(printk_pending, 0);
		wake_up_interruptible(&log_wait);
	}
}

int printk_needs_cpu(int cpu)
{
	if (unlikely(cpu_is_offline(cpu)))
	if (cpu_is_offline(cpu))
		printk_tick();
	return per_cpu(printk_pending, cpu);
	return __this_cpu_read(printk_pending);
}

void wake_up_klogd(void)