Skip to content

qemu-ga: fsfreeze on Windows using VSS

Tomoki Sekiyama qemu-devel 8 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v10 Latest10 patches 3 repliesIn review
  2. v910 patches 0 repliesSuperseded
  3. v810 patches 12 repliesSuperseded
Earlier versions · 5
VersionPostedPatchesRepliesStatus
v710 patches13 repliesSuperseded
v610 patches2 repliesSuperseded
v511 patches7 repliesSuperseded
v410 patches59 repliesSuperseded
v3 RFC11 patches53 repliesSuperseded

Changes in v10 from the cover letter

- Fix conflict with commit e8ef31a3518c "qemu-ga: build it even if !system"

Patches in v10 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/10configure: Support configuring C++ compilerconfigure rules.mak+21 -10 replies
2/10Add c++ keywords to QAPI helper scripthmp.c hw/pci/pci.c scripts/qapi.py+13 -30 replies
3/10checkpatch.pl: Check .cpp filesscripts/checkpatch.pl+28 -60 replies
4/10Add a script to extract VSS SDK headers on POSIX systemscripts/extract-vsssdk-headers+35 -00 replies
5/10qemu-ga: Add configure options to specify path to Windows/VSS SDK.gitignore Makefile configure+80 -00 replies
6/10error: Add error_set_win32 and error_setg_win32include/qapi/error.h util/error.c+48 -00 replies
7/10qemu-ga: Add Windows VSS provider and requester as DLLMakefile Makefile.objs configure +10 more+1724 -20 replies
8/10qemu-ga: Call Windows VSS requester in fsfreeze command handlerqga/Makefile.objs qga/commands-win32.c qga/vss-win32.c +1 more+240 -80 replies
9/10qemu-ga: Install Windows VSS provider on `qemu-ga -s install'qga/main.c qga/vss-win32.c qga/vss-win32.h+37 -10 replies
10/10QMP/qemu-ga-client: Make timeout longer for guest-fsfreeze-freeze commandQMP/qemu-ga-client+3 -10 replies

Reviews trailers per patch

9 of 10 patches have a Reviewed-by or Acked-by.

PatchLaszlo ErsekMicael RothPaolo Bonzini
1/10R-b R-b
2/10R-b R-b
3/10R-b
4/10R-b R-b
5/10R-b R-b
6/10R-b
7/10
8/10R-b
9/10R-b
10/10R-b R-b R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v10 thread

Cover letter [Qemu-devel] [PATCH v10 00/10] qemu-ga: fsfreeze on Windows using VSS

Hi,

I rebased the patch series to add fsfreeze for Windows qemu-ga.

changes from v9:
- Fix conflict with commit e8ef31a3518c "qemu-ga: build it even if !system"

changes from v8:
- Add hEventTimeout to improve timeout error message (patch 07, see below)
- Build qga-vss.tlb if configure'd --with-win-sdk (patch 05, 07)
- Use "qga-vss-dll-obj-$(CONFIG_QGA_VSS)" in Makefile.objs (patch 07)
- Fix typo in QGAVSSRequesterFunc (patch 07, 08)

v9: http://lists.nongnu.org/archive/html/qemu-devel/2013-07/msg06071.html

* Description
In Windows, VSS (Volume Shadow Copy Service) provides a facility to quiesce filesystems and applications before disk snapshots are taken. This patch series implements "fsfreeze" command of qemu-ga using VSS.

* How to build & run qemu-ga with VSS support

- Download Microsoft VSS SDK from:
http://www.microsoft.com/en-us/download/details.aspx?id=23490

- Setup the SDK
scripts/extract-vsssdk-headers setup.exe (on POSIX-systems)

- Specify installed SDK directory to configure option as:

   ./configure --cross-prefix=i686-w64-mingw32- \
               --with-vss-sdk="path/to/VSS SDK" \
               --without-systems --without-tools

- make qemu-ga.exe qga/vss-win32/qga-vss.{dll,tlb}

- Install qemu-ga.exe, qga/vss-win32/qga-vss.{dll,tlb}, and the other required mingw libraries into the same directory in guests

- Run qemu-ga.exe -s install' and net start qemu-ga' in the guests

Any feedback are appreciated.

---
Tomoki Sekiyama (10):
configure: Support configuring C++ compiler
Add c++ keywords to QAPI helper script
checkpatch.pl: Check .cpp files
Add a script to extract VSS SDK headers on POSIX system
qemu-ga: Add configure options to specify path to Windows/VSS SDK
error: Add error_set_win32 and error_setg_win32
qemu-ga: Add Windows VSS provider and requester as DLL
qemu-ga: Call Windows VSS requester in fsfreeze command handler
qemu-ga: Install Windows VSS provider on `qemu-ga -s install' QMP/qemu-ga-client: Make timeout longer for guest-fsfreeze-freeze command

 .gitignore                     |    1 
 Makefile                       |    3 
 Makefile.objs                  |    2 
 QMP/qemu-ga-client             |    4 
 configure                      |   96 +++++++
 hmp.c                          |    2 
 hw/pci/pci.c                   |    2 
 include/qapi/error.h           |   13 +
 qga/Makefile.objs              |    3 
 qga/commands-win32.c           |   82 ++++++
 qga/main.c                     |   10 +
 qga/vss-win32.c                |  166 +++++++++++++
 qga/vss-win32.h                |   27 ++
 qga/vss-win32/Makefile.objs    |   23 ++
 qga/vss-win32/install.cpp      |  458 +++++++++++++++++++++++++++++++++++
 qga/vss-win32/provider.cpp     |  523 ++++++++++++++++++++++++++++++++++++++++
 qga/vss-win32/qga-vss.def      |   13 +
 qga/vss-win32/qga-vss.idl      |   20 ++
 qga/vss-win32/qga-vss.tlb      |  Bin
 qga/vss-win32/requester.cpp    |  507 +++++++++++++++++++++++++++++++++++++++
 qga/vss-win32/requester.h      |   42 +++
 qga/vss-win32/vss-common.h     |  129 ++++++++++
 rules.mak                      |    9 +
 scripts/checkpatch.pl          |   34 ++-
 scripts/extract-vsssdk-headers |   35 +++
 scripts/qapi.py                |   12 +
 util/error.c                   |   35 +++
 27 files changed, 2229 insertions(+), 22 deletions(-)
 create mode 100644 qga/vss-win32.c
 create mode 100644 qga/vss-win32.h
 create mode 100644 qga/vss-win32/Makefile.objs
 create mode 100644 qga/vss-win32/install.cpp
 create mode 100644 qga/vss-win32/provider.cpp
 create mode 100644 qga/vss-win32/qga-vss.def
 create mode 100644 qga/vss-win32/qga-vss.idl
 create mode 100644 qga/vss-win32/qga-vss.tlb
 create mode 100644 qga/vss-win32/requester.cpp
 create mode 100644 qga/vss-win32/requester.h
 create mode 100644 qga/vss-win32/vss-common.h
 create mode 100755 scripts/extract-vsssdk-headers