qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 65650f: qga: unset frozen state if no mount p


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 65650f: qga: unset frozen state if no mount points are fro...
Date: Thu, 05 Jul 2018 02:29:37 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 65650f0182c11a000d488a3b8e8e6ad071853f31
      
https://github.com/qemu/qemu/commit/65650f0182c11a000d488a3b8e8e6ad071853f31
  Author: Chen Hanxiao <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qga/commands-posix.c
    M qga/qapi-schema.json

  Log Message:
  -----------
  qga: unset frozen state if no mount points are frozen

If we set mountpoints to qmp_guest_fsfreeze_freeze_list,
we may got nothing to freeze as all mountpoints are
not valid.
So call ga_unset_frozen in this senario.

Also, if we return 0 frozen fs, there is no need to call
guest-fsfreeze-thaw.

Cc: Michael Roth <address@hidden>
Signed-off-by: Chen Hanxiao <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: 141b197408ab398c4f474ac1a728ab316e921f2b
      
https://github.com/qemu/qemu/commit/141b197408ab398c4f474ac1a728ab316e921f2b
  Author: Prasad J Pandit <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qga/commands-posix.c
    M qga/commands-win32.c

  Log Message:
  -----------
  qga: check bytes count read by guest-file-read

While reading file content via 'guest-file-read' command,
'qmp_guest_file_read' routine allocates buffer of count+1
bytes. It could overflow for large values of 'count'.
Add check to avoid it.

Reported-by: Fakhri Zulkifli <address@hidden>
Signed-off-by: Prasad J Pandit <address@hidden>
Cc: address@hidden
Signed-off-by: Michael Roth <address@hidden>


  Commit: 25b5ff1a860634c2b1463b2882ed02cd55f8ac62
      
https://github.com/qemu/qemu/commit/25b5ff1a860634c2b1463b2882ed02cd55f8ac62
  Author: Chen Hanxiao <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qga/commands-posix.c
    M qga/qapi-schema.json

  Log Message:
  -----------
  qga: add mountpoint usage info to GuestFilesystemInfo

This patch adds support for getting the usage of mounted
filesystem.
The usage of fs stored as used_bytes and total_bytes.
It's very useful when we try to monitor guest's filesystem.

Cc: Michael Roth <address@hidden>
Cc: Daniel P. Berrangé <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Chen Hanxiao <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: c07e5e6ef3b5a2737387f86912ac30d1e9d48909
      
https://github.com/qemu/qemu/commit/c07e5e6ef3b5a2737387f86912ac30d1e9d48909
  Author: Chen Hanxiao <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qga/commands-win32.c

  Log Message:
  -----------
  qga-win: add driver path usage to GuestFilesystemInfo

This patch adds support for getting the usage of
windows driver path.
The usage of fs stored as used_bytes and total_bytes.

Cc: Michael Roth <address@hidden>
Signed-off-by: Chen Hanxiao <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: 509b97fd079c9666ae7318bae6e1273fd5d6b574
      
https://github.com/qemu/qemu/commit/509b97fd079c9666ae7318bae6e1273fd5d6b574
  Author: Tomáš Golembiovský <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M tests/test-qga.c

  Log Message:
  -----------
  test-qga: add trivial tests for some commands

These commands did not get their tests in the original commits:
- guest-get-host-name
- guest-get-timezone
- guest-get-users

Trivial tests that mostly only call the commands were added.

Signed-off-by: Tomáš Golembiovský <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
* replace QDECREF() with qobject_unref()
Signed-off-by: Michael Roth <address@hidden>


  Commit: 84ece8ef6c70ea1852ec47805531017b75d46d68
      
https://github.com/qemu/qemu/commit/84ece8ef6c70ea1852ec47805531017b75d46d68
  Author: Tomáš Golembiovský <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qga/qapi-schema.json

  Log Message:
  -----------
  qga/schema: fix documentation for GuestOSInfo

The documentation for kernel-version and kernel-release on Windows was
swapped.

Signed-off-by: Tomáš Golembiovský <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: a972304d187b104ebec327bc824b23a5a3589ac3
      
https://github.com/qemu/qemu/commit/a972304d187b104ebec327bc824b23a5a3589ac3
  Author: Bishara AbuHattoum <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qga/installer/qemu-ga.wxs

  Log Message:
  -----------
  qga-win: Fixing msi upgrade disallow in WiX file

Issue: When upgrading qemu-ga using the msi from an old version
       to a newer one, the upgrade is not allowed by the msi
       showing this error message "Another version of this product
       is already installed."

BZ# 1536331: https://bugzilla.redhat.com/show_bug.cgi?id=1536331

Fix: For the upgrade to be allowed by the msi the WiX file must
     provide three things:
      1. Changing product's Id. (assigning it to "*")
      2. Constant product's UpgradeId. (exists)
      3. Changing version. (exists)

Reference: 
http://wixtoolset.org/documentation/manual/v3/howtos/updates/major_upgrade.html

