All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vinicius Costa Gomes <vinicius.gomes@intel.com>
To: intel-wired-lan@osuosl.org
Subject: [Intel-wired-lan] [PATCH next-queue v2 3/3] igc: Add support for PTP getcrosststamp()
Date: Wed, 11 Nov 2020 16:38:16 -0800	[thread overview]
Message-ID: <87imab8l53.fsf@intel.com> (raw)
In-Reply-To: <20201110180719.GA1559650@localhost>

Hi,

Miroslav Lichvar <mlichvar@redhat.com> writes:

> On Mon, Nov 09, 2020 at 10:10:19PM -0800, Vinicius Costa Gomes wrote:
>> i225 has support for PCIe PTM, which allows us to implement support
>> for the PTP_SYS_OFFSET_PRECISE ioctl(), implemented in the driver via
>> the getcrosststamp() function.
>
> Would it be possible to provide the PTM measurements with the
> PTP_SYS_OFFSET_EXTENDED ioctl instead of PTP_SYS_OFFSET_PRECISE?
>
> As I understand it, PTM is not cross timestamping. It's basically
> NTP over PCIe, which provides four timestamps with each "dialog". From
> the other constants added to the header file it looks like they could
> all be obtained and then they could be converted to the triplets
> returned by the EXTENDED ioctl.
>

There might be a problem, the PTM dialogs start from the device, the
protocol is more or less this:

 1. NIC sends "Request" message, takes T1 timestamp;
 2. Host receives "Request" message, takes T2 timestamp;
 3. Host sends "Response" message, takes T3 timestamp;
 4. NIC receives "Response" message, takes T4 timestamp;

So, T2 and T3 are "host" timestamps and T1 and T4 are NIC timestamps.

That means that the timestamps I have "as is" are a bit different than
the expectations of the EXTENDED ioctl().

Of course I could use T3 (as the "pre" timestamp), T4 as the device
timestamp, and calculate the delay[1], apply it to T3 and get something
T3' as the "post" timestamp (T3' = T3 + delay). But I feel that this
"massaging" would defeat the purpose of using the EXTENDED variant.

Does it make sense? Am I worrying too much?

[1] 
	delay = ((T4 - T1) - (T3 - T2)) / 2



Cheers,
-- 
Vinicius

WARNING: multiple messages have this Message-ID (diff)
From: Vinicius Costa Gomes <vinicius.gomes@intel.com>
To: Miroslav Lichvar <mlichvar@redhat.com>
Cc: intel-wired-lan@lists.osuosl.org, andre.guedes@intel.com,
	linux-pci@vger.kernel.org, netdev@vger.kernel.org,
	bhelgaas@google.com
Subject: Re: [Intel-wired-lan] [PATCH next-queue v2 3/3] igc: Add support for PTP getcrosststamp()
Date: Wed, 11 Nov 2020 16:38:16 -0800	[thread overview]
Message-ID: <87imab8l53.fsf@intel.com> (raw)
In-Reply-To: <20201110180719.GA1559650@localhost>

Hi,

Miroslav Lichvar <mlichvar@redhat.com> writes:

> On Mon, Nov 09, 2020 at 10:10:19PM -0800, Vinicius Costa Gomes wrote:
>> i225 has support for PCIe PTM, which allows us to implement support
>> for the PTP_SYS_OFFSET_PRECISE ioctl(), implemented in the driver via
>> the getcrosststamp() function.
>
> Would it be possible to provide the PTM measurements with the
> PTP_SYS_OFFSET_EXTENDED ioctl instead of PTP_SYS_OFFSET_PRECISE?
>
> As I understand it, PTM is not cross timestamping. It's basically
> NTP over PCIe, which provides four timestamps with each "dialog". From
> the other constants added to the header file it looks like they could
> all be obtained and then they could be converted to the triplets
> returned by the EXTENDED ioctl.
>

There might be a problem, the PTM dialogs start from the device, the
protocol is more or less this:

 1. NIC sends "Request" message, takes T1 timestamp;
 2. Host receives "Request" message, takes T2 timestamp;
 3. Host sends "Response" message, takes T3 timestamp;
 4. NIC receives "Response" message, takes T4 timestamp;

So, T2 and T3 are "host" timestamps and T1 and T4 are NIC timestamps.

That means that the timestamps I have "as is" are a bit different than
the expectations of the EXTENDED ioctl().

