[PATCHSET 0/9] libata: anable full 32 tag queue depth

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ever since we implemented NCQ for libata, the max queue depth on
the device side has been limited to 31. This was done to retain one
command for error handling. But we can utilize the full depth with
a bit of fixing.

The motivation for this is twofold:

1) New devices do amazingly well with extracting parallelism from
   a deeper queue depth, much more so than earlier. I recently ran
   some tests on two identical drives, with the only difference
   being SAS vs SATA interface. The former runs at QD=254, while
   the latter is limited to 31. The SAS drive continues to pull
   out performance from randomized IO at higher queue depths,
   ending up being as much as 30% faster than the SATA drive even
   though they are physically identical.

2) We have IOPS limited applications on rotating storage. A 3%
   increase in performance is nothing to sneeze at.

Most of this series is prep work to get us to the point where
we can enable the full 32 queue depth. The last patch enables
it for AHCI. Other drivers can easily enable it as well, just
modify the can_queue depth passed in. I didn't want to make it
the default, as with 32 commands running, SActive register read
will be 0xffffffff, which some drivers might interpret as the
controller having fallen off the bus. Opting in is easy once that's
verified.

 drivers/ata/acard-ahci.c     |    4 +--
 drivers/ata/ahci.h           |    2 -
 drivers/ata/libahci.c        |    8 +++---
 drivers/ata/libata-core.c    |   53 +++++++++++++++++--------------------------
 drivers/ata/libata-eh.c      |   10 +++++---
 drivers/ata/libata-scsi.c    |   16 ++++++------
 drivers/ata/sata_dwc_460ex.c |   14 +++++------
 drivers/ata/sata_fsl.c       |    8 +++---
 drivers/ata/sata_mv.c        |   26 ++++++++++-----------
 drivers/ata/sata_nv.c        |   36 ++++++++++++++---------------
 drivers/ata/sata_sil24.c     |    6 ++--
 include/linux/libata.h       |   22 ++++++++---------
 12 files changed, 100 insertions(+), 105 deletions(-)

-- 
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux