lkml.org 
[lkml]   [2006]   [Jul]   [26]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateWed, 26 Jul 2006 10:14:42 +0200
FromIngo Molnar <>
SubjectRe: Reducing local_bh_enable/disable overhead in irqtrace
* Tim Chen <tim.c.chen@linux.intel.com> wrote:

> Ingo,
> 
> The recent changes from irqtrace feature has added overheads to 
> local_bh_disable and local_bh_enable that reduces UDP performance 
> across x86_64 and IA64, even though IA64 does not support the irqtrace 
> feature. Patch in question is
> 
> [PATCH]lockdep: irqtrace subsystem, core
> http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=c
> ommit;h=de30a2b355ea85350ca2f58f3b9bf4e5bc007986
> 
> Prior to this patch, local_bh_disable was a short macro. Now it is a 
> function which calls __local_bh_disable with added irq flags save and 
> restore.  The irq flags save and restore were also added to 
> local_bh_enable, probably for injecting the trace irqs code.  This 
> overhead is on the generic code path across all architectures.  On a 
> IA_64 test machine (Itanium-2 1.6 GHz) running a benchmark like 
> netperf's UDP streaming test, the added overhead results in a drop of 
> 3% in throughput, as udp_sendmsg calls the local_bh_enable/disable 
> several times. Other workloads that have heavy usages of 
> local_bh_enable/disable could also be affected. The patch ideally 
> should not have affected IA-64 performance as it does not have IRQ 
> tracing support.  A significant portion of the overhead is in the 
> added irq flags save and restore, which I think is not needed if IRQ 
> tracing is unused. A suggested patch is attached below that recovers 
> the lost performance.  However, the "ifdef"s in the patch are a bit 
> ugly.

agreed - this side-effect of irqtracing should not happen. The #ifdefs 
are ugly, but i can see no better way either.

> Signed-off-by: Tim Chen <tim.c.chen@intel.com>

Acked-by: Ingo Molnar <mingo@elte.hu>

	Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-07-26 10:23    [from the cache]
©2003-2008