Netdev List
 help / color / mirror / Atom feed
* [PATCH v2 2/2] vlan: updates vlan real_num_tx_queues
From: Jeff Kirsher @ 2010-03-24  0:42 UTC (permalink / raw)
  To: davem; +Cc: netdev, gospo, Vasu Dev, Jeff Kirsher
In-Reply-To: <20100324004116.31609.73183.stgit@localhost.localdomain>

From: Vasu Dev <vasu.dev@intel.com>

Updates real_num_tx_queues in case underlying real device
has changed real_num_tx_queues.

-v2
 As per Eric Dumazet<eric.dumazet@gmail.com> comment:-
   -- adds BUG_ON to catch case of real_num_tx_queues exceeding num_tx_queues.
   -- created this self contained patch to just update real_num_tx_queues.

Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---

 net/8021q/vlan.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index 4535122..db783d7 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -378,6 +378,8 @@ static void vlan_transfer_features(struct net_device *dev,
 #if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE)
 	vlandev->fcoe_ddp_xid = dev->fcoe_ddp_xid;
 #endif
+	vlandev->real_num_tx_queues = dev->real_num_tx_queues;
+	BUG_ON(vlandev->real_num_tx_queues > vlandev->num_tx_queues);
 
 	if (old_features != vlandev->features)
 		netdev_features_change(vlandev);


^ permalink raw reply related

* Re: [RFC PATCH] net: add additional lock to qdisc to increase enqueue/dequeue fairness
From: Andi Kleen @ 2010-03-24  2:12 UTC (permalink / raw)
  To: David Miller; +Cc: alexander.h.duyck, netdev
In-Reply-To: <20100323.133124.139557595.davem@davemloft.net>

David Miller <davem@davemloft.net> writes:

> From: Alexander Duyck <alexander.h.duyck@intel.com>
> Date: Tue, 23 Mar 2010 13:25:53 -0700
>
>> The qdisc layer shows a significant issue when you start transmitting from
>> multiple CPUs.
>
> Why are you hitting any central qdisc lock on a multiqueue
> configuration?

One thing to remember is that systems can have a lot more CPUs than a NIC queues
(e.g. 64 vs 8)

-Andi

-- 
ak@linux.intel.com -- Speaking for myself only.

^ permalink raw reply

* Re: [RFC Patch 1/3] netpoll: add generic support for bridge and bonding devices
From: Cong Wang @ 2010-03-24  2:29 UTC (permalink / raw)
  To: Jeff Moyer
  Cc: Matt Mackall, linux-kernel, netdev, bridge, Andy Gospodarek,
	Neil Horman, Stephen Hemminger, bonding-devel, Jay Vosburgh,
	David Miller
In-Reply-To: <x49zl1zxmou.fsf@segfault.boston.devel.redhat.com>

Jeff Moyer wrote:
> Matt Mackall <mpm@selenic.com> writes:
> 
>> On Mon, 2010-03-22 at 04:17 -0400, Amerigo Wang wrote:
>>> This whole patchset is for adding netpoll support to bridge and bonding
>>> devices. I already tested it for bridge, bonding, bridge over bonding,
>>> and bonding over bridge. It looks fine now.
>> Ages ago, Jeff Moyer took a run at this, added him to the cc: on the off
>> chance he still cares.
> 
> I'll take a look at it in a bit.  For now, here is the link to my
> original post on this for Amerigo's reading pleasure:
> 
>   http://lkml.indiana.edu/hypermail/linux/kernel/0507.0/0206.html
> 

Thanks, Jeff! I will take a look at it.

^ permalink raw reply

* Re: [RFC PATCH] net: add additional lock to qdisc to increase enqueue/dequeue fairness
From: David Miller @ 2010-03-24  2:58 UTC (permalink / raw)
  To: alexander.h.duyck; +Cc: eric.dumazet, netdev
In-Reply-To: <80769D7B14936844A23C0C43D9FBCF0F254E49AC69@orsmsx501.amr.corp.intel.com>

From: "Duyck, Alexander H" <alexander.h.duyck@intel.com>
Date: Tue, 23 Mar 2010 15:08:12 -0700

> I'll do some digging on this to see what I can find out.

Please see:  http://vger.kernel.org/jamal_netconf2006.sxi

^ permalink raw reply

* [PATCH] igb: count Rx FIFO errors correctly
From: Jeff Kirsher @ 2010-03-24  4:34 UTC (permalink / raw)
  To: davem; +Cc: netdev, gospo, Mitch Williams, Jeff Kirsher

From: Mitch Williams <mitch.a.williams@intel.com>

Don't aggregate rx_no_buffer_count into rx_fifo_errors. RNBC counts
packets that get queued temporarily in the adapter's FIFO. These
packets are not dropped and are not errors. The correct counter
is rx_missed_errors (MPC).

Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---

 drivers/net/igb/igb_main.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 45a0e4f..70dc03b 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -3963,7 +3963,7 @@ void igb_update_stats(struct igb_adapter *adapter)
 	struct net_device_stats *net_stats = igb_get_stats(adapter->netdev);
 	struct e1000_hw *hw = &adapter->hw;
 	struct pci_dev *pdev = adapter->pdev;
-	u32 rnbc, reg;
+	u32 reg, mpc;
 	u16 phy_tmp;
 	int i;
 	u64 bytes, packets;
@@ -4021,7 +4021,9 @@ void igb_update_stats(struct igb_adapter *adapter)
 	adapter->stats.symerrs += rd32(E1000_SYMERRS);
 	adapter->stats.sec += rd32(E1000_SEC);
 
-	adapter->stats.mpc += rd32(E1000_MPC);
+	mpc = rd32(E1000_MPC);
+	adapter->stats.mpc += mpc;
+	net_stats->rx_fifo_errors += mpc;
 	adapter->stats.scc += rd32(E1000_SCC);
 	adapter->stats.ecol += rd32(E1000_ECOL);
 	adapter->stats.mcc += rd32(E1000_MCC);
@@ -4036,9 +4038,7 @@ void igb_update_stats(struct igb_adapter *adapter)
 	adapter->stats.gptc += rd32(E1000_GPTC);
 	adapter->stats.gotc += rd32(E1000_GOTCL);
 	rd32(E1000_GOTCH); /* clear GOTCL */
-	rnbc = rd32(E1000_RNBC);
-	adapter->stats.rnbc += rnbc;
-	net_stats->rx_fifo_errors += rnbc;
+	adapter->stats.rnbc += rd32(E1000_RNBC);
 	adapter->stats.ruc += rd32(E1000_RUC);
 	adapter->stats.rfc += rd32(E1000_RFC);
 	adapter->stats.rjc += rd32(E1000_RJC);


^ permalink raw reply related

* [PATCH] igb: do not modify tx_queue_len on link speed change
From: Jeff Kirsher @ 2010-03-24  4:34 UTC (permalink / raw)
  To: davem; +Cc: netdev, gospo, Emil Tantilov, Jeff Kirsher

From: Emil Tantilov <emil.s.tantilov@intel.com>

Previously the driver tweaked txqueuelen to avoid false Tx hang reports seen at half duplex.
This had the effect of overriding user set values on link change/reset. Testing shows that
adjusting only the timeout factor is sufficient to prevent Tx hang reports at half duplex.

Based on e1000e patch by Franco Fichtner <franco@lastsummer.de>

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---

 drivers/net/igb/igb.h      |    1 -
 drivers/net/igb/igb_main.c |   10 +---------
 2 files changed, 1 insertions(+), 10 deletions(-)

diff --git a/drivers/net/igb/igb.h b/drivers/net/igb/igb.h
index a177570..3b772b8 100644
--- a/drivers/net/igb/igb.h
+++ b/drivers/net/igb/igb.h
@@ -267,7 +267,6 @@ struct igb_adapter {
 
 	/* TX */
 	struct igb_ring *tx_ring[16];
-	unsigned long tx_queue_len;
 	u32 tx_timeout_count;
 
 	/* RX */
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 70dc03b..e72760c 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -1105,9 +1105,6 @@ static void igb_configure(struct igb_adapter *adapter)
 		struct igb_ring *ring = adapter->rx_ring[i];
 		igb_alloc_rx_buffers_adv(ring, igb_desc_unused(ring));
 	}
-
-
-	adapter->tx_queue_len = netdev->tx_queue_len;
 }
 
 /**
@@ -1213,7 +1210,6 @@ void igb_down(struct igb_adapter *adapter)
 	del_timer_sync(&adapter->watchdog_timer);
 	del_timer_sync(&adapter->phy_info_timer);
 
-	netdev->tx_queue_len = adapter->tx_queue_len;
 	netif_carrier_off(netdev);
 
 	/* record the stats before reset*/
