[Qemu-devel] [PATCH] mirror: fix the inconsistent AioContext problem in the backing BDSs during mirroring.

sochin.jiang posted 1 patch 6 years, 9 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1498475064-39816-1-git-send-email-sochin.jiang@huawei.com
Test FreeBSD passed
Test checkpatch passed
Test docker passed
Test s390x passed
block.c | 1 +
1 file changed, 1 insertion(+)
[Qemu-devel] [PATCH] mirror: fix the inconsistent AioContext problem in the backing BDSs during mirroring.
Posted by sochin.jiang 6 years, 9 months ago
From: "sochin.jiang" <sochin.jiang@huawei.com>

 mirror_complete opens the backings, BDSs of the new open backings should have a
 same AioContext with the top when using iothreads, fix the code to guarantee this,
 also avoiding unexpected qemu exit(assert fails in bdrv_attach_child).

Signed-off-by: sochin.jiang <sochin.jiang@huawei.com>
---
 block.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/block.c b/block.c
index 6943962..b312fe6 100644
--- a/block.c
+++ b/block.c
@@ -2185,6 +2185,7 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDict *parent_options,
         ret = -EINVAL;
         goto free_exit;
     }
+    bdrv_set_aio_context(backing_hd, bdrv_get_aio_context(bs));
 
     /* Hook up the backing file link; drop our reference, bs owns the
      * backing_hd reference now */
-- 
1.8.3.1


Re: [Qemu-devel] [PATCH] mirror: fix the inconsistent AioContext problem in the backing BDSs during mirroring.
Posted by Max Reitz 6 years, 9 months ago
On 2017-06-26 13:04, sochin.jiang wrote:
> From: "sochin.jiang" <sochin.jiang@huawei.com>
> 
>  mirror_complete opens the backings, BDSs of the new open backings should have a
>  same AioContext with the top when using iothreads, fix the code to guarantee this,
>  also avoiding unexpected qemu exit(assert fails in bdrv_attach_child).

Thanks! The functional change looks good to me. I'll see to add an
iotest to cover this case.

Some notes: There shouldn't be any spaces at the front of these lines,
and every line should be limited to 72 characters.

Also, the commit message should not end in a full stop (and it's good to
keep it short).

I've reworded a bit of the commit message (and shortened the title*) and
applied it to my block branch:

https://github.com/XanClic/qemu/commits/block

Max

[1] I've shortened it to "mirror: Fix inconsistent backing AioContext
for after mirroring". I usually try to fit the title into 50 characters
(because that's what the default vim highlighting is proposing...), so
for reference, I would have made it something like "block: Align backing
BDS's AioContext with overlay" -- if it had been my patch. Since it was
yours, I'm fine with commit titles longer than 50 characters (although
they really should not exceed 72).

> Signed-off-by: sochin.jiang <sochin.jiang@huawei.com>
> ---
>  block.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/block.c b/block.c
> index 6943962..b312fe6 100644
> --- a/block.c
> +++ b/block.c
> @@ -2185,6 +2185,7 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDict *parent_options,
>          ret = -EINVAL;
>          goto free_exit;
>      }
> +    bdrv_set_aio_context(backing_hd, bdrv_get_aio_context(bs));
>  
>      /* Hook up the backing file link; drop our reference, bs owns the
>       * backing_hd reference now */
> 


Re: [Qemu-devel] [PATCH] mirror: fix the inconsistent AioContext problem in the backing BDSs during mirroring.
Posted by sochin.jiang 6 years, 9 months ago
Oh,I got it, thanks.


Sochin


On 2017/6/29 6:33, Max Reitz wrote:
> On 2017-06-26 13:04, sochin.jiang wrote:
>> From: "sochin.jiang" <sochin.jiang@huawei.com>
>>
>>  mirror_complete opens the backings, BDSs of the new open backings should have a
>>  same AioContext with the top when using iothreads, fix the code to guarantee this,
>>  also avoiding unexpected qemu exit(assert fails in bdrv_attach_child).
> Thanks! The functional change looks good to me. I'll see to add an
> iotest to cover this case.
>
> Some notes: There shouldn't be any spaces at the front of these lines,
> and every line should be limited to 72 characters.
>
> Also, the commit message should not end in a full stop (and it's good to
> keep it short).
>
> I've reworded a bit of the commit message (and shortened the title*) and
> applied it to my block branch:
>
> https://github.com/XanClic/qemu/commits/block
>
> Max
>
> [1] I've shortened it to "mirror: Fix inconsistent backing AioContext
> for after mirroring". I usually try to fit the title into 50 characters
> (because that's what the default vim highlighting is proposing...), so
> for reference, I would have made it something like "block: Align backing
> BDS's AioContext with overlay" -- if it had been my patch. Since it was
> yours, I'm fine with commit titles longer than 50 characters (although
> they really should not exceed 72).
>
>> Signed-off-by: sochin.jiang <sochin.jiang@huawei.com>
>> ---
>>  block.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/block.c b/block.c
>> index 6943962..b312fe6 100644
>> --- a/block.c
>> +++ b/block.c
>> @@ -2185,6 +2185,7 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDict *parent_options,
>>          ret = -EINVAL;
>>          goto free_exit;
>>      }
>> +    bdrv_set_aio_context(backing_hd, bdrv_get_aio_context(bs));
>>  
>>      /* Hook up the backing file link; drop our reference, bs owns the
>>       * backing_hd reference now */
>>
>