Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1241570 > unrolled thread

submit bio directly from userspace

Started byMike Krinkin <krinkin.m.u@gmail.com>
First post2015-10-07 16:50 +0200
Last post2015-10-09 16:40 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel


Contents

  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

#1241570 — submit bio directly from userspace

FromMike Krinkin <krinkin.m.u@gmail.com>
Date2015-10-07 16:50 +0200
Subjectsubmit 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]


#1243285

FromDmitry Monakhov <dmonakhov@openvz.org>
Date2015-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]


#1243428

FromJens Axboe <axboe@kernel.dk>
Date2015-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