> -----Original Message-----
> From: Guilherme Piccoli <[email protected]>
> Sent: Wednesday, June 26, 2019 1:56 AM
> To: Sudarsana Reddy Kalluru <[email protected]>;
> [email protected]
> Cc: GR-everest-linux-l2 <[email protected]>;
> [email protected]; Ariel Elior <[email protected]>
> 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