From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34540) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZwqHK-0006jQ-4w for qemu-devel@nongnu.org; Thu, 12 Nov 2015 06:42:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZwqHF-00078D-0f for qemu-devel@nongnu.org; Thu, 12 Nov 2015 06:42:58 -0500 Received: from mx-v6.kamp.de ([2a02:248:0:51::16]:47268 helo=mx01.kamp.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZwqHE-00077L-Nq for qemu-devel@nongnu.org; Thu, 12 Nov 2015 06:42:52 -0500 References: <1446799373-6144-1-git-send-email-pl@kamp.de> <1446799373-6144-6-git-send-email-pl@kamp.de> <20151112112500.GT4082@ad.usersys.redhat.com> From: Peter Lieven Message-ID: <56447B37.7090702@kamp.de> Date: Thu, 12 Nov 2015 12:42:47 +0100 MIME-Version: 1.0 In-Reply-To: <20151112112500.GT4082@ad.usersys.redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH V3 5/6] ide: enable buffered requests for ATAPI devices List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng Cc: kwolf@redhat.com, qemu-block@nongnu.org, stefanha@gmail.com, jcody@redhat.com, qemu-devel@nongnu.org, jsnow@redhat.com Am 12.11.2015 um 12:25 schrieb Fam Zheng: > On Fri, 11/06 09:42, Peter Lieven wrote: >> Signed-off-by: Peter Lieven >> --- >> hw/ide/atapi.c | 10 +++++----- >> 1 file changed, 5 insertions(+), 5 deletions(-) >> >> diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c >> index 29fd131..2f6d018 100644 >> --- a/hw/ide/atapi.c >> +++ b/hw/ide/atapi.c >> @@ -190,8 +190,8 @@ static int cd_read_sector(IDEState *s, void *buf) >> block_acct_start(blk_get_stats(s->blk), &s->acct, >> 4 * BDRV_SECTOR_SIZE, BLOCK_ACCT_READ); >> >> - blk_aio_readv(s->blk, (int64_t)s->lba << 2, &s->qiov, 4, >> - cd_read_sector_cb, s); >> + ide_buffered_readv(s, (int64_t)s->lba << 2, &s->qiov, 4, >> + cd_read_sector_cb, s); >> >> s->status |= BUSY_STAT; >> return 0; >> @@ -424,9 +424,9 @@ static void ide_atapi_cmd_read_dma_cb(void *opaque, int ret) >> s->bus->dma->iov.iov_len = n * 4 * 512; >> qemu_iovec_init_external(&s->bus->dma->qiov, &s->bus->dma->iov, 1); >> >> - s->bus->dma->aiocb = blk_aio_readv(s->blk, (int64_t)s->lba << 2, >> - &s->bus->dma->qiov, n * 4, >> - ide_atapi_cmd_read_dma_cb, s); >> + s->bus->dma->aiocb = ide_buffered_readv(s, (int64_t)s->lba << 2, >> + &s->bus->dma->qiov, n * 4, >> + ide_atapi_cmd_read_dma_cb, s); > IIRC the dma aiocb are still going to be drained in bmdma_cmd_writeb, so why do > we need the bounce buffer? They dont ;-) If s->bus->dma->aiocb is a buffered Request, it will be set to NULL in this call: req->original_cb(req->original_opaque, -ECANCELED); Peter