Re: Block-level access

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

 



On 09/01/2016 02:48 PM, Alex Austin wrote:
CC'ing linux-scsi and linux-block.

Also, please CC me in replies.

On Thu, Sep 1, 2016 at 4:43 PM, Alex Austin <aaustin@xxxxxxxxxxxxxxxxxxx> wrote:
Hello,
What is the most performant way to directly interface with an attached hard
drive? I've so far used read()/write() on /dev/sd_ but I find error handling
exceedingly difficult, as I don't always even get errors reported, even if the
open() call includes O_DIRECT. I've also used ioctl(SG_IO), but find that it's
extremely slow due to the lack of queuing support in the API. Is there a
mid-level API that will get me decent error handling while allowing command
queuing, or do I just need to make multiple threads all doing separate SG_IO
ioctls?

What the most efficient way is to interface is with a hard drive depends on the I/O pattern. Are you aware that buffered I/O performs read-ahead? Have you already tried to tune the read-ahead setting (blockdev --getra / blockdev --setra)?

BTW, if you need an example of how to queue SG_IO, you are welcome to have a look at the fio source code. You will probably be interested in the bsg API. See e.g. https://lwn.net/Articles/174469/.

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



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux