[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:50 +0000, Jan Beulich wrote:
> >>> On 14.02.13 at 12:38, Wei Liu <wei.liu2@xxxxxxxxxx> wrote:
> > 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.
> 
> I relatively certain this would make things worse, not better.
> 

Oops, my mistake. Let it stay like this is just fine.


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®.