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

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



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

Jan


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