Re: submit bio directly from userspace

From: Jens Axboe
Date: Fri Oct 09 2015 - 10:33:04 EST


On 10/09/2015 05:41 AM, Dmitry Monakhov wrote:
Mike Krinkin <krinkin.m.u@xxxxxxxxx> writes:

Hi,


i'm developing block layer workload simulator/player and need to
generate bios as close as possible to the ones in original workload.
To play workload i employ aio + O_DIRECT, but all IOs end up as bios
with SYNC flag set. So i wonder is there any way to control bios
flags from userspace or, maybe, any other options to generate
workload from userspace except aio + O_DIRECT with more precise
control over bio flags?
100% agree, I've investigated existing io-load replay tools and
seems that they all use O_DIRECT(like btreplay) or
buffered-aio/{sync_file_range,fadvise} ( like fio).
So it looks like they all very inaccurate.

Jens, what do to do to replay real load in order to test fs/ioscheduler
harness? Are you interested in having such fine-tuning interface
(probably guarded by CAP_SYS_ADMIN)?

A long time ago I wrote binject, which was meant to be a way to directly inject bio's on a queue:

http://git.kernel.dk/cgit/linux-block/log/?h=binject

It hasn't been moved forward, however. I haven't looked, is is SYNC the only flag addition we are worried about here? There are a slew of other flags that may impact how IO is treated. For instance, file system has tagged the request META. We can't pass that in either. Same is true for FLUSH or FUA writes.

--
Jens Axboe

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