Signed-off-by: Bishara AbuHattoum <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: 743c71d03c20d64f2bae5fba6f26cdf5e4b1bda6
      
https://github.com/qemu/qemu/commit/743c71d03c20d64f2bae5fba6f26cdf5e4b1bda6
  Author: Marc-André Lureau <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qga/commands-posix.c

  Log Message:
  -----------
  qemu-ga: make get-fsinfo work over pci bridges

Iterate over the PCI bridges to lookup the PCI device associated with
the block device.

This allows to lookup the driver under the following syspath:
/sys/devices/pci0000:00/0000:00:02.2/0000:03:00.0/virtio2/block/vda/vda3

It also works with an "old-style" Q35 libvirt hierarchy: root complex
-> DMI-PCI bridge -> PCI-PCI bridge -> virtio controller, ex:
/sys/devices/pci0000:00/0000:00:03.0/0000:01:01.0/0000:02:01.0/virtio1/block/vda/vda3

The setup can be reproduced with the following qemu command line
(Thanks Marcel for help):

qemu-system-x86_64 -M q35 \
  -device i82801b11-bridge,id=dmi2pci_bridge,bus=pcie.0
  -device pci-bridge,id=pci_bridge,bus=dmi2pci_bridge,addr=0x1,chassis_nr=1
  -device 
virtio-blk-pci,scsi=off,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1,bus=pci_bridge,addr=0x1

For consistency with other syspath-related debug messages, replace a
\"%s\" in the message with '%s'.

Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=1567041

Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Laszlo Ersek <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: 304a0fcb397efba40dffded985a6539143cca82c
      
https://github.com/qemu/qemu/commit/304a0fcb397efba40dffded985a6539143cca82c
  Author: Daniel Henrique Barboza <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qga/commands-posix.c

  Log Message:
  -----------
  qga: refactoring qmp_guest_suspend_* functions

To be able to add new suspend mechanisms we need to detach
the existing QMP functions from the current implementation
specifics.

At this moment we have functions such as qmp_guest_suspend_ram
calling bios_suspend_mode and guest_suspend passing the
pmutils command and arguments as parameters. This patch
removes this logic from the QMP functions, moving them to
the respective functions that will have to deal with which
binary to use.

Signed-off-by: Daniel Henrique Barboza <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: a5fcf0e3e491ede0d03e71f064e8e6d24e889aab
      
https://github.com/qemu/qemu/commit/a5fcf0e3e491ede0d03e71f064e8e6d24e889aab
  Author: Daniel Henrique Barboza <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qga/commands-posix.c

  Log Message:
  -----------
  qga: bios_supports_mode: decoupling pm-utils and sys logic

In bios_supports_mode there is a verification to assert if
the chosen suspend mode is supported by the pmutils tools and,
if not, we see if the Linux sys state files supports it.

This verification is done in the same function, one after
the other, and it works for now. But, when adding a new
suspend mechanism that will not necessarily follow the same
return 0 or 1 logic of pmutils, this code will be hard
to deal with.

This patch decouple the two existing logics into their own
functions, pmutils_supports_mode and linux_sys_state_supports_mode,
which in turn are used inside bios_support_mode. The existing
logic is kept but now it's easier to extend it.

Signed-off-by: Daniel Henrique Barboza <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: 246d76eba1944d7e59affb288ec27d7fcfb5d256
      
https://github.com/qemu/qemu/commit/246d76eba1944d7e59affb288ec27d7fcfb5d256
  Author: Daniel Henrique Barboza <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qga/commands-posix.c

  Log Message:
  -----------
  qga: guest_suspend: decoupling pm-utils and sys logic

Following the same logic of the previous patch, let's also
decouple the suspend logic from guest_suspend into specialized
functions, one for each strategy we support at this moment.

Signed-off-by: Daniel Henrique Barboza <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: 8b020b5eb708091e723518907184e609350f6d41
      
https://github.com/qemu/qemu/commit/8b020b5eb708091e723518907184e609350f6d41
  Author: Daniel Henrique Barboza <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qga/commands-posix.c

  Log Message:
  -----------
  qga: removing switch statements, adding run_process_child

This is a cleanup of the resulting code after detaching
pmutils and Linux sys state file logic:

- remove the SUSPEND_MODE_* macros and use an enumeration
instead. At the same time, drop the switch statements
at the start of each function and use the enumeration
index to get the right binary/argument;

- create a new function called run_process_child(). This
function uses g_spawn_sync() to execute a shell command,
returning the exit code. This is a common operation in the
pmutils functions and will be used in the systemd implementation
as well, so this function will avoid code repetition.

There are more places inside commands-posix.c where this new
run_process_child function can also be used, but one step
at a time.

Signed-off-by: Daniel Henrique Barboza <address@hidden>
*check/propagate local_err before setting errp directly
Signed-off-by: Michael Roth <address@hidden>


  Commit: 067927d62e097a8a3624a926e792756ce7a353ed
      
