Commit f9e01b55 authored by Giuseppe CAVALLARO's avatar Giuseppe CAVALLARO Committed by David S. Miller

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: default avatarGiuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 48f44da4
...@@ -29,11 +29,9 @@ The kernel configuration option is STMMAC_ETH: ...@@ -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. ...@@ -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 { ...@@ -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: ...@@ -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 .
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment