mbox series

[v2,0/5] active-mirror: support unaligned guest operations

Message ID 20191011090711.19940-1-vsementsov@virtuozzo.com (mailing list archive)
Headers show
Series active-mirror: support unaligned guest operations | expand

Message

Vladimir Sementsov-Ogievskiy Oct. 11, 2019, 9:07 a.m. UTC
Commit 9adc1cb49af8d fixed a bug about unaligned (to dirty bitmap
granularity) guest writes (and discards) by simply requesting
corresponding alignment on mirror-top filter. However forcing large
alignment obviously decreases performance of unaligned requests.

So it's time for a new solution which is in 04. And 05 reverts
9adc1cb49af8d.

v2:
01: new fix (do we need it for stable?)
02,03,05: add Max's r-b
04: fix bitmap handling
    improve comments

Vladimir Sementsov-Ogievskiy (5):
  hbitmap: handle set/reset with zero length
  block/mirror: simplify do_sync_target_write
  block/block-backend: add blk_co_pwritev_part
  block/mirror: support unaligned write in active mirror
  Revert "mirror: Only mirror granularity-aligned chunks"

 include/sysemu/block-backend.h |   4 +
 block/block-backend.c          |  17 +++-
 block/mirror.c                 | 181 ++++++++++++++++-----------------
 util/hbitmap.c                 |   8 ++
 4 files changed, 114 insertions(+), 96 deletions(-)

Comments

Max Reitz Oct. 18, 2019, 3:54 p.m. UTC | #1
On 11.10.19 11:07, Vladimir Sementsov-Ogievskiy wrote:
> Commit 9adc1cb49af8d fixed a bug about unaligned (to dirty bitmap
> granularity) guest writes (and discards) by simply requesting
> corresponding alignment on mirror-top filter. However forcing large
> alignment obviously decreases performance of unaligned requests.
> 
> So it's time for a new solution which is in 04. And 05 reverts
> 9adc1cb49af8d.
> 
> v2:
> 01: new fix (do we need it for stable?)

I don’t know? :-)

I’ll just add the stable tag for good measure, I suppose it can’t hurt.

> 02,03,05: add Max's r-b
> 04: fix bitmap handling
>     improve comments
> 
> Vladimir Sementsov-Ogievskiy (5):
>   hbitmap: handle set/reset with zero length
>   block/mirror: simplify do_sync_target_write
>   block/block-backend: add blk_co_pwritev_part
>   block/mirror: support unaligned write in active mirror
>   Revert "mirror: Only mirror granularity-aligned chunks"
> 
>  include/sysemu/block-backend.h |   4 +
>  block/block-backend.c          |  17 +++-
>  block/mirror.c                 | 181 ++++++++++++++++-----------------
>  util/hbitmap.c                 |   8 ++
>  4 files changed, 114 insertions(+), 96 deletions(-)

Thanks, applied to my block branch:

https://git.xanclic.moe/XanClic/qemu/commits/branch/block

Max
Vladimir Sementsov-Ogievskiy Oct. 18, 2019, 4:11 p.m. UTC | #2
18.10.2019 18:54, Max Reitz wrote:
> On 11.10.19 11:07, Vladimir Sementsov-Ogievskiy wrote:
>> Commit 9adc1cb49af8d fixed a bug about unaligned (to dirty bitmap
>> granularity) guest writes (and discards) by simply requesting
>> corresponding alignment on mirror-top filter. However forcing large
>> alignment obviously decreases performance of unaligned requests.
>>
>> So it's time for a new solution which is in 04. And 05 reverts
>> 9adc1cb49af8d.
>>
>> v2:
>> 01: new fix (do we need it for stable?)
> 
> I don’t know? :-)
> 
> I’ll just add the stable tag for good measure, I suppose it can’t hurt.
> 
>> 02,03,05: add Max's r-b
>> 04: fix bitmap handling
>>      improve comments
>>
>> Vladimir Sementsov-Ogievskiy (5):
>>    hbitmap: handle set/reset with zero length
>>    block/mirror: simplify do_sync_target_write
>>    block/block-backend: add blk_co_pwritev_part
>>    block/mirror: support unaligned write in active mirror
>>    Revert "mirror: Only mirror granularity-aligned chunks"
>>
>>   include/sysemu/block-backend.h |   4 +
>>   block/block-backend.c          |  17 +++-
>>   block/mirror.c                 | 181 ++++++++++++++++-----------------
>>   util/hbitmap.c                 |   8 ++
>>   4 files changed, 114 insertions(+), 96 deletions(-)
> 
> Thanks, applied to my block branch:
> 
> https://git.xanclic.moe/XanClic/qemu/commits/branch/block
> 
> Max
> 

Thank you!