On Fri, Mar 05, 2021 at 09:17:48PM +0900, Akihiko Odaki wrote: > This commit introduces "punch hole" operation and optimizes transfer > block size for macOS. > > This commit introduces two additional members, > discard_granularity and opt_io to BlockSizes type in > include/block/block.h. Also, the members of the type are now > optional. Set -1 to discard_granularity and 0 to other members > for the default values. > > Thanks to Konstantin Nazarov for detailed analysis of a flaw in an > old version of this change: > https://gist.github.com/akihikodaki/87df4149e7ca87f18dc56807ec5a1bc5#gistcomment-3654667 > > Signed-off-by: Akihiko Odaki <akihiko.od...@gmail.com> > --- > block/file-posix.c | 40 ++++++++++++++++++++++++++++++++++++++-- > block/nvme.c | 2 ++ > block/raw-format.c | 4 +++- > hw/block/block.c | 12 ++++++++++-- > include/block/block.h | 2 ++ > 5 files changed, 55 insertions(+), 5 deletions(-)
The live migration compatibility issue is still present. Migrating to another host might not work if the block limits are different. Here is an idea for solving it: Modify include/hw/block/block.h:DEFINE_BLOCK_PROPERTIES_BASE() to support a new value called "host". The default behavior remains unchanged for live migration compatibility but now you can use "host" if you know it's okay but don't care about migration compatibility. The downside to this approach is that users must explicitly say something like --drive ...,opt_io_size=host. But it's still better than the situation we have today where user must manually enter values for their disk. Does this sound okay to everyone? Stefan
signature.asc
Description: PGP signature