Message ID | e43f07fd-1407-a87a-7fe5-67a522da9e19@cogentembedded.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | sh_eth: implement simple RX checksum offload | expand |
Hi Sergei, On Sun, Jan 27, 2019 at 6:41 PM Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> wrote: > The R-Mobile A1 (R8A7740) SoC manual describes the Ether MAC's RX checksum > offload the same way as it's implemented in the EtherAVB MAC... > > Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Thanks for your patch! Running netperf as described in patch 2/7, perf tells me there's a reduction for csum_partial from ca. 1.9% to 0.01%, so this feature seems to work. Hence: Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> However, while effective according to perf results, using ethtool to enable/disable the feature prints an error message: root@armadillo:~# ethtool -K eth0 rx on Cannot get device udp-fragmentation-offload settings: Operation not supported Cannot get device udp-fragmentation-offload settings: Operation not supported root@armadillo:~# ethtool -K eth0 rx off Cannot get device udp-fragmentation-offload settings: Operation not supported Cannot get device udp-fragmentation-offload settings: Operation not supported root@armadillo:~# Do you have any clue? Does this needs testing on R-Mobile A1 with VLAN enabled, too, or is that independent from the underlying sh-eth hardware version? Gr{oetje,eeting}s, Geert
Hello! On 01/29/2019 09:20 PM, Geert Uytterhoeven wrote: >> The R-Mobile A1 (R8A7740) SoC manual describes the Ether MAC's RX checksum >> offload the same way as it's implemented in the EtherAVB MAC... >> >> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> > > Thanks for your patch! > > Running netperf as described in patch 2/7, perf tells me there's a reduction > for csum_partial from ca. 1.9% to 0.01%, so this feature seems to work. Hm, what about do_csum()? > Hence: > Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Thank you! > However, while effective according to perf results, using ethtool to > enable/disable > the feature prints an error message: > > root@armadillo:~# ethtool -K eth0 rx on > Cannot get device udp-fragmentation-offload settings: Operation not supported > Cannot get device udp-fragmentation-offload settings: Operation not supported > root@armadillo:~# ethtool -K eth0 rx off > Cannot get device udp-fragmentation-offload settings: Operation not supported > Cannot get device udp-fragmentation-offload settings: Operation not supported > root@armadillo:~# > > Do you have any clue? No (I'm seeing the same). > Does this needs testing on R-Mobile A1 with VLAN enabled, too, or is that > independent from the underlying sh-eth hardware version? It's dependent... > Gr{oetje,eeting}s, > > Geert MBR, Sergei
Hi Sergei, On Thu, Jan 31, 2019 at 11:52 AM Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> wrote: > On 01/29/2019 09:20 PM, Geert Uytterhoeven wrote: > >> The R-Mobile A1 (R8A7740) SoC manual describes the Ether MAC's RX checksum > >> offload the same way as it's implemented in the EtherAVB MAC... > >> > >> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> > > > > Thanks for your patch! > > > > Running netperf as described in patch 2/7, perf tells me there's a reduction > > for csum_partial from ca. 1.9% to 0.01%, so this feature seems to work. > > Hm, what about do_csum()? I had looked for that, but didn't see it. Probably inlined, as it's static. Gr{oetje,eeting}s, Geert
Index: net-next/drivers/net/ethernet/renesas/sh_eth.c =================================================================== --- net-next.orig/drivers/net/ethernet/renesas/sh_eth.c +++ net-next/drivers/net/ethernet/renesas/sh_eth.c @@ -670,6 +670,7 @@ static struct sh_eth_cpu_data r8a7740_da .no_ade = 1, .xdfar_rw = 1, .csmr = 1, + .rx_csum = 1, .tsu = 1, .select_mii = 1, .magic = 1,
The R-Mobile A1 (R8A7740) SoC manual describes the Ether MAC's RX checksum offload the same way as it's implemented in the EtherAVB MAC... Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> --- drivers/net/ethernet/renesas/sh_eth.c | 1 + 1 file changed, 1 insertion(+)