Of course I could use T3 (as the "pre" timestamp), T4 as the device
timestamp, and calculate the delay[1], apply it to T3 and get something
T3' as the "post" timestamp (T3' = T3 + delay). But I feel that this
"massaging" would defeat the purpose of using the EXTENDED variant.

Does it make sense? Am I worrying too much?

[1] 
	delay = ((T4 - T1) - (T3 - T2)) / 2



Cheers,
-- 
Vinicius

  parent reply	other threads:[~2020-11-12  0:38 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-10  6:10 [Intel-wired-lan] [PATCH next-queue v2 0/3] igc: Add support for PCIe PTM Vinicius Costa Gomes
2020-11-10  6:10 ` Vinicius Costa Gomes
2020-11-10  6:10 ` [Intel-wired-lan] [PATCH next-queue v2 1/3] Revert "PCI: Make pci_enable_ptm() private" Vinicius Costa Gomes
2020-11-10  6:10   ` Vinicius Costa Gomes
2020-11-10  6:10 ` [Intel-wired-lan] [PATCH next-queue v2 2/3] igc: Enable PCIe PTM Vinicius Costa Gomes
2020-11-10  6:10   ` Vinicius Costa Gomes
2020-11-10  6:10 ` [Intel-wired-lan] [PATCH next-queue v2 3/3] igc: Add support for PTP getcrosststamp() Vinicius Costa Gomes
2020-11-10  6:10   ` Vinicius Costa Gomes
2020-11-10 18:07   ` [Intel-wired-lan] " Miroslav Lichvar
2020-11-10 18:07     ` Miroslav Lichvar
2020-11-10 19:06     ` Vinicius Costa Gomes
2020-11-10 19:06       ` Vinicius Costa Gomes
2020-11-11  9:33       ` Miroslav Lichvar
2020-11-11  9:33         ` Miroslav Lichvar
2020-11-11 22:23         ` Vinicius Costa Gomes
2020-11-11 22:23           ` Vinicius Costa Gomes
2020-11-12  9:32           ` Miroslav Lichvar
2020-11-12  9:32             ` Miroslav Lichvar
2020-11-12 23:46             ` Vinicius Costa Gomes
2020-11-12 23:46               ` Vinicius Costa Gomes
2020-11-13  3:24               ` Richard Cochran
2020-11-13  3:24                 ` Richard Cochran
2020-11-13 19:10                 ` Vinicius Costa Gomes
2020-11-13 19:10                   ` Vinicius Costa Gomes
2020-11-14  2:57                   ` Richard Cochran
2020-11-14  2:57                     ` Richard Cochran
2020-11-17  1:06                     ` Vinicius Costa Gomes
2020-11-17  1:06                       ` Vinicius Costa Gomes
2020-11-17  1:49                       ` Richard Cochran
2020-11-17  1:49                         ` Richard Cochran
2020-11-18  1:21                         ` Vinicius Costa Gomes
2020-11-18  1:21                           ` Vinicius Costa Gomes
2020-11-18 12:54                           ` Richard Cochran
2020-11-18 12:54                             ` Richard Cochran
2020-11-19  0:22                             ` Vinicius Costa Gomes
2020-11-19  0:22                               ` Vinicius Costa Gomes
2020-11-20 14:16                               ` Richard Cochran
2020-11-20 14:16                                 ` Richard Cochran
2020-11-20 17:58                                 ` Vinicius Costa Gomes
2020-11-20 17:58                                   ` Vinicius Costa Gomes
2021-03-22 15:36                             ` Vinicius Costa Gomes
2021-03-22 15:36                               ` Vinicius Costa Gomes
2021-03-23  4:17                               ` Richard Cochran
2021-03-23  4:17                                 ` Richard Cochran
2020-11-18 15:55                           ` Jakub Kicinski
2020-11-18 15:55                             ` Jakub Kicinski
2020-11-20 19:07                             ` Vinicius Costa Gomes
2020-11-20 19:07                               ` Vinicius Costa Gomes
2020-11-12  0:38     ` Vinicius Costa Gomes [this message]
2020-11-12  0:38       ` Vinicius Costa Gomes
2021-03-22 15:47     ` Vinicius Costa Gomes
2021-03-22 15:47       ` Vinicius Costa Gomes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87imab8l53.fsf@intel.com \
    --to=vinicius.gomes@intel.com \
    --cc=intel-wired-lan@osuosl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.