Re: [PATCH 0/2] net: fs_enet: Remove non NAPI RX and add NAPI for TX

2014-10-08 Thread David Miller
From: Christophe Leroy christophe.le...@c-s.fr
Date: Tue,  7 Oct 2014 15:04:53 +0200 (CEST)

 When using a MPC8xx as a router, 'perf' shows a significant time spent in 
 fs_enet_interrupt() and fs_enet_start_xmit().
 'perf annotate' shows that the time spent in fs_enet_start_xmit is indeed 
 spent
 between spin_unlock_irqrestore() and the following instruction, hence in
 interrupt handling. This is due to the TX complete interrupt that fires after
 each transmitted packet.
 This patchset first remove all non NAPI handling as NAPI has become the only
 mode for RX, then adds NAPI for handling TX complete.
 This improves NAT TCP throughput by 21% on MPC885 with FEC.
 
 Tested on MPC885 with FEC.
 
 [PATCH 1/2] net: fs_enet: Remove non NAPI RX
 [PATCH 2/2] net: fs_enet: Add NAPI TX
 
 Signed-off-by: Christophe Leroy christophe.le...@c-s.fr

Series applied, thanks.

Any particular reason you didn't just put the TX reclaim calls into
the existing NAPI handler?

That's what other drivers do, because TX reclaim can make SKBs
available for RX packet receive on the local cpu.  So generally you
have one NAPI context that first does any pending TX reclaim, then
polls the RX ring for new packets.

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Re: [PATCH 0/2] net: fs_enet: Remove non NAPI RX and add NAPI for TX

2014-10-08 Thread leroy christophe


Le 08/10/2014 22:03, David Miller a écrit :

From: Christophe Leroy christophe.le...@c-s.fr
Date: Tue,  7 Oct 2014 15:04:53 +0200 (CEST)


When using a MPC8xx as a router, 'perf' shows a significant time spent in
fs_enet_interrupt() and fs_enet_start_xmit().
'perf annotate' shows that the time spent in fs_enet_start_xmit is indeed spent
between spin_unlock_irqrestore() and the following instruction, hence in
interrupt handling. This is due to the TX complete interrupt that fires after
each transmitted packet.
This patchset first remove all non NAPI handling as NAPI has become the only
mode for RX, then adds NAPI for handling TX complete.
This improves NAT TCP throughput by 21% on MPC885 with FEC.

Tested on MPC885 with FEC.

[PATCH 1/2] net: fs_enet: Remove non NAPI RX
[PATCH 2/2] net: fs_enet: Add NAPI TX

Signed-off-by: Christophe Leroy christophe.le...@c-s.fr

Series applied, thanks.

Any particular reason you didn't just put the TX reclaim calls into
the existing NAPI handler?

Not really. I used the gianfar.c driver as a model.


That's what other drivers do, because TX reclaim can make SKBs
available for RX packet receive on the local cpu.  So generally you
have one NAPI context that first does any pending TX reclaim, then
polls the RX ring for new packets.


Is that a better approach ?

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

[PATCH 0/2] net: fs_enet: Remove non NAPI RX and add NAPI for TX

2014-10-07 Thread Christophe Leroy
When using a MPC8xx as a router, 'perf' shows a significant time spent in 
fs_enet_interrupt() and fs_enet_start_xmit().
'perf annotate' shows that the time spent in fs_enet_start_xmit is indeed spent
between spin_unlock_irqrestore() and the following instruction, hence in
interrupt handling. This is due to the TX complete interrupt that fires after
each transmitted packet.
This patchset first remove all non NAPI handling as NAPI has become the only
mode for RX, then adds NAPI for handling TX complete.
This improves NAT TCP throughput by 21% on MPC885 with FEC.

Tested on MPC885 with FEC.

[PATCH 1/2] net: fs_enet: Remove non NAPI RX
[PATCH 2/2] net: fs_enet: Add NAPI TX

Signed-off-by: Christophe Leroy christophe.le...@c-s.fr

---
 .../net/ethernet/freescale/fs_enet/fs_enet-main.c  | 211 ++---
 .../net/ethernet/freescale/fs_enet/fs_enet.h   |   9 +-
 .../net/ethernet/freescale/fs_enet/mac-fcc.c   |  29 +++
 .../net/ethernet/freescale/fs_enet/mac-fec.c   |  29 +++
 .../net/ethernet/freescale/fs_enet/mac-scc.c   |  29 +++
 linux/include/linux/fs_enet_pd.h   |   1 -
 6 files changed, 147 insertions(+), 161 deletions(-)
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev