qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Max Reitz <mreitz@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
	qemu-block@nongnu.org
Cc: fam@euphon.net, kwolf@redhat.com, eesposit@redhat.com,
	qemu-devel@nongnu.org, stefanha@redhat.com, pbonzini@redhat.com
Subject: Re: [PATCH v2 3/9] test-write-threshold: rewrite test_threshold_(not_)trigger tests
Date: Wed, 5 May 2021 16:28:39 +0200	[thread overview]
Message-ID: <f082362f-ec9e-9367-eede-9df7d14ef85b@redhat.com> (raw)
In-Reply-To: <20210504082553.20377-4-vsementsov@virtuozzo.com>

On 04.05.21 10:25, Vladimir Sementsov-Ogievskiy wrote:
> These tests use bdrv_write_threshold_exceeded() API, which is used only
> for test.

Well, now.  That used to be different before patch 1.

> Better is testing real API, which is used in block.c as well.
> 
> So, let's call bdrv_write_threshold_check_write(), and check is
> bs->write_threshold_offset cleared or not (it's cleared iff threshold
> triggered).
> 
> Also we get rid of BdrvTrackedRequest use here. Tracked requests are
> unrelated to write-threshold since we get rid of write notifiers.

The purpose behind the BdrvTrackedRequest was clearly because this is 
the object bdrv_write_threshold_exceeded() expected.  This reads like 
there was some other purpose (i.e. actually tracked requests), but there 
wasn’t.

The question that comes to my mind is why we had the 
bdrv_check_request() calls there, and why this patch removes them.  They 
seem unrelated to the write threshold, but someone must have thought 
something when adding them.

Looking into git blame, that someone is you :) (8b1170012b1)
Looks like you added those calls because BdrvTrackedRequest is a block 
layer structure, so getting rid of it means the reason for 
bdrv_check_request() disappears.  OK.

Reviewed-by: Max Reitz <mreitz@redhat.com>

> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> ---
>   tests/unit/test-write-threshold.c | 22 ++++------------------
>   1 file changed, 4 insertions(+), 18 deletions(-)
> 
> diff --git a/tests/unit/test-write-threshold.c b/tests/unit/test-write-threshold.c
> index fc1c45a2eb..fd40a815b8 100644
> --- a/tests/unit/test-write-threshold.c
> +++ b/tests/unit/test-write-threshold.c
> @@ -55,41 +55,27 @@ static void test_threshold_multi_set_get(void)
>   
>   static void test_threshold_not_trigger(void)
>   {
> -    uint64_t amount = 0;
>       uint64_t threshold = 4 * 1024 * 1024;
>       BlockDriverState bs;
> -    BdrvTrackedRequest req;
>   
>       memset(&bs, 0, sizeof(bs));
> -    memset(&req, 0, sizeof(req));
> -    req.offset = 1024;
> -    req.bytes = 1024;
> -
> -    bdrv_check_request(req.offset, req.bytes, &error_abort);
>   
>       bdrv_write_threshold_set(&bs, threshold);
> -    amount = bdrv_write_threshold_exceeded(&bs, &req);
> -    g_assert_cmpuint(amount, ==, 0);
> +    bdrv_write_threshold_check_write(&bs, 1024, 1024);
> +    g_assert_cmpuint(bdrv_write_threshold_get(&bs), ==, threshold);
>   }
>   
>   
>   static void test_threshold_trigger(void)
>   {
> -    uint64_t amount = 0;
>       uint64_t threshold = 4 * 1024 * 1024;
>       BlockDriverState bs;
> -    BdrvTrackedRequest req;
>   
>       memset(&bs, 0, sizeof(bs));
> -    memset(&req, 0, sizeof(req));
> -    req.offset = (4 * 1024 * 1024) - 1024;
> -    req.bytes = 2 * 1024;
> -
> -    bdrv_check_request(req.offset, req.bytes, &error_abort);
>   
>       bdrv_write_threshold_set(&bs, threshold);
> -    amount = bdrv_write_threshold_exceeded(&bs, &req);
> -    g_assert_cmpuint(amount, >=, 1024);
> +    bdrv_write_threshold_check_write(&bs, threshold - 1024, 2 * 1024);
> +    g_assert_cmpuint(bdrv_write_threshold_get(&bs), ==, 0);
>   }
>   
>   typedef struct TestStruct {
> 



  reply	other threads:[~2021-05-05 14:29 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-04  8:25 [PATCH v2 0/9] block: refactor write threshold Vladimir Sementsov-Ogievskiy
2021-05-04  8:25 ` [PATCH v2 1/9] block/write-threshold: don't use write notifiers Vladimir Sementsov-Ogievskiy
2021-05-05 12:37   ` Max Reitz
2021-05-05 13:27     ` Vladimir Sementsov-Ogievskiy
2021-05-05 13:35     ` Vladimir Sementsov-Ogievskiy
2021-05-05 14:29       ` Max Reitz
2021-05-04  8:25 ` [PATCH v2 2/9] block: drop " Vladimir Sementsov-Ogievskiy
2021-05-05 12:40   ` Max Reitz
2021-05-04  8:25 ` [PATCH v2 3/9] test-write-threshold: rewrite test_threshold_(not_)trigger tests Vladimir Sementsov-Ogievskiy
2021-05-05 14:28   ` Max Reitz [this message]
2021-05-05 15:20     ` Vladimir Sementsov-Ogievskiy
2021-05-04  8:25 ` [PATCH v2 4/9] block/write-threshold: drop extra APIs Vladimir Sementsov-Ogievskiy
2021-05-05 14:41   ` Max Reitz
2021-05-04  8:25 ` [PATCH v2 5/9] block/write-threshold: don't use aio context lock Vladimir Sementsov-Ogievskiy
2021-05-05 16:09   ` Max Reitz
2021-05-04  8:25 ` [PATCH v2 6/9] test-write-threshold: drop extra tests Vladimir Sementsov-Ogievskiy
2021-05-05 16:11   ` Max Reitz
2021-05-04  8:25 ` [PATCH v2 7/9] test-write-threshold: drop extra TestStruct structure Vladimir Sementsov-Ogievskiy
2021-05-05 16:13   ` Max Reitz
2021-05-04  8:25 ` [PATCH v2 8/9] test-write-threshold: drop extra includes Vladimir Sementsov-Ogievskiy
2021-05-05 16:14   ` Max Reitz
2021-05-04  8:25 ` [PATCH v2 9/9] block/write-threshold: " Vladimir Sementsov-Ogievskiy
2021-05-05 16:23   ` Max Reitz
2021-05-05 20:34     ` Vladimir Sementsov-Ogievskiy
2021-05-06  7:41       ` Max Reitz

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=f082362f-ec9e-9367-eede-9df7d14ef85b@redhat.com \
    --to=mreitz@redhat.com \
    --cc=eesposit@redhat.com \
    --cc=fam@euphon.net \
    --cc=kwolf@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=vsementsov@virtuozzo.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).