mlx4_en didn't choose time-stamping shift value according to HW frequency

Bug #1552627 reported by Talat Batheesh
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Tim Gardner
Fix Released
Tim Gardner

Bug Description


    Previously, the shift value used for time-stamping was constant and didn't
    depend on the HW chip frequency. Change that to take the frequency into account
    and calculate the maximal value in cycles per wraparound of ten seconds. This
    time slot was chosen since it gives a good accuracy in time synchronization.

    Algorithm for shift value calculation:
     * Round up the maximal value in cycles to nearest power of two

     * Calculate maximal multiplier by division of all 64 bits set
       to above result

     * Then, invert the function clocksource_khz2mult() to get the shift from
       maximal mult value

below is the upstream commit that should fix the issue

commit 31c128b66e5b28f468076e4f3ca3025c35342041

Revision history for this message
Brad Figg (brad-figg) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 1552627

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Changed in linux (Ubuntu):
status: Incomplete → Confirmed
importance: Undecided → Medium
Tim Gardner (timg-tpi)
Changed in linux (Ubuntu Xenial):
assignee: nobody → Tim Gardner (timg-tpi)
status: Confirmed → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (20.9 KiB)

This bug was fixed in the package linux - 4.4.0-11.26

linux (4.4.0-11.26) xenial; urgency=low

  [ Tim Gardner ]

  * Release Tracking Bug
    - LP: #1553391

  * Xenial update to v4.4.4 stable release (LP: #1553179)
    - af_iucv: Validate socket address length in iucv_sock_bind()
    - gro: Make GRO aware of lightweight tunnels.
    - net: dp83640: Fix tx timestamp overflow handling.
    - tunnels: Allow IPv6 UDP checksums to be correctly controlled.
    - lwt: fix rx checksum setting for lwt devices tunneling over ipv6
    - tcp: fix NULL deref in tcp_v4_send_ack()
    - af_unix: fix struct pid memory leak
    - pptp: fix illegal memory access caused by multiple bind()s
    - sctp: allow setting SCTP_SACK_IMMEDIATELY by the application
    - net: dsa: fix mv88e6xxx switches
    - tipc: fix connection abort during subscription cancel
    - inet: frag: Always orphan skbs inside ip_defrag()
    - switchdev: Require RTNL mutex to be held when sending FDB notifications
    - tcp: beware of alignments in tcp_get_info()
    - ipv6: enforce flowi6_oif usage in ip6_dst_lookup_tail()
    - ipv6/udp: use sticky pktinfo egress ifindex on connect()
    - ipv6: addrconf: Fix recursive spin lock call
    - ipv6: fix a lockdep splat
    - unix: correctly track in-flight fds in sending process user_struct
    - tcp: do not drop syn_recv on all icmp reports
    - net:Add sysctl_max_skb_frags
    - tg3: Fix for tg3 transmit queue 0 timed out when too many gso_segs
    - enic: increment devcmd2 result ring in case of timeout
    - sctp: translate network order to host order when users get a hmacid
    - net: Copy inner L3 and L4 headers as unaligned on GRE TEB
    - flow_dissector: Fix unaligned access in __skb_flow_dissector when used by
    - bpf: fix branch offset adjustment on backjumps after patching ctx expansion
    - bonding: Fix ARP monitor validation
    - ipv4: fix memory leaks in ip_cmsg_send() callers
    - af_unix: Don't set err in unix_stream_read_generic unless there was an error
    - af_unix: Guard against other == sk in unix_dgram_sendmsg
    - tipc: fix premature addition of node to lookup table
    - tcp: md5: release request socket instead of listener
    - qmi_wwan: add "4G LTE usb-modem U901"
    - net/mlx4_en: Count HW buffer overrun only once
    - net/mlx4_en: Avoid changing dev->features directly in run-time
    - l2tp: Fix error creating L2TP tunnels
    - pppoe: fix reference counting in PPPoE proxy
    - net_sched fix: reclassification needs to consider ether protocol changes
    - route: check and remove route cache when we get route
    - tcp/dccp: fix another race at listener dismantle
    - IFF_NO_QUEUE: Fix for drivers not calling ether_setup()
    - rtnl: RTM_GETNETCONF: fix wrong return value
    - tipc: unlock in error path
    - unix_diag: fix incorrect sign extension in unix_lookup_by_ino
    - sctp: Fix port hash table size computation
    - ext4: fix bh->b_state corruption
    - ARM: debug-ll: fix BCM63xx entry for multiplatform
    - arm64: errata: Add -mpc-relative-literal-loads to build flags
    - KVM: s390: fix guest fprs memory leak
    - devm_memremap: Fix error value whe...

Changed in linux (Ubuntu Xenial):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.