Dear Xiao Yan,
Am 23.04.23 um 09:53 schrieb gongxiao-intel:
Your name is incorrectly configured. Please do (please correct the spelling):
$ git config --global user.name "Xiao Yan Gong"
$ git commit --amend -s --author="Xiao Yan Gong <xiaoyan.gong@xxxxxxxxx>"
Also, please remove the dot/period from the end of the commit message summary.
The HW TX timestamps created by the NIC via socket options can be
requested using the current network timestamps generation capability of
SOF_TIMESTAMPING_TX_HARDWARE. The most common users of this socket flag
is PTP, however other packet applications that require tx timestamps might
also ask for it.
The problem is that, when there is a lot of traffic, there is a high chance
that the timestamps for a PTP packet will be lost if both PTP and Non-PTP
non-PTP
packets use the same SOF_TIMESTAMPING_TX_HARDWARE causing the tx timeout.
Is Linux logging this? If so, please paste such a message.
The root cause of this problem is that igc only use one TXSTMP register to
use*s*
report TX timestamp. Such implementation intensify the race of TX timestamp
intensif*ies*
query from multiple sockets.
However, Intel i225/i226 controller has 4 TXSTMP registers. This patch fully
utilizes 4 TXSTMP registers to reduce the race of TX timestamp query.
This patch dedicates TXSTMP register 0 to all PTP packets. In most case, only
one PTP sync process will run on a network port. So, one TXSTMP register is
enough for PTP stream.
For TXSTMP register 1 - 3, they are allocated to sockets round robin. And each
register*s*
socket can only occupy one register at a time. So, at least 3 sockets can requiest
request
TX timestamp simultaneously.
Please add Signed-off-by line.
How did you test your patch?
---
drivers/net/ethernet/intel/igc/igc.h | 24 +++--
drivers/net/ethernet/intel/igc/igc_base.h | 2 +-
drivers/net/ethernet/intel/igc/igc_defines.h | 2 +-
drivers/net/ethernet/intel/igc/igc_main.c | 55 +++++++++--
drivers/net/ethernet/intel/igc/igc_ptp.c | 97 +++++++++++++-------
drivers/net/ethernet/intel/igc/igc_regs.h | 4 +-
6 files changed, 129 insertions(+), 55 deletions(-)
[…]
Kind regards,
Paul