This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel][Pv-ops][PATCH] Netback multiple tasklet support

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel][Pv-ops][PATCH] Netback multiple tasklet support
From: "Xu, Dongxiao" <dongxiao.xu@xxxxxxxxx>
Date: Fri, 27 Nov 2009 10:26:52 +0800
Accept-language: en-US
Acceptlanguage: en-US
Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Delivery-date: Thu, 26 Nov 2009 18:29:02 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcpvCRTacBm7g/TlQ5GetSSm6xA1EA==
Thread-topic: [Xen-devel][Pv-ops][PATCH] Netback multiple tasklet support
Current netback uses one pair of tasklets for Tx/Rx data transaction. Netback 
tasklet could only run at one CPU at a time, and it is used to serve all the 
netfronts. Therefore it has become a performance bottle neck. This patch is to 
use multiple tasklet pairs to replace the current single pair in dom0. 
        Assuming that Dom0 has CPUNR VCPUs, we define CPUNR kinds of tasklets 
pair (CPUNR for Tx, and CPUNR for Rx). Each pare of tasklets serve specific 
group of netfronts. Also for those global and static variables, we duplicated 
them for each group in order to avoid the spinlock. 

Test senario:
We use ten 1G NIC interface to talk with 10 VMs (netfront) in server. So the 
total bandwidth is 10G. 
For host machine, bind each guest's netfront with each NIC interface.
For client machine, do netperf testing with each guest.

Test Case       Packet Size     Throughput(Mbps)        Dom0 CPU Util   Guests 
CPU Util
w/o patch       1400            4304.30         400.33%         112.21%
w/   patch      1400            9533.13         461.64%         243.81%

BTW, when we test this patch, we found that the domain_lock in grant table 
operation becomes a bottle neck. We temporarily remove the global domain_lock 
to achieve good performance.
Best Regards, 
-- Dongxiao

Attachment: 0001-Netback-multiple-tasklets-support.patch
Description: 0001-Netback-multiple-tasklets-support.patch

Xen-devel mailing list