Message ID | 1559527086-7227-4-git-send-email-biao.huang@mediatek.com (mailing list archive) |
---|---|
State | Mainlined, archived |
Commit | d2facb4b3983425f6776c24dd678a82dbe673773 |
Headers | show |
Series | complete dwmac-mediatek driver and fix flow control issue | expand |
From: Biao Huang <biao.huang@mediatek.com> > the default value of tx-frames is 25, it's too late when > passing tstamp to stack, then the ptp4l will fail: > > ptp4l -i eth0 -f gPTP.cfg -m > ptp4l: selected /dev/ptp0 as PTP clock > ptp4l: port 1: INITIALIZING to LISTENING on INITIALIZE > ptp4l: port 0: INITIALIZING to LISTENING on INITIALIZE > ptp4l: port 1: link up > ptp4l: timed out while polling for tx timestamp > ptp4l: increasing tx_timestamp_timeout may correct this issue, > but it is likely caused by a driver bug > ptp4l: port 1: send peer delay response failed > ptp4l: port 1: LISTENING to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED) > > ptp4l tests pass when changing the tx-frames from 25 to 1 with > ethtool -C option. > It should be fine to set tx-frames default value to 1, so ptp4l will pass > by default. I'm not sure if this is the right approach ... What's the timeout value you have for TX Timestamp ? Thanks, Jose Miguel Abreu
On Mon, 2019-06-03 at 11:40 +0000, Jose Abreu wrote: > From: Biao Huang <biao.huang@mediatek.com> > > > the default value of tx-frames is 25, it's too late when > > passing tstamp to stack, then the ptp4l will fail: > > > > ptp4l -i eth0 -f gPTP.cfg -m > > ptp4l: selected /dev/ptp0 as PTP clock > > ptp4l: port 1: INITIALIZING to LISTENING on INITIALIZE > > ptp4l: port 0: INITIALIZING to LISTENING on INITIALIZE > > ptp4l: port 1: link up > > ptp4l: timed out while polling for tx timestamp > > ptp4l: increasing tx_timestamp_timeout may correct this issue, > > but it is likely caused by a driver bug > > ptp4l: port 1: send peer delay response failed > > ptp4l: port 1: LISTENING to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED) > > > > ptp4l tests pass when changing the tx-frames from 25 to 1 with > > ethtool -C option. > > It should be fine to set tx-frames default value to 1, so ptp4l will pass > > by default. > > I'm not sure if this is the right approach ... What's the timeout value > you have for TX Timestamp ? I use the default tx_timestamp_timeout value 1, which represents 1ms. do you try ptp4l on your side? performance test is done in https://lkml.org/lkml/2019/5/30/1617 and seems no performance degradation. > > Thanks, > Jose Miguel Abreu
diff --git a/drivers/net/ethernet/stmicro/stmmac/common.h b/drivers/net/ethernet/stmicro/stmmac/common.h index 26bbcd8..6a08cec 100644 --- a/drivers/net/ethernet/stmicro/stmmac/common.h +++ b/drivers/net/ethernet/stmicro/stmmac/common.h @@ -261,7 +261,7 @@ struct stmmac_safety_stats { #define STMMAC_COAL_TX_TIMER 1000 #define STMMAC_MAX_COAL_TX_TICK 100000 #define STMMAC_TX_MAX_FRAMES 256 -#define STMMAC_TX_FRAMES 25 +#define STMMAC_TX_FRAMES 1 /* Packets types */ enum packets_types {
the default value of tx-frames is 25, it's too late when passing tstamp to stack, then the ptp4l will fail: ptp4l -i eth0 -f gPTP.cfg -m ptp4l: selected /dev/ptp0 as PTP clock ptp4l: port 1: INITIALIZING to LISTENING on INITIALIZE ptp4l: port 0: INITIALIZING to LISTENING on INITIALIZE ptp4l: port 1: link up ptp4l: timed out while polling for tx timestamp ptp4l: increasing tx_timestamp_timeout may correct this issue, but it is likely caused by a driver bug ptp4l: port 1: send peer delay response failed ptp4l: port 1: LISTENING to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED) ptp4l tests pass when changing the tx-frames from 25 to 1 with ethtool -C option. It should be fine to set tx-frames default value to 1, so ptp4l will pass by default. Signed-off-by: Biao Huang <biao.huang@mediatek.com> --- drivers/net/ethernet/stmicro/stmmac/common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)