2011-05-10 00:39:29

by Shreyas Bhatewara

[permalink] [raw]
Subject: [PATCH net-next] vmxnet3: Use single tx queue when CONFIG_PCI_MSI not defined


Limit number of Tx queues to 1 if MSI/MSI-X support is not configured in
the kernel. This will make number of tx and rx queues equal when MSI/X is
not configured thus providing better performance.

Signed-off-by: Shreyas N Bhatewara <[email protected]>

---

diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
index 7a494f7..537e387 100644
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -2890,10 +2890,12 @@ vmxnet3_probe_device(struct pci_dev *pdev,
#endif
num_rx_queues = 1;

+#ifdef CONFIG_PCI_MSI
if (enable_mq)
num_tx_queues = min(VMXNET3_DEVICE_MAX_TX_QUEUES,
(int)num_online_cpus());
else
+#endif
num_tx_queues = 1;

netdev = alloc_etherdev_mq(sizeof(struct vmxnet3_adapter),
diff --git a/drivers/net/vmxnet3/vmxnet3_int.h b/drivers/net/vmxnet3/vmxnet3_int.h
index 8ba7b5f..f50d36f 100644
--- a/drivers/net/vmxnet3/vmxnet3_int.h
+++ b/drivers/net/vmxnet3/vmxnet3_int.h
@@ -68,10 +68,10 @@
/*
* Version numbers
*/
-#define VMXNET3_DRIVER_VERSION_STRING "1.0.25.0-k"
+#define VMXNET3_DRIVER_VERSION_STRING "1.1.9.0-k"

/* a 32-bit int, each byte encode a verion number in VMXNET3_DRIVER_VERSION */
-#define VMXNET3_DRIVER_VERSION_NUM 0x01001900
+#define VMXNET3_DRIVER_VERSION_NUM 0x01010900

#if defined(CONFIG_PCI_MSI)
/* RSS only makes sense if MSI-X is supported. */


2011-05-10 16:13:55

by Shreyas Bhatewara

[permalink] [raw]
Subject: Re: [PATCH net-next] vmxnet3: Use single tx queue when CONFIG_PCI_MSI not defined


Resending this patch with few changes.


Avoid multiple queues when MSI or MSI-X not available

Limit number of Tx queues to 1 if MSI/MSI-X support is not configured in
the kernel. This will make number of tx and rx queues equal when MSI/X
is not configured thus providing better performance.

Signed-off-by: Bhavesh Davda <[email protected]>
Signed-off-by: Shreyas N Bhatewara <[email protected]>

---

diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c
b/drivers/net/vmxnet3/vmxnet3_drv.c
index 7a494f7..ab2e753 100644
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -2882,6 +2882,9 @@ vmxnet3_probe_device(struct pci_dev *pdev,
int num_tx_queues;
int num_rx_queues;

+ if (!pci_msi_enabled())
+ enable_mq = 0;
+
#ifdef VMXNET3_RSS
if (enable_mq)
num_rx_queues = min(VMXNET3_DEVICE_MAX_RX_QUEUES,
diff --git a/drivers/net/vmxnet3/vmxnet3_int.h b/drivers/net/vmxnet3/vmxnet3_int.h
index 8ba7b5f..f50d36f 100644
--- a/drivers/net/vmxnet3/vmxnet3_int.h
+++ b/drivers/net/vmxnet3/vmxnet3_int.h
@@ -68,10 +68,10 @@
/*
* Version numbers
*/
-#define VMXNET3_DRIVER_VERSION_STRING "1.0.25.0-k"
+#define VMXNET3_DRIVER_VERSION_STRING "1.1.9.0-k"

/* a 32-bit int, each byte encode a verion number in VMXNET3_DRIVER_VERSION */
-#define VMXNET3_DRIVER_VERSION_NUM 0x01001900
+#define VMXNET3_DRIVER_VERSION_NUM 0x01010900

#if defined(CONFIG_PCI_MSI)
/* RSS only makes sense if MSI-X is supported. */

2011-05-12 21:38:05

by David Miller

[permalink] [raw]
Subject: Re: [PATCH net-next] vmxnet3: Use single tx queue when CONFIG_PCI_MSI not defined

From: Shreyas Bhatewara <[email protected]>
Date: Tue, 10 May 2011 09:13:56 -0700 (PDT)

>
> Resending this patch with few changes.
>
>
> Avoid multiple queues when MSI or MSI-X not available
>
> Limit number of Tx queues to 1 if MSI/MSI-X support is not configured in
> the kernel. This will make number of tx and rx queues equal when MSI/X
> is not configured thus providing better performance.
>
> Signed-off-by: Bhavesh Davda <[email protected]>
> Signed-off-by: Shreyas N Bhatewara <[email protected]>

Applied, thanks.