[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 04/11] dma-helpers: add accounting wrappers
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 04/11] dma-helpers: add accounting wrappers |
Date: |
Tue, 6 Dec 2011 12:01:25 +0100 |
The length of the transfer is already in the sglist, so add a wrapper
that fetches it.
Signed-off-by: Paolo Bonzini <address@hidden>
---
dma-helpers.c | 6 ++++++
dma.h | 3 +++
hw/ide/ahci.c | 10 ++++------
3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/dma-helpers.c b/dma-helpers.c
index f53a51f..a773489 100644
--- a/dma-helpers.c
+++ b/dma-helpers.c
@@ -234,3 +234,9 @@ uint64_t dma_buf_write(uint8_t *ptr, int32_t len,
QEMUSGList *sg)
{
return dma_buf_rw(ptr, len, sg, 1);
}
+
+void dma_acct_start(BlockDriverState *bs, BlockAcctCookie *cookie,
+ QEMUSGList *sg, enum BlockAcctType type)
+{
+ bdrv_acct_start(bs, cookie, sg->size, type);
+}
diff --git a/dma.h b/dma.h
index 346ac4f..20e86d2 100644
--- a/dma.h
+++ b/dma.h
@@ -61,4 +61,7 @@ BlockDriverAIOCB *dma_bdrv_write(BlockDriverState *bs,
uint64_t dma_buf_read(uint8_t *ptr, int32_t len, QEMUSGList *sg);
uint64_t dma_buf_write(uint8_t *ptr, int32_t len, QEMUSGList *sg);
+void dma_acct_start(BlockDriverState *bs, BlockAcctCookie *cookie,
+ QEMUSGList *sg, enum BlockAcctType type);
+
#endif
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index 0af201d..28f32cc 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -794,9 +794,8 @@ static void process_ncq_command(AHCIState *s, int port,
uint8_t *cmd_fis,
DPRINTF(port, "tag %d aio read %"PRId64"\n",
ncq_tfs->tag, ncq_tfs->lba);
- bdrv_acct_start(ncq_tfs->drive->port.ifs[0].bs, &ncq_tfs->acct,
- (ncq_tfs->sector_count-1) * BDRV_SECTOR_SIZE,
- BDRV_ACCT_READ);
+ dma_acct_start(ncq_tfs->drive->port.ifs[0].bs, &ncq_tfs->acct,
+ &ncq_tfs->sglist, BDRV_ACCT_READ);
ncq_tfs->aiocb = dma_bdrv_read(ncq_tfs->drive->port.ifs[0].bs,
&ncq_tfs->sglist, ncq_tfs->lba,
ncq_cb, ncq_tfs);
@@ -808,9 +807,8 @@ static void process_ncq_command(AHCIState *s, int port,
uint8_t *cmd_fis,
DPRINTF(port, "tag %d aio write %"PRId64"\n",
ncq_tfs->tag, ncq_tfs->lba);
- bdrv_acct_start(ncq_tfs->drive->port.ifs[0].bs, &ncq_tfs->acct,
- (ncq_tfs->sector_count-1) * BDRV_SECTOR_SIZE,
- BDRV_ACCT_WRITE);
+ dma_acct_start(ncq_tfs->drive->port.ifs[0].bs, &ncq_tfs->acct,
+ &ncq_tfs->sglist, BDRV_ACCT_WRITE);
ncq_tfs->aiocb = dma_bdrv_write(ncq_tfs->drive->port.ifs[0].bs,
&ncq_tfs->sglist, ncq_tfs->lba,
ncq_cb, ncq_tfs);
--
1.7.7.1
- [Qemu-devel] [PATCH 00/11] virtio-scsi device model, Paolo Bonzini, 2011/12/06
- [Qemu-devel] [PATCH 01/11] qiov: prevent double free or use-after-free, Paolo Bonzini, 2011/12/06
- [Qemu-devel] [PATCH 04/11] dma-helpers: add accounting wrappers,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 06/11] scsi: add scatter/gather functionality, Paolo Bonzini, 2011/12/06
- [Qemu-devel] [PATCH 03/11] dma-helpers: add dma_buf_read and dma_buf_write, Paolo Bonzini, 2011/12/06
- [Qemu-devel] [PATCH 08/11] virtio-scsi: Add virtio-scsi stub device, Paolo Bonzini, 2011/12/06
- [Qemu-devel] [PATCH 05/11] scsi: pass residual amount to command_complete, Paolo Bonzini, 2011/12/06
- [Qemu-devel] [PATCH 09/11] virtio-scsi: Add basic request processing infrastructure, Paolo Bonzini, 2011/12/06
- [Qemu-devel] [PATCH 07/11] scsi-disk: enable scatter/gather functionality, Paolo Bonzini, 2011/12/06
- [Qemu-devel] [PATCH 10/11] virtio-scsi: add basic SCSI bus operation, Paolo Bonzini, 2011/12/06
- [Qemu-devel] [PATCH 11/11] virtio-scsi: process control queue requests, Paolo Bonzini, 2011/12/06
- [Qemu-devel] [PATCH 02/11] dma-helpers: make QEMUSGList target independent, Paolo Bonzini, 2011/12/06