Hi Jose,

On 5/17/2018 7:43 PM, Jose Abreu wrote:
Hi Bhadram,

On 15-05-2018 07:44, Bhadram Varka wrote:
Hi Jose,

On 5/10/2018 9:15 PM, Jose Abreu wrote:


On 10-05-2018 16:08, Bhadram Varka wrote:
Hi Jose,

On 5/10/2018 7:59 PM, Jose Abreu wrote:
Hi Bhadram,

On 10-05-2018 09:55, Jose Abreu wrote:
++net-dev

Hi Bhadram,

On 09-05-2018 12:03, Bhadram Varka wrote:
Hi,

Thanks for responding.

Tried below suggested way. Still observing the issue -
It seems stmmac has a bug in the RX side when using TSO
which is
causing all the RX descriptors to be consumed. The stmmac_rx()
function will need to be refactored. I will send a fix ASAP.

Are you using this patch [1] ? Because there is a problem with
the patch. By adding the previously removed call to
stmmac_init_rx_desc() TSO works okay in my setup.


No. I don't have this change in my code base. I am using
net-next tree.

Can you please post the change for which TSO works ? I can help
you with the testing.

It should work with net-next because patch was not merged yet ...
Please send me the output of "dmesg | grep -i stmmac", since boot
and your full register values (from 0x0 to 0x12E4).


[root@alarm ~]# dmesg | grep -i dwc
[    6.925005] dwc-eth-dwmac 2490000.ethernet: Cannot get CSR
clock
[    6.933657] dwc-eth-dwmac 2490000.ethernet: no reset control
found
[    6.955325] dwc-eth-dwmac 2490000.ethernet: User ID: 0x10,
Synopsys ID: 0x41
[    6.962379] dwc-eth-dwmac 2490000.ethernet:  DWMAC4/5
[    6.967434] dwc-eth-dwmac 2490000.ethernet: DMA HW
capability register supported
[    6.974827] dwc-eth-dwmac 2490000.ethernet: RX Checksum
Offload Engine supported
[    6.982915] dwc-eth-dwmac 2490000.ethernet: TX Checksum
insertion supported
[    6.991235] dwc-eth-dwmac 2490000.ethernet: Wake-Up On Lan
supported
[    6.998974] dwc-eth-dwmac 2490000.ethernet: TSO supported
[    7.006422] dwc-eth-dwmac 2490000.ethernet: TSO feature enabled
[    7.012581] dwc-eth-dwmac 2490000.ethernet: Enable RX
Mitigation via HW Watchdog Timer
[    7.236391] dwc-eth-dwmac 2490000.ethernet eth0: device MAC
address 4a:d1:e3:58:cb:7a
[    7.333414] dwc-eth-dwmac 2490000.ethernet eth0: IEEE
1588-2008 Advanced Timestamp supported
[    7.342441] dwc-eth-dwmac 2490000.ethernet eth0: registered
PTP clock
[   10.157066] dwc-eth-dwmac 2490000.ethernet eth0: Link is Up
- 1Gbps/Full - flow control off
[root@alarm ~]# dmesg | grep -i stmma
[    7.020567] libphy: stmmac: probed
[    7.316295] Broadcom BCM89610 stmmac-0:00: attached PHY
driver [Broadcom BCM89610] (mii_bus:phy_addr=stmmac-0:00, irq=64)

I will get the register details -

FYI - TSO works fine with single channel. I see the issue only
if multi channel enabled (supports 4 Tx/Rx channels).


And normal data transfer works okay with multi channel, right? I
will need the register details to proceed ... You could also try
git bisect ...


Yes - normal data transfers works fine. Issue observed only driver gets TSO packet. Looks like TX DMA channel hang.

After adding few debug logs - observed that while processing second or third descriptor TX DMA hangs.

[85788.137498] stmmac_tso_xmit: tcphdrlen 32, hdr_len 66, pay_len 1392, mss 1448
[85788.144634]  skb->len 7306, skb->data_len 5848
[..]
[85788.274876] 025 [0x82795190]: 0x0 0x0 0x5a8 0xc4000000
[85788.280020] 026 [0x827951a0]: 0xf854e000 0xf854e042 0x5700042 0xa0441c48
[85788.286730] 027 [0x827951b0]: 0xf854f000 0x0 0x16d8 0x90000000
[...]


After some time if check Tx descriptor status - then I see only below

[..]
[85788.286730] 027 [0x827951b0]: 0xf854f000 0x0 0x16d8 0x90000000

index 025 and 026 descriptors processed but not index 027.

At this stage Tx DMA is always in below state -

■ 3'b011: Running (Reading Data from system memory
buffer and queuing it to the Tx buffer (Tx FIFO))

Thanks,
Bhadram.

Reply via email to