[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <MN2PR18MB2528569269272880338B8E4CD3E20@MN2PR18MB2528.namprd18.prod.outlook.com>
Date: Wed, 26 Jun 2019 08:25:05 +0000
From: Sudarsana Reddy Kalluru <skalluru@...vell.com>
To: Guilherme Piccoli <gpiccoli@...onical.com>,
"jay.vosburgh@...onical.com" <jay.vosburgh@...onical.com>
CC: GR-everest-linux-l2 <GR-everest-linux-l2@...vell.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
Ariel Elior <aelior@...vell.com>
Subject: RE: [EXT] [PATCH V2] bnx2x: Prevent ptp_task to be rescheduled
indefinitely
> -----Original Message-----
> From: Guilherme Piccoli <gpiccoli@...onical.com>
> Sent: Wednesday, June 26, 2019 1:56 AM
> To: Sudarsana Reddy Kalluru <skalluru@...vell.com>;
> jay.vosburgh@...onical.com
> Cc: GR-everest-linux-l2 <GR-everest-linux-l2@...vell.com>;
> netdev@...r.kernel.org; Ariel Elior <aelior@...vell.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
Powered by blists - more mailing lists