[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Qemu-block] [PATCH 2/7] ide: account UNMAP (TRIM) oper
From: |
Alberto Garcia |
Subject: |
Re: [Qemu-devel] [Qemu-block] [PATCH 2/7] ide: account UNMAP (TRIM) operations |
Date: |
Tue, 05 Dec 2017 16:21:02 +0100 |
User-agent: |
Notmuch/0.18.2 (http://notmuchmail.org) Emacs/24.4.1 (i586-pc-linux-gnu) |
On Mon 20 Nov 2017 05:50:59 PM CET, Anton Nefedov wrote:
> 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);
> + }
> + }
This part looks fine, but don't you also need to account for invalid
requests (in ide_dma_cb() or somewhere else) ?
Berto
- Re: [Qemu-devel] [Qemu-block] [PATCH 2/7] ide: account UNMAP (TRIM) operations,
Alberto Garcia <=