* 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
* 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 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
* [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: 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
* 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: [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: [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] 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: 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 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 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 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: [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 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: [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: [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 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
* [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
* [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: 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
* 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
* 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: 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
* [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
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox