From: Anthony Liguori <anthony@codemonkey.ws>
To: Andrea Arcangeli <aarcange@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>,
qemu-devel@nongnu.org, kvm-devel <kvm@vger.kernel.org>
Subject: Re: [Qemu-devel] [RFC] Replace posix-aio with custom thread pool
Date: Fri, 12 Dec 2008 12:17:58 -0600 [thread overview]
Message-ID: <4942AAD6.1090408@codemonkey.ws> (raw)
In-Reply-To: <20081212175213.GP6809@random.random>
Andrea Arcangeli wrote:
> On Fri, Dec 12, 2008 at 11:25:55AM -0600, Anthony Liguori wrote:
>
>> Hrm, that's more complex than I was expecting. I was thinking the bdrv aio
>> infrastructure would always take an iovec. Any details about the
>> underlying host's ability to handle the iovec would be insulated.
>>
>
> You can't remove the restart memory-capped mechanism from the dma api,
> we've to handle dma to non-ram that potentially requires to copy the
> whole buffer so we're forced to have a safe linearization at the dma
> api layer. So it's not necessary to reinvent the same
> restart-partial-transfer logic in the aio layer too. Just set the
> define and teach the aio logic to use pread/pwrite if iovcnt == 1 and
> you're done ;).
>
> So what I'm suggesting is simpler than what you were expecting, not
> more complex. It would be more complex to replicate the restart-bounce
> logic in the aio layer too.
>
> Old drivers using bdrv_aio_read/write will keep working, new drivers
> using dma api can also use bdrv_aio_readv/writev and the linearization
> will happen inside the dma api if aio misses preadv/pwritev support.
>
You assume that anything using bdrv_aio_readv/writev will be going
through a DMA API. This isn't a safe assumption.
Furthermore, you need some way to communicate the fact that you cannot
handle iovcnt > 1 iovecs in a performant/safe way.
Regards,
Anthony Liguori
WARNING: multiple messages have this Message-ID (diff)
From: Anthony Liguori <anthony@codemonkey.ws>
To: Andrea Arcangeli <aarcange@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>,
kvm-devel <kvm@vger.kernel.org>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [RFC] Replace posix-aio with custom thread pool
Date: Fri, 12 Dec 2008 12:17:58 -0600 [thread overview]
Message-ID: <4942AAD6.1090408@codemonkey.ws> (raw)
In-Reply-To: <20081212175213.GP6809@random.random>
Andrea Arcangeli wrote:
> On Fri, Dec 12, 2008 at 11:25:55AM -0600, Anthony Liguori wrote:
>
>> Hrm, that's more complex than I was expecting. I was thinking the bdrv aio
>> infrastructure would always take an iovec. Any details about the
>> underlying host's ability to handle the iovec would be insulated.
>>
>
> You can't remove the restart memory-capped mechanism from the dma api,
> we've to handle dma to non-ram that potentially requires to copy the
> whole buffer so we're forced to have a safe linearization at the dma
> api layer. So it's not necessary to reinvent the same
> restart-partial-transfer logic in the aio layer too. Just set the
> define and teach the aio logic to use pread/pwrite if iovcnt == 1 and
> you're done ;).
>
> So what I'm suggesting is simpler than what you were expecting, not
> more complex. It would be more complex to replicate the restart-bounce
> logic in the aio layer too.
>
> Old drivers using bdrv_aio_read/write will keep working, new drivers
> using dma api can also use bdrv_aio_readv/writev and the linearization
> will happen inside the dma api if aio misses preadv/pwritev support.
>
You assume that anything using bdrv_aio_readv/writev will be going
through a DMA API. This isn't a safe assumption.
Furthermore, you need some way to communicate the fact that you cannot
handle iovcnt > 1 iovecs in a performant/safe way.
Regards,
Anthony Liguori
next prev parent reply other threads:[~2008-12-12 18:18 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-05 21:21 [RFC] Replace posix-aio with custom thread pool Anthony Liguori
2008-12-05 21:21 ` [Qemu-devel] " Anthony Liguori
2008-12-06 9:03 ` Blue Swirl
2008-12-06 18:26 ` Jamie Lokier
2008-12-08 18:23 ` Anthony Liguori
2008-12-08 18:23 ` Anthony Liguori
2008-12-09 15:51 ` Gerd Hoffmann
2008-12-09 16:01 ` Anthony Liguori
2008-12-10 16:44 ` Andrea Arcangeli
2008-12-10 17:21 ` Anthony Liguori
2008-12-10 17:21 ` Anthony Liguori
2008-12-10 17:29 ` Gerd Hoffmann
2008-12-10 18:50 ` Anthony Liguori
2008-12-10 19:08 ` Andrea Arcangeli
2008-12-10 19:08 ` Andrea Arcangeli
2008-12-11 13:12 ` Andrea Arcangeli
2008-12-11 15:24 ` Gerd Hoffmann
2008-12-11 15:24 ` Gerd Hoffmann
2008-12-11 15:53 ` Andrea Arcangeli
2008-12-11 15:53 ` Andrea Arcangeli
2008-12-11 16:11 ` Gerd Hoffmann
2008-12-11 16:11 ` Gerd Hoffmann
2008-12-11 16:49 ` Andrea Arcangeli
2008-12-11 16:49 ` Andrea Arcangeli
2008-12-11 17:20 ` Gerd Hoffmann
2008-12-11 17:20 ` Gerd Hoffmann
2008-12-11 18:11 ` Andrea Arcangeli
2008-12-11 18:11 ` Andrea Arcangeli
2008-12-11 20:38 ` Gerd Hoffmann
2008-12-11 20:38 ` Gerd Hoffmann
2008-12-11 20:40 ` Anthony Liguori
2008-12-12 8:23 ` Jens Axboe
2008-12-12 8:23 ` Jens Axboe
2008-12-12 11:51 ` Andrea Arcangeli
2008-12-12 11:51 ` Andrea Arcangeli
2008-12-12 11:54 ` Jens Axboe
2008-12-12 11:54 ` Jens Axboe
2008-12-12 14:13 ` Andrea Arcangeli
2008-12-12 14:13 ` Andrea Arcangeli
2008-12-12 14:24 ` Anthony Liguori
2008-12-12 14:24 ` Anthony Liguori
2008-12-12 16:33 ` Chris Wright
2008-12-12 16:33 ` Chris Wright
2008-12-12 16:51 ` Anthony Liguori
2008-12-12 16:51 ` Anthony Liguori
2008-12-12 16:52 ` Chris Wright
2008-12-12 16:52 ` Chris Wright
2008-12-11 21:32 ` Christoph Hellwig
2008-12-12 0:27 ` Andrea Arcangeli
2008-12-12 0:27 ` Andrea Arcangeli
2008-12-11 21:30 ` Christoph Hellwig
2008-12-11 16:41 ` Anthony Liguori
2008-12-11 16:41 ` Anthony Liguori
2008-12-12 14:24 ` Andrea Arcangeli
2008-12-12 14:24 ` Andrea Arcangeli
2008-12-12 14:35 ` Anthony Liguori
2008-12-12 14:35 ` Anthony Liguori
2008-12-12 15:44 ` Andrea Arcangeli
2008-12-12 15:44 ` Andrea Arcangeli
2008-12-12 16:49 ` Anthony Liguori
2008-12-12 16:49 ` Anthony Liguori
2008-12-12 17:09 ` Andrea Arcangeli
2008-12-12 17:09 ` Andrea Arcangeli
2008-12-12 17:25 ` Anthony Liguori
2008-12-12 17:25 ` Anthony Liguori
2008-12-12 17:52 ` Andrea Arcangeli
2008-12-12 17:52 ` Andrea Arcangeli
2008-12-12 18:17 ` Anthony Liguori [this message]
2008-12-12 18:17 ` Anthony Liguori
2008-12-12 18:26 ` Andrea Arcangeli
2008-12-12 20:12 ` Gerd Hoffmann
2008-12-12 20:17 ` Anthony Liguori
2008-12-12 20:35 ` Gerd Hoffmann
2008-12-09 17:16 ` Avi Kivity
2008-12-17 14:44 ` Ian Jackson
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=4942AAD6.1090408@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=aarcange@redhat.com \
--cc=kraxel@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.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.