https://github.com/qemu/qemu/commit/067927d62e097a8a3624a926e792756ce7a353ed
  Author: Daniel Henrique Barboza <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qga/commands-posix.c

  Log Message:
  -----------
  qga: systemd hibernate/suspend/hybrid-sleep support

pmutils isn't being supported by newer OSes like Fedora 27
or Mint. This means that the only suspend option QGA offers
for these guests are writing directly into the Linux sys state
file. This also means that QGA also loses the ability to do
hybrid suspend in those guests - this suspend mode is only
available when using pmutils.

Newer guests can use systemd facilities to do all the suspend
types QGA supports. The mapping in comparison with pmutils is:

- pm-hibernate -> systemctl hibernate
- pm-suspend -> systemctl suspend
- pm-suspend-hybrid -> systemctl hybrid-sleep

To discover whether systemd supports these functions, we inspect
the status of the services that implements them.

With this patch, we can offer hybrid suspend again for newer
guests that do not have pmutils support anymore.

Signed-off-by: Daniel Henrique Barboza <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: 73e1d8eb9b738cef3dee2da26bb669b1092a4c12
      
https://github.com/qemu/qemu/commit/73e1d8eb9b738cef3dee2da26bb669b1092a4c12
  Author: Daniel Henrique Barboza <address@hidden>
  Date:   2018-07-03 (Tue, 03 Jul 2018)

  Changed paths:
    M qga/commands-posix.c

  Log Message:
  -----------
  qga: removing bios_supports_mode

bios_support_mode verifies if the guest has support for a certain
suspend mode but it doesn't inform back which suspend tool
provides it. The caller, guest_suspend, executes all suspend
strategies in order again.

After adding systemd suspend support, bios_support_mode now will
verify for support for systemd, then pmutils, then Linux sys state
file. In a worst case scenario where both systemd and pmutils isn't
supported but Linux sys state is:

- bios_supports_mode will check for systemd, then pmutils, then
Linux sys state. It will tell guest_suspend that there is support,
but it will not tell who provides it;

- guest_suspend will try to execute (and fail) systemd suspend,
then pmutils suspend, to only then use the Linux sys suspend.
The time spent executing systemd and pmutils suspend was wasted
and could be avoided, but only bios_support_mode knew it but
didn't inform it back.

A quicker approach is to nuke bios_supports_mode and control
whether we found support at all with a bool flag inside
guest_suspend. guest_suspend will search for suspend support
and execute it as soon as possible. If the a given suspend
mechanism fails, continue to the next. If no suspend
support is found, the "not supported" message is still being
sent back to the user.

Signed-off-by: Daniel Henrique Barboza <address@hidden>
Signed-off-by: Michael Roth <address@hidden>


  Commit: 8beb8cc64da2868acec270e4becb9fea8f9093dc
      
https://github.com/qemu/qemu/commit/8beb8cc64da2868acec270e4becb9fea8f9093dc
  Author: Peter Maydell <address@hidden>
  Date:   2018-07-05 (Thu, 05 Jul 2018)

  Changed paths:
    M qga/commands-posix.c
    M qga/commands-win32.c
    M qga/installer/qemu-ga.wxs
    M qga/qapi-schema.json
    M tests/test-qga.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/mdroth/tags/qga-pull-2018-07-03-tag' 
into staging

qemu-ga patch queue for soft-freeze

* add systemd suspend support
* add used/total space stats for guest-get-fsinfo
* fixes for guest-get-fsinfo over PCI bridges
* MSI installer and schema doc fixes
* guard against unbounded allocations in guest-file-read
* add some additional qga test cases

# gpg: Signature made Tue 03 Jul 2018 21:45:32 BST
# gpg:                using RSA key 3353C9CEF108B584
# gpg: Good signature from "Michael Roth <address@hidden>"
# gpg:                 aka "Michael Roth <address@hidden>"
# gpg:                 aka "Michael Roth <address@hidden>"
# Primary key fingerprint: CEAC C9E1 5534 EBAB B82D  3FA0 3353 C9CE F108 B584

* remotes/mdroth/tags/qga-pull-2018-07-03-tag:
  qga: removing bios_supports_mode
  qga: systemd hibernate/suspend/hybrid-sleep support
  qga: removing switch statements, adding run_process_child
  qga: guest_suspend: decoupling pm-utils and sys logic
  qga: bios_supports_mode: decoupling pm-utils and sys logic
  qga: refactoring qmp_guest_suspend_* functions
  qemu-ga: make get-fsinfo work over pci bridges
  qga-win: Fixing msi upgrade disallow in WiX file
  qga/schema: fix documentation for GuestOSInfo
  test-qga: add trivial tests for some commands
  qga-win: add driver path usage to GuestFilesystemInfo
  qga: add mountpoint usage info to GuestFilesystemInfo
  qga: check bytes count read by guest-file-read
  qga: unset frozen state if no mount points are frozen

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/fe8d2d5737ab...8beb8cc64da2
      **NOTE:** This service been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]