RE: [PATCH v13 10/16] Add a hook to intercept external buffers from NIC driver.
I have addressed this issue in v14 patch set. Thanks Xiaohui >-Original Message- >From: David Miller [mailto:da...@davemloft.net] >Sent: Saturday, October 30, 2010 4:29 AM >To: Xin, Xiaohui >Cc: net...@vger.kernel.org; kvm@vger.kernel.org; linux-ker...@vger.kernel.org; >m...@redhat.com; mi...@elte.hu; herb...@gondor.apana.org.au; >jd...@linux.intel.com >Subject: Re: [PATCH v13 10/16] Add a hook to intercept external buffers from >NIC driver. > >From: "Xin, Xiaohui" >Date: Wed, 27 Oct 2010 09:33:12 +0800 > >> Somehow, it seems not a trivial work to support it now. Can we support it >> later and as a todo with our current work? > >I would prefer the feature work properly, rather than only in specific >cases, before being integated. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v13 10/16] Add a hook to intercept external buffers from NIC driver.
From: "Xin, Xiaohui" Date: Wed, 27 Oct 2010 09:33:12 +0800 > Somehow, it seems not a trivial work to support it now. Can we support it > later and as a todo with our current work? I would prefer the feature work properly, rather than only in specific cases, before being integated. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH v13 10/16] Add a hook to intercept external buffers from NIC driver.
>-Original Message- >From: David Miller [mailto:da...@davemloft.net] >Sent: Tuesday, October 19, 2010 11:24 PM >To: Xin, Xiaohui >Cc: net...@vger.kernel.org; kvm@vger.kernel.org; linux-ker...@vger.kernel.org; >m...@redhat.com; mi...@elte.hu; herb...@gondor.apana.org.au; >jd...@linux.intel.com >Subject: Re: [PATCH v13 10/16] Add a hook to intercept external buffers from >NIC driver. > >From: xiaohui@intel.com >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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v13 10/16] Add a hook to intercept external buffers from NIC driver.
From: xiaohui@intel.com 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) :-) -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html