1. 24 Aug, 2015 3 commits
    • Alessandro Rubini's avatar
      ppsi: use new master, with some timestamp fixes · 8c3baabe
      Alessandro Rubini authored
      The bug we were facing was in wr-nic.ko (previous commit fixes it),
      but we made a few changes to the better in ppsi handing of timestamps
      (wrs-socket.c) while looking for that problem. So this picks those
      4 commits of ppsi:
      wrs-socket: decrease the timeout when waiting for a timestamp
      wrs-socket: simplify the code retrieving timestamps
      unix and wrs socket: open in non-blocking mode and report write errors
      wrs-socket: use POLLERR for timestamps
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      8c3baabe
    • Alessandro Rubini's avatar
      kernel/wr-nic: fix a memory leakage under heavy load · ce7eb8a2
      Alessandro Rubini authored
      When the switch is loaded, some PTP outgoing frames get discarded, so we
      never get back the timestamp interrupt.  By round-robin'ing the slots,
      we get back to the "busy" one, which holds an skb structure that must be
      released.
      
      Without this freeing, the skb remains in the output queue of the
      socket, and after a while we get EAGAIN in send() because the buffer
      is full (400 frames, more or less). And the ptp port is stuck until we
      reopen the socket.
      
      This diagnosis exposed the fact that it's not an overflow of pending
      descriptors, so I change the message from
      
        descriptor overflow: tx timestamp pending
      
      to
      
        discarding tx frame that got no timestamp
      
      Finally, this is pr_warn, not pr_err as we now know it's expected.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      ce7eb8a2
    • Alessandro Rubini's avatar
  2. 21 Aug, 2015 9 commits
  3. 20 Aug, 2015 28 commits