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 xiaohui@intel.com 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 xiaohui@intel.com 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