Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1241570 > unrolled thread
| Started by | Mike Krinkin <krinkin.m.u@gmail.com> |
|---|---|
| First post | 2015-10-07 16:50 +0200 |
| Last post | 2015-10-09 16:40 +0200 |
| Articles | 3 — 3 participants |
Back to article view | Back to linux.kernel
submit bio directly from userspace Mike Krinkin <krinkin.m.u@gmail.com> - 2015-10-07 16:50 +0200
Re: submit bio directly from userspace Dmitry Monakhov <dmonakhov@openvz.org> - 2015-10-09 13:50 +0200
Re: submit bio directly from userspace Jens Axboe <axboe@kernel.dk> - 2015-10-09 16:40 +0200
| From | Mike Krinkin <krinkin.m.u@gmail.com> |
|---|---|
| Date | 2015-10-07 16:50 +0200 |
| Subject | submit bio directly from userspace |
| Message-ID | <qgYcy-7Ng-13@gated-at.bofh.it> |
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? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Dmitry Monakhov <dmonakhov@openvz.org> |
|---|---|
| Date | 2015-10-09 13:50 +0200 |
| Message-ID | <qhElr-129-9@gated-at.bofh.it> |
| In reply to | #1241570 |
[Multipart message — attachments visible in raw view] — view raw
Mike Krinkin <krinkin.m.u@gmail.com> 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)?
There are several places where we can pass such flag
1) iocb->aio_flag, add IOCB_FLAG_DIRECT_ASYNC
2) add new flag O_DIRECT_ASYNC to file->f_flags
[toc] | [prev] | [next] | [standalone]
| From | Jens Axboe <axboe@kernel.dk> |
|---|---|
| Date | 2015-10-09 16:40 +0200 |
| Message-ID | <qhGZX-4Tm-1@gated-at.bofh.it> |
| In reply to | #1243285 |
On 10/09/2015 05:41 AM, Dmitry Monakhov wrote:
> Mike Krinkin <krinkin.m.u@gmail.com> 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@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web