On Fri, Mar 19, 2021 at 05:15:35AM +0100, Willy Tarreau wrote:
> On Fri, Mar 19, 2021 at 12:04:47PM +0800, Sieng Piaw Liew wrote:
> > Remove this trivial bit of inefficiency from the rx receive loop,
> > results in increase of a few Mbps in iperf3. Tested on Intel Cor
Using napi_alloc_skb in NAPI context avoids enable/disable IRQs, which
increases iperf3 result by a few Mbps. Since napi_alloc_skb() uses
NET_IP_ALIGN, convert other alloc methods to the same padding. Tested
on Intel Core2 and AMD K10 platforms.
Signed-off-by: Sieng Piaw Liew
---
.../net
Remove this trivial bit of inefficiency from the rx receive loop,
results in increase of a few Mbps in iperf3. Tested on Intel Core2
platform.
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git
Changing to napi_gro_receive() improves efficiency significantly. Tested
on Intel Core2-based motherboards and iperf3.
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet
Changing to napi_gro_receive() improves efficiency significantly. Tested
on Intel Core2-based motherboards and iperf3.
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet
Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
index fd8767213165..977f097fc7bf 100644
--- a/drivers/net/ethernet
Use existing rx processed count to track against budget, thereby making
budget decrement operation redundant.
rx_desc_count can be calculated outside the rx loop, making the loop a
bit smaller.
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 4 ++--
1 file
Retr
[ 4] 0.00-30.00 sec 171 MBytes 47.8 Mbits/sec 272 sender
[ 4] 0.00-30.00 sec 170 MBytes 47.6 Mbits/secreceiver
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 111 ++-
drivers/net/etherne
Support bulking hardware TX queue by using netdev_xmit_more().
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
b/drivers/net/ethernet/broadcom
The rx SKB ring use the same code for cleanup at various points.
Combine them into a function to reduce lines of code.
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 72 ++--
1 file changed, 22 insertions(+), 50 deletions(-)
diff --git a
Add Byte Queue Limits support to reduce/remove bufferbloat in
bcm63xx_enet.
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 9 +
1 file changed, 9 insertions(+)
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
b/drivers/net/ethernet/broadcom
sender
[ 4] 0.00-30.00 sec 154 MBytes 43.1 Mbits/sec receiver
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
b/drivers/net/ethernet/broadcom
120 MBytes 33.5 Mbits/secreceiver
After:
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-30.00 sec 136 MBytes 37.9 Mbits/sec 203 sender
[ 4] 0.00-30.00 sec 135 MBytes 37.7 Mbits/secreceiver
Signed-off-by: Sieng Piaw Liew
loop improvisation patches.
* Moved BQL netdev_reset_queue() to bcm_enet_stop()/bcm_enetsw_stop()
functions as suggested by Florian Fainelli.
* Improved commit messages.
Sieng Piaw Liew (7):
bcm63xx_enet: batch process rx path
bcm63xx_enet: add BQL support
bcm63xx_enet: add xmit_more support
120 MBytes 33.5 Mbits/secreceiver
After:
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-30.00 sec 136 MBytes 37.9 Mbits/sec 203 sender
[ 4] 0.00-30.00 sec 135 MBytes 37.7 Mbits/secreceiver
Signed-off-by: Sieng Piaw Liew
and rx loop improvisation patches.
* Moved BQL netdev_reset_queue() to bcm_enet_stop()/bcm_enetsw_stop()
functions as suggested by Florian Fainelli.
* Improved commit messages.
Sieng Piaw Liew (6):
bcm63xx_enet: batch process rx path
bcm63xx_enet: add BQL support
bcm63xx_enet: add xmit_more
Use existing rx processed count to track against budget, thereby making
budget decrement operation redundant.
rx_desc_count can be calculated outside the rx loop, making the loop a
bit smaller.
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 4 ++--
1 file
Retr
[ 4] 0.00-30.00 sec 171 MBytes 47.8 Mbits/sec 272 sender
[ 4] 0.00-30.00 sec 170 MBytes 47.6 Mbits/secreceiver
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 157 +--
drivers/net/etherne
Add Byte Queue Limits support to reduce/remove bufferbloat in
bcm63xx_enet.
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 9 +
1 file changed, 9 insertions(+)
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
b/drivers/net/ethernet/broadcom
Support bulking hardware TX queue by using netdev_xmit_more().
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 11 +++
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
b/drivers/net/ethernet
sender
[ 4] 0.00-30.00 sec 154 MBytes 43.1 Mbits/sec receiver
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
b/drivers/net/ethernet/broadcom
On Fri, Dec 04, 2020 at 10:50:45AM +0100, Eric Dumazet wrote:
>
>
> On 12/4/20 6:46 AM, Sieng Piaw Liew wrote:
> > Use netif_receive_skb_list to batch process rx skb.
> > Tested on BCM6328 320 MHz using iperf3 -M 512, increasing performance
> > by 12.5%.
> >
&
Add Byte Queue Limits support to reduce/remove bufferbloat in
bcm63xx_enet.
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 9 +
1 file changed, 9 insertions(+)
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
b/drivers/net/ethernet/broadcom
30.00 sec 171 MBytes 47.8 Mbits/sec 272 sender
[ 4] 0.00-30.00 sec 170 MBytes 47.6 Mbits/secreceiver
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 156 ---
drivers/net/ethernet/broadcom/bcm63xx_enet.h | 14 +-
2 fil
sender
[ 4] 0.00-30.00 sec 154 MBytes 43.1 Mbits/sec receiver
Signed-off-by: Sieng Piaw Liew
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 5 -
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
b/drivers/net/ethernet/broadcom
120 MBytes 33.5 Mbits/secreceiver
After:
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-30.00 sec 136 MBytes 37.9 Mbits/sec 203 sender
[ 4] 0.00-30.00 sec 135 MBytes 37.7 Mbits/secreceiver
Signed-off-by: Sieng Piaw Liew
26 matches
Mail list logo