> -----Original Message-----
> From: Richard Cochran <richardcoch...@gmail.com>
> Sent: Monday, July 12, 2021 6:44 PM
> To: Keller, Jacob E <jacob.e.kel...@intel.com>
> Cc: Miroslav Lichvar <mlich...@redhat.com>; linuxptp-
> de...@lists.sourceforge.net
> Subject: Re: [Linuxptp-devel] [PATCH] Increase the default 
> tx_timestamp_timeout
> to 5
> 
> On Mon, Jul 12, 2021 at 03:02:50PM +0000, Keller, Jacob E wrote:
> 
> > Right. Though.. running something like ptp4l on the same connection
> > could be problematic if the applications aren't working together
> > because most hardware supports a single request at once,
> 
> I wouldn't say "most".  Surely some HW is like that, but I never
> counted.  I always hoped that HW designers would get a clue a simply
> provide a time stamp for each and every frame, Tx and Rx, in the
> buffer descriptors.  No filters, no parsers, just a big on/off switch.
> It would be way easier to implement in HW, and it would solve all of
> these sorts of problems.
> 

The hardware I've seen at least. (Ofcourse, I suppose I am Intel biased here...)

I think there's two issues here:

For receive, I think the issue was a belief that the cost in bytes to store the 
timestamp would be too high. This turns out to either be not true, or not 
important because the demand for useful timestamps is high enough to account 
for it. (Newer hardware has opted to simply add timestamping for all frames).

I think for Tx the challenges are higher: the timestamp is taken after we've 
filled in the descriptor and sent the frame. The only place it could reasonably 
be stored again is the descriptor writeback (since we don't get completion 
messages). If I remember correctly, the challenge here is that in a traditional 
ring model the writeback is completed much earlier than the timestamp so we 
potentially delay cleanup of other packets by waiting to insert the timestamp 
into the writeback.

I'm not sure entirely what all the complexity is here, but I know it's not as 
simple as the receive side where we already have the timestamp data when 
filling in the receive descriptor.

I imagine if we used a completion model where Tx completions have their own 
queue it wouldn't be as much of a problem. I don't know for sure though.

> > so if both
> > applications send a request at the same time one of them will
> > fail. They would need to either ensure they're off-sync or be
> > communicating to each other about when its ok to timestamp request
> > somehow.
> 
> Oh, that will make the users of the new PHC vclock thing happy!  I can
> already hear the complaints and bug reports here on our lists...
> 
> Thanks,
> Richard

At least with ice we support up to 64 timestamps outstanding, so it's less of 
an issue there....

Thanks,
Jake


_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to