Re: [Qemu-devel] [PATCH v8 00/19] VHDX log replay and write support, .bdrv_create()
On Wed, Oct 30, 2013 at 10:44:37AM -0400, Jeff Cody wrote: This patch series contains the initial VHDX log parsing, replay, write support, and image creation. === v8 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v7-upstream Rebased to latest qemu/master Patch 10/19: * Added comments for bdrv_flush() (Stefan) Patch 11/19: * Added qemu_iovec_destroy(hd_qiov) (Stefan) * On certain _writev errors, restore BAT cache (Stefan) Patch 16/19: * Replaced fprintf(stderr,...) with error_setg_errno() (Stefan) Patch 18/19: * Added filter for block_state_zero in qemu-iotest/common.rc Patch 19/19: * Moved log replay test name to 068 (part of rebase to master) === v7 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v7-upstream Rebased to latest qemu/master (picked up vhdx r/o tests, migration blocker) Patch 8/19: * validate log descriptor_count (Stefan) * fix typos in comments (Stefan) * Removed unneccessary initialization (Stefan) * Replay log prior to metadata (Stefan) * In vhdx_log_flush(), call bdrv_flush() prior to zeroing out the log guid in the header. * In vhdx_close(), set freed pointers to NULL Patch 9/19: * correct logic for region overlap (Stefan) Patch 10/19: * add missing goto exit in error case (Stefan) * add bdrv_flush() to ensure data is stable on disk (Stefan) Patch 11/19: * fixed typos in comments (Stefan) * QEMU coding style changes (Stefan) * rename bat_entry to bat_entry_le for clarity (Stefan) * Add PAYLOAD_BLOCK_ZERO explicit zero padding for protocols that do not support zero init (Stefan) * rename PAYLOAD_BLOCK_FULL_PRESENT to PAYLOAD_BLOCK_FULLY_PRESENT (Stefan) Patch 13/19: * Fixed typo in commit message (Stefan) Patch 19/19: * New, adds qemu-io test for log replay of data sector v6 Patch 17/20: * Dropped (already upstream) v6 Patch 18/20: * Dropped (already upstream) === v6 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v6-upstream Rebased to latest qemu/master: Patch 16/20: .bdrv_create() propagates Error, and bdrv_unref() used instead of bdrv_delete(). Patch 17 18 are already included in another series: [PATCH v3 0/3] qemu-iotests with sample images, vhdx test, cleanup They are included here to provide a base for patches 19 20. If the above series is applied before this series, then patches 17 and 18 can be ignored. Patch 19/20: In qemu-io tests _make_test_img(), filter out vhdx-specific options for .bdrv_create(). Patch 20/20: Add VHDX write test case to 064. === v5 changes === v5 is also available for testing from: https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v5-upstream Most of the patches from v4 - v5 are the same, but there are a few differences and a few new patches. Here is a summary of which patches are different and/or new: Patch highlights: Patch 7 just some minor code movement, in prep for changes in patch 8 Patch 8 incorporates review feedback from Stefan, for the previous Patch 7 in v4. Patch 9 adds region checking for log, region table, and metadata tables, per suggestion from Stefan. Patch 10 minor change from changes made in 8/16 (vhdx_guid_is_zero() is gone) Patch 12 is just some minor housekeeping, to get rid of bit shifting that doesn't need to happen. === v4 changes === v4 patches are available from github as well, on branch vhdx-write-v4-upstream: https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v4-upstream https://github.com/codyprime/qemu-kvm-jtc.git Those in the midst of reviewing v3, don't fear - the only changes with v4 is the addition of patches on the end of the series (patches 10-13). These patches enable creating VHDX images. Image files created have been (briefly lightly) tested on Hyper-V running on Windows Server 2012. Some of the new patches could be squashed with earlier patches in the series, but I refrained from doing so, since some of the patches have already been reviewed, and others are in the midst of review. I want to make it as easy as possible on those currently reviewing. There is nothing critical that needs to be pushed into the earlier patches. New patches: Patch 10: Breaks out some more endian translation functions (likely squashable into patch 5) Patch 11: Break out some operations into seperate helper functions Patch 12: More comment typos and header fixes in vhdx.h (likely squashable into patch 1) Patch 13: Adds .bdrv_create() for vhdx. VHDX images are can be created for Fixed or Dynamic images. Patches 1-9 are unchanged. === end v4 changelog ===
Re: [Qemu-devel] [PATCH v8 00/19] VHDX log replay and write support, .bdrv_create()
Am 01.11.2013 um 16:32 hat Jeff Cody geschrieben: On Thu, Oct 31, 2013 at 02:10:48PM +0100, Stefan Hajnoczi wrote: On Wed, Oct 30, 2013 at 10:44:37AM -0400, Jeff Cody wrote: This patch series contains the initial VHDX log parsing, replay, write support, and image creation. === v8 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v7-upstream Rebased to latest qemu/master Patch 10/19: * Added comments for bdrv_flush() (Stefan) Patch 11/19: * Added qemu_iovec_destroy(hd_qiov) (Stefan) * On certain _writev errors, restore BAT cache (Stefan) Patch 16/19: * Replaced fprintf(stderr,...) with error_setg_errno() (Stefan) Patch 18/19: * Added filter for block_state_zero in qemu-iotest/common.rc Patch 19/19: * Moved log replay test name to 068 (part of rebase to master) === v7 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v7-upstream Rebased to latest qemu/master (picked up vhdx r/o tests, migration blocker) Patch 8/19: * validate log descriptor_count (Stefan) * fix typos in comments (Stefan) * Removed unneccessary initialization (Stefan) * Replay log prior to metadata (Stefan) * In vhdx_log_flush(), call bdrv_flush() prior to zeroing out the log guid in the header. * In vhdx_close(), set freed pointers to NULL Patch 9/19: * correct logic for region overlap (Stefan) Patch 10/19: * add missing goto exit in error case (Stefan) * add bdrv_flush() to ensure data is stable on disk (Stefan) Patch 11/19: * fixed typos in comments (Stefan) * QEMU coding style changes (Stefan) * rename bat_entry to bat_entry_le for clarity (Stefan) * Add PAYLOAD_BLOCK_ZERO explicit zero padding for protocols that do not support zero init (Stefan) * rename PAYLOAD_BLOCK_FULL_PRESENT to PAYLOAD_BLOCK_FULLY_PRESENT (Stefan) Patch 13/19: * Fixed typo in commit message (Stefan) Patch 19/19: * New, adds qemu-io test for log replay of data sector v6 Patch 17/20: * Dropped (already upstream) v6 Patch 18/20: * Dropped (already upstream) === v6 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v6-upstream Rebased to latest qemu/master: Patch 16/20: .bdrv_create() propagates Error, and bdrv_unref() used instead of bdrv_delete(). Patch 17 18 are already included in another series: [PATCH v3 0/3] qemu-iotests with sample images, vhdx test, cleanup They are included here to provide a base for patches 19 20. If the above series is applied before this series, then patches 17 and 18 can be ignored. Patch 19/20: In qemu-io tests _make_test_img(), filter out vhdx-specific options for .bdrv_create(). Patch 20/20: Add VHDX write test case to 064. === v5 changes === v5 is also available for testing from: https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v5-upstream Most of the patches from v4 - v5 are the same, but there are a few differences and a few new patches. Here is a summary of which patches are different and/or new: Patch highlights: Patch 7 just some minor code movement, in prep for changes in patch 8 Patch 8 incorporates review feedback from Stefan, for the previous Patch 7 in v4. Patch 9 adds region checking for log, region table, and metadata tables, per suggestion from Stefan. Patch 10 minor change from changes made in 8/16 (vhdx_guid_is_zero() is gone) Patch 12 is just some minor housekeeping, to get rid of bit shifting that doesn't need to happen. === v4 changes === v4 patches are available from github as well, on branch vhdx-write-v4-upstream: https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v4-upstream https://github.com/codyprime/qemu-kvm-jtc.git Those in the midst of reviewing v3, don't fear - the only changes with v4 is the addition of patches on the end of the series (patches 10-13). These patches enable creating VHDX images. Image files created have been (briefly lightly) tested on Hyper-V running on Windows Server 2012. Some of the new patches could be squashed with earlier patches in the series, but I refrained from doing so, since some of the patches have already been reviewed, and others are in the midst of review. I want to make it as easy as possible on those currently reviewing. There is nothing critical that needs to be pushed into the earlier patches. New patches: Patch 10: Breaks out some more endian translation
Re: [Qemu-devel] [PATCH v8 00/19] VHDX log replay and write support, .bdrv_create()
On Thu, Oct 31, 2013 at 02:10:48PM +0100, Stefan Hajnoczi wrote: On Wed, Oct 30, 2013 at 10:44:37AM -0400, Jeff Cody wrote: This patch series contains the initial VHDX log parsing, replay, write support, and image creation. === v8 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v7-upstream Rebased to latest qemu/master Patch 10/19: * Added comments for bdrv_flush() (Stefan) Patch 11/19: * Added qemu_iovec_destroy(hd_qiov) (Stefan) * On certain _writev errors, restore BAT cache (Stefan) Patch 16/19: * Replaced fprintf(stderr,...) with error_setg_errno() (Stefan) Patch 18/19: * Added filter for block_state_zero in qemu-iotest/common.rc Patch 19/19: * Moved log replay test name to 068 (part of rebase to master) === v7 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v7-upstream Rebased to latest qemu/master (picked up vhdx r/o tests, migration blocker) Patch 8/19: * validate log descriptor_count (Stefan) * fix typos in comments (Stefan) * Removed unneccessary initialization (Stefan) * Replay log prior to metadata (Stefan) * In vhdx_log_flush(), call bdrv_flush() prior to zeroing out the log guid in the header. * In vhdx_close(), set freed pointers to NULL Patch 9/19: * correct logic for region overlap (Stefan) Patch 10/19: * add missing goto exit in error case (Stefan) * add bdrv_flush() to ensure data is stable on disk (Stefan) Patch 11/19: * fixed typos in comments (Stefan) * QEMU coding style changes (Stefan) * rename bat_entry to bat_entry_le for clarity (Stefan) * Add PAYLOAD_BLOCK_ZERO explicit zero padding for protocols that do not support zero init (Stefan) * rename PAYLOAD_BLOCK_FULL_PRESENT to PAYLOAD_BLOCK_FULLY_PRESENT (Stefan) Patch 13/19: * Fixed typo in commit message (Stefan) Patch 19/19: * New, adds qemu-io test for log replay of data sector v6 Patch 17/20: * Dropped (already upstream) v6 Patch 18/20: * Dropped (already upstream) === v6 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v6-upstream Rebased to latest qemu/master: Patch 16/20: .bdrv_create() propagates Error, and bdrv_unref() used instead of bdrv_delete(). Patch 17 18 are already included in another series: [PATCH v3 0/3] qemu-iotests with sample images, vhdx test, cleanup They are included here to provide a base for patches 19 20. If the above series is applied before this series, then patches 17 and 18 can be ignored. Patch 19/20: In qemu-io tests _make_test_img(), filter out vhdx-specific options for .bdrv_create(). Patch 20/20: Add VHDX write test case to 064. === v5 changes === v5 is also available for testing from: https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v5-upstream Most of the patches from v4 - v5 are the same, but there are a few differences and a few new patches. Here is a summary of which patches are different and/or new: Patch highlights: Patch 7 just some minor code movement, in prep for changes in patch 8 Patch 8 incorporates review feedback from Stefan, for the previous Patch 7 in v4. Patch 9 adds region checking for log, region table, and metadata tables, per suggestion from Stefan. Patch 10 minor change from changes made in 8/16 (vhdx_guid_is_zero() is gone) Patch 12 is just some minor housekeeping, to get rid of bit shifting that doesn't need to happen. === v4 changes === v4 patches are available from github as well, on branch vhdx-write-v4-upstream: https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v4-upstream https://github.com/codyprime/qemu-kvm-jtc.git Those in the midst of reviewing v3, don't fear - the only changes with v4 is the addition of patches on the end of the series (patches 10-13). These patches enable creating VHDX images. Image files created have been (briefly lightly) tested on Hyper-V running on Windows Server 2012. Some of the new patches could be squashed with earlier patches in the series, but I refrained from doing so, since some of the patches have already been reviewed, and others are in the midst of review. I want to make it as easy as possible on those currently reviewing. There is nothing critical that needs to be pushed into the earlier patches. New patches: Patch 10: Breaks out some more endian translation functions (likely squashable into patch 5) Patch 11: Break out some operations into seperate helper functions Patch 12: More comment typos and header fixes in vhdx.h (likely
Re: [Qemu-devel] [PATCH v8 00/19] VHDX log replay and write support, .bdrv_create()
On Wed, Oct 30, 2013 at 10:44:37AM -0400, Jeff Cody wrote: This patch series contains the initial VHDX log parsing, replay, write support, and image creation. === v8 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v7-upstream Rebased to latest qemu/master Patch 10/19: * Added comments for bdrv_flush() (Stefan) Patch 11/19: * Added qemu_iovec_destroy(hd_qiov) (Stefan) * On certain _writev errors, restore BAT cache (Stefan) Patch 16/19: * Replaced fprintf(stderr,...) with error_setg_errno() (Stefan) Patch 18/19: * Added filter for block_state_zero in qemu-iotest/common.rc Patch 19/19: * Moved log replay test name to 068 (part of rebase to master) === v7 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v7-upstream Rebased to latest qemu/master (picked up vhdx r/o tests, migration blocker) Patch 8/19: * validate log descriptor_count (Stefan) * fix typos in comments (Stefan) * Removed unneccessary initialization (Stefan) * Replay log prior to metadata (Stefan) * In vhdx_log_flush(), call bdrv_flush() prior to zeroing out the log guid in the header. * In vhdx_close(), set freed pointers to NULL Patch 9/19: * correct logic for region overlap (Stefan) Patch 10/19: * add missing goto exit in error case (Stefan) * add bdrv_flush() to ensure data is stable on disk (Stefan) Patch 11/19: * fixed typos in comments (Stefan) * QEMU coding style changes (Stefan) * rename bat_entry to bat_entry_le for clarity (Stefan) * Add PAYLOAD_BLOCK_ZERO explicit zero padding for protocols that do not support zero init (Stefan) * rename PAYLOAD_BLOCK_FULL_PRESENT to PAYLOAD_BLOCK_FULLY_PRESENT (Stefan) Patch 13/19: * Fixed typo in commit message (Stefan) Patch 19/19: * New, adds qemu-io test for log replay of data sector v6 Patch 17/20: * Dropped (already upstream) v6 Patch 18/20: * Dropped (already upstream) === v6 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v6-upstream Rebased to latest qemu/master: Patch 16/20: .bdrv_create() propagates Error, and bdrv_unref() used instead of bdrv_delete(). Patch 17 18 are already included in another series: [PATCH v3 0/3] qemu-iotests with sample images, vhdx test, cleanup They are included here to provide a base for patches 19 20. If the above series is applied before this series, then patches 17 and 18 can be ignored. Patch 19/20: In qemu-io tests _make_test_img(), filter out vhdx-specific options for .bdrv_create(). Patch 20/20: Add VHDX write test case to 064. === v5 changes === v5 is also available for testing from: https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v5-upstream Most of the patches from v4 - v5 are the same, but there are a few differences and a few new patches. Here is a summary of which patches are different and/or new: Patch highlights: Patch 7 just some minor code movement, in prep for changes in patch 8 Patch 8 incorporates review feedback from Stefan, for the previous Patch 7 in v4. Patch 9 adds region checking for log, region table, and metadata tables, per suggestion from Stefan. Patch 10 minor change from changes made in 8/16 (vhdx_guid_is_zero() is gone) Patch 12 is just some minor housekeeping, to get rid of bit shifting that doesn't need to happen. === v4 changes === v4 patches are available from github as well, on branch vhdx-write-v4-upstream: https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v4-upstream https://github.com/codyprime/qemu-kvm-jtc.git Those in the midst of reviewing v3, don't fear - the only changes with v4 is the addition of patches on the end of the series (patches 10-13). These patches enable creating VHDX images. Image files created have been (briefly lightly) tested on Hyper-V running on Windows Server 2012. Some of the new patches could be squashed with earlier patches in the series, but I refrained from doing so, since some of the patches have already been reviewed, and others are in the midst of review. I want to make it as easy as possible on those currently reviewing. There is nothing critical that needs to be pushed into the earlier patches. New patches: Patch 10: Breaks out some more endian translation functions (likely squashable into patch 5) Patch 11: Break out some operations into seperate helper functions Patch 12: More comment typos and header fixes in vhdx.h (likely squashable into patch 1) Patch 13: Adds .bdrv_create() for vhdx. VHDX images are can be created for Fixed or Dynamic images. Patches 1-9 are unchanged. === end v4 changelog ===
[Qemu-devel] [PATCH v8 00/19] VHDX log replay and write support, .bdrv_create()
This patch series contains the initial VHDX log parsing, replay, write support, and image creation. === v8 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v7-upstream Rebased to latest qemu/master Patch 10/19: * Added comments for bdrv_flush() (Stefan) Patch 11/19: * Added qemu_iovec_destroy(hd_qiov) (Stefan) * On certain _writev errors, restore BAT cache (Stefan) Patch 16/19: * Replaced fprintf(stderr,...) with error_setg_errno() (Stefan) Patch 18/19: * Added filter for block_state_zero in qemu-iotest/common.rc Patch 19/19: * Moved log replay test name to 068 (part of rebase to master) === v7 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v7-upstream Rebased to latest qemu/master (picked up vhdx r/o tests, migration blocker) Patch 8/19: * validate log descriptor_count (Stefan) * fix typos in comments (Stefan) * Removed unneccessary initialization (Stefan) * Replay log prior to metadata (Stefan) * In vhdx_log_flush(), call bdrv_flush() prior to zeroing out the log guid in the header. * In vhdx_close(), set freed pointers to NULL Patch 9/19: * correct logic for region overlap (Stefan) Patch 10/19: * add missing goto exit in error case (Stefan) * add bdrv_flush() to ensure data is stable on disk (Stefan) Patch 11/19: * fixed typos in comments (Stefan) * QEMU coding style changes (Stefan) * rename bat_entry to bat_entry_le for clarity (Stefan) * Add PAYLOAD_BLOCK_ZERO explicit zero padding for protocols that do not support zero init (Stefan) * rename PAYLOAD_BLOCK_FULL_PRESENT to PAYLOAD_BLOCK_FULLY_PRESENT (Stefan) Patch 13/19: * Fixed typo in commit message (Stefan) Patch 19/19: * New, adds qemu-io test for log replay of data sector v6 Patch 17/20: * Dropped (already upstream) v6 Patch 18/20: * Dropped (already upstream) === v6 changes === https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v6-upstream Rebased to latest qemu/master: Patch 16/20: .bdrv_create() propagates Error, and bdrv_unref() used instead of bdrv_delete(). Patch 17 18 are already included in another series: [PATCH v3 0/3] qemu-iotests with sample images, vhdx test, cleanup They are included here to provide a base for patches 19 20. If the above series is applied before this series, then patches 17 and 18 can be ignored. Patch 19/20: In qemu-io tests _make_test_img(), filter out vhdx-specific options for .bdrv_create(). Patch 20/20: Add VHDX write test case to 064. === v5 changes === v5 is also available for testing from: https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v5-upstream Most of the patches from v4 - v5 are the same, but there are a few differences and a few new patches. Here is a summary of which patches are different and/or new: Patch highlights: Patch 7 just some minor code movement, in prep for changes in patch 8 Patch 8 incorporates review feedback from Stefan, for the previous Patch 7 in v4. Patch 9 adds region checking for log, region table, and metadata tables, per suggestion from Stefan. Patch 10 minor change from changes made in 8/16 (vhdx_guid_is_zero() is gone) Patch 12 is just some minor housekeeping, to get rid of bit shifting that doesn't need to happen. === v4 changes === v4 patches are available from github as well, on branch vhdx-write-v4-upstream: https://github.com/codyprime/qemu-kvm-jtc/tree/vhdx-write-v4-upstream https://github.com/codyprime/qemu-kvm-jtc.git Those in the midst of reviewing v3, don't fear - the only changes with v4 is the addition of patches on the end of the series (patches 10-13). These patches enable creating VHDX images. Image files created have been (briefly lightly) tested on Hyper-V running on Windows Server 2012. Some of the new patches could be squashed with earlier patches in the series, but I refrained from doing so, since some of the patches have already been reviewed, and others are in the midst of review. I want to make it as easy as possible on those currently reviewing. There is nothing critical that needs to be pushed into the earlier patches. New patches: Patch 10: Breaks out some more endian translation functions (likely squashable into patch 5) Patch 11: Break out some operations into seperate helper functions Patch 12: More comment typos and header fixes in vhdx.h (likely squashable into patch 1) Patch 13: Adds .bdrv_create() for vhdx. VHDX images are can be created for Fixed or Dynamic images. Patches 1-9 are unchanged. === end v4 changelog === === v3 changes === Thank you Kevin Stefan for the feedback; incoporated in v3: Patch 1: --- nil --- Patch 2: * use sizeof(crc) instead of 4 * remove outdated comment * use