@@ -3106,17 +3102,13 @@ static void igb_watchdog_task(struct work_struct *work)
 			       ((ctrl & E1000_CTRL_RFCE) ?  "RX" :
 			       ((ctrl & E1000_CTRL_TFCE) ?  "TX" : "None")));
 
-			/* tweak tx_queue_len according to speed/duplex and
-			 * adjust the timeout factor */
-			netdev->tx_queue_len = adapter->tx_queue_len;
+			/* adjust timeout factor according to speed/duplex */
 			adapter->tx_timeout_factor = 1;
 			switch (adapter->link_speed) {
 			case SPEED_10:
-				netdev->tx_queue_len = 10;
 				adapter->tx_timeout_factor = 14;
 				break;
 			case SPEED_100:
-				netdev->tx_queue_len = 100;
 				/* maybe add some timeout factor ? */
 				break;
 			}


^ permalink raw reply related

* [PATCH] igb: only use vlan_gro_receive if vlans are registered
From: Jeff Kirsher @ 2010-03-24  4:35 UTC (permalink / raw)
  To: davem; +Cc: netdev, gospo, Alexander Duyck, Jeff Kirsher

From: Alexander Duyck <alexander.h.duyck@intel.com>

This change makes it so that vlan_gro_receive is only used if vlans have been
registered to the adapter structure.  Previously we were just sending all vlan
tagged frames in via this function but this results in a null pointer
dereference when vlans are not registered.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---

 drivers/net/igb/igb_main.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index e72760c..01c65c7 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -5102,7 +5102,7 @@ static void igb_receive_skb(struct igb_q_vector *q_vector,
 {
 	struct igb_adapter *adapter = q_vector->adapter;
 
-	if (vlan_tag)
+	if (vlan_tag && adapter->vlgrp)
 		vlan_gro_receive(&q_vector->napi, adapter->vlgrp,
 		                 vlan_tag, skb);
 	else


^ permalink raw reply related

* Re: [PATCH v2] Fix locking in flush_backlog
From: Eric Dumazet @ 2010-03-24  5:34 UTC (permalink / raw)
  To: Tom Herbert; +Cc: davem, netdev
In-Reply-To: <alpine.DEB.1.00.1003231635190.360@pokey.mtv.corp.google.com>

Le mardi 23 mars 2010 à 16:39 -0700, Tom Herbert a écrit :
> Need to take spinlocks when dequeuing from input_pkt_queue in flush_backlog.
> Also, flush_backlog can now be called directly from netdev_run_todo.
> 
> Signed-off-by: Tom Herbert <therbert@google.com>

Acked-by: Eric Dumazet <eric.dumazet@gmail.com>

Thanks Tom

> ---
> diff --git a/net/core/dev.c b/net/core/dev.c
> diff --git a/net/core/dev.c b/net/core/dev.c
> index a03aab4..5e3dc28 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -2766,17 +2766,19 @@ int netif_receive_skb(struct sk_buff *skb)
>  EXPORT_SYMBOL(netif_receive_skb);
>  
>  /* Network device is going away, flush any packets still pending  */
> -static void flush_backlog(void *arg)
> +static void flush_backlog(struct net_device *dev, int cpu)
>  {
> -	struct net_device *dev = arg;
> -	struct softnet_data *queue = &__get_cpu_var(softnet_data);
> +	struct softnet_data *queue = &per_cpu(softnet_data, cpu);
>  	struct sk_buff *skb, *tmp;
> +	unsigned long flags;
>  
> +	spin_lock_irqsave(&queue->input_pkt_queue.lock, flags);
>  	skb_queue_walk_safe(&queue->input_pkt_queue, skb, tmp)
>  		if (skb->dev == dev) {
>  			__skb_unlink(skb, &queue->input_pkt_queue);
>  			kfree_skb(skb);
>  		}
> +	spin_unlock_irqrestore(&queue->input_pkt_queue.lock, flags);
>  }
>  
>  static int napi_gro_complete(struct sk_buff *skb)
> @@ -5545,6 +5547,7 @@ void netdev_run_todo(void)
>  	while (!list_empty(&list)) {
>  		struct net_device *dev
>  			= list_first_entry(&list, struct net_device, todo_list);
> +		int i;
>  		list_del(&dev->todo_list);
>  
>  		if (unlikely(dev->reg_state != NETREG_UNREGISTERING)) {
> @@ -5556,7 +5559,8 @@ void netdev_run_todo(void)
>  
>  		dev->reg_state = NETREG_UNREGISTERED;
>  
> -		on_each_cpu(flush_backlog, dev, 1);
> +		for_each_online_cpu(i)
> +			flush_backlog(dev, i);
>  
>  		netdev_wait_allrefs(dev);
>  


^ permalink raw reply

* Re: [RFC PATCH] net: add additional lock to qdisc to increase enqueue/dequeue fairness
From: Eric Dumazet @ 2010-03-24  5:42 UTC (permalink / raw)
  To: David Miller; +Cc: alexander.h.duyck, netdev
In-Reply-To: <20100323.195855.00471034.davem@davemloft.net>

Le mardi 23 mars 2010 à 19:58 -0700, David Miller a écrit :
> From: "Duyck, Alexander H" <alexander.h.duyck@intel.com>
> Date: Tue, 23 Mar 2010 15:08:12 -0700
> 
> > I'll do some digging on this to see what I can find out.
> 
> Please see:  http://vger.kernel.org/jamal_netconf2006.sxi
> --

Thanks David, this is very informative !

Do we have a list of such network related documents ?



^ permalink raw reply

* Re: [PATCH] igb: only use vlan_gro_receive if vlans are registered
From: Eric Dumazet @ 2010-03-24  5:50 UTC (permalink / raw)
  To: Jeff Kirsher; +Cc: davem, netdev, gospo, Alexander Duyck
In-Reply-To: <20100324043517.32036.81274.stgit@localhost.localdomain>

Le mardi 23 mars 2010 à 21:35 -0700, Jeff Kirsher a écrit :
> From: Alexander Duyck <alexander.h.duyck@intel.com>
> 
> This change makes it so that vlan_gro_receive is only used if vlans have been
> registered to the adapter structure.  Previously we were just sending all vlan
> tagged frames in via this function but this results in a null pointer
> dereference when vlans are not registered.
> 

This patch fixes bugzilla entry 15582

See http://bugzilla.kernel.org/show_bug.cgi?id=15582

> Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> ---
> 

Acked-by: Eric Dumazet <eric.dumazet@gmail.com>

>  drivers/net/igb/igb_main.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
> index e72760c..01c65c7 100644
> --- a/drivers/net/igb/igb_main.c
> +++ b/drivers/net/igb/igb_main.c
> @@ -5102,7 +5102,7 @@ static void igb_receive_skb(struct igb_q_vector *q_vector,
>  {
>  	struct igb_adapter *adapter = q_vector->adapter;
>  
> -	if (vlan_tag)
> +	if (vlan_tag && adapter->vlgrp)
>  		vlan_gro_receive(&q_vector->napi, adapter->vlgrp,
>  		                 vlan_tag, skb);
>  	else
> 
> --




^ permalink raw reply

* Re: [PATCH v2 1/2] vlan: adds vlan_dev_select_queue
From: Eric Dumazet @ 2010-03-24  5:53 UTC (permalink / raw)
  To: Jeff Kirsher; +Cc: davem, netdev, gospo, Vasu Dev
In-Reply-To: <20100324004116.31609.73183.stgit@localhost.localdomain>

Le mardi 23 mars 2010 à 17:41 -0700, Jeff Kirsher a écrit :
> From: Vasu Dev <vasu.dev@intel.com>
> 
> This is required to correctly select vlan tx queue for a driver
> supporting multi tx queue with ndo_select_queue implemented since
> currently selected vlan tx queue is unaligned to selected queue by
> real net_devce ndo_select_queue.
> 
> Unaligned vlan tx queue selection causes thrash with higher vlan
> tx lock contention for least fcoe traffic and wrong socket tx
> queue_mapping for ixgbe having ndo_select_queue implemented.
> 
> -v2
> 
> As per Eric Dumazet<eric.dumazet@gmail.com> comments, mirrored
> vlan net_device_ops to have them with and without vlan_dev_select_queue
> and then select according to real dev ndo_select_queue present or not
> for a vlan net_device. This is to completely skip vlan_dev_select_queue
> calling for real net_device not supporting ndo_select_queue.
> 
> Signed-off-by: Vasu Dev <vasu.dev@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> ---
> 

Acked-by: Eric Dumazet <eric.dumazet@gmail.com>

Thanks Jeff




^ permalink raw reply

* Re: [RFC PATCH] net: add additional lock to qdisc to increase enqueue/dequeue fairness
From: David Miller @ 2010-03-24  6:10 UTC (permalink / raw)
  To: eric.dumazet; +Cc: alexander.h.duyck, netdev
In-Reply-To: <1269409324.2915.44.camel@edumazet-laptop>

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Wed, 24 Mar 2010 06:42:04 +0100

> Do we have a list of such network related documents ?

Not really, just scan http://vger.kernel.org/netconf200${N}.html
for the papers :-)

^ permalink raw reply

* Re: [PATCH v2] Fix locking in flush_backlog
From: David Miller @ 2010-03-24  6:17 UTC (permalink / raw)
  To: eric.dumazet; +Cc: therbert, netdev
In-Reply-To: <1269408882.2915.42.camel@edumazet-laptop>

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Wed, 24 Mar 2010 06:34:42 +0100

> Le mardi 23 mars 2010 à 16:39 -0700, Tom Herbert a écrit :
>> Need to take spinlocks when dequeuing from input_pkt_queue in flush_backlog.
>> Also, flush_backlog can now be called directly from netdev_run_todo.
>> 
>> Signed-off-by: Tom Herbert <therbert@google.com>
> 
> Acked-by: Eric Dumazet <eric.dumazet@gmail.com>

Applied, thanks everyone.

^ permalink raw reply

* Re: [PATCH 1/2] bnx2: Fix netpoll crash.
From: David Miller @ 2010-03-24  6:20 UTC (permalink / raw)
  To: mchan; +Cc: netdev
In-Reply-To: <1269385992-18525-1-git-send-email-mchan@broadcom.com>

From: "Michael Chan" <mchan@broadcom.com>
Date: Tue, 23 Mar 2010 15:13:11 -0800

> From: Benjamin Li <benli@broadcom.com>
> 
> The bnx2 driver calls netif_napi_add() for all the NAPI structs during
> ->probe() time but not all of them will be used if we're not in MSI-X
> mode.  This creates a problem for netpoll since it will poll all the
> NAPI structs in the dev_list whether or not they are scheduled, resulting
> in a crash when we access structure fields not initialized for that vector.
> 
> We fix it by moving the netif_napi_add() call to ->open() after the number
> of IRQ vectors has been determined.
> 
> Signed-off-by: Benjamin Li <benli@broadcom.com>
> Signed-off-by: Michael Chan <mchan@broadcom.com>

Applied.

^ permalink raw reply

* Re: [PATCH 2/2] bnx2: Use proper handler during netpoll.
From: David Miller @ 2010-03-24  6:20 UTC (permalink / raw)
  To: mchan; +Cc: netdev
In-Reply-To: <1269385992-18525-2-git-send-email-mchan@broadcom.com>

From: "Michael Chan" <mchan@broadcom.com>
Date: Tue, 23 Mar 2010 15:13:12 -0800

> Netpoll needs to call the proper handler depending on the IRQ mode
> and the vector.
> 
> Signed-off-by: Michael Chan <mchan@broadcom.com>

Applied.

^ permalink raw reply

* Re: [PATCH] igb: count Rx FIFO errors correctly
From: David Miller @ 2010-03-24  6:20 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, mitch.a.williams
In-Reply-To: <20100324043437.32036.44229.stgit@localhost.localdomain>

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 23 Mar 2010 21:34:38 -0700

> From: Mitch Williams <mitch.a.williams@intel.com>
> 
> Don't aggregate rx_no_buffer_count into rx_fifo_errors. RNBC counts
> packets that get queued temporarily in the adapter's FIFO. These
> packets are not dropped and are not errors. The correct counter
> is rx_missed_errors (MPC).
> 
> Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>

Applied.

^ permalink raw reply

* Re: [PATCH] igb: do not modify tx_queue_len on link speed change
From: David Miller @ 2010-03-24  6:20 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, emil.s.tantilov
In-Reply-To: <20100324043456.32036.21219.stgit@localhost.localdomain>

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 23 Mar 2010 21:34:57 -0700

> From: Emil Tantilov <emil.s.tantilov@intel.com>
> 
> Previously the driver tweaked txqueuelen to avoid false Tx hang reports seen at half duplex.
> This had the effect of overriding user set values on link change/reset. Testing shows that
> adjusting only the timeout factor is sufficient to prevent Tx hang reports at half duplex.
> 
> Based on e1000e patch by Franco Fichtner <franco@lastsummer.de>
> 
> Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>

Applied.

^ permalink raw reply

* Re: [PATCH] igb: only use vlan_gro_receive if vlans are registered
From: David Miller @ 2010-03-24  6:21 UTC (permalink / raw)
  To: eric.dumazet; +Cc: jeffrey.t.kirsher, netdev, gospo, alexander.h.duyck
In-Reply-To: <1269409837.2915.48.camel@edumazet-laptop>

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Wed, 24 Mar 2010 06:50:37 +0100

> Le mardi 23 mars 2010 à 21:35 -0700, Jeff Kirsher a écrit :
>> From: Alexander Duyck <alexander.h.duyck@intel.com>
>> 
>> This change makes it so that vlan_gro_receive is only used if vlans have been
>> registered to the adapter structure.  Previously we were just sending all vlan
>> tagged frames in via this function but this results in a null pointer
>> dereference when vlans are not registered.
>> 
> 
> This patch fixes bugzilla entry 15582

I've added a note about this to the commit message.

>> Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
>> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>> ---
...
> Acked-by: Eric Dumazet <eric.dumazet@gmail.com>

Applied, thanks everyone.

^ permalink raw reply

* Re: [PATCH v2 1/2] vlan: adds vlan_dev_select_queue
From: David Miller @ 2010-03-24  6:30 UTC (permalink / raw)
  To: eric.dumazet; +Cc: jeffrey.t.kirsher, netdev, gospo, vasu.dev
In-Reply-To: <1269410022.2915.49.camel@edumazet-laptop>

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Wed, 24 Mar 2010 06:53:42 +0100

> Acked-by: Eric Dumazet <eric.dumazet@gmail.com>

Eric are you now OK with patch #2 in this series as well?

Thanks!

^ permalink raw reply

* Re: net-next: 2.6.34-rc1 regression: panic when running diagnostic on interface with IPv6
From: David Miller @ 2010-03-24  6:33 UTC (permalink / raw)
  To: emil.s.tantilov; +Cc: netdev, shemminger
In-Reply-To: <EA929A9653AAE14F841771FB1DE5A1365FE4ADAB2A@rrsmsx501.amr.corp.intel.com>

From: "Tantilov, Emil S" <emil.s.tantilov@intel.com>
Date: Tue, 23 Mar 2010 12:28:08 -0600

> Bisecting points to this patch:
> http://git.kernel.org/?p=linux/kernel/git/davem/net-next-2.6.git;a=commitdiff;h=84e8b803f1e16f3a2b8b80f80a63fa2f2f8a9be6
> 
> And I confirmed that the issue goes away after reverting it.
> 
> Steps to reproduce:
> 1. Load the driver and configure IPv6 address.
> 2. Run ethtool diag:
> ethtool -t eth0
> 
> 3. If this doesn't brake it try again, or just do ifdown/up. Other operations on the interface will eventually panic the system:

Stephen please fix this, thanks.

^ permalink raw reply

* Re: inet6_ifa_finish_destroy() blurt
From: David Miller @ 2010-03-24  6:33 UTC (permalink / raw)
  To: akpm; +Cc: netdev, shemminger
In-Reply-To: <20100323153520.3869ec5d.akpm@linux-foundation.org>

From: Andrew Morton <akpm@linux-foundation.org>
Date: Tue, 23 Mar 2010 15:35:20 -0700

> 
> Got this during boot using today's linux-next.  The
> WARN_ON(!hlist_unhashed(&ifp->addr_lst)) triggered. 
> 
> c2e21293c054817c42eb5fa9c613d2ad51954136 ("ipv6: convert addrconf list
> to hlist") added it.

Stephen please look into this.

Thank you.

^ permalink raw reply

* [PATCH] skbuff: remove unused dma_head & dma_maps fields
From: Jeff Kirsher @ 2010-03-24  6:40 UTC (permalink / raw)
  To: davem; +Cc: netdev, gospo, Alexander Duyck, Jeff Kirsher

From: Alexander Duyck <alexander.h.duyck@intel.com>

The dma map fields in the skb_shared_info structure no longer has any users
and can be dropped since it is making the skb_shared_info unecessarily larger.

Running slabtop show that we were using 4K slabs for the skb->head on x86_64 w/
an allocation size of 1522.  It turns out that the dma_head and dma_maps array
made skb_shared large enough that we had crossed over the 2k boundary with
standard frames and as such we were using 4k blocks of memory for all skbs.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---

 include/linux/skbuff.h |    6 ------
 1 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 03f816a..124f90c 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -190,9 +190,6 @@ struct skb_shared_info {
 	atomic_t	dataref;
 	unsigned short	nr_frags;
 	unsigned short	gso_size;
-#ifdef CONFIG_HAS_DMA
-	dma_addr_t	dma_head;
-#endif
 	/* Warning: this field is not always filled in (UFO)! */
 	unsigned short	gso_segs;
 	unsigned short  gso_type;
@@ -201,9 +198,6 @@ struct skb_shared_info {
 	struct sk_buff	*frag_list;
 	struct skb_shared_hwtstamps hwtstamps;
 	skb_frag_t	frags[MAX_SKB_FRAGS];
-#ifdef CONFIG_HAS_DMA
-	dma_addr_t	dma_maps[MAX_SKB_FRAGS];
-#endif
 	/* Intermediate layers must ensure that destructor_arg
 	 * remains valid until skb destructor */
 	void *		destructor_arg;


^ permalink raw reply related

* Re: [PATCH v2 2/2] vlan: updates vlan real_num_tx_queues
From: Eric Dumazet @ 2010-03-24  6:44 UTC (permalink / raw)
  To: Jeff Kirsher; +Cc: davem, netdev, gospo, Vasu Dev
In-Reply-To: <20100324004204.31609.55285.stgit@localhost.localdomain>

Le mardi 23 mars 2010 à 17:42 -0700, Jeff Kirsher a écrit :
> From: Vasu Dev <vasu.dev@intel.com>
> 
> Updates real_num_tx_queues in case underlying real device
> has changed real_num_tx_queues.
> 
> -v2
>  As per Eric Dumazet<eric.dumazet@gmail.com> comment:-
>    -- adds BUG_ON to catch case of real_num_tx_queues exceeding num_tx_queues.
>    -- created this self contained patch to just update real_num_tx_queues.
> 
> Signed-off-by: Vasu Dev <vasu.dev@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> ---
> 

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>

Thanks Jeff  and Vasu :)

>  net/8021q/vlan.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
> index 4535122..db783d7 100644
> --- a/net/8021q/vlan.c
> +++ b/net/8021q/vlan.c
> @@ -378,6 +378,8 @@ static void vlan_transfer_features(struct net_device *dev,
>  #if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE)
>  	vlandev->fcoe_ddp_xid = dev->fcoe_ddp_xid;
>  #endif
> +	vlandev->real_num_tx_queues = dev->real_num_tx_queues;
> +	BUG_ON(vlandev->real_num_tx_queues > vlandev->num_tx_queues);
>  
>  	if (old_features != vlandev->features)
>  		netdev_features_change(vlandev);
> 



^ permalink raw reply

* Re: [PATCH v2 1/2] vlan: adds vlan_dev_select_queue
From: Eric Dumazet @ 2010-03-24  6:45 UTC (permalink / raw)
  To: David Miller; +Cc: jeffrey.t.kirsher, netdev, gospo, vasu.dev
In-Reply-To: <20100323.233042.267394656.davem@davemloft.net>

Le mardi 23 mars 2010 à 23:30 -0700, David Miller a écrit :
> From: Eric Dumazet <eric.dumazet@gmail.com>
> Date: Wed, 24 Mar 2010 06:53:42 +0100
> 
> > Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
> 
> Eric are you now OK with patch #2 in this series as well?
> 

Absolutely, I feel better after a breakfirst :)

Thanks



^ permalink raw reply

* Re: [PATCH] skbuff: remove unused dma_head & dma_maps fields
From: Eric Dumazet @ 2010-03-24  6:48 UTC (permalink / raw)
  To: Jeff Kirsher; +Cc: davem, netdev, gospo, Alexander Duyck
In-Reply-To: <20100324064049.32298.87859.stgit@localhost.localdomain>

Le mardi 23 mars 2010 à 23:40 -0700, Jeff Kirsher a écrit :
> From: Alexander Duyck <alexander.h.duyck@intel.com>
> 
> The dma map fields in the skb_shared_info structure no longer has any users
> and can be dropped since it is making the skb_shared_info unecessarily larger.
> 
> Running slabtop show that we were using 4K slabs for the skb->head on x86_64 w/
> an allocation size of 1522.  It turns out that the dma_head and dma_maps array
> made skb_shared large enough that we had crossed over the 2k boundary with
> standard frames and as such we were using 4k blocks of memory for all skbs.
> 
> Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> ---
> 

Thanks a lot for doing this cleanup !

Acked-by: Eric Dumazet <eric.dumazet@gmail.com>




^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox