Message ID | 1559206484-1825-4-git-send-email-biao.huang@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | complete dwmac-mediatek driver and fix flow control issue | expand |
On Thu, May 30, 2019 at 04:54:43PM +0800, Biao Huang wrote: > 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. Hi Biao What does this do to the number of interrupts? Do we get 25 times more interrupts? Have you done any performance tests to see if this causes performance regressions? Andrew
Hi Andrew, On Thu, 2019-05-30 at 14:58 +0200, Andrew Lunn wrote: > On Thu, May 30, 2019 at 04:54:43PM +0800, Biao Huang wrote: > > 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. > > Hi Biao > > What does this do to the number of interrupts? Do we get 25 times more > interrupts? Have you done any performance tests to see if this causes > performance regressions? Yes, it seems tx-frames=25 can reduce interrupts. But the tx interrupt is handled in napi now, which will disable/enable tx interrupts at the beginning/ending of napi flow. Here is the test result on our platform: tx-frames=1 tx-frames=25 irq number 478514 393750 performance 904Mbits/sec 902Mbits/sec commands for test: "cat /proc/interrupts | grep eth0" "iperf3 -c ipaddress -w 256K -t 60" Thanks to napi, the interrupts will not grow 25 times more(almost the same level), and no obvious performance degradation. Is there anybody can double check the performance with tx-frames = 0 or 25? > > Andrew Thanks. Biao
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(-)