* [PATCH] cxgb3: Set vlan_feature on net_device
@ 2012-07-18 19:29 brenohl
2012-07-18 20:12 ` Rick Jones
2012-07-19 17:50 ` David Miller
0 siblings, 2 replies; 5+ messages in thread
From: brenohl @ 2012-07-18 19:29 UTC (permalink / raw)
To: divy; +Cc: netdev, Breno Leitao
cxgb3 interface has a bad performance when VLAN is set. On my current
setup, a PowerLinux 7R2, I am able to get around 7 Gbps on a TCP_STREAM
(8 instances, 4k message).
With this patch, I am able to reach 9.5 Gbps.
Signed-off-by: Breno Leitao <brenohl@br.ibm.com>
diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
index abb6ce7..fcf4b31 100644
--- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
@@ -3173,6 +3173,9 @@ static void __devinit cxgb3_init_iscsi_mac(struct net_device *dev)
pi->iscsic.mac_addr[3] |= 0x80;
}
+#define TSO_FLAGS (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN)
+#define VLAN_FEAT (NETIF_F_SG | NETIF_F_IP_CSUM | TSO_FLAGS | \
+ NETIF_F_IPV6_CSUM | NETIF_F_HIGHDMA)
static int __devinit init_one(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
@@ -3293,6 +3296,7 @@ static int __devinit init_one(struct pci_dev *pdev,
netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM |
NETIF_F_TSO | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_RX;
netdev->features |= netdev->hw_features | NETIF_F_HW_VLAN_TX;
+ netdev->vlan_features |= netdev->features & VLAN_FEAT;
if (pci_using_dac)
netdev->features |= NETIF_F_HIGHDMA;
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] cxgb3: Set vlan_feature on net_device
2012-07-18 19:29 [PATCH] cxgb3: Set vlan_feature on net_device brenohl
@ 2012-07-18 20:12 ` Rick Jones
2012-07-19 17:50 ` David Miller
1 sibling, 0 replies; 5+ messages in thread
From: Rick Jones @ 2012-07-18 20:12 UTC (permalink / raw)
To: brenohl; +Cc: divy, netdev
On 07/18/2012 12:29 PM, brenohl@br.ibm.com wrote:
> cxgb3 interface has a bad performance when VLAN is set. On my current
> setup, a PowerLinux 7R2, I am able to get around 7 Gbps on a TCP_STREAM
> (8 instances, 4k message).
> With this patch, I am able to reach 9.5 Gbps.
Getting service demand out of an aggregate netperf test is a chore, but
reporting the change in CPU utilization should be pretty
straightforward. Since you ended-up being constrained by link-rate,
showing the CPU utilization change (and calculating service demand
manually if you feel up to it) may help show the change has an even
greater effect then (9.5-7)/7 or 35%.
What does the change do for latency and/or maximum, min-sized packets
per second.
rick jones
there is more to the network than just bits/s :)
>
> Signed-off-by: Breno Leitao <brenohl@br.ibm.com>
>
> diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
> index abb6ce7..fcf4b31 100644
> --- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
> +++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
> @@ -3173,6 +3173,9 @@ static void __devinit cxgb3_init_iscsi_mac(struct net_device *dev)
> pi->iscsic.mac_addr[3] |= 0x80;
> }
>
> +#define TSO_FLAGS (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN)
> +#define VLAN_FEAT (NETIF_F_SG | NETIF_F_IP_CSUM | TSO_FLAGS | \
> + NETIF_F_IPV6_CSUM | NETIF_F_HIGHDMA)
> static int __devinit init_one(struct pci_dev *pdev,
> const struct pci_device_id *ent)
> {
> @@ -3293,6 +3296,7 @@ static int __devinit init_one(struct pci_dev *pdev,
> netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM |
> NETIF_F_TSO | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_RX;
> netdev->features |= netdev->hw_features | NETIF_F_HW_VLAN_TX;
> + netdev->vlan_features |= netdev->features & VLAN_FEAT;
> if (pci_using_dac)
> netdev->features |= NETIF_F_HIGHDMA;
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] cxgb3: Set vlan_feature on net_device
2012-07-18 19:29 [PATCH] cxgb3: Set vlan_feature on net_device brenohl
2012-07-18 20:12 ` Rick Jones
@ 2012-07-19 17:50 ` David Miller
1 sibling, 0 replies; 5+ messages in thread
From: David Miller @ 2012-07-19 17:50 UTC (permalink / raw)
To: brenohl; +Cc: divy, netdev
From: brenohl@br.ibm.com
Date: Wed, 18 Jul 2012 14:29:08 -0500
> cxgb3 interface has a bad performance when VLAN is set. On my current
> setup, a PowerLinux 7R2, I am able to get around 7 Gbps on a TCP_STREAM
> (8 instances, 4k message).
> With this patch, I am able to reach 9.5 Gbps.
>
> Signed-off-by: Breno Leitao <brenohl@br.ibm.com>
Applied.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] cxgb3: Set vlan_feature on net_device
2012-07-27 18:22 brenohl
@ 2012-07-27 18:57 ` Breno Leitao
0 siblings, 0 replies; 5+ messages in thread
From: Breno Leitao @ 2012-07-27 18:57 UTC (permalink / raw)
To: brenohl; +Cc: jitendra.kalsaria, ron.mercer, netdev
On 07/27/2012 03:22 PM, brenohl@br.ibm.com wrote:
> cxgb3 interface has a bad performance when VLAN is set. On my current
> setup, a PowerLinux 7R2, I am able to get around 7 Gbps on a TCP_STREAM
> (8 instances, 4k message).
> With this patch, I am able to reach 9.5 Gbps.
Please do not consider this patch. I'd send a qlge patch, but wrongly made
a shell-completion mistake and sent the wrong patch. The correct patch is
under its way.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] cxgb3: Set vlan_feature on net_device
@ 2012-07-27 18:22 brenohl
2012-07-27 18:57 ` Breno Leitao
0 siblings, 1 reply; 5+ messages in thread
From: brenohl @ 2012-07-27 18:22 UTC (permalink / raw)
To: jitendra.kalsaria, ron.mercer; +Cc: netdev, Breno Leitao
cxgb3 interface has a bad performance when VLAN is set. On my current
setup, a PowerLinux 7R2, I am able to get around 7 Gbps on a TCP_STREAM
(8 instances, 4k message).
With this patch, I am able to reach 9.5 Gbps.
Signed-off-by: Breno Leitao <brenohl@br.ibm.com>
diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
index abb6ce7..fcf4b31 100644
--- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
@@ -3173,6 +3173,9 @@ static void __devinit cxgb3_init_iscsi_mac(struct net_device *dev)
pi->iscsic.mac_addr[3] |= 0x80;
}
+#define TSO_FLAGS (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_TSO_ECN)
+#define VLAN_FEAT (NETIF_F_SG | NETIF_F_IP_CSUM | TSO_FLAGS | \
+ NETIF_F_IPV6_CSUM | NETIF_F_HIGHDMA)
static int __devinit init_one(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
@@ -3293,6 +3296,7 @@ static int __devinit init_one(struct pci_dev *pdev,
netdev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM |
NETIF_F_TSO | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_RX;
netdev->features |= netdev->hw_features | NETIF_F_HW_VLAN_TX;
+ netdev->vlan_features |= netdev->features & VLAN_FEAT;
if (pci_using_dac)
netdev->features |= NETIF_F_HIGHDMA;
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-07-27 18:57 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-18 19:29 [PATCH] cxgb3: Set vlan_feature on net_device brenohl
2012-07-18 20:12 ` Rick Jones
2012-07-19 17:50 ` David Miller
2012-07-27 18:22 brenohl
2012-07-27 18:57 ` Breno Leitao
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.