RE: [PATCH v13 10/16] Add a hook to intercept external buffers from NIC driver.

2010-11-07 Thread Xin, Xiaohui
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.

2010-10-29 Thread David Miller
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.

2010-10-26 Thread Xin, Xiaohui
-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.

2010-10-19 Thread David Miller
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