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

Re: [Xen-devel] netback BUG_ON when using copy_skb=1



On 2013/10/31 23:32, Wei Liu wrote:
> On Thu, Oct 31, 2013 at 03:17:11PM +0000, Ian Campbell wrote:
>> On Mon, 2013-10-28 at 11:43 +0000, Wei Liu wrote:
>>> On Sat, Oct 26, 2013 at 04:32:08PM +0800, jerry wrote:
>>> [...]
>>>>
>>>>    The patch is as follows:
>>>> --- drivers/xen/netback/xenbus.c.old    2013-10-26 16:23:07.000000000 +0800
>>>> +++ drivers/xen/netback/xenbus.c        2013-10-26 16:23:31.000000000 +0800
>>>> @@ -156,9 +156,6 @@
>>>>         if (err)
>>>>                 goto fail;
>>>>
>>>> -       /* This kicks hotplug scripts, so do it immediately. */
>>>> -       backend_create_netif(be);
>>>> -
>>>>         return 0;
>>>>
>>>>  abort_transaction:
>>>>
>>>>    Do you have some ideas?
>>>>
>>>
>>> My gut feeling is that this sort of change is regression-prone but we
>>> have to live with that.
>>>
>>
>> This thread/fix doesn't apply to upstream netback, which doesn't have
>> copy_skb mode, right?
>>
> 
> No, it's SuSE kernel.

Yes, I am using SuSE11 SP2 kernel. The two mainly points in my other emails can 
be concluded as follows:
1) If testing with copy_skb mode enabled, some grant copy operations in another 
RX netbk tread will failed.
   This error will introduce packet retransmit and sometimes VM get crashed.
   Now I have no appropriate solution to fix the problem. So I have to turn off 
copy_skb mode.

2) If that's disabled, the vif can't be disconnected when VM is destroyed and 
its sending packets have not been consumed.
   Fortunately I found those packets was cached in another abnormal vif's qdisc 
queues.
   My solution is keeping vif TX queue started  when its set to up. So packets 
are dropped if vif is created, but not connected.
   The fix patch is shown as follow:
--- drivers/xen/netback/interface.c.old 2013-10-29 11:46:36.000000000 +0800
+++ drivers/xen/netback/interface.c     2013-10-29 11:46:47.000000000 +0800
@@ -111,8 +111,8 @@
        netif_t *netif = netdev_priv(dev);
        if (netback_carrier_ok(netif)) {
                __netif_up(netif);
-               netif_start_queue(dev);
        }
+       netif_start_queue(dev);
        return 0;
 }
> 
>>> In any case, does upstream changeset ea732dff5c (xen-netback: Handle
>>> backend state transitions in a more robust way) useful to you?
>>>
>>>
>>> Wei.
>>>
>>> _______________________________________________
>>> Xen-devel mailing list
>>> Xen-devel@xxxxxxxxxxxxx
>>> http://lists.xen.org/xen-devel
>>
> 
> .
> 



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