lkml.org 
[lkml]   [2016]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4/5] net: ethernet: ti: cpsw: optimize end of poll cycle
    Date
    Check budget fullness only after it's updated and update
    channel mask only once to keep budget balance between channels.
    It's also needed for farther changes.

    Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
    ---
    drivers/net/ethernet/ti/cpsw.c | 24 ++++++------------------
    1 file changed, 6 insertions(+), 18 deletions(-)

    diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
    index c102675..8a70298 100644
    --- a/drivers/net/ethernet/ti/cpsw.c
    +++ b/drivers/net/ethernet/ti/cpsw.c
    @@ -788,19 +788,13 @@ static int cpsw_tx_poll(struct napi_struct *napi_tx, int budget)

    /* process every unprocessed channel */
    ch_map = cpdma_ctrl_txchs_state(cpsw->dma);
    - for (ch = 0, num_tx = 0; num_tx < budget; ch_map >>= 1, ch++) {
    - if (!ch_map) {
    - ch_map = cpdma_ctrl_txchs_state(cpsw->dma);
    - if (!ch_map)
    - break;
    -
    - ch = 0;
    - }
    -
    + for (ch = 0, num_tx = 0; ch_map; ch_map >>= 1, ch++) {
    if (!(ch_map & 0x01))
    continue;

    num_tx += cpdma_chan_process(cpsw->txch[ch], budget - num_tx);
    + if (num_tx >= budget)
    + break;
    }

    if (num_tx < budget) {
    @@ -823,19 +817,13 @@ static int cpsw_rx_poll(struct napi_struct *napi_rx, int budget)

    /* process every unprocessed channel */
    ch_map = cpdma_ctrl_rxchs_state(cpsw->dma);
    - for (ch = 0, num_rx = 0; num_rx < budget; ch_map >>= 1, ch++) {
    - if (!ch_map) {
    - ch_map = cpdma_ctrl_rxchs_state(cpsw->dma);
    - if (!ch_map)
    - break;
    -
    - ch = 0;
    - }
    -
    + for (ch = 0, num_rx = 0; ch_map; ch_map >>= 1, ch++) {
    if (!(ch_map & 0x01))
    continue;

    num_rx += cpdma_chan_process(cpsw->rxch[ch], budget - num_rx);
    + if (num_rx >= budget)
    + break;
    }

    if (num_rx < budget) {
    --
    2.7.4
    \
     
     \ /
      Last update: 2016-11-29 16:03    [W:4.264 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site