>-----Original Message----- >From: David Miller [mailto:davem@xxxxxxxxxxxxx] >Sent: Tuesday, October 19, 2010 11:24 PM >To: Xin, Xiaohui >Cc: netdev@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; >mst@xxxxxxxxxx; mingo@xxxxxxx; herbert@xxxxxxxxxxxxxxxxxxx; jdike@xxxxxxxxxxxxxxx >Subject: Re: [PATCH v13 10/16] Add a hook to intercept external buffers from NIC driver. > >From: xiaohui.xin@xxxxxxxxx >Date: Fri, 15 Oct 2010 17:12:11 +0800 > >> @@ -2891,6 +2922,11 @@ static int __netif_receive_skb(struct sk_buff *skb) >> ncls: >> #endif >> >> + /* To intercept mediate passthru(zero-copy) packets here */ >> + skb = handle_mpassthru(skb, &pt_prev, &ret, orig_dev); >> + if (!skb) >> + goto out; >> + >> /* Handle special case of bridge or macvlan */ >> rx_handler = rcu_dereference(skb->dev->rx_handler); >> if (rx_handler) { > >If you consume the packet here, devices in passthru mode cannot >be use with bonding. > >But there is nothing that prevents a bond being created with such >a device. > >So we have to either prevent such configurations (bad) or make >it work somehow (good) :-) The big picture may like this: To prevent such configurations, we should add code to check in both mp and bonding driver. If a nic is in zero-copy mode , bonding can't be made with it, and if nic is in bonding mode, we can't bind the device to do zero-copy. If we want to support such configurations, it also has some constraints. If bonding is created first, we need code to check if all the slaves support zero-copy mode, and if yes, all the slaves should be assigned a same page_ctor(), all the packets received should be intercepted with master nic. If not, fails. If zero-copy is enabled first, bonding created with it should fail. Somehow, it seems not a trivial work to support it now. Can we support it later and as a todo with our current work? Thanks Xiaohui -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html