stmmac: update the doc with new IRQ mitigation
This patch updates the stmmac.txt adding some information about the new rx/tx mitigation schema adopted in the driver. Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
48f44da454
commit
f9e01b5565
|
@ -29,11 +29,9 @@ The kernel configuration option is STMMAC_ETH:
|
||||||
dma_txsize: DMA tx ring size;
|
dma_txsize: DMA tx ring size;
|
||||||
buf_sz: DMA buffer size;
|
buf_sz: DMA buffer size;
|
||||||
tc: control the HW FIFO threshold;
|
tc: control the HW FIFO threshold;
|
||||||
tx_coe: Enable/Disable Tx Checksum Offload engine;
|
|
||||||
watchdog: transmit timeout (in milliseconds);
|
watchdog: transmit timeout (in milliseconds);
|
||||||
flow_ctrl: Flow control ability [on/off];
|
flow_ctrl: Flow control ability [on/off];
|
||||||
pause: Flow Control Pause Time;
|
pause: Flow Control Pause Time;
|
||||||
tmrate: timer period (only if timer optimisation is configured).
|
|
||||||
|
|
||||||
3) Command line options
|
3) Command line options
|
||||||
Driver parameters can be also passed in command line by using:
|
Driver parameters can be also passed in command line by using:
|
||||||
|
@ -60,17 +58,19 @@ Then the poll method will be scheduled at some future point.
|
||||||
The incoming packets are stored, by the DMA, in a list of pre-allocated socket
|
The incoming packets are stored, by the DMA, in a list of pre-allocated socket
|
||||||
buffers in order to avoid the memcpy (Zero-copy).
|
buffers in order to avoid the memcpy (Zero-copy).
|
||||||
|
|
||||||
4.3) Timer-Driver Interrupt
|
4.3) Interrupt Mitigation
|
||||||
Instead of having the device that asynchronously notifies the frame receptions,
|
The driver is able to mitigate the number of its DMA interrupts
|
||||||
the driver configures a timer to generate an interrupt at regular intervals.
|
using NAPI for the reception on chips older than the 3.50.
|
||||||
Based on the granularity of the timer, the frames that are received by the
|
New chips have an HW RX-Watchdog used for this mitigation.
|
||||||
device will experience different levels of latency. Some NICs have dedicated
|
|
||||||
timer device to perform this task. STMMAC can use either the RTC device or the
|
On Tx-side, the mitigation schema is based on a SW timer that calls the
|
||||||
TMU channel 2 on STLinux platforms.
|
tx function (stmmac_tx) to reclaim the resource after transmitting the
|
||||||
The timers frequency can be passed to the driver as parameter; when change it,
|
frames.
|
||||||
take care of both hardware capability and network stability/performance impact.
|
Also there is another parameter (like a threshold) used to program
|
||||||
Several performance tests on STM platforms showed this optimisation allows to
|
the descriptors avoiding to set the interrupt on completion bit in
|
||||||
spare the CPU while having the maximum throughput.
|
when the frame is sent (xmit).
|
||||||
|
|
||||||
|
Mitigation parameters can be tuned by ethtool.
|
||||||
|
|
||||||
4.4) WOL
|
4.4) WOL
|
||||||
Wake up on Lan feature through Magic and Unicast frames are supported for the
|
Wake up on Lan feature through Magic and Unicast frames are supported for the
|
||||||
|
@ -121,6 +121,7 @@ struct plat_stmmacenet_data {
|
||||||
int bugged_jumbo;
|
int bugged_jumbo;
|
||||||
int pmt;
|
int pmt;
|
||||||
int force_sf_dma_mode;
|
int force_sf_dma_mode;
|
||||||
|
int riwt_off;
|
||||||
void (*fix_mac_speed)(void *priv, unsigned int speed);
|
void (*fix_mac_speed)(void *priv, unsigned int speed);
|
||||||
void (*bus_setup)(void __iomem *ioaddr);
|
void (*bus_setup)(void __iomem *ioaddr);
|
||||||
int (*init)(struct platform_device *pdev);
|
int (*init)(struct platform_device *pdev);
|
||||||
|
@ -156,6 +157,7 @@ Where:
|
||||||
o pmt: core has the embedded power module (optional).
|
o pmt: core has the embedded power module (optional).
|
||||||
o force_sf_dma_mode: force DMA to use the Store and Forward mode
|
o force_sf_dma_mode: force DMA to use the Store and Forward mode
|
||||||
instead of the Threshold.
|
instead of the Threshold.
|
||||||
|
o riwt_off: force to disable the RX watchdog feature and switch to NAPI mode.
|
||||||
o fix_mac_speed: this callback is used for modifying some syscfg registers
|
o fix_mac_speed: this callback is used for modifying some syscfg registers
|
||||||
(on ST SoCs) according to the link speed negotiated by the
|
(on ST SoCs) according to the link speed negotiated by the
|
||||||
physical layer .
|
physical layer .
|
||||||
|
|
Loading…
Reference in New Issue