[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <12520aac-c69a-41a0-9710-497392bc18f6@intel.com>
Date: Wed, 11 Feb 2026 11:29:03 -0800
From: Jacob Keller <jacob.e.keller@...el.com>
To: Kurt Kanzenbach <kurt@...utronix.de>, Willem de Bruijn
<willemdebruijn.kernel@...il.com>, Sebastian Andrzej Siewior
<bigeasy@...utronix.de>
CC: Vadim Fedorenko <vadim.fedorenko@...ux.dev>, Willem de Bruijn
<willemb@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni
<pabeni@...hat.com>, Eric Dumazet <edumazet@...gle.com>, "David S. Miller"
<davem@...emloft.net>, "Loktionov, Aleksandr"
<aleksandr.loktionov@...el.com>, "Nguyen, Anthony L"
<anthony.l.nguyen@...el.com>, "Kitszel, Przemyslaw"
<przemyslaw.kitszel@...el.com>, Paul Menzel <pmenzel@...gen.mpg.de>, "Gomes,
Vinicius" <vinicius.gomes@...el.com>, "netdev@...r.kernel.org"
<netdev@...r.kernel.org>, Richard Cochran <richardcochran@...il.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, Andrew Lunn
<andrew+netdev@...n.ch>, "intel-wired-lan@...ts.osuosl.org"
<intel-wired-lan@...ts.osuosl.org>
Subject: Re: [Intel-wired-lan] [PATCH iwl-next v3] igb: Retrieve Tx timestamp
directly from interrupt for i210
On 2/11/2026 4:08 AM, Kurt Kanzenbach wrote:
> On Tue Feb 10 2026, Willem de Bruijn wrote:
>> The core issue seems to be that the ptp_tx_work is not scheduled
>> quickly enough. I wonder if that is the issue to be fixed. When/why
>> is this too slow?
>
> The igb driver uses schedule_work() for the Tx timestamp retrieval. That
> means the ptp_tx_work item is queued to the kernel-global workqueue. In
> case there is load on the system, the kworker which handles ptp_tx_work
> might be delayed too much, which results in ptp4l timeouts.
>
Right. Old versions of ptp4l wait for ~1 millisecond by default, and
newer ones default to ~10 milliseconds.. but latency here can have
negative impacts on sync capability especially on profiles with higher
sync rates.
> Easy solution would be to tune the priority/affinity of the
> kworker. However, we have to figure which kworker it is. Furthermore,
> this kworker might handle other things as well, which are not related to
> igb timestamping at all. Therefore, tuning the priority of the kworker
> is not practical.
>
I don't think it is even guaranteed that you would get the same kworker
every time, so I would consider such tuning not just impractical but
impossible.
> Moving the timestamping in IRQ looked like a good solution, because the
> device already signals that the Tx timestamp is available now. No need
> to schedule any worker/work at all. So, it'd be very nice if
> skb_tstamp_tx() could be called from IRQ context. BTW other drivers like
> igc call this function in IRQ context as well.
>
Right. Reporting the timestamp from the interrupt is the simplest and
lowest latency method. I know Miroslav had some situations and devices
where it apparently caused more problems than it helped, though I don't
believe anyone else has reproduced those?
> Alternative solution for igb is to move from schedule_work() to PTP AUX
> worker. That is a dedicated PTP worker thread called ptpX, which could
> handle the timestamping. This can be easily tuned with taskset and
> chrt. However, there's one difference to the kworker approach: The
> kworker always runs on the same CPU, where the IRQ triggered, the AUX
> worker not necessarily. This means, Miroslav needs to be aware of this
> and tune the AUX worker for his NTP use cases.
This should be the standard at minimum for all new drivers, when it is
not possible to report the timestamp directly in the interrupt handler.
>
> I hope, that makes the motivation for this patch and discussion clear.
>
> Thanks,
> Kurt
Powered by blists - more mailing lists