Re: Reducing local_bh_enable/disable overhead in irqtrace

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Tim Chen <[email protected]> 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 <[email protected]>

Acked-by: Ingo Molnar <[email protected]>

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux