> -----Original Message-----
> From: Guilherme Piccoli <gpicc...@canonical.com>
> Sent: Wednesday, June 26, 2019 1:56 AM
> To: Sudarsana Reddy Kalluru <skall...@marvell.com>;
> jay.vosbu...@canonical.com
> Cc: GR-everest-linux-l2 <gr-everest-linux...@marvell.com>;
> netdev@vger.kernel.org; Ariel Elior <ael...@marvell.com>
> Subject: Re: [EXT] [PATCH V2] bnx2x: Prevent ptp_task to be rescheduled
> indefinitely
> 
> Sudarsana, let me ask you something: why does the register is reading value
> 0x0 always in the TX timestamp routine if the RX filter is set to None? This 
> is
> the main cause of the thread reschedule thing.

The register value of zero indicates there is no pending Tx timestamp to be 
read by the driver.
FW writes/latches the Tx timestamp for PTP event packet in this register. And 
it does the latching only if the register is free.
In this case user/app look to be requesting  the Timestamp (via skb->tx_flags) 
for non-ptp Tx packet. In the Tx path, driver schedules a thread for reading 
the Tx timestamp,
   bnx2x_start_xmit()
   {
        if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)) 
                        schedule_work(&bp->ptp_task);
   }
FW seem to be not timestamping the packet at all and driver is indefinitely 
waiting for it.

> 
> Of course this thread thing is important to fix, but I was discussing with my
> leader here and we are curious on the reasoning the register is getting 0x0.
> 
> Thanks in advance,
> 
> 
> Guilherme

Reply via email to