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][PATCH] netback: netif cleanup

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel][PATCH] netback: netif cleanup
From: "Ky Srinivasan" <ksrinivasan@xxxxxxxxxx>
Date: Sun, 06 Dec 2009 10:18:23 -0700
Delivery-date: Sun, 06 Dec 2009 09:18:46 -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
We have seen cases where,  when a guest is shutdown during heavy network 
traffic, the backend vif hangs around for considerable amounts of time holding 
up the xenbus thread for the duration of the cleanup. We have seen cases (HP, 
Novell) where it has taken hours to cleanup the interface and for that duration 
we cannot launch new guests. We have traced this problem to the fact that the 
front-end can shutdown with transmit resources still in transit on the back-end 
side. On the back-end side, the moment the carrier is turned off on the 
interface, the interface is not eligible for further scheduling in the backend. 
Since turning off the carrier happens completely asynchronously with the rest 
of the packet processing in the back-end (via tasklets today), we can have 
situations where the vif cannot be cleaned up for a significant amount of time.

I am attaching a patch for addressing this issue. I have tried to fix the 
problem with minimal changes to the current code. The main idea is to cleanup 
the guest transmit resources quickly and aggressively. With this patch, the 
cleanup time has been dramatically reduced. Even in this patch, the xenbus 
thread is held up for the duration of the cleanup - however we attempt to 
cleanup aggressively. This is in comparison to the current code where the 
xenbus thread just waits for the refcnt  on the interface to drop to zero. An 
obvious improvement would be to not tie up the xenbus thread for the duration 
of cleaning up the interface. If there is interest, I can submit a patch for 
doing this. This patch has been tested on 2.6.16 (SLES10 sp2, sp3 kernels) as 
well as 2.6.27 (sles11) kernel. This  patch is however against the 
2.6.18-xen.hg sources.

Signed-off-by: K. Y. Srinivasan <ksrinivasan@xxxxxxxxxx>


K. Y

Attachment: netback-vif-cleanup.patch
Description: Text document

Xen-devel mailing list
<Prev in Thread] Current Thread [Next in Thread>