[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/7] ide: account UNMAP (TRIM) operations
From: |
Anton Nefedov |
Subject: |
[Qemu-devel] [PATCH 2/7] ide: account UNMAP (TRIM) operations |
Date: |
Mon, 20 Nov 2017 19:50:59 +0300 |
Signed-off-by: Anton Nefedov <address@hidden>
Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>
---
hw/ide/core.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/hw/ide/core.c b/hw/ide/core.c
index 471d0c9..2e4dea7 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -389,6 +389,7 @@ typedef struct TrimAIOCB {
QEMUIOVector *qiov;
BlockAIOCB *aiocb;
int i, j;
+ BlockAcctCookie acct;
} TrimAIOCB;
static void trim_aio_cancel(BlockAIOCB *acb)
@@ -426,6 +427,14 @@ static void ide_trim_bh_cb(void *opaque)
static void ide_issue_trim_cb(void *opaque, int ret)
{
TrimAIOCB *iocb = opaque;
+ if (iocb->i >= 0) {
+ if (ret >= 0) {
+ block_acct_done(blk_get_stats(iocb->blk), &iocb->acct);
+ } else {
+ block_acct_failed(blk_get_stats(iocb->blk), &iocb->acct);
+ }
+ }
+
if (ret >= 0) {
while (iocb->j < iocb->qiov->niov) {
int j = iocb->j;
@@ -442,6 +451,9 @@ static void ide_issue_trim_cb(void *opaque, int ret)
continue;
}
+ block_acct_start(blk_get_stats(iocb->blk), &iocb->acct,
+ count << BDRV_SECTOR_BITS, BLOCK_ACCT_UNMAP);
+
/* Got an entry! Submit and exit. */
iocb->aiocb = blk_aio_pdiscard(iocb->blk,
sector << BDRV_SECTOR_BITS,
--
2.7.4
- [Qemu-devel] [PATCH 0/7] discard blockstats, Anton Nefedov, 2017/11/20
- [Qemu-devel] [PATCH 1/7] qapi: add unmap to BlockDeviceStats, Anton Nefedov, 2017/11/20
- [Qemu-devel] [PATCH 2/7] ide: account UNMAP (TRIM) operations,
Anton Nefedov <=
- [Qemu-devel] [PATCH 4/7] scsi: move unmap error checking to the complete callback, Anton Nefedov, 2017/11/20
- [Qemu-devel] [PATCH 5/7] scsi: account unmap operations, Anton Nefedov, 2017/11/20
- [Qemu-devel] [PATCH 6/7] file-posix: account discard operations, Anton Nefedov, 2017/11/20
- [Qemu-devel] [PATCH 3/7] scsi: store unmap offset and nb_sectors in request struct, Anton Nefedov, 2017/11/20
- [Qemu-devel] [PATCH 7/7] qapi: query-blockstat: add driver specific file-posix stats, Anton Nefedov, 2017/11/20