2023-08-10 08:10:06

by Guo Samin

[permalink] [raw]
Subject: [-next v1 1/1] riscv: dts: starfive: jh7110: Fix GMAC configuration

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 <[email protected]>
Signed-off-by: Samin Guo <[email protected]>
---
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>;
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



2023-08-10 11:56:08

by Emil Renner Berthing

[permalink] [raw]
Subject: Re: [-next v1 1/1] riscv: dts: starfive: jh7110: Fix GMAC configuration

On Thu, 10 Aug 2023 at 09:46, Samin Guo <[email protected]> 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 <[email protected]>
> Signed-off-by: Samin Guo <[email protected]>
> ---
> 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 <[email protected]>

> 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
>

2023-08-10 12:16:43

by Guo Samin

[permalink] [raw]
Subject: Re: [-next v1 1/1] riscv: dts: starfive: jh7110: Fix GMAC configuration



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 <[email protected]>
>> Signed-off-by: Samin Guo <[email protected]>
>
> 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

2023-08-10 13:06:10

by Conor Dooley

[permalink] [raw]
Subject: Re: [-next v1 1/1] riscv: dts: starfive: jh7110: Fix GMAC configuration

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 <[email protected]>
> Signed-off-by: Samin Guo <[email protected]>

This is
Fixes: 1ff166c97972 ("riscv: dts: starfive: jh7110: Add ethernet device nodes")
right?


Attachments:
(No filename) (2.61 kB)
signature.asc (235.00 B)
Download all attachments

2023-08-11 02:35:06

by Guo Samin

[permalink] [raw]
Subject: Re: [-next v1 1/1] riscv: dts: starfive: jh7110: Fix GMAC configuration



On 2023/8/10 19:28:23, Emil Renner Berthing wrote:
> On Thu, 10 Aug 2023 at 09:46, Samin Guo <[email protected]> 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 <[email protected]>
>> Signed-off-by: Samin Guo <[email protected]>
>> ---
>> 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 <[email protected]>

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
>>