mbox series

[v3,0/7] bitmaps: add inconsistent bit

Message ID 20190301191545.8728-1-jsnow@redhat.com
Headers show
Series bitmaps: add inconsistent bit | expand

Message

John Snow March 1, 2019, 7:15 p.m. UTC
Allow QEMU to read in bitmaps that have the in-use bit set, for the
purposes of allowing users to delete those bitmaps.

This is chosen in preference to a hard error on load to minimize
impact for a non-critical error, but to force the user or management
utility to acknowledge that the bitmap is no longer viable.

1. Changed wording of meaning of persistent bit, inconsistent bit
   Declining to optimize to avoid allocations for this revision.

2. Add Reviewed-by from Eric.

3. Split into several patches that are more single-purpose, which
   highlights the individual fixes more clearly;

   - Prohibit BUSY or INCONSISTENT bitmaps from being merge sources.

4. Declining feedback to prohibit disabling or enabling readonly bitmaps,
   on the basis that users may wish to enable/disable them prior to
   remounting their backing storage RW.

   Decided to prohibit attempting to remove readonly bitmaps, so the
   failure happens earlier.

   Prohibit sync=incremental backups using readonly bitmaps, because
   they're not capable of clearing the bitmap on success.
   sync=differential would be acceptable here. (Good spot, Vladimir.)

John Snow (7):
  block/dirty-bitmaps: add inconsistent bit
  block/dirty-bitmap: add inconsistent status
  block/dirty-bitmaps: add block_dirty_bitmap_check function
  block/dirty-bitmaps: prohibit readonly bitmaps for backups
  block/dirty-bitmaps: prohibit removing readonly bitmaps
  block/dirty-bitmaps: disallow busy bitmaps as merge source
  block/dirty-bitmaps: implement inconsistent bit

 qapi/block-core.json           |  20 +++++--
 include/block/dirty-bitmap.h   |  15 ++++-
 block/dirty-bitmap.c           |  63 +++++++++++++++++---
 block/qcow2-bitmap.c           | 103 +++++++++++++++++----------------
 blockdev.c                     |  50 ++++------------
 migration/block-dirty-bitmap.c |  12 +---
 nbd/server.c                   |   3 +-
 7 files changed, 151 insertions(+), 115 deletions(-)

Comments

John Snow March 5, 2019, 11:59 p.m. UTC | #1
On 3/1/19 2:15 PM, John Snow wrote:
> Allow QEMU to read in bitmaps that have the in-use bit set, for the
> purposes of allowing users to delete those bitmaps.
> 
> This is chosen in preference to a hard error on load to minimize
> impact for a non-critical error, but to force the user or management
> utility to acknowledge that the bitmap is no longer viable.
> 
> 1. Changed wording of meaning of persistent bit, inconsistent bit
>    Declining to optimize to avoid allocations for this revision.
> 
> 2. Add Reviewed-by from Eric.
> 
> 3. Split into several patches that are more single-purpose, which
>    highlights the individual fixes more clearly;
> 
>    - Prohibit BUSY or INCONSISTENT bitmaps from being merge sources.
> 
> 4. Declining feedback to prohibit disabling or enabling readonly bitmaps,
>    on the basis that users may wish to enable/disable them prior to
>    remounting their backing storage RW.
> 
>    Decided to prohibit attempting to remove readonly bitmaps, so the
>    failure happens earlier.
> 
>    Prohibit sync=incremental backups using readonly bitmaps, because
>    they're not capable of clearing the bitmap on success.
>    sync=differential would be acceptable here. (Good spot, Vladimir.)
> 
> John Snow (7):
>   block/dirty-bitmaps: add inconsistent bit
>   block/dirty-bitmap: add inconsistent status
>   block/dirty-bitmaps: add block_dirty_bitmap_check function
>   block/dirty-bitmaps: prohibit readonly bitmaps for backups
>   block/dirty-bitmaps: prohibit removing readonly bitmaps
>   block/dirty-bitmaps: disallow busy bitmaps as merge source
>   block/dirty-bitmaps: implement inconsistent bit
> 
>  qapi/block-core.json           |  20 +++++--
>  include/block/dirty-bitmap.h   |  15 ++++-
>  block/dirty-bitmap.c           |  63 +++++++++++++++++---
>  block/qcow2-bitmap.c           | 103 +++++++++++++++++----------------
>  blockdev.c                     |  50 ++++------------
>  migration/block-dirty-bitmap.c |  12 +---
>  nbd/server.c                   |   3 +-
>  7 files changed, 151 insertions(+), 115 deletions(-)
> 

Thanks for the reviews Eric, I have staged this on my bitmaps branch. I
realize this is hasty, but it's time to get patches in for release, and
it will make reviewing the next series earlier.

Vladimir, I realize I didn't take a few of your suggestions here so I am
delaying sending the PR for this a little bit to give you a chance to
object.

--js