Skip to contentSkip to conversation

New: SCSI Generic queueing appears unfair between processes

Bug 15567 [email protected] 1 participant 1 message Mar 17, 2010 SCSI

lore
Share & tools
lore
#0 lore raw

http://bugzilla.kernel.org/show_bug.cgi?id=15567

           Summary: SCSI Generic queueing appears unfair between processes
           Product: IO/Storage
           Version: 2.5
    Kernel Version: 2.6.18-2.6.32
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: SCSI
        AssignedTo: [email protected]
        ReportedBy: [email protected]
        Regression: No

My timing indicates there appears to be no fair queueing mechanism for scsi commands issued from multiple processes to separate devices over a shared bus (e.g. SCSI or USB). For example, an io can easily be starved in queue for more than half a minute with just four processes issuing 16 slow ios to usb flash devices at a time. If I hold back ios in my application and reduce the number of ios queued in the kernel at a time to 2 per process it decreases average and maximum end to end latency to more tolerable levels.

Much like memory, cpu or network hogging, unfair storage command queueing between processes would be considered by most people to be a performance related defect. Shared use, particularly of a congested bus, calls for time or bandwidth slicing to prevent starvation.

The SCSI Generic HOWTO doesn't go into it, but is this the current kernel design? If so, perhaps libaio would be a more viable solution to concurrent io?

Signature · 3 lines
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.