Re: [RFC] split NAPI from network device.

From: Divy Le Ray
Date: Wed Feb 21 2007 - 02:41:01 EST


David Miller wrote:
From: Stephen Hemminger <shemminger@xxxxxxxx>
Date: Wed, 13 Dec 2006 15:46:35 -0800

Split off NAPI part from network device, this patch is build tested
only! It breaks kernel API for network devices, and only three examples
are fixed (skge, sky2, and tg3).

1. Decomposition allows different NAPI <-> network device
Some hardware has N devices for one IRQ, others like MSI-X
want multiple receive's for one device.

2. Cleanup locking with netpoll

3. Change poll callback arguements and semantics

4. Make softnet_data static (only in dev.c)

Old:
dev->poll(dev, &budget)
returns 1 or 0
requeu if returns 1

New:
napi->poll(napi, quota)
returns # of elements processed
requeue based on status

Signed-off-by: Stephen Hemminger <shemminger@xxxxxxxx>

I rebuffed this patch against current 2.6.x GIT and fixed all of
the drivers.

Hi Dave,

I applied the patch to test the chelsio drivers.
The compilation of the forcedeth driver fails if CONFIG_FORCEDETH_NAPI is not set.
/opt/sources/linux-2.6/drivers/net/forcedeth.c: In function `nv_nic_irq':
/opt/sources/linux-2.6/drivers/net/forcedeth.c:2866: error: structure has no member named `weight'
/opt/sources/linux-2.6/drivers/net/forcedeth.c: In function `nv_nic_irq_optimized':
/opt/sources/linux-2.6/drivers/net/forcedeth.c:2983: error: structure has no member named `weight'
/opt/sources/linux-2.6/drivers/net/forcedeth.c: In function `nv_nic_irq_rx':
/opt/sources/linux-2.6/drivers/net/forcedeth.c:3177: error: structure has no member named `weight'

The compilation of the cxgb driver also fails if CONFIG_CHELSIO_T1_NAPI is not set, but it has nothing to do with your patch.
I'm looking into it.

Cheers,
Divy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/