public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: kernel performance update - 2.6.14-rc3
@ 2005-10-08  0:49 Jon Burgess
  2005-10-08  1:38 ` Chen, Kenneth W
  0 siblings, 1 reply; 9+ messages in thread
From: Jon Burgess @ 2005-10-08  0:49 UTC (permalink / raw)
  To: kenneth.w.chen; +Cc: Andi Kleen, linux-kernel, linux-netdev

[-- Attachment #1: Type: text/plain, Size: 651 bytes --]

"Chen, Kenneth W" <kenneth.w.chen@intel.com> writes:

 > Even though
 > softirq is invoked at the end of dev_queue_xmit() via local_bh_enable(),
 > not all execution of softirq will result a __wake_up().  With higher
 > HZ rate, timer interrupt is more frequent and thus more softirq
 > invocation and leads to more __wake_up(), which then takes us to higher
 > throughput because cpu spend less time in idle.

Since the loopback xmit->rx path probably isn't being called in 
interrupt context might something like the patch below be needed?

Please forgive me if this is wrong, i've not even tried compiling this 
change let alone tested it.

	Jon



[-- Attachment #2: loopback-netif_rx.patch --]
[-- Type: text/x-patch, Size: 314 bytes --]

--- linux-2.6.13/drivers/net/loopback.c-orig	2005-10-08 01:32:50.000000000 +0100
+++ linux-2.6.13/drivers/net/loopback.c	2005-10-08 01:33:32.000000000 +0100
@@ -153,7 +153,7 @@ static int loopback_xmit(struct sk_buff 
 	lb_stats->tx_packets++;
 	put_cpu();
 
-	netif_rx(skb);
+	netif_rx_ni(skb);
 
 	return(0);
 }

^ permalink raw reply	[flat|nested] 9+ messages in thread
* kernel performance update - 2.6.14-rc3
@ 2005-10-05 21:15 Chen, Kenneth W
  2005-10-06  6:16 ` Arjan van de Ven
  2005-10-06 10:32 ` Andi Kleen
  0 siblings, 2 replies; 9+ messages in thread
From: Chen, Kenneth W @ 2005-10-05 21:15 UTC (permalink / raw)
  To: linux-kernel

Kernel performance data for 2.6.14-rc3 is updated at:
http://kernel-perf.sourceforge.net

We are continuing our investigation with volanomark regression
seen with HZ rate reduced from default 1K to 250.  The workload
is run with loopback interface.  Preliminarily, we think it is
related to how softirq is invoked.  Multiple threads are usually
blocked waiting on incoming socket data (sleep side kernel via
sk_wait_data function).  It needs an external event (i.e., NIC
receiving a packet over the wire and subsequence hw interrupt) to
trigger a thread wakeup.  However, with software loopback device,
the link between the xmit and rcv is done via softirq.  Even though
softirq is invoked at the end of dev_queue_xmit() via local_bh_enable(),
not all execution of softirq will result a __wake_up().  With higher
HZ rate, timer interrupt is more frequent and thus more softirq
invocation and leads to more __wake_up(), which then takes us to higher
throughput because cpu spend less time in idle.  We are continuing
with more experiments to follow up.

dbench is catching some attention.  We just ran it with default
parameter.  I don't think default parameter is the right one to use
on some of our configurations.  For example, it shows +100% improvement
on 4P Xeon between latest kernel and 2.6.9, while showing -45% on 4P ia64.
It just doesn't make much sense to me.  Does any expert out there have
recommendation What are the proper parameter to use for this workload?
Same thing goes to tbench (what is the proper parameter to use here?).

- Ken


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2005-10-08  1:38 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-08  0:49 kernel performance update - 2.6.14-rc3 Jon Burgess
2005-10-08  1:38 ` Chen, Kenneth W
  -- strict thread matches above, loose matches on Subject: below --
2005-10-05 21:15 Chen, Kenneth W
2005-10-06  6:16 ` Arjan van de Ven
2005-10-06 10:04   ` Nick Piggin
2005-10-06 18:36     ` Chen, Kenneth W
2005-10-06 19:24       ` Sonny Rao
2005-10-06 19:32         ` Chen, Kenneth W
2005-10-06 10:32 ` Andi Kleen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox