• Finn Thain's avatar
    scsi: ncr5380: Improve interrupt latency during PIO tranfers · 08348b1c
    Finn Thain authored
    Large PIO transfers are broken up into chunks to try to avoid disabling
    local IRQs for long periods. But IRQs are still disabled for too long
    and this causes SCC FIFO overruns during serial port transfers.
    
    This patch reduces the PIO chunk size to reduce interrupt latency to
    something on the order of milliseconds, at the expense of additional CPU
    overhead from extra iterations of the NCR5380_main() loop.
    
    That CPU overhead is a problem for slow machines (e.g. mac_scsi on 25
    MHz 68030) but these machines generally use PDMA not PIO. This patch
    doesn't make the overhead any worse on my Mac LC III (because it only
    gets about 510 accesses per ms).
    
    This patch decreases disk performance by a fraction of one percent for
    dmx3191d on my 333 MHz PowerPC 750. Other affected hardware (such as
    g_NCR5380 on x86) was not tested but 5380 ISA cards generally use PDMA
    and not PIO.
    
    [mkp: fix whitespace]
    Signed-off-by: default avatarFinn Thain <fthain@telegraphics.com.au>
    Reviewed-by: default avatarLaurence Oberman <loberman@redhat.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    08348b1c
NCR5380.c 71.8 KB