• D
    ioat2: fix performance regression · c50a898f
    Dan Williams 提交于
    Commit 07934481 "DMAENGINE: generic channel status v2" changed the interface for
    how dma channel progress is retrieved.  It inadvertently exported an internal
    helper function ioat_tx_status() instead of ioat_dma_tx_status().  The latter
    polls the hardware to get the latest completion state, while the helper just
    evaluates the current state without touching hardware.  The effect is that we
    end up waiting for completion timeouts or descriptor allocation errors before
    the completion state is updated.
    
    iperf (before fix):
    [SUM]  0.0-41.3 sec   364 MBytes  73.9 Mbits/sec
    
    iperf (after fix):
    [SUM]  0.0- 4.5 sec   499 MBytes   940 Mbits/sec
    
    This is a regression starting with 2.6.35.
    
    Cc: <stable@kernel.org>
    Cc: Dave Jiang <dave.jiang@intel.com>
    Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Cc: Linus Walleij <linus.walleij@stericsson.com>
    Cc: Maciej Sosnowski <maciej.sosnowski@intel.com>
    Reported-by: NRichard Scobie <richard@sauce.co.nz>
    Signed-off-by: NDan Williams <dan.j.williams@intel.com>
    c50a898f
dma_v2.c 24.3 KB