Re: [PATCH] atl1c: optimize rx loop

2021-03-21 Thread Sieng Piaw Liew
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

[PATCH] atl1c: use napi_alloc_skb

2021-03-18 Thread Sieng Piaw Liew
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

[PATCH] atl1c: optimize rx loop

2021-03-18 Thread Sieng Piaw Liew
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

[PATCH net-next] atl1c: switch to napi_gro_receive

2021-03-18 Thread Sieng Piaw Liew
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

[PATCH net] atl1c: switch to napi_gro_receive

2021-02-21 Thread Sieng Piaw Liew
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

[PATCH net] bcm63xx_enet: fix sporadic kernel panic

2021-02-21 Thread Sieng Piaw Liew
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

[PATCH net-next v3 7/7] bcm63xx_enet: improve rx loop

2021-01-06 Thread Sieng Piaw Liew
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

[PATCH net-next v3 6/7] bcm63xx_enet: convert to build_skb

2021-01-06 Thread Sieng Piaw Liew
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

[PATCH net-next v3 3/7] bcm63xx_enet: add xmit_more support

2021-01-06 Thread Sieng Piaw Liew
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

[PATCH net-next v3 5/7] bcm63xx_enet: consolidate rx SKB ring cleanup code

2021-01-06 Thread Sieng Piaw Liew
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

[PATCH net-next v3 2/7] bcm63xx_enet: add BQL support

2021-01-06 Thread Sieng Piaw Liew
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

[PATCH net-next v3 4/7] bcm63xx_enet: alloc rx skb with NET_IP_ALIGN

2021-01-06 Thread Sieng Piaw Liew
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

[PATCH net-next v3 1/7] bcm63xx_enet: batch process rx path

2021-01-06 Thread Sieng Piaw Liew
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

[PATCH net-next v3 0/7] bcm63xx_enet: major makeover of driver

2021-01-06 Thread 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

[PATCH net-next v2 1/6] bcm63xx_enet: batch process rx path

2020-12-24 Thread Sieng Piaw Liew
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

[PATCH net-next v2 0/6] bcm63xx_enet: major makeover of driver

2020-12-24 Thread 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

[PATCH net-next v2 6/6] bcm63xx_enet: improve rx loop

2020-12-24 Thread Sieng Piaw Liew
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

[PATCH net-next v2 5/6] bcm63xx_enet: convert to build_skb

2020-12-24 Thread Sieng Piaw Liew
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

[PATCH net-next v2 2/6] bcm63xx_enet: add BQL support

2020-12-24 Thread Sieng Piaw Liew
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

[PATCH net-next v2 3/6] bcm63xx_enet: add xmit_more support

2020-12-24 Thread Sieng Piaw Liew
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

[PATCH net-next v2 4/6] bcm63xx_enet: alloc rx skb with NET_IP_ALIGN

2020-12-24 Thread Sieng Piaw Liew
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

Re: [PATCH net-next] bcm63xx_enet: batch process rx path

2020-12-08 Thread Sieng Piaw Liew
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%. > > &

[PATCH net-next] bcm63xx_enet: add BQL support

2020-12-03 Thread Sieng Piaw Liew
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

[PATCH net-next] bcm63xx_enet: convert to build_skb

2020-12-03 Thread Sieng Piaw Liew
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

[PATCH net-next] bcm63xx_enet: alloc rx skb with NET_IP_ALIGN

2020-12-03 Thread Sieng Piaw Liew
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

[PATCH net-next] bcm63xx_enet: batch process rx path

2020-12-03 Thread Sieng Piaw Liew
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