• Mahesh Bandewar's avatar
    ptp/ioctl: support MONOTONIC{,_RAW} timestamps for PTP_SYS_OFFSET_EXTENDED · c259acab
    Mahesh Bandewar authored
    
    
    The ability to read the PHC (Physical Hardware Clock) alongside
    multiple system clocks is currently dependent on the specific
    hardware architecture. This limitation restricts the use of
    PTP_SYS_OFFSET_PRECISE to certain hardware configurations.
    
    The generic soultion which would work across all architectures
    is to read the PHC along with the latency to perform PHC-read as
    offered by PTP_SYS_OFFSET_EXTENDED which provides pre and post
    timestamps.  However, these timestamps are currently limited
    to the CLOCK_REALTIME timebase. Since CLOCK_REALTIME is affected
    by NTP (or similar time synchronization services), it can
    experience significant jumps forward or backward. This hinders
    the precise latency measurements that PTP_SYS_OFFSET_EXTENDED
    is designed to provide.
    
    This problem could be addressed by supporting MONOTONIC_RAW
    timestamps within PTP_SYS_OFFSET_EXTENDED. Unlike CLOCK_REALTIME
    or CLOCK_MONOTONIC, the MONOTONIC_RAW timebase is unaffected
    by NTP adjustments.
    
    This enhancement can be implemented by utilizing one of the three
    reserved words within the PTP_SYS_OFFSET_EXTENDED struct to pass
    the clock-id for timestamps.  The current behavior aligns with
    clock-id for CLOCK_REALTIME timebase (value of 0), ensuring
    backward compatibility of the UAPI.
    Signed-off-by: default avatarMahesh Bandewar <maheshb@google.com>
    Signed-off-by: default avatarVadim Fedorenko <vadfed@meta.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c259acab
ptp_chardev.c 14.6 KB