mirror of
https://github.com/corundum/corundum.git
synced 2025-01-16 08:12:53 +08:00
modules/mqnic/: Make number of allocated queue entries configurable via module parameters
This may be complemented or replaced by making use of the appropriate ethtool API in the future, of course. Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
This commit is contained in:
parent
f5f40297e3
commit
508b4cf39b
@ -52,6 +52,10 @@
|
||||
|
||||
#include "mqnic_hw.h"
|
||||
|
||||
extern unsigned int mqnic_num_ev_queue_entries;
|
||||
extern unsigned int mqnic_num_tx_queue_entries;
|
||||
extern unsigned int mqnic_num_rx_queue_entries;
|
||||
|
||||
struct mqnic_dev;
|
||||
struct mqnic_if;
|
||||
|
||||
|
@ -127,7 +127,8 @@ int mqnic_create_interface(struct mqnic_dev *mdev, struct mqnic_if **interface_p
|
||||
if (ret)
|
||||
goto fail;
|
||||
|
||||
ret = mqnic_alloc_eq_ring(interface->event_ring[k], 1024, MQNIC_EVENT_SIZE); // TODO configure/constant
|
||||
ret = mqnic_alloc_eq_ring(interface->event_ring[k], mqnic_num_ev_queue_entries,
|
||||
MQNIC_EVENT_SIZE);
|
||||
if (ret)
|
||||
goto fail;
|
||||
|
||||
|
@ -47,6 +47,20 @@ MODULE_AUTHOR("Alex Forencich");
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
MODULE_VERSION(DRIVER_VERSION);
|
||||
|
||||
unsigned int mqnic_num_ev_queue_entries = 1024;
|
||||
unsigned int mqnic_num_tx_queue_entries = 1024;
|
||||
unsigned int mqnic_num_rx_queue_entries = 1024;
|
||||
|
||||
module_param_named(num_ev_queue_entries, mqnic_num_ev_queue_entries,
|
||||
uint, 0444);
|
||||
MODULE_PARM_DESC(num_ev_queue_entries, "number of entries to allocate per event queue (default: 1024)");
|
||||
module_param_named(num_tx_queue_entries, mqnic_num_tx_queue_entries,
|
||||
uint, 0444);
|
||||
MODULE_PARM_DESC(num_tx_queue_entries, "number of entries to allocate per transmit queue (default: 1024)");
|
||||
module_param_named(num_rx_queue_entries, mqnic_num_rx_queue_entries,
|
||||
uint, 0444);
|
||||
MODULE_PARM_DESC(num_rx_queue_entries, "number of entries to allocate per receive queue (default: 1024)");
|
||||
|
||||
static const struct pci_device_id mqnic_pci_id_table[] = {
|
||||
{PCI_DEVICE(0x1234, 0x1001)},
|
||||
{PCI_DEVICE(0x5543, 0x1001)},
|
||||
|
@ -435,25 +435,30 @@ int mqnic_create_netdev(struct mqnic_if *interface, struct net_device **ndev_ptr
|
||||
|
||||
// allocate ring buffers
|
||||
for (k = 0; k < priv->tx_queue_count; k++) {
|
||||
ret = mqnic_alloc_tx_ring(priv->tx_ring[k], 1024, MQNIC_DESC_SIZE * desc_block_size); // TODO configure/constant
|
||||
ret = mqnic_alloc_tx_ring(priv->tx_ring[k], mqnic_num_tx_queue_entries,
|
||||
MQNIC_DESC_SIZE * desc_block_size);
|
||||
if (ret)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
for (k = 0; k < priv->tx_cpl_queue_count; k++) {
|
||||
ret = mqnic_alloc_cq_ring(priv->tx_cpl_ring[k], 1024, MQNIC_CPL_SIZE); // TODO configure/constant
|
||||
ret = mqnic_alloc_cq_ring(priv->tx_cpl_ring[k], mqnic_num_tx_queue_entries,
|
||||
MQNIC_CPL_SIZE);
|
||||
if (ret)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
for (k = 0; k < priv->rx_queue_count; k++) {
|
||||
ret = mqnic_alloc_rx_ring(priv->rx_ring[k], 1024, MQNIC_DESC_SIZE); // TODO configure/constant
|
||||
ret = mqnic_alloc_rx_ring(priv->rx_ring[k], mqnic_num_rx_queue_entries,
|
||||
MQNIC_DESC_SIZE);
|
||||
if (ret)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
for (k = 0; k < priv->rx_cpl_queue_count; k++) {
|
||||
ret = mqnic_alloc_cq_ring(priv->rx_cpl_ring[k], 1024, MQNIC_CPL_SIZE); // TODO configure/constant
|
||||
ret = mqnic_alloc_cq_ring(priv->rx_cpl_ring[k], mqnic_num_rx_queue_entries,
|
||||
MQNIC_CPL_SIZE);
|
||||
|
||||
if (ret)
|
||||
goto fail;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user