From: "Michael R. Hines" <mhines@cs.binghamton.edu>
To: linux-kernel@vger.kernel.org
Cc: mhines@cs.binghamton.edu
Subject: random AIO reads (do_generic_mapping_read)
Date: Tue, 08 May 2007 21:37:00 -0400 [thread overview]
Message-ID: <464125BC.109@cs.binghamton.edu> (raw)
[-- Attachment #1: Type: text/plain, Size: 1514 bytes --]
Howdy (please CC replies directly),
I have a very specific question regarding the behavior of
do_generic_mapping_read().
Here's my 2.6.20 setup: I have a stable block device driver that has
random-access style latencies (around 80 microseconds. zero seek-time).
From userland: I have a simple AIO io_submit/io_suspend
program that repeatedly fires off *hundreds random AIO reads*
Here's what I would like to happen:
Since my driver does not seek (i.e. I/O not helped by mm/readahead.c)
I would like my AIOs to be *overlapped* when sent to my driver.
Currently, do_generic_mapping_read() will block on every read,
one-by-one. Instead I want the bio's to be fired off to my driver as
fast as possible without calling lock_page(). Rather the read should
return and allow io_submit_one to fire off more reads without waiting
for the userspace-copy - it would instead happen later in the future.
Furthermore: I *do not* want to avoid the page cache (which temporarily
solves the problem). I still want the support of the page-cache, I just
instead need those I/Os to not block or sleep while waiting for a single
I/O to complete.
Obviously if this were a disk, such a requirement would be very stupid
(and useless). But without it, my low-latency driver is under-utilized.
Is this possible right now?
--
/**************************************/
Michael R. Hines
Grad Student, SUNY Binghamton
http://www.cs.binghamton.edu/~mhines
/ *************************************/
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
reply other threads:[~2007-05-09 2:26 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=464125BC.109@cs.binghamton.edu \
--to=mhines@cs.binghamton.edu \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.