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

[Xen-devel][PATCH] netback: netif cleanup



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>



Regards,

K. Y

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

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.