diff mbox series

[-next,v1,1/1] riscv: dts: starfive: jh7110: Fix GMAC configuration

Message ID 20230810074646.19076-2-samin.guo@starfivetech.com (mailing list archive)
State Accepted
Headers show
Series Fix StarFive JH7110 gmac TCP RX speed issue | expand

Checks

Context Check Description
conchuod/tree_selection fail Failed to apply to next/pending-fixes, riscv/for-next or riscv/master

Commit Message

Guo Samin Aug. 10, 2023, 7:46 a.m. UTC
Fixed configuration to improve the speed of TCP RX.

Before:
  # iperf3 -s
  -----------------------------------------------------------
  Server listening on 5201 (test #1)
  -----------------------------------------------------------
  Accepted connection from 192.168.1.4, port 47604
  [  5] local 192.168.1.3 port 5201 connected to 192.168.1.4 port 47612
  [ ID] Interval           Transfer     Bitrate
  [  5]   0.00-1.00   sec  36.3 MBytes   305 Mbits/sec
  [  5]   1.00-2.00   sec  35.6 MBytes   299 Mbits/sec
  [  5]   2.00-3.00   sec  36.5 MBytes   306 Mbits/sec
  [  5]   3.00-4.00   sec  36.5 MBytes   306 Mbits/sec
  [  5]   4.00-5.00   sec  35.7 MBytes   300 Mbits/sec
  [  5]   5.00-6.00   sec  35.4 MBytes   297 Mbits/sec
  [  5]   6.00-7.00   sec  37.1 MBytes   311 Mbits/sec
  [  5]   7.00-8.00   sec  35.6 MBytes   298 Mbits/sec
  [  5]   8.00-9.00   sec  36.4 MBytes   305 Mbits/sec
  [  5]   9.00-10.00  sec  36.3 MBytes   304 Mbits/sec
  - - - - - - - - - - - - - - - - - - - - - - - - -
  [ ID] Interval           Transfer     Bitrate
  [  5]   0.00-10.00  sec   361 MBytes   303 Mbits/sec        receiver

After:
  # iperf3 -s
  -----------------------------------------------------------
  Server listening on 5201 (test #1)
  -----------------------------------------------------------
  Accepted connection from 192.168.1.4, port 47710
  [  5] local 192.168.1.3 port 5201 connected to 192.168.1.4 port 47720
  [ ID] Interval           Transfer     Bitrate
  [  5]   0.00-1.00   sec   111 MBytes   932 Mbits/sec
  [  5]   1.00-2.00   sec   111 MBytes   934 Mbits/sec
  [  5]   2.00-3.00   sec   111 MBytes   934 Mbits/sec
  [  5]   3.00-4.00   sec   111 MBytes   934 Mbits/sec
  [  5]   4.00-5.00   sec   111 MBytes   934 Mbits/sec
  [  5]   5.00-6.00   sec   111 MBytes   935 Mbits/sec
  [  5]   6.00-7.00   sec   111 MBytes   934 Mbits/sec
  [  5]   7.00-8.00   sec   111 MBytes   935 Mbits/sec
  [  5]   8.00-9.00   sec   111 MBytes   934 Mbits/sec
  [  5]   9.00-10.00  sec   111 MBytes   934 Mbits/sec
  [  5]  10.00-10.00  sec   167 KBytes   933 Mbits/sec
  - - - - - - - - - - - - - - - - - - - - - - - - -
  [ ID] Interval           Transfer     Bitrate
  [  5]   0.00-10.00  sec  1.09 GBytes   934 Mbits/sec        receiver

Reviewed-by: Hal Feng <hal.feng@starfivetech.com>
Signed-off-by: Samin Guo <samin.guo@starfivetech.com>
---
 arch/riscv/boot/dts/starfive/jh7110.dtsi | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--
2.17.1

Comments

Conor Dooley Aug. 10, 2023, 10:48 a.m. UTC | #1
On Thu, Aug 10, 2023 at 03:46:46PM +0800, Samin Guo wrote:
> Fixed configuration to improve the speed of TCP RX.
> 
> Before:
>   # iperf3 -s
>   -----------------------------------------------------------
>   Server listening on 5201 (test #1)
>   -----------------------------------------------------------
>   Accepted connection from 192.168.1.4, port 47604
>   [  5] local 192.168.1.3 port 5201 connected to 192.168.1.4 port 47612
>   [ ID] Interval           Transfer     Bitrate
>   [  5]   0.00-1.00   sec  36.3 MBytes   305 Mbits/sec
>   [  5]   1.00-2.00   sec  35.6 MBytes   299 Mbits/sec
>   [  5]   2.00-3.00   sec  36.5 MBytes   306 Mbits/sec
>   [  5]   3.00-4.00   sec  36.5 MBytes   306 Mbits/sec
>   [  5]   4.00-5.00   sec  35.7 MBytes   300 Mbits/sec
>   [  5]   5.00-6.00   sec  35.4 MBytes   297 Mbits/sec
>   [  5]   6.00-7.00   sec  37.1 MBytes   311 Mbits/sec
>   [  5]   7.00-8.00   sec  35.6 MBytes   298 Mbits/sec
>   [  5]   8.00-9.00   sec  36.4 MBytes   305 Mbits/sec
>   [  5]   9.00-10.00  sec  36.3 MBytes   304 Mbits/sec
>   - - - - - - - - - - - - - - - - - - - - - - - - -
>   [ ID] Interval           Transfer     Bitrate
>   [  5]   0.00-10.00  sec   361 MBytes   303 Mbits/sec        receiver
> 
> After:
>   # iperf3 -s
>   -----------------------------------------------------------
>   Server listening on 5201 (test #1)
>   -----------------------------------------------------------
>   Accepted connection from 192.168.1.4, port 47710
>   [  5] local 192.168.1.3 port 5201 connected to 192.168.1.4 port 47720
>   [ ID] Interval           Transfer     Bitrate
>   [  5]   0.00-1.00   sec   111 MBytes   932 Mbits/sec
>   [  5]   1.00-2.00   sec   111 MBytes   934 Mbits/sec
>   [  5]   2.00-3.00   sec   111 MBytes   934 Mbits/sec
>   [  5]   3.00-4.00   sec   111 MBytes   934 Mbits/sec
>   [  5]   4.00-5.00   sec   111 MBytes   934 Mbits/sec
>   [  5]   5.00-6.00   sec   111 MBytes   935 Mbits/sec
>   [  5]   6.00-7.00   sec   111 MBytes   934 Mbits/sec
>   [  5]   7.00-8.00   sec   111 MBytes   935 Mbits/sec
>   [  5]   8.00-9.00   sec   111 MBytes   934 Mbits/sec
>   [  5]   9.00-10.00  sec   111 MBytes   934 Mbits/sec
>   [  5]  10.00-10.00  sec   167 KBytes   933 Mbits/sec
>   - - - - - - - - - - - - - - - - - - - - - - - - -
>   [ ID] Interval           Transfer     Bitrate
>   [  5]   0.00-10.00  sec  1.09 GBytes   934 Mbits/sec        receiver
> 
> Reviewed-by: Hal Feng <hal.feng@starfivetech.com>
> Signed-off-by: Samin Guo <samin.guo@starfivetech.com>

This is
Fixes: 1ff166c97972 ("riscv: dts: starfive: jh7110: Add ethernet device nodes")
right?
Guo Samin Aug. 10, 2023, 10:54 a.m. UTC | #2
on 2023/8/10 18:48:38, Conor Dooley wrote:
> On Thu, Aug 10, 2023 at 03:46:46PM +0800, Samin Guo wrote:
>> Fixed configuration to improve the speed of TCP RX.
>>
>> Before:
>>   # iperf3 -s
>>   -----------------------------------------------------------
>>   Server listening on 5201 (test #1)
>>   -----------------------------------------------------------
>>   Accepted connection from 192.168.1.4, port 47604
>>   [  5] local 192.168.1.3 port 5201 connected to 192.168.1.4 port 47612
>>   [ ID] Interval           Transfer     Bitrate
>>   [  5]   0.00-1.00   sec  36.3 MBytes   305 Mbits/sec
>>   [  5]   1.00-2.00   sec  35.6 MBytes   299 Mbits/sec
>>   [  5]   2.00-3.00   sec  36.5 MBytes   306 Mbits/sec
>>   [  5]   3.00-4.00   sec  36.5 MBytes   306 Mbits/sec
>>   [  5]   4.00-5.00   sec  35.7 MBytes   300 Mbits/sec
>>   [  5]   5.00-6.00   sec  35.4 MBytes   297 Mbits/sec
>>   [  5]   6.00-7.00   sec  37.1 MBytes   311 Mbits/sec
>>   [  5]   7.00-8.00   sec  35.6 MBytes   298 Mbits/sec
>>   [  5]   8.00-9.00   sec  36.4 MBytes   305 Mbits/sec
>>   [  5]   9.00-10.00  sec  36.3 MBytes   304 Mbits/sec
>>   - - - - - - - - - - - - - - - - - - - - - - - - -
>>   [ ID] Interval           Transfer     Bitrate
>>   [  5]   0.00-10.00  sec   361 MBytes   303 Mbits/sec        receiver
>>
>> After:
>>   # iperf3 -s
>>   -----------------------------------------------------------
>>   Server listening on 5201 (test #1)
>>   -----------------------------------------------------------
>>   Accepted connection from 192.168.1.4, port 47710
>>   [  5] local 192.168.1.3 port 5201 connected to 192.168.1.4 port 47720
>>   [ ID] Interval           Transfer     Bitrate
>>   [  5]   0.00-1.00   sec   111 MBytes   932 Mbits/sec
>>   [  5]   1.00-2.00   sec   111 MBytes   934 Mbits/sec
>>   [  5]   2.00-3.00   sec   111 MBytes   934 Mbits/sec
>>   [  5]   3.00-4.00   sec   111 MBytes   934 Mbits/sec
>>   [  5]   4.00-5.00   sec   111 MBytes   934 Mbits/sec
>>   [  5]   5.00-6.00   sec   111 MBytes   935 Mbits/sec
>>   [  5]   6.00-7.00   sec   111 MBytes   934 Mbits/sec
>>   [  5]   7.00-8.00   sec   111 MBytes   935 Mbits/sec
>>   [  5]   8.00-9.00   sec   111 MBytes   934 Mbits/sec
>>   [  5]   9.00-10.00  sec   111 MBytes   934 Mbits/sec
>>   [  5]  10.00-10.00  sec   167 KBytes   933 Mbits/sec
>>   - - - - - - - - - - - - - - - - - - - - - - - - -
>>   [ ID] Interval           Transfer     Bitrate
>>   [  5]   0.00-10.00  sec  1.09 GBytes   934 Mbits/sec        receiver
>>
>> Reviewed-by: Hal Feng <hal.feng@starfivetech.com>
>> Signed-off-by: Samin Guo <samin.guo@starfivetech.com>
> 
> This is
> Fixes: 1ff166c97972 ("riscv: dts: starfive: jh7110: Add ethernet device nodes")
> right?

Hi Conor,

Yes. There is an issue with the configuration of the 1ff166c97972 that affects the speed of the GMAC TCP RX.

Best regards,
Samin
Emil Renner Berthing Aug. 10, 2023, 11:28 a.m. UTC | #3
On Thu, 10 Aug 2023 at 09:46, Samin Guo <samin.guo@starfivetech.com> wrote:
>
> Fixed configuration to improve the speed of TCP RX.
>
> Before:
>   # iperf3 -s
>   -----------------------------------------------------------
>   Server listening on 5201 (test #1)
>   -----------------------------------------------------------
>   Accepted connection from 192.168.1.4, port 47604
>   [  5] local 192.168.1.3 port 5201 connected to 192.168.1.4 port 47612
>   [ ID] Interval           Transfer     Bitrate
>   [  5]   0.00-1.00   sec  36.3 MBytes   305 Mbits/sec
>   [  5]   1.00-2.00   sec  35.6 MBytes   299 Mbits/sec
>   [  5]   2.00-3.00   sec  36.5 MBytes   306 Mbits/sec
>   [  5]   3.00-4.00   sec  36.5 MBytes   306 Mbits/sec
>   [  5]   4.00-5.00   sec  35.7 MBytes   300 Mbits/sec
>   [  5]   5.00-6.00   sec  35.4 MBytes   297 Mbits/sec
>   [  5]   6.00-7.00   sec  37.1 MBytes   311 Mbits/sec
>   [  5]   7.00-8.00   sec  35.6 MBytes   298 Mbits/sec
>   [  5]   8.00-9.00   sec  36.4 MBytes   305 Mbits/sec
>   [  5]   9.00-10.00  sec  36.3 MBytes   304 Mbits/sec
>   - - - - - - - - - - - - - - - - - - - - - - - - -
>   [ ID] Interval           Transfer     Bitrate
>   [  5]   0.00-10.00  sec   361 MBytes   303 Mbits/sec        receiver
>
> After:
>   # iperf3 -s
>   -----------------------------------------------------------
>   Server listening on 5201 (test #1)
>   -----------------------------------------------------------
>   Accepted connection from 192.168.1.4, port 47710
>   [  5] local 192.168.1.3 port 5201 connected to 192.168.1.4 port 47720
>   [ ID] Interval           Transfer     Bitrate
>   [  5]   0.00-1.00   sec   111 MBytes   932 Mbits/sec
>   [  5]   1.00-2.00   sec   111 MBytes   934 Mbits/sec
>   [  5]   2.00-3.00   sec   111 MBytes   934 Mbits/sec
>   [  5]   3.00-4.00   sec   111 MBytes   934 Mbits/sec
>   [  5]   4.00-5.00   sec   111 MBytes   934 Mbits/sec
>   [  5]   5.00-6.00   sec   111 MBytes   935 Mbits/sec
>   [  5]   6.00-7.00   sec   111 MBytes   934 Mbits/sec
>   [  5]   7.00-8.00   sec   111 MBytes   935 Mbits/sec
>   [  5]   8.00-9.00   sec   111 MBytes   934 Mbits/sec
>   [  5]   9.00-10.00  sec   111 MBytes   934 Mbits/sec
>   [  5]  10.00-10.00  sec   167 KBytes   933 Mbits/sec
>   - - - - - - - - - - - - - - - - - - - - - - - - -
>   [ ID] Interval           Transfer     Bitrate
>   [  5]   0.00-10.00  sec  1.09 GBytes   934 Mbits/sec        receiver
>
> Reviewed-by: Hal Feng <hal.feng@starfivetech.com>
> Signed-off-by: Samin Guo <samin.guo@starfivetech.com>
> ---
>  arch/riscv/boot/dts/starfive/jh7110.dtsi | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi b/arch/riscv/boot/dts/starfive/jh7110.dtsi
> index a608433200e8..76884cf373bf 100644
> --- a/arch/riscv/boot/dts/starfive/jh7110.dtsi
> +++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi
> @@ -318,8 +318,8 @@
>
>         stmmac_axi_setup: stmmac-axi-config {
>                 snps,lpi_en;
> -               snps,wr_osr_lmt = <4>;
> -               snps,rd_osr_lmt = <4>;
> +               snps,wr_osr_lmt = <0xf>;
> +               snps,rd_osr_lmt = <0xf>;

nit: this is a limit, so presumably counting things and not an address
or bitmask, so I'd prefer decimal numbers here, eg <15>.

It works fine either way, so
Reviewed-by: Emil Renner Berthing <emil.renner.berthing@canonical.com>

>                 snps,blen = <256 128 64 32 0 0 0>;
>         };
>
> @@ -839,7 +839,7 @@
>                         rx-fifo-depth = <2048>;
>                         tx-fifo-depth = <2048>;
>                         snps,multicast-filter-bins = <64>;
> -                       snps,perfect-filter-entries = <8>;
> +                       snps,perfect-filter-entries = <256>;
>                         snps,fixed-burst;
>                         snps,no-pbl-x8;
>                         snps,force_thresh_dma_mode;
> @@ -870,7 +870,7 @@
>                         rx-fifo-depth = <2048>;
>                         tx-fifo-depth = <2048>;
>                         snps,multicast-filter-bins = <64>;
> -                       snps,perfect-filter-entries = <8>;
> +                       snps,perfect-filter-entries = <256>;
>                         snps,fixed-burst;
>                         snps,no-pbl-x8;
>                         snps,force_thresh_dma_mode;
> --
> 2.17.1
>
Guo Samin Aug. 11, 2023, 1:38 a.m. UTC | #4
On 2023/8/10 19:28:23, Emil Renner Berthing wrote:
> On Thu, 10 Aug 2023 at 09:46, Samin Guo <samin.guo@starfivetech.com> wrote:
>>
>> Fixed configuration to improve the speed of TCP RX.
>>
>> Before:
>>   # iperf3 -s
>>   -----------------------------------------------------------
>>   Server listening on 5201 (test #1)
>>   -----------------------------------------------------------
>>   Accepted connection from 192.168.1.4, port 47604
>>   [  5] local 192.168.1.3 port 5201 connected to 192.168.1.4 port 47612
>>   [ ID] Interval           Transfer     Bitrate
>>   [  5]   0.00-1.00   sec  36.3 MBytes   305 Mbits/sec
>>   [  5]   1.00-2.00   sec  35.6 MBytes   299 Mbits/sec
>>   [  5]   2.00-3.00   sec  36.5 MBytes   306 Mbits/sec
>>   [  5]   3.00-4.00   sec  36.5 MBytes   306 Mbits/sec
>>   [  5]   4.00-5.00   sec  35.7 MBytes   300 Mbits/sec
>>   [  5]   5.00-6.00   sec  35.4 MBytes   297 Mbits/sec
>>   [  5]   6.00-7.00   sec  37.1 MBytes   311 Mbits/sec
>>   [  5]   7.00-8.00   sec  35.6 MBytes   298 Mbits/sec
>>   [  5]   8.00-9.00   sec  36.4 MBytes   305 Mbits/sec
>>   [  5]   9.00-10.00  sec  36.3 MBytes   304 Mbits/sec
>>   - - - - - - - - - - - - - - - - - - - - - - - - -
>>   [ ID] Interval           Transfer     Bitrate
>>   [  5]   0.00-10.00  sec   361 MBytes   303 Mbits/sec        receiver
>>
>> After:
>>   # iperf3 -s
>>   -----------------------------------------------------------
>>   Server listening on 5201 (test #1)
>>   -----------------------------------------------------------
>>   Accepted connection from 192.168.1.4, port 47710
>>   [  5] local 192.168.1.3 port 5201 connected to 192.168.1.4 port 47720
>>   [ ID] Interval           Transfer     Bitrate
>>   [  5]   0.00-1.00   sec   111 MBytes   932 Mbits/sec
>>   [  5]   1.00-2.00   sec   111 MBytes   934 Mbits/sec
>>   [  5]   2.00-3.00   sec   111 MBytes   934 Mbits/sec
>>   [  5]   3.00-4.00   sec   111 MBytes   934 Mbits/sec
>>   [  5]   4.00-5.00   sec   111 MBytes   934 Mbits/sec
>>   [  5]   5.00-6.00   sec   111 MBytes   935 Mbits/sec
>>   [  5]   6.00-7.00   sec   111 MBytes   934 Mbits/sec
>>   [  5]   7.00-8.00   sec   111 MBytes   935 Mbits/sec
>>   [  5]   8.00-9.00   sec   111 MBytes   934 Mbits/sec
>>   [  5]   9.00-10.00  sec   111 MBytes   934 Mbits/sec
>>   [  5]  10.00-10.00  sec   167 KBytes   933 Mbits/sec
>>   - - - - - - - - - - - - - - - - - - - - - - - - -
>>   [ ID] Interval           Transfer     Bitrate
>>   [  5]   0.00-10.00  sec  1.09 GBytes   934 Mbits/sec        receiver
>>
>> Reviewed-by: Hal Feng <hal.feng@starfivetech.com>
>> Signed-off-by: Samin Guo <samin.guo@starfivetech.com>
>> ---
>>  arch/riscv/boot/dts/starfive/jh7110.dtsi | 8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi b/arch/riscv/boot/dts/starfive/jh7110.dtsi
>> index a608433200e8..76884cf373bf 100644
>> --- a/arch/riscv/boot/dts/starfive/jh7110.dtsi
>> +++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi
>> @@ -318,8 +318,8 @@
>>
>>         stmmac_axi_setup: stmmac-axi-config {
>>                 snps,lpi_en;
>> -               snps,wr_osr_lmt = <4>;
>> -               snps,rd_osr_lmt = <4>;
>> +               snps,wr_osr_lmt = <0xf>;
>> +               snps,rd_osr_lmt = <0xf>;
> 
> nit: this is a limit, so presumably counting things and not an address
> or bitmask, so I'd prefer decimal numbers here, eg <15>.
> 
> It works fine either way, so
> Reviewed-by: Emil Renner Berthing <emil.renner.berthing@canonical.com>

Thanks Esmil, that's right.
I refer to examples of snps,dwmac.yaml, so I use 0xf...

Best regards,
Samin
> 
>>                 snps,blen = <256 128 64 32 0 0 0>;
>>         };
>>
>> @@ -839,7 +839,7 @@
>>                         rx-fifo-depth = <2048>;
>>                         tx-fifo-depth = <2048>;
>>                         snps,multicast-filter-bins = <64>;
>> -                       snps,perfect-filter-entries = <8>;
>> +                       snps,perfect-filter-entries = <256>;
>>                         snps,fixed-burst;
>>                         snps,no-pbl-x8;
>>                         snps,force_thresh_dma_mode;
>> @@ -870,7 +870,7 @@
>>                         rx-fifo-depth = <2048>;
>>                         tx-fifo-depth = <2048>;
>>                         snps,multicast-filter-bins = <64>;
>> -                       snps,perfect-filter-entries = <8>;
>> +                       snps,perfect-filter-entries = <256>;
>>                         snps,fixed-burst;
>>                         snps,no-pbl-x8;
>>                         snps,force_thresh_dma_mode;
>> --
>> 2.17.1
>>
diff mbox series

Patch

diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi b/arch/riscv/boot/dts/starfive/jh7110.dtsi
index a608433200e8..76884cf373bf 100644
--- a/arch/riscv/boot/dts/starfive/jh7110.dtsi
+++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi
@@ -318,8 +318,8 @@ 

 	stmmac_axi_setup: stmmac-axi-config {
 		snps,lpi_en;
-		snps,wr_osr_lmt = <4>;
-		snps,rd_osr_lmt = <4>;
+		snps,wr_osr_lmt = <0xf>;
+		snps,rd_osr_lmt = <0xf>;
 		snps,blen = <256 128 64 32 0 0 0>;
 	};

@@ -839,7 +839,7 @@ 
 			rx-fifo-depth = <2048>;
 			tx-fifo-depth = <2048>;
 			snps,multicast-filter-bins = <64>;
-			snps,perfect-filter-entries = <8>;
+			snps,perfect-filter-entries = <256>;
 			snps,fixed-burst;
 			snps,no-pbl-x8;
 			snps,force_thresh_dma_mode;
@@ -870,7 +870,7 @@ 
 			rx-fifo-depth = <2048>;
 			tx-fifo-depth = <2048>;
 			snps,multicast-filter-bins = <64>;
-			snps,perfect-filter-entries = <8>;
+			snps,perfect-filter-entries = <256>;
 			snps,fixed-burst;
 			snps,no-pbl-x8;
 			snps,force_thresh_dma_mode;