Willem de Bruijn
2020-Dec-29 00:57 UTC
[PATCH rfc 2/3] virtio-net: support receive timestamp
On Mon, Dec 28, 2020 at 5:59 PM Jakub Kicinski <kuba at kernel.org> wrote:> > On Mon, 28 Dec 2020 11:22:32 -0500 Willem de Bruijn wrote: > > From: Willem de Bruijn <willemb at google.com> > > > > Add optional PTP hardware timestamp offload for virtio-net. > > > > Accurate RTT measurement requires timestamps close to the wire. > > Introduce virtio feature VIRTIO_NET_F_RX_TSTAMP. If negotiated, the > > virtio-net header is expanded with room for a timestamp. A host may > > pass receive timestamps for all or some packets. A timestamp is valid > > if non-zero. > > > > The timestamp straddles (virtual) hardware domains. Like PTP, use > > international atomic time (CLOCK_TAI) as global clock base. It is > > guest responsibility to sync with host, e.g., through kvm-clock. > > Would this not be confusing to some user space SW to have a NIC with > no PHC deliver HW stamps? > > I'd CC Richard on this, unless you already discussed with him offline.Thanks, good point. I should have included Richard. There is a well understood method for synchronizing guest and host clock in KVM using ptp_kvm. For virtual environments without NIC hardware offload, the when host timestamps in software, this suffices. Syncing host with NIC is assumed if the host advertises the feature and implements using real hardware timestamps.
On 2020/12/29 ??8:57, Willem de Bruijn wrote:> On Mon, Dec 28, 2020 at 5:59 PM Jakub Kicinski <kuba at kernel.org> wrote: >> On Mon, 28 Dec 2020 11:22:32 -0500 Willem de Bruijn wrote: >>> From: Willem de Bruijn <willemb at google.com> >>> >>> Add optional PTP hardware timestamp offload for virtio-net. >>> >>> Accurate RTT measurement requires timestamps close to the wire. >>> Introduce virtio feature VIRTIO_NET_F_RX_TSTAMP. If negotiated, the >>> virtio-net header is expanded with room for a timestamp. A host may >>> pass receive timestamps for all or some packets. A timestamp is valid >>> if non-zero. >>> >>> The timestamp straddles (virtual) hardware domains. Like PTP, use >>> international atomic time (CLOCK_TAI) as global clock base. It is >>> guest responsibility to sync with host, e.g., through kvm-clock. >> Would this not be confusing to some user space SW to have a NIC with >> no PHC deliver HW stamps? >> >> I'd CC Richard on this, unless you already discussed with him offline. > Thanks, good point. I should have included Richard. > > There is a well understood method for synchronizing guest and host > clock in KVM using ptp_kvm. For virtual environments without NIC > hardware offload, the when host timestamps in software, this suffices. > > Syncing host with NIC is assumed if the host advertises the feature > and implements using real hardware timestamps.Or it could be useful for virtio hardware when there's no KVM that provides PTP. Thanks>