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

Re: [Xen-devel] netback Oops then xenwatch stuck in D state



On Thu, 2013-02-14 at 11:34 +0000, Ian Campbell wrote:
> On Thu, 2013-02-14 at 11:20 +0000, Wei Liu wrote:
> 
> > I'm not convinced. netbk_tx_err only has one xenvif_put, however
> > netbk_fatal_tx_err has two puts.
> 
> One balances the get in poll_net_schedule_list (i.e. at the top of the
> loop in xen_netbk_tx_build_gops.
> 
> The other one I guess you mean the one in xenvif_carrier_off? This
> balances the refcount taken in xenvif_connect, when the carrier is
> brought up.
> 
> In my testing I found that both were required or else things deadlock in
> xenvif_disconnect with the refcnt stuck at 1.
> 
> The eventual put in xenvif_disconnect is balanced by the initial count
> of 1 in xenvif_alloc()

Oh, I get what you mean now. Because the vif is down so
xenvif_carrier_off is not invoked in disconnect path.

But I think a better place to balance refcount taken in xenvif_connect
is xenvif_disconnect, so I would rather move that xenvif_put in
fatal_tx_err to xenvif_disconnect.


Wei.

> Ian.
> 
> > If this is a bug, and, if my previous patch fixes Christopher's OOPS, he
> > will hit this bug soon when shutting down DomU.
> > 
> > 
> > Wei.
> > 
> 
> 



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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