On 2010-10-31 08:13, Christian Zoffoli wrote: > Il 31/10/2010 02:53, Jens Axboe ha scritto: > [cut] >> >> So you get -1/EINVAL on the issued IO. For O_DIRECT, this will typically >> happen for one (or more) of these reasons: >> >> - The file system doesn't support O_DIRECT, as fio suggests. Since it >> works for your other test, we can safely discount that reason. >> >> - The block size is not a multiple of the block size of the device. I'm >> guessing this is your problem. You are using 1K block sizes, if your >> dm device has a larger block size, then this will not work. >> >> It's not likely to be iomem_align, it's more likely to be due to bs=1k >> just being too small for your setup. To be sure, please provide a: >> >> $ grep . /sys/block/dm-0/queue/* >> >> for dm-0. >> > > Hi Jens > > here is the output > > /sys/block/dm-0/queue/discard_granularity:0 > /sys/block/dm-0/queue/discard_max_bytes:0 > /sys/block/dm-0/queue/discard_zeroes_data:0 > /sys/block/dm-0/queue/hw_sector_size:4096 > /sys/block/dm-0/queue/iostats:1 > /sys/block/dm-0/queue/logical_block_size:4096 > /sys/block/dm-0/queue/max_hw_sectors_kb:32767 > /sys/block/dm-0/queue/max_sectors_kb:512 > /sys/block/dm-0/queue/max_segment_size:65536 > /sys/block/dm-0/queue/max_segments:128 > /sys/block/dm-0/queue/minimum_io_size:4096 > /sys/block/dm-0/queue/nomerges:0 > /sys/block/dm-0/queue/nr_requests:128 > /sys/block/dm-0/queue/optimal_io_size:0 > /sys/block/dm-0/queue/physical_block_size:4096 > /sys/block/dm-0/queue/read_ahead_kb:128 > /sys/block/dm-0/queue/rotational:1 > /sys/block/dm-0/queue/rq_affinity:1 > /sys/block/dm-0/queue/scheduler:noop deadline [cfq] The exposed hw block size is 4096 bytes, so that is also the mimimum size at which you can issue unbuffered IO. Your test will work if you change the bs=1k to bs=4k. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html