History log of /openbmc/qemu/qga/ (Results 326 – 350 of 688)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
b70d6afe07-Oct-2018 Bishara AbuHattoum <bishara@daynix.com>

qga-win: changing --retry-path option behavior

Currently whenever the qemu-ga's service doesn't find the virtio-serial
the run_agent() loops in a QGA_RETRY_INTERVAL (default 5 seconds)
intervals and

qga-win: changing --retry-path option behavior

Currently whenever the qemu-ga's service doesn't find the virtio-serial
the run_agent() loops in a QGA_RETRY_INTERVAL (default 5 seconds)
intervals and try to restart the qemu-ga which causes a synchronous loop.
Changed to wait and listen for the serial events by registering for
notifications a proper serial event handler that deals with events:
DBT_DEVICEARRIVAL indicates that the device has been inserted and
is available
DBT_DEVICEREMOVECOMPLETE indicates that the devive has been removed
Which allow us to determine when the channel path is available for the
qemu-ga to restart.

Signed-off-by: Bishara AbuHattoum <bishara@daynix.com>
Signed-off-by: Sameeh Jubran <sameeh@daynix.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

a2c1ac4e07-Oct-2018 Michael Roth <mdroth@linux.vnet.ibm.com>

qga-win: report specific error when failing to open channel

Useful in general, but especially now that errors might occur more
frequently with --retry-path set.

Signed-off-by: Michael Roth <mdroth@

qga-win: report specific error when failing to open channel

Useful in general, but especially now that errors might occur more
frequently with --retry-path set.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

ebc88c0e07-Oct-2018 Michael Roth <mdroth@linux.vnet.ibm.com>

qga-win: install service with --retry-path set by default

It's nicer from a management perspective that the agent can survive
hotplug/unplug of the channel device, or be started prior to the
install

qga-win: install service with --retry-path set by default

It's nicer from a management perspective that the agent can survive
hotplug/unplug of the channel device, or be started prior to the
installation of the channel device's driver without and still be able
to resume normal function afterward. On linux there are alternatives
like systemd to support this, but on w32 --retry-path is the only
option so it makes sense to set it by default when installed as a
w32 service.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

d951fada07-Oct-2018 Michael Roth <mdroth@linux.vnet.ibm.com>

qga: add --retry-path option for re-initializing channel on failure

This adds an option to instruct the agent to periodically attempt
re-opening the communication channel after a channel error has
o

qga: add --retry-path option for re-initializing channel on failure

This adds an option to instruct the agent to periodically attempt
re-opening the communication channel after a channel error has
occurred. The main use-case for this is providing an OS-independent
way of allowing the agent to survive situations like hotplug/unplug of
the communication channel, or initial guest set up where the agent may
be installed/started prior to the installation of the channel device's
driver.

There are nicer ways of implementing this functionality via things
like systemd services, but this option is useful for platforms like
*BSD/w32.

Currently a channel error will result in the GSource for that channel
being removed from the GMainLoop, but the main loop continuing to run.
That behavior results in a dead loop when --retry-path isn't set, and
prevents us from knowing when to attempt re-opening the channel when
it is set, so we also force the loop to exit as part of this patch.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

d88495a807-Oct-2018 Michael Roth <mdroth@linux.vnet.ibm.com>

qga: move w32 service handling out of run_agent()

Eventually we want a w32 service to be able to restart the qga main
loop from within service_main(). To allow for this we move service
handling out

qga: move w32 service handling out of run_agent()

Eventually we want a w32 service to be able to restart the qga main
loop from within service_main(). To allow for this we move service
handling out of run_agent() such that service_main() calls
run_agent() instead of the reverse.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Bishara AbuHattoum <bishara@daynix.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

0f4d3a4907-Oct-2018 Michael Roth <mdroth@linux.vnet.ibm.com>

qga: hang GAConfig/socket_activation off of GAState global

For w32 services we rely on the global GAState to access resources
associated with the agent within service_main(). Currently this is
suffi

qga: hang GAConfig/socket_activation off of GAState global

For w32 services we rely on the global GAState to access resources
associated with the agent within service_main(). Currently this is
sufficient for starting the agent since we open the channel once prior
to calling service_main(), and simply start the GMainLoop to start the
agent from within service_main().

Eventually we want to be able to also [re-]open the communication
channel from within service_main(), which requires access to
config/socket_activation variables, so we hang them off GAState in
preparation for that.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Sameeh Jubran <sameeh@daynix.com>
*dont move GAConfig struct, just the typedef
*fix build bisect for w32
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

50d5b3c407-Oct-2018 Michael Roth <mdroth@linux.vnet.ibm.com>

qga: group agent init/cleanup init separate routines

This patch better separates the init/cleanup routines out into
separate functions to make the start-up procedure a bit easier to
follow. This wil

qga: group agent init/cleanup init separate routines

This patch better separates the init/cleanup routines out into
separate functions to make the start-up procedure a bit easier to
follow. This will be useful when we eventually break out the actual
start/stop of the agent's main loop into separates routines that
can be called multiple times after the init phase.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

d9c85b6c17-Oct-2018 Li Qiang <liq3ea@gmail.com>

qga: fix an off-by-one issue

Signed-off-by: Li Qiang <liq3ea@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

7fae518423-Oct-2018 Tomáš Golembiovský <tgolembi@redhat.com>

qga-win: demystify namespace stripping

It was not obvious what exactly the cryptic string copying does to the
GUID. This change makes the intent clearer.

Signed-off-by: Tomáš Golembiovský <tgolembi

qga-win: demystify namespace stripping

It was not obvious what exactly the cryptic string copying does to the
GUID. This change makes the intent clearer.

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

4550dee823-Oct-2018 Tomáš Golembiovský <tgolembi@redhat.com>

qga-win: return disk device in guest-get-fsinfo

Report device UNC of the disk. It is reported as "\\.\PhysicalDriveX".

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
Signed-off-by: Michael

qga-win: return disk device in guest-get-fsinfo

Report device UNC of the disk. It is reported as "\\.\PhysicalDriveX".

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

b1ba889023-Oct-2018 Tomáš Golembiovský <tgolembi@redhat.com>

qga-win: handle multi-disk volumes

Probe the volume for disk extents and return list of all disks.
Originally only first disk of composite volume was returned.

Note that the patch changes get_pci_i

qga-win: handle multi-disk volumes

Probe the volume for disk extents and return list of all disks.
Originally only first disk of composite volume was returned.

Note that the patch changes get_pci_info() from one state of brokenness
into a different state of brokenness. In other words it still does not do
what it's supposed to do (see comment in code). If anyone knows how to
fix it, please step in.

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

9e65fd6523-Oct-2018 Tomáš Golembiovský <tgolembi@redhat.com>

qga-win: refactor disk info

Refactor building of disk info into a function that builds the list and
a function that returns infor for single disk. This will be used in
future commit that will handle

qga-win: refactor disk info

Refactor building of disk info into a function that builds the list and
a function that returns infor for single disk. This will be used in
future commit that will handle multi-disk volumes.

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

fb08aa7023-Oct-2018 Tomáš Golembiovský <tgolembi@redhat.com>

qga-win: report disk serial number

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
*coding style fix-ups (declarations at beginning of block)
*improve readability for user-visible errors
*co

qga-win: report disk serial number

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
*coding style fix-ups (declarations at beginning of block)
*improve readability for user-visible errors
*cover additional edge-cases with debug statements
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

c76d70f423-Oct-2018 Tomáš Golembiovský <tgolembi@redhat.com>

qga-win: refactor disk properties (bus)

Refactor code that queries bus type to be more generic. The function
get_disk_bus_type() has been renamed to build_guest_disk_info().
Following commit(s) will

qga-win: refactor disk properties (bus)

Refactor code that queries bus type to be more generic. The function
get_disk_bus_type() has been renamed to build_guest_disk_info().
Following commit(s) will extend this function.

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

222682ab29-Oct-2018 Tomáš Golembiovský <tgolembi@redhat.com>

qga-win: add debugging information

The windows code generaly lacks debug information (compared to posix
code). This patch adds some related to HW info in guest-get-fsinfo
command.

Signed-off-by: To

qga-win: add debugging information

The windows code generaly lacks debug information (compared to posix
code). This patch adds some related to HW info in guest-get-fsinfo
command.

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

6880b94f23-Oct-2018 Sameeh Jubran <sjubran@redhat.com>

qga-win: fsinfo: pci-info: allow partial info

The call to SetupDiGetDeviceRegistryProperty might fail because the
value doesn't exist in the registry, in this case we shouldn't exit from
the loop bu

qga-win: fsinfo: pci-info: allow partial info

The call to SetupDiGetDeviceRegistryProperty might fail because the
value doesn't exist in the registry, in this case we shouldn't exit from
the loop but instead continue to look for other available values in the
registry and set this value as unavailable (-1).

Signed-off-by: Sameeh Jubran <sjubran@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
*squash in fix for when get_pci_info() returns NULL pci_controller field
*fix handling for error_set() cases in get_pci_info(), not just NULL return
*force all -1 PCI addr fields if any single one of them isn't found
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

0d7f937e23-Oct-2018 Sameeh Jubran <sjubran@redhat.com>

qga-win: prevent crash when executing fsinfo command

The fsinfo command is currently implemented for Windows only and it's disk
parameter can be enabled by adding the define "CONFIG_QGA_NTDDSCSI" to

qga-win: prevent crash when executing fsinfo command

The fsinfo command is currently implemented for Windows only and it's disk
parameter can be enabled by adding the define "CONFIG_QGA_NTDDSCSI" to the qga
code. When enabled and executed the qemu-ga crashed with the following message:

------------------------------------------------
File qapi/qapi-visit-core.c, Line 49

Expression: !(v->type & VISITOR_OUTPUT) || *obj)
------------------------------------------------

After some digging, turns out that the GuestPCIAddress is null and the
qapi visitor doesn't like that, so we can always allocate it instead and
initiate all it's members to -1.

Signed-off-by: Sameeh Jubran <sjubran@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

6589ce3523-Oct-2018 Tomáš Golembiovský <tgolembi@redhat.com>

qga: linux: return disk device in guest-get-fsinfo

Report device node of the disk on Linux (e.g. "/dev/sda2").
Requirs libudev.

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
Signed-off-by

qga: linux: return disk device in guest-get-fsinfo

Report device node of the disk on Linux (e.g. "/dev/sda2").
Requirs libudev.

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

b616105a23-Oct-2018 Tomáš Golembiovský <tgolembi@redhat.com>

qga: linux: report disk serial number

Add reporting of disk serial number on Linux guests. The feature depends
on libudev.

Example:

{
"name": "dm-2",
"mountpoint": "/",
...

qga: linux: report disk serial number

Add reporting of disk serial number on Linux guests. The feature depends
on libudev.

Example:

{
"name": "dm-2",
"mountpoint": "/",
...
"disk": [
{
"serial": "SAMSUNG_MZ7LN512HCHP-000L1_S1ZKNXAG822493",
...
}
],
}

Signed-off-by: Tomáš Golembiovský <tgolembi@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

b4bf912a06-Sep-2018 Igor Mammedov <imammedo@redhat.com>

qga: ignore non present cpus when handling qmp_guest_get_vcpus()

If VM has VCPUs plugged sparselly (for example a VM started with
3 VCPUs (cpu0, cpu1 and cpu2) and then cpu1 was hotunplugged so
only

qga: ignore non present cpus when handling qmp_guest_get_vcpus()

If VM has VCPUs plugged sparselly (for example a VM started with
3 VCPUs (cpu0, cpu1 and cpu2) and then cpu1 was hotunplugged so
only cpu0 and cpu2 are present), QGA will rise a error
error: internal error: unable to execute QEMU agent command 'guest-get-vcpus':
open("/sys/devices/system/cpu/cpu1/"): No such file or directory
when
virsh vcpucount FOO --guest
is executed.
Fix it by ignoring non present CPUs when fetching CPUs status from sysfs.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

0692b03e31-Aug-2018 Chen Hanxiao <chenhanxiao@gmail.com>

qga-win: add support for qmp_guest_fsfreeze_freeze_list

This patch add support for freeze specified fs.

The valid mountpoints list member are [1]:

The path of a mounted folder, for example, Y:\M

qga-win: add support for qmp_guest_fsfreeze_freeze_list

This patch add support for freeze specified fs.

The valid mountpoints list member are [1]:

The path of a mounted folder, for example, Y:\MountX\
A drive letter, for example, D:\
A volume GUID path of the form \\?\Volume{GUID}\,
where GUID identifies the volume
A UNC path that specifies a remote file share,
for example, \\Clusterx\Share1\

[1] https://docs.microsoft.com/en-us/windows/desktop/api/vsbackup/nf-vsbackup-ivssbackupcomponents-addtosnapshotset

Cc: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Chen Hanxiao <chenhanxiao@gmail.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...

bad0227d01-Aug-2018 Jonathon Reinhart <jreinhart@cc-sw.com>

qga: Support Unicode paths in guest-file-open on win32

Currently, the win32 port of QEMU Guest Agent does not properly handle Unicode
paths. The JSON decoder produces a valid UTF-8 path string, but

qga: Support Unicode paths in guest-file-open on win32

Currently, the win32 port of QEMU Guest Agent does not properly handle Unicode
paths. The JSON decoder produces a valid UTF-8 path string, but this is passed
directly to CreateFileA, which is expecting an ANSI string and not UTF-8. This
leads to mangled filenames.

This patch follows the example of qmp_guest_set_user_password() and uses
g_utf8_to_utf16() to convert the string to UTF-16 and calls CreateFileW()
explicitly.

Signed-off-by: Jonathon Reinhart <jreinhart@cc-sw.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>

show more ...


/openbmc/qemu/.gitignore
/openbmc/qemu/.gitmodules
/openbmc/qemu/.mailmap
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/Makefile
/openbmc/qemu/Makefile.objs
/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/accel/tcg/atomic_template.h
/openbmc/qemu/accel/tcg/cpu-exec.c
/openbmc/qemu/accel/tcg/cputlb.c
/openbmc/qemu/accel/tcg/softmmu_template.h
/openbmc/qemu/accel/tcg/tcg-all.c
/openbmc/qemu/accel/tcg/translate-all.c
/openbmc/qemu/accel/tcg/translator.c
/openbmc/qemu/accel/tcg/user-exec.c
/openbmc/qemu/backends/Makefile.objs
/openbmc/qemu/backends/hostmem-file.c
/openbmc/qemu/backends/hostmem-memfd.c
/openbmc/qemu/backends/hostmem.c
/openbmc/qemu/block.c
/openbmc/qemu/block/dirty-bitmap.c
/openbmc/qemu/block/iscsi.c
/openbmc/qemu/block/nvme.c
/openbmc/qemu/block/qcow2-bitmap.c
/openbmc/qemu/block/qcow2.c
/openbmc/qemu/block/qcow2.h
/openbmc/qemu/block/qed.c
/openbmc/qemu/block/rbd.c
/openbmc/qemu/block/sheepdog.c
/openbmc/qemu/block/vpc.c
/openbmc/qemu/blockdev-nbd.c
/openbmc/qemu/blockdev.c
/openbmc/qemu/chardev/char-fe.c
/openbmc/qemu/chardev/char-io.c
/openbmc/qemu/chardev/char-pty.c
/openbmc/qemu/chardev/char-socket.c
/openbmc/qemu/chardev/char.c
/openbmc/qemu/configure
/openbmc/qemu/contrib/elf2dmp/Makefile.objs
/openbmc/qemu/contrib/elf2dmp/addrspace.c
/openbmc/qemu/contrib/elf2dmp/addrspace.h
/openbmc/qemu/contrib/elf2dmp/download.c
/openbmc/qemu/contrib/elf2dmp/download.h
/openbmc/qemu/contrib/elf2dmp/err.h
/openbmc/qemu/contrib/elf2dmp/kdbg.h
/openbmc/qemu/contrib/elf2dmp/main.c
/openbmc/qemu/contrib/elf2dmp/pdb.c
/openbmc/qemu/contrib/elf2dmp/pdb.h
/openbmc/qemu/contrib/elf2dmp/pe.h
/openbmc/qemu/contrib/elf2dmp/qemu_elf.c
/openbmc/qemu/contrib/elf2dmp/qemu_elf.h
/openbmc/qemu/cpus.c
/openbmc/qemu/crypto/Makefile.objs
/openbmc/qemu/crypto/init.c
/openbmc/qemu/crypto/tlscredsx509.c
/openbmc/qemu/crypto/tlssession.c
/openbmc/qemu/crypto/xts.c
/openbmc/qemu/default-configs/alpha-softmmu.mak
/openbmc/qemu/default-configs/hyperv.mak
/openbmc/qemu/default-configs/i386-softmmu.mak
/openbmc/qemu/default-configs/pci.mak
/openbmc/qemu/default-configs/ppc-softmmu.mak
/openbmc/qemu/default-configs/ppc64-softmmu.mak
/openbmc/qemu/default-configs/s390x-softmmu.mak
/openbmc/qemu/default-configs/sparc64-softmmu.mak
/openbmc/qemu/device-hotplug.c
/openbmc/qemu/disas/Makefile.objs
/openbmc/qemu/disas/nanomips.cpp
/openbmc/qemu/disas/nanomips.h
/openbmc/qemu/docs/COLO-FT.txt
/openbmc/qemu/docs/devel/memory.txt
/openbmc/qemu/docs/devel/testing.rst
/openbmc/qemu/docs/nvdimm.txt
/openbmc/qemu/docs/vfio-ap.txt
/openbmc/qemu/exec.c
/openbmc/qemu/fpu/softfloat.c
/openbmc/qemu/fsdev/qemu-fsdev-dummy.c
/openbmc/qemu/fsdev/qemu-fsdev.c
/openbmc/qemu/fsdev/qemu-fsdev.h
/openbmc/qemu/gdbstub.c
/openbmc/qemu/hmp.c
/openbmc/qemu/hw/9pfs/9p-handle.c
/openbmc/qemu/hw/9pfs/9p-local.c
/openbmc/qemu/hw/9pfs/xen-9p-backend.c
/openbmc/qemu/hw/Makefile.objs
/openbmc/qemu/hw/alpha/dp264.c
/openbmc/qemu/hw/alpha/typhoon.c
/openbmc/qemu/hw/arm/boot.c
/openbmc/qemu/hw/arm/musicpal.c
/openbmc/qemu/hw/arm/sysbus-fdt.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/audio/ac97.c
/openbmc/qemu/hw/audio/es1370.c
/openbmc/qemu/hw/audio/marvell_88w8618.c
/openbmc/qemu/hw/char/serial.c
/openbmc/qemu/hw/char/virtio-serial-bus.c
/openbmc/qemu/hw/char/xen_console.c
/openbmc/qemu/hw/core/Makefile.objs
/openbmc/qemu/hw/core/generic-loader.c
/openbmc/qemu/hw/core/hotplug.c
/openbmc/qemu/hw/core/loader.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/core/null-machine.c
/openbmc/qemu/hw/core/qdev.c
/openbmc/qemu/hw/display/Makefile.objs
/openbmc/qemu/hw/display/bcm2835_fb.c
/openbmc/qemu/hw/display/bochs-display.c
/openbmc/qemu/hw/display/cg3.c
/openbmc/qemu/hw/display/cirrus_vga.c
/openbmc/qemu/hw/display/cirrus_vga_internal.h
/openbmc/qemu/hw/display/cirrus_vga_isa.c
/openbmc/qemu/hw/display/edid-generate.c
/openbmc/qemu/hw/display/qxl.c
/openbmc/qemu/hw/display/qxl.h
/openbmc/qemu/hw/display/tcx.c
/openbmc/qemu/hw/display/vga-pci.c
/openbmc/qemu/hw/display/vga_int.h
/openbmc/qemu/hw/hppa/dino.c
/openbmc/qemu/hw/hppa/machine.c
/openbmc/qemu/hw/hyperv/Makefile.objs
/openbmc/qemu/hw/hyperv/hyperv.c
/openbmc/qemu/hw/hyperv/hyperv_testdev.c
/openbmc/qemu/hw/i2c/i2c-ddc.c
/openbmc/qemu/hw/i386/kvm/clock.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/ide/core.c
/openbmc/qemu/hw/intc/armv7m_nvic.c
/openbmc/qemu/hw/intc/ioapic.c
/openbmc/qemu/hw/intc/xics.c
/openbmc/qemu/hw/intc/xics_kvm.c
/openbmc/qemu/hw/isa/Makefile.objs
/openbmc/qemu/hw/mem/Makefile.objs
/openbmc/qemu/hw/mem/memory-device.c
/openbmc/qemu/hw/mem/nvdimm.c
/openbmc/qemu/hw/mem/pc-dimm.c
/openbmc/qemu/hw/mem/trace-events
/openbmc/qemu/hw/mips/gt64xxx_pci.c
/openbmc/qemu/hw/mips/mips_fulong2e.c
/openbmc/qemu/hw/mips/mips_malta.c
/openbmc/qemu/hw/mips/mips_mipssim.c
/openbmc/qemu/hw/mips/mips_r4k.c
/openbmc/qemu/hw/misc/Makefile.objs
/openbmc/qemu/hw/misc/debugexit.c
/openbmc/qemu/hw/misc/edu.c
/openbmc/qemu/hw/misc/ivshmem.c
/openbmc/qemu/hw/misc/pc-testdev.c
/openbmc/qemu/hw/moxie/moxiesim.c
/openbmc/qemu/hw/net/cadence_gem.c
/openbmc/qemu/hw/net/e1000.c
/openbmc/qemu/hw/net/etraxfs_eth.c
/openbmc/qemu/hw/net/lan9118.c
/openbmc/qemu/hw/net/lance.c
/openbmc/qemu/hw/net/milkymist-minimac2.c
/openbmc/qemu/hw/net/mipsnet.c
/openbmc/qemu/hw/net/ne2000.c
/openbmc/qemu/hw/net/opencores_eth.c
/openbmc/qemu/hw/net/pcnet.c
/openbmc/qemu/hw/net/rtl8139.c
/openbmc/qemu/hw/net/smc91c111.c
/openbmc/qemu/hw/net/stellaris_enet.c
/openbmc/qemu/hw/net/trace-events
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/net/xgmac.c
/openbmc/qemu/hw/nvram/Makefile.objs
/openbmc/qemu/hw/nvram/fw_cfg.c
/openbmc/qemu/hw/pci-host/bonito.c
/openbmc/qemu/hw/pci-host/piix.c
/openbmc/qemu/hw/pci-host/q35.c
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/ppc/pnv_core.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_pci.c
/openbmc/qemu/hw/riscv/sifive_clint.c
/openbmc/qemu/hw/riscv/sifive_plic.c
/openbmc/qemu/hw/riscv/sifive_u.c
/openbmc/qemu/hw/riscv/spike.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/s390x/Makefile.objs
/openbmc/qemu/hw/s390x/ap-bridge.c
/openbmc/qemu/hw/s390x/ap-device.c
/openbmc/qemu/hw/s390x/css.c
/openbmc/qemu/hw/s390x/ipl.h
/openbmc/qemu/hw/s390x/s390-pci-bus.c
/openbmc/qemu/hw/s390x/s390-virtio-ccw.c
/openbmc/qemu/hw/scsi/lsi53c895a.c
/openbmc/qemu/hw/scsi/mptendian.c
/openbmc/qemu/hw/scsi/scsi-disk.c
/openbmc/qemu/hw/scsi/trace-events
/openbmc/qemu/hw/scsi/virtio-scsi.c
/openbmc/qemu/hw/sd/ssi-sd.c
/openbmc/qemu/hw/sh4/sh_pci.c
/openbmc/qemu/hw/smbios/smbios.c
/openbmc/qemu/hw/sparc64/niagara.c
/openbmc/qemu/hw/ssi/xilinx_spi.c
/openbmc/qemu/hw/timer/aspeed_timer.c
/openbmc/qemu/hw/timer/mc146818rtc.c
/openbmc/qemu/hw/timer/sun4v-rtc.c
/openbmc/qemu/hw/timer/trace-events
/openbmc/qemu/hw/usb/bus.c
/openbmc/qemu/hw/usb/ccid-card-emulated.c
/openbmc/qemu/hw/usb/hcd-ohci.c
/openbmc/qemu/hw/vfio/Makefile.objs
/openbmc/qemu/hw/vfio/amd-xgbe.c
/openbmc/qemu/hw/vfio/ap.c
/openbmc/qemu/hw/vfio/calxeda-xgmac.c
/openbmc/qemu/hw/vfio/display.c
/openbmc/qemu/hw/vfio/pci-quirks.c
/openbmc/qemu/hw/vfio/pci.c
/openbmc/qemu/hw/vfio/pci.h
/openbmc/qemu/hw/vfio/platform.c
/openbmc/qemu/hw/virtio/vhost-user.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/hw/xen/xen_pt.c
/openbmc/qemu/hw/xen/xen_pt_config_init.c
/openbmc/qemu/include/block/aio.h
/openbmc/qemu/include/block/block_int.h
/openbmc/qemu/include/block/dirty-bitmap.h
/openbmc/qemu/include/block/nbd.h
/openbmc/qemu/include/chardev/char-fe.h
/openbmc/qemu/include/chardev/char.h
/openbmc/qemu/include/disas/bfd.h
/openbmc/qemu/include/elf.h
/openbmc/qemu/include/exec/cpu-defs.h
/openbmc/qemu/include/exec/cpu_ldst.h
/openbmc/qemu/include/exec/cpu_ldst_template.h
/openbmc/qemu/include/exec/exec-all.h
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/exec/poison.h
/openbmc/qemu/include/exec/ram_addr.h
/openbmc/qemu/include/fpu/softfloat-macros.h
/openbmc/qemu/include/fpu/softfloat.h
/openbmc/qemu/include/hw/audio/wm8750.h
/openbmc/qemu/include/hw/display/edid.h
/openbmc/qemu/include/hw/hotplug.h
/openbmc/qemu/include/hw/hyperv/hyperv-proto.h
/openbmc/qemu/include/hw/hyperv/hyperv.h
/openbmc/qemu/include/hw/i2c/i2c-ddc.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/intc/arm_gicv3_common.h
/openbmc/qemu/include/hw/loader.h
/openbmc/qemu/include/hw/mem/memory-device.h
/openbmc/qemu/include/hw/mem/pc-dimm.h
/openbmc/qemu/include/hw/net/cadence_gem.h
/openbmc/qemu/include/hw/s390x/ap-bridge.h
/openbmc/qemu/include/hw/s390x/ap-device.h
/openbmc/qemu/include/hw/s390x/css.h
/openbmc/qemu/include/hw/s390x/ioinst.h
/openbmc/qemu/include/hw/s390x/s390-virtio-ccw.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/hw/vfio/vfio-platform.h
/openbmc/qemu/include/migration/colo.h
/openbmc/qemu/include/monitor/monitor.h
/openbmc/qemu/include/net/filter.h
/openbmc/qemu/include/qapi/error.h
/openbmc/qemu/include/qapi/qmp/qerror.h
/openbmc/qemu/include/qemu-common.h
/openbmc/qemu/include/qemu/atomic128.h
/openbmc/qemu/include/qemu/compiler.h
/openbmc/qemu/include/qemu/cutils.h
/openbmc/qemu/include/qemu/hbitmap.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/include/qemu/timer.h
/openbmc/qemu/include/qemu/win_dump_defs.h
/openbmc/qemu/include/qom/cpu.h
/openbmc/qemu/include/standard-headers/linux/input.h
/openbmc/qemu/include/sysemu/blockdev.h
/openbmc/qemu/include/sysemu/hvf.h
/openbmc/qemu/include/sysemu/numa.h
/openbmc/qemu/include/sysemu/replay.h
/openbmc/qemu/include/sysemu/tpm.h
/openbmc/qemu/include/ui/console.h
/openbmc/qemu/include/ui/gtk.h
/openbmc/qemu/iothread.c
/openbmc/qemu/linux-headers/asm-arm/kvm.h
/openbmc/qemu/linux-headers/asm-arm64/kvm.h
/openbmc/qemu/linux-headers/asm-powerpc/kvm.h
/openbmc/qemu/linux-headers/asm-s390/kvm.h
/openbmc/qemu/linux-headers/asm-x86/kvm.h
/openbmc/qemu/linux-headers/linux/kvm.h
/openbmc/qemu/linux-headers/linux/vfio.h
/openbmc/qemu/linux-headers/linux/vhost.h
/openbmc/qemu/linux-user/aarch64/signal.c
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/ioctls.h
/openbmc/qemu/linux-user/mips/cpu_loop.c
/openbmc/qemu/linux-user/mips/target_elf.h
/openbmc/qemu/linux-user/mips/target_syscall.h
/openbmc/qemu/linux-user/mips64/target_syscall.h
/openbmc/qemu/linux-user/qemu.h
/openbmc/qemu/linux-user/sparc/signal.c
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/linux-user/syscall_defs.h
/openbmc/qemu/linux-user/syscall_types.h
/openbmc/qemu/memory.c
/openbmc/qemu/migration/Makefile.objs
/openbmc/qemu/migration/block-dirty-bitmap.c
/openbmc/qemu/migration/colo-failover.c
/openbmc/qemu/migration/colo.c
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/postcopy-ram.c
/openbmc/qemu/migration/ram.c
/openbmc/qemu/migration/ram.h
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/migration/savevm.h
/openbmc/qemu/migration/trace-events
/openbmc/qemu/monitor.c
/openbmc/qemu/nbd/client.c
/openbmc/qemu/nbd/server.c
/openbmc/qemu/net/colo-compare.c
/openbmc/qemu/net/colo-compare.h
/openbmc/qemu/net/colo.c
/openbmc/qemu/net/colo.h
/openbmc/qemu/net/filter-rewriter.c
/openbmc/qemu/net/filter.c
/openbmc/qemu/net/l2tpv3.c
/openbmc/qemu/net/net.c
/openbmc/qemu/net/slirp.c
/openbmc/qemu/net/socket.c
/openbmc/qemu/numa.c
/openbmc/qemu/pc-bios/openbios-ppc
/openbmc/qemu/pc-bios/openbios-sparc32
/openbmc/qemu/pc-bios/openbios-sparc64
/openbmc/qemu/po/Makefile
/openbmc/qemu/qapi/block-core.json
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/qapi/misc.json
/openbmc/qemu/qapi/net.json
/openbmc/qemu/qapi/transaction.json
/openbmc/qemu/qdev-monitor.c
/openbmc/qemu/qemu-deprecated.texi
/openbmc/qemu/qemu-io.c
/openbmc/qemu/qemu-nbd.c
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qemu-seccomp.c
commands-win32.c
/openbmc/qemu/qobject/block-qdict.c
/openbmc/qemu/qom/cpu.c
/openbmc/qemu/qom/object.c
/openbmc/qemu/qom/object_interfaces.c
/openbmc/qemu/replay/replay-events.c
/openbmc/qemu/replay/replay-internal.c
/openbmc/qemu/replay/replay-internal.h
/openbmc/qemu/replay/replay-snapshot.c
/openbmc/qemu/replay/replay-time.c
/openbmc/qemu/replay/replay.c
/openbmc/qemu/roms/openbios
/openbmc/qemu/scripts/archive-source.sh
/openbmc/qemu/scripts/coccinelle/inplace-byteswaps.cocci
/openbmc/qemu/scripts/coccinelle/use-error_fatal.cocci
/openbmc/qemu/scripts/decodetree.py
/openbmc/qemu/scripts/device-crash-test
/openbmc/qemu/scripts/git-submodule.sh
/openbmc/qemu/scripts/qemu.py
/openbmc/qemu/scripts/show-fixed-bugs.sh
/openbmc/qemu/slirp/bootp.c
/openbmc/qemu/slirp/bootp.h
/openbmc/qemu/slirp/ip6_icmp.c
/openbmc/qemu/slirp/ip_icmp.c
/openbmc/qemu/slirp/libslirp.h
/openbmc/qemu/slirp/mbuf.c
/openbmc/qemu/slirp/mbuf.h
/openbmc/qemu/slirp/slirp.c
/openbmc/qemu/slirp/slirp.h
/openbmc/qemu/slirp/socket.c
/openbmc/qemu/stubs/Makefile.objs
/openbmc/qemu/stubs/cpu-get-icount.c
/openbmc/qemu/stubs/ramfb.c
/openbmc/qemu/stubs/replay.c
/openbmc/qemu/stubs/tpm.c
/openbmc/qemu/target/alpha/cpu.c
/openbmc/qemu/target/arm/arm-powerctl.c
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/cpu.h
/openbmc/qemu/target/arm/cpu64.c
/openbmc/qemu/target/arm/helper-a64.c
/openbmc/qemu/target/arm/helper-sve.h
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/helper.h
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/kvm.c
/openbmc/qemu/target/arm/kvm32.c
/openbmc/qemu/target/arm/kvm64.c
/openbmc/qemu/target/arm/kvm_arm.h
/openbmc/qemu/target/arm/machine.c
/openbmc/qemu/target/arm/op_helper.c
/openbmc/qemu/target/arm/sve_helper.c
/openbmc/qemu/target/arm/translate-a64.c
/openbmc/qemu/target/arm/translate-sve.c
/openbmc/qemu/target/arm/translate.c
/openbmc/qemu/target/arm/translate.h
/openbmc/qemu/target/cris/translate.c
/openbmc/qemu/target/hppa/mem_helper.c
/openbmc/qemu/target/i386/Makefile.objs
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/excp_helper.c
/openbmc/qemu/target/i386/hvf/README.md
/openbmc/qemu/target/i386/hvf/hvf.c
/openbmc/qemu/target/i386/hvf/x86_decode.c
/openbmc/qemu/target/i386/hvf/x86_decode.h
/openbmc/qemu/target/i386/hvf/x86hvf.c
/openbmc/qemu/target/i386/hyperv-proto.h
/openbmc/qemu/target/i386/hyperv-stub.c
/openbmc/qemu/target/i386/hyperv.c
/openbmc/qemu/target/i386/hyperv.h
/openbmc/qemu/target/i386/kvm.c
/openbmc/qemu/target/i386/machine.c
/openbmc/qemu/target/i386/mem_helper.c
/openbmc/qemu/target/i386/seg_helper.c
/openbmc/qemu/target/i386/svm_helper.c
/openbmc/qemu/target/i386/translate.c
/openbmc/qemu/target/mips/cpu.c
/openbmc/qemu/target/mips/cpu.h
/openbmc/qemu/target/mips/helper.c
/openbmc/qemu/target/mips/helper.h
/openbmc/qemu/target/mips/internal.h
/openbmc/qemu/target/mips/machine.c
/openbmc/qemu/target/mips/mips-defs.h
/openbmc/qemu/target/mips/op_helper.c
/openbmc/qemu/target/mips/translate.c
/openbmc/qemu/target/mips/translate_init.inc.c
/openbmc/qemu/target/ppc/helper.h
/openbmc/qemu/target/ppc/mem_helper.c
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/ppc/translate_init.inc.c
/openbmc/qemu/target/riscv/Makefile.objs
/openbmc/qemu/target/riscv/cpu.c
/openbmc/qemu/target/riscv/cpu.h
/openbmc/qemu/target/riscv/cpu_bits.h
/openbmc/qemu/target/riscv/cpu_helper.c
/openbmc/qemu/target/riscv/op_helper.c
/openbmc/qemu/target/s390x/cpu.c
/openbmc/qemu/target/s390x/cpu.h
/openbmc/qemu/target/s390x/cpu_features.c
/openbmc/qemu/target/s390x/cpu_features_def.h
/openbmc/qemu/target/s390x/cpu_models.c
/openbmc/qemu/target/s390x/excp_helper.c
/openbmc/qemu/target/s390x/fpu_helper.c
/openbmc/qemu/target/s390x/gen-features.c
/openbmc/qemu/target/s390x/helper.h
/openbmc/qemu/target/s390x/insn-data.def
/openbmc/qemu/target/s390x/interrupt.c
/openbmc/qemu/target/s390x/kvm.c
/openbmc/qemu/target/s390x/mem_helper.c
/openbmc/qemu/target/s390x/tcg-stub.c
/openbmc/qemu/target/s390x/tcg_s390x.h
/openbmc/qemu/target/s390x/translate.c
/openbmc/qemu/target/unicore32/cpu.c
/openbmc/qemu/tcg/tcg-op.c
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tcg/tcg.h
/openbmc/qemu/tests/Makefile.include
/openbmc/qemu/tests/benchmark-crypto-cipher.c
/openbmc/qemu/tests/bios-tables-test.c
/openbmc/qemu/tests/check-qdict.c
/openbmc/qemu/tests/check-qjson.c
/openbmc/qemu/tests/check-qom-proplist.c
/openbmc/qemu/tests/cpu-plug-test.c
/openbmc/qemu/tests/crypto-tls-x509-helpers.h
/openbmc/qemu/tests/docker/Makefile.include
/openbmc/qemu/tests/docker/docker.py
/openbmc/qemu/tests/docker/dockerfiles/debian-bootstrap.pre
/openbmc/qemu/tests/docker/test-mingw
/openbmc/qemu/tests/fp/.gitignore
/openbmc/qemu/tests/fp/Makefile
/openbmc/qemu/tests/fp/berkeley-softfloat-3
/openbmc/qemu/tests/fp/berkeley-testfloat-3
/openbmc/qemu/tests/fp/fp-test.c
/openbmc/qemu/tests/fp/platform.h
/openbmc/qemu/tests/fp/wrap.inc.c
/openbmc/qemu/tests/guest-debug/test-gdbstub.py
/openbmc/qemu/tests/libqtest.c
/openbmc/qemu/tests/migration-test.c
/openbmc/qemu/tests/migration/Makefile
/openbmc/qemu/tests/migration/aarch64/Makefile
/openbmc/qemu/tests/migration/aarch64/a-b-kernel.S
/openbmc/qemu/tests/migration/aarch64/a-b-kernel.h
/openbmc/qemu/tests/migration/guestperf/shell.py
/openbmc/qemu/tests/migration/migration-test.h
/openbmc/qemu/tests/migration/s390x/Makefile
/openbmc/qemu/tests/migration/s390x/a-b-bios.c
/openbmc/qemu/tests/migration/s390x/a-b-bios.h
/openbmc/qemu/tests/ptimer-test-stubs.c
/openbmc/qemu/tests/qemu-iotests/049.out
/openbmc/qemu/tests/qemu-iotests/169
/openbmc/qemu/tests/qemu-iotests/169.out
/openbmc/qemu/tests/qemu-iotests/218
/openbmc/qemu/tests/qemu-iotests/common.qemu
/openbmc/qemu/tests/qemu-iotests/common.rc
/openbmc/qemu/tests/tcg/Makefile.include
/openbmc/qemu/tests/tcg/Makefile.probe
/openbmc/qemu/tests/tcg/README
/openbmc/qemu/tests/tcg/mips/mips64-dsp/subq_s_pw.c
/openbmc/qemu/tests/tcg/mips/mipsr5900/Makefile
/openbmc/qemu/tests/tcg/mips/mipsr5900/div1.c
/openbmc/qemu/tests/tcg/mips/mipsr5900/divu1.c
/openbmc/qemu/tests/tcg/mips/mipsr5900/mflohi1.c
/openbmc/qemu/tests/tcg/mips/mipsr5900/mtlohi1.c
/openbmc/qemu/tests/tcg/mips/mipsr5900/mult.c
/openbmc/qemu/tests/tcg/mips/mipsr5900/multu.c
/openbmc/qemu/tests/test-char.c
/openbmc/qemu/tests/test-crypto-block.c
/openbmc/qemu/tests/test-crypto-tlscredsx509.c
/openbmc/qemu/tests/test-crypto-xts.c
/openbmc/qemu/tests/vm/basevm.py
/openbmc/qemu/tests/vm/centos
/openbmc/qemu/tests/vm/freebsd
/openbmc/qemu/tests/vm/netbsd
/openbmc/qemu/tests/vm/openbsd
/openbmc/qemu/tests/vm/ubuntu.i386
/openbmc/qemu/tpm.c
/openbmc/qemu/ui/curses.c
/openbmc/qemu/ui/gtk-egl.c
/openbmc/qemu/ui/gtk.c
/openbmc/qemu/ui/input.c
/openbmc/qemu/ui/keymaps.c
/openbmc/qemu/ui/keymaps.h
/openbmc/qemu/ui/sdl.c
/openbmc/qemu/ui/sdl2-2d.c
/openbmc/qemu/ui/sdl2.c
/openbmc/qemu/ui/spice-core.c
/openbmc/qemu/ui/spice-display.c
/openbmc/qemu/ui/vnc.c
/openbmc/qemu/util/aio-posix.c
/openbmc/qemu/util/cutils.c
/openbmc/qemu/util/error.c
/openbmc/qemu/util/hbitmap.c
/openbmc/qemu/util/oslib-posix.c
/openbmc/qemu/util/qemu-error.c
/openbmc/qemu/util/qemu-option.c
/openbmc/qemu/util/qemu-timer.c
/openbmc/qemu/vl.c
/openbmc/qemu/win_dump.h
9e6bdef231-Aug-2018 Marc-André Lureau <marcandre.lureau@redhat.com>

util: add qemu_write_pidfile()

There are variants of qemu_create_pidfile() in qemu-pr-helper and
qemu-ga. Let's have a common implementation in libqemuutil.

The code is initially based from pr-help

util: add qemu_write_pidfile()

There are variants of qemu_create_pidfile() in qemu-pr-helper and
qemu-ga. Let's have a common implementation in libqemuutil.

The code is initially based from pr-helper write_pidfile(), with
various improvements and suggestions from Daniel Berrangé:

QEMU will leave the pidfile existing on disk when it exits which
initially made me think it avoids the deletion race. The app
managing QEMU, however, may well delete the pidfile after it has
seen QEMU exit, and even if the app locks the pidfile before
deleting it, there is still a race.

eg consider the following sequence

QEMU 1 libvirtd QEMU 2

1. lock(pidfile)

2. exit()

3. open(pidfile)

4. lock(pidfile)

5. open(pidfile)

6. unlink(pidfile)

7. close(pidfile)

8. lock(pidfile)

IOW, at step 8 the new QEMU has successfully acquired the lock, but
the pidfile no longer exists on disk because it was deleted after
the original QEMU exited.

While we could just say no external app should ever delete the
pidfile, I don't think that is satisfactory as people don't read
docs, and admins don't like stale pidfiles being left around on
disk.

To make this robust, I think we might want to copy libvirt's
approach to pidfile acquisition which runs in a loop and checks that
the file on disk /after/ acquiring the lock matches the file that
was locked. Then we could in fact safely let QEMU delete its own
pidfiles on clean exit..

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20180831145314.14736-2-marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/Makefile
/openbmc/qemu/accel/tcg/translate-all.c
/openbmc/qemu/backends/hostmem-memfd.c
/openbmc/qemu/block.c
/openbmc/qemu/block/backup.c
/openbmc/qemu/block/blkreplay.c
/openbmc/qemu/block/block-backend.c
/openbmc/qemu/block/commit.c
/openbmc/qemu/block/create.c
/openbmc/qemu/block/curl.c
/openbmc/qemu/block/file-posix.c
/openbmc/qemu/block/io.c
/openbmc/qemu/block/linux-aio.c
/openbmc/qemu/block/mirror.c
/openbmc/qemu/block/qcow2.c
/openbmc/qemu/block/qcow2.h
/openbmc/qemu/block/quorum.c
/openbmc/qemu/block/rbd.c
/openbmc/qemu/block/stream.c
/openbmc/qemu/block/vmdk.c
/openbmc/qemu/block/write-threshold.c
/openbmc/qemu/blockdev.c
/openbmc/qemu/blockjob.c
/openbmc/qemu/configure
/openbmc/qemu/cpus.c
/openbmc/qemu/default-configs/arm-softmmu.mak
/openbmc/qemu/default-configs/x86_64-softmmu.mak
/openbmc/qemu/docs/COLO-FT.txt
/openbmc/qemu/docs/devel/migration.rst
/openbmc/qemu/docs/devel/qapi-code-gen.txt
/openbmc/qemu/docs/interop/live-block-operations.rst
/openbmc/qemu/docs/interop/vhost-user.txt
/openbmc/qemu/docs/qcow2-cache.txt
/openbmc/qemu/docs/replay.txt
/openbmc/qemu/docs/specs/standard-vga.txt
/openbmc/qemu/docs/virtio-balloon-stats.txt
/openbmc/qemu/dtc
/openbmc/qemu/dump.c
/openbmc/qemu/fsdev/Makefile.objs
/openbmc/qemu/hmp.c
/openbmc/qemu/hw/acpi/core.c
/openbmc/qemu/hw/acpi/cpu.c
/openbmc/qemu/hw/acpi/memory_hotplug.c
/openbmc/qemu/hw/arm/Makefile.objs
/openbmc/qemu/hw/arm/aspeed.c
/openbmc/qemu/hw/arm/exynos4210.c
/openbmc/qemu/hw/arm/microbit.c
/openbmc/qemu/hw/arm/nrf51_soc.c
/openbmc/qemu/hw/arm/realview.c
/openbmc/qemu/hw/arm/smmu-common.c
/openbmc/qemu/hw/arm/smmuv3-internal.h
/openbmc/qemu/hw/arm/smmuv3.c
/openbmc/qemu/hw/arm/versatilepb.c
/openbmc/qemu/hw/arm/virt-acpi-build.c
/openbmc/qemu/hw/audio/es1370.c
/openbmc/qemu/hw/char/sh_serial.c
/openbmc/qemu/hw/char/virtio-console.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/core/qdev.c
/openbmc/qemu/hw/display/Makefile.objs
/openbmc/qemu/hw/display/edid-generate.c
/openbmc/qemu/hw/display/edid-region.c
/openbmc/qemu/hw/display/exynos4210_fimd.c
/openbmc/qemu/hw/display/g364fb.c
/openbmc/qemu/hw/display/jazz_led.c
/openbmc/qemu/hw/display/qxl-render.c
/openbmc/qemu/hw/display/qxl.c
/openbmc/qemu/hw/display/qxl.h
/openbmc/qemu/hw/display/sm501.c
/openbmc/qemu/hw/display/tc6393xb.c
/openbmc/qemu/hw/display/vga-pci.c
/openbmc/qemu/hw/display/vga.c
/openbmc/qemu/hw/display/vga_int.h
/openbmc/qemu/hw/display/virtio-gpu-3d.c
/openbmc/qemu/hw/display/virtio-gpu.c
/openbmc/qemu/hw/display/virtio-vga.c
/openbmc/qemu/hw/display/vmware_vga.c
/openbmc/qemu/hw/display/xlnx_dp.c
/openbmc/qemu/hw/hppa/machine.c
/openbmc/qemu/hw/i2c/aspeed_i2c.c
/openbmc/qemu/hw/i386/acpi-build.c
/openbmc/qemu/hw/i386/intel_iommu.c
/openbmc/qemu/hw/i386/multiboot.c
/openbmc/qemu/hw/i386/trace-events
/openbmc/qemu/hw/ide/macio.c
/openbmc/qemu/hw/input/ps2.c
/openbmc/qemu/hw/intc/arm_gic.c
/openbmc/qemu/hw/intc/arm_gic_common.c
/openbmc/qemu/hw/intc/gic_internal.h
/openbmc/qemu/hw/mips/mips_malta.c
/openbmc/qemu/hw/misc/macio/macio.c
/openbmc/qemu/hw/net/pcnet-pci.c
/openbmc/qemu/hw/net/trace-events
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/pci-bridge/gen_pcie_root_port.c
/openbmc/qemu/hw/pci-bridge/pci_bridge_dev.c
/openbmc/qemu/hw/pci-host/grackle.c
/openbmc/qemu/hw/pci-host/prep.c
/openbmc/qemu/hw/pci-host/sabre.c
/openbmc/qemu/hw/pci-host/uninorth.c
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/pci/pci_bridge.c
/openbmc/qemu/hw/ppc/e500.c
/openbmc/qemu/hw/ppc/mac.h
/openbmc/qemu/hw/ppc/mac_newworld.c
/openbmc/qemu/hw/ppc/mac_oldworld.c
/openbmc/qemu/hw/ppc/ppc405_boards.c
/openbmc/qemu/hw/ppc/ppc440_bamboo.c
/openbmc/qemu/hw/ppc/prep.c
/openbmc/qemu/hw/ppc/sam460ex.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_cpu_core.c
/openbmc/qemu/hw/ppc/spapr_irq.c
/openbmc/qemu/hw/ppc/spapr_pci.c
/openbmc/qemu/hw/ppc/spapr_rtas.c
/openbmc/qemu/hw/ppc/spapr_rtc.c
/openbmc/qemu/hw/ppc/virtex_ml507.c
/openbmc/qemu/hw/riscv/sifive_e.c
/openbmc/qemu/hw/riscv/sifive_plic.c
/openbmc/qemu/hw/riscv/sifive_u.c
/openbmc/qemu/hw/riscv/spike.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/s390x/Makefile.objs
/openbmc/qemu/hw/s390x/vhost-vsock-ccw.c
/openbmc/qemu/hw/s390x/virtio-ccw-9p.c
/openbmc/qemu/hw/s390x/virtio-ccw-balloon.c
/openbmc/qemu/hw/s390x/virtio-ccw-blk.c
/openbmc/qemu/hw/s390x/virtio-ccw-crypto.c
/openbmc/qemu/hw/s390x/virtio-ccw-gpu.c
/openbmc/qemu/hw/s390x/virtio-ccw-input.c
/openbmc/qemu/hw/s390x/virtio-ccw-net.c
/openbmc/qemu/hw/s390x/virtio-ccw-rng.c
/openbmc/qemu/hw/s390x/virtio-ccw-scsi.c
/openbmc/qemu/hw/s390x/virtio-ccw-serial.c
/openbmc/qemu/hw/s390x/virtio-ccw.c
/openbmc/qemu/hw/scsi/lsi53c895a.c
/openbmc/qemu/hw/sparc64/sun4u.c
/openbmc/qemu/hw/ssi/aspeed_smc.c
/openbmc/qemu/hw/timer/aspeed_timer.c
/openbmc/qemu/hw/timer/cmsdk-apb-dualtimer.c
/openbmc/qemu/hw/timer/mc146818rtc.c
/openbmc/qemu/hw/usb/dev-hub.c
/openbmc/qemu/hw/usb/dev-mtp.c
/openbmc/qemu/hw/usb/hcd-ohci.c
/openbmc/qemu/hw/vfio/ccw.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/pci.c
/openbmc/qemu/hw/virtio/vhost.c
/openbmc/qemu/hw/virtio/virtio-balloon.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/hw/watchdog/watchdog.c
/openbmc/qemu/include/block/aio-wait.h
/openbmc/qemu/include/block/block.h
/openbmc/qemu/include/block/block_int.h
/openbmc/qemu/include/block/blockjob.h
/openbmc/qemu/include/elf.h
/openbmc/qemu/include/exec/poison.h
/openbmc/qemu/include/hw/arm/aspeed.h
/openbmc/qemu/include/hw/arm/nrf51_soc.h
/openbmc/qemu/include/hw/display/edid.h
/openbmc/qemu/include/hw/elf_ops.h
/openbmc/qemu/include/hw/intc/arm_gic.h
/openbmc/qemu/include/hw/misc/macio/macio.h
/openbmc/qemu/include/hw/pci-host/spapr.h
/openbmc/qemu/include/hw/pci-host/uninorth.h
/openbmc/qemu/include/hw/pci/pci.h
/openbmc/qemu/include/hw/pci/pci_bridge.h
/openbmc/qemu/include/hw/ppc/spapr_irq.h
/openbmc/qemu/include/hw/ppc/xics.h
/openbmc/qemu/include/hw/qdev-core.h
/openbmc/qemu/include/hw/riscv/sifive_plic.h
/openbmc/qemu/include/hw/timer/aspeed_timer.h
/openbmc/qemu/include/hw/virtio/virtio-gpu.h
/openbmc/qemu/include/net/net.h
/openbmc/qemu/include/net/slirp.h
/openbmc/qemu/include/qapi/qmp-event.h
/openbmc/qemu/include/qapi/qmp/dispatch.h
/openbmc/qemu/include/qapi/qmp/qnum.h
/openbmc/qemu/include/qemu/atomic.h
/openbmc/qemu/include/qemu/coroutine.h
/openbmc/qemu/include/qemu/drm.h
/openbmc/qemu/include/qemu/error-report.h
/openbmc/qemu/include/qemu/job.h
/openbmc/qemu/include/qemu/memfd.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/include/qemu/qht.h
/openbmc/qemu/include/qemu/queue.h
/openbmc/qemu/include/qemu/thread.h
/openbmc/qemu/include/qemu/units.h
/openbmc/qemu/include/ui/console.h
/openbmc/qemu/job-qmp.c
/openbmc/qemu/job.c
/openbmc/qemu/linux-user/Makefile.objs
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/fd-trans.c
/openbmc/qemu/linux-user/fd-trans.h
/openbmc/qemu/linux-user/mips/cpu_loop.c
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/linux-user/syscall_defs.h
/openbmc/qemu/migration/colo.c
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/migration.h
/openbmc/qemu/migration/postcopy-ram.c
/openbmc/qemu/migration/qemu-file-channel.c
/openbmc/qemu/migration/qemu-file.c
/openbmc/qemu/migration/ram.c
/openbmc/qemu/migration/ram.h
/openbmc/qemu/migration/rdma.c
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/migration/vmstate.c
/openbmc/qemu/monitor.c
/openbmc/qemu/nbd/server.c
/openbmc/qemu/net/net.c
/openbmc/qemu/net/slirp.c
/openbmc/qemu/os-posix.c
/openbmc/qemu/os-win32.c
/openbmc/qemu/pc-bios/hppa-firmware.img
/openbmc/qemu/pc-bios/openbios-ppc
/openbmc/qemu/pc-bios/openbios-sparc32
/openbmc/qemu/pc-bios/openbios-sparc64
/openbmc/qemu/pc-bios/palcode-clipper
/openbmc/qemu/pc-bios/u-boot-sam460-20100605.bin
/openbmc/qemu/pc-bios/u-boot.e500
/openbmc/qemu/qapi/block-core.json
/openbmc/qemu/qapi/common.json
/openbmc/qemu/qapi/introspect.json
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/qapi/misc.json
/openbmc/qemu/qapi/qmp-dispatch.c
/openbmc/qemu/qapi/ui.json
/openbmc/qemu/qemu-deprecated.texi
/openbmc/qemu/qemu-doc.texi
/openbmc/qemu/qemu-edid.c
/openbmc/qemu/qemu-io-cmds.c
/openbmc/qemu/qemu-keymap.c
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qemu-seccomp.c
main.c
/openbmc/qemu/qobject/json-lexer.c
/openbmc/qemu/qobject/json-parser-int.h
/openbmc/qemu/qobject/json-parser.c
/openbmc/qemu/replay/replay-char.c
/openbmc/qemu/roms/openbios
/openbmc/qemu/scripts/device-crash-test
/openbmc/qemu/scripts/qapi/common.py
/openbmc/qemu/scripts/qapi/events.py
/openbmc/qemu/scripts/qapi/introspect.py
/openbmc/qemu/scsi/pr-manager-helper.c
/openbmc/qemu/scsi/qemu-pr-helper.c
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/i386/kvm.c
/openbmc/qemu/target/mips/cpu.h
/openbmc/qemu/target/mips/helper.c
/openbmc/qemu/target/mips/helper.h
/openbmc/qemu/target/mips/mips-defs.h
/openbmc/qemu/target/mips/op_helper.c
/openbmc/qemu/target/mips/translate.c
/openbmc/qemu/target/mips/translate_init.inc.c
/openbmc/qemu/target/ppc/cpu-models.c
/openbmc/qemu/target/ppc/cpu-qom.h
/openbmc/qemu/target/ppc/cpu.h
/openbmc/qemu/target/ppc/kvm.c
/openbmc/qemu/target/ppc/kvm_ppc.h
/openbmc/qemu/target/ppc/mmu_helper.c
/openbmc/qemu/target/ppc/translate_init.inc.c
/openbmc/qemu/target/riscv/cpu.h
/openbmc/qemu/target/riscv/cpu_bits.h
/openbmc/qemu/target/riscv/helper.c
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/s390x/insn-data.def
/openbmc/qemu/target/s390x/mem_helper.c
/openbmc/qemu/target/s390x/translate.c
/openbmc/qemu/target/xtensa/Makefile.objs
/openbmc/qemu/target/xtensa/core-test_kc705_be.c
/openbmc/qemu/target/xtensa/core-test_kc705_be/core-isa.h
/openbmc/qemu/target/xtensa/core-test_kc705_be/gdb-config.inc.c
/openbmc/qemu/target/xtensa/core-test_kc705_be/xtensa-modules.inc.c
/openbmc/qemu/target/xtensa/cpu.c
/openbmc/qemu/target/xtensa/cpu.h
/openbmc/qemu/target/xtensa/gdbstub.c
/openbmc/qemu/target/xtensa/helper.c
/openbmc/qemu/target/xtensa/helper.h
/openbmc/qemu/target/xtensa/op_helper.c
/openbmc/qemu/target/xtensa/translate.c
/openbmc/qemu/target/xtensa/xtensa-semi.c
/openbmc/qemu/tcg/i386/tcg-target.inc.c
/openbmc/qemu/tests/Makefile.include
/openbmc/qemu/tests/acpi-test-data/pc/DSDT
/openbmc/qemu/tests/acpi-test-data/pc/DSDT.bridge
/openbmc/qemu/tests/acpi-test-data/pc/DSDT.cphp
/openbmc/qemu/tests/acpi-test-data/pc/DSDT.dimmpxm
/openbmc/qemu/tests/acpi-test-data/pc/DSDT.ipmikcs
/openbmc/qemu/tests/acpi-test-data/pc/DSDT.memhp
/openbmc/qemu/tests/acpi-test-data/pc/DSDT.numamem
/openbmc/qemu/tests/acpi-test-data/pc/SRAT.dimmpxm
/openbmc/qemu/tests/acpi-test-data/pc/SRAT.memhp
/openbmc/qemu/tests/acpi-test-data/q35/DSDT
/openbmc/qemu/tests/acpi-test-data/q35/DSDT.bridge
/openbmc/qemu/tests/acpi-test-data/q35/DSDT.cphp
/openbmc/qemu/tests/acpi-test-data/q35/DSDT.dimmpxm
/openbmc/qemu/tests/acpi-test-data/q35/DSDT.ipmibt
/openbmc/qemu/tests/acpi-test-data/q35/DSDT.memhp
/openbmc/qemu/tests/acpi-test-data/q35/DSDT.numamem
/openbmc/qemu/tests/acpi-test-data/q35/SRAT.dimmpxm
/openbmc/qemu/tests/acpi-test-data/q35/SRAT.memhp
/openbmc/qemu/tests/atomic64-bench.c
/openbmc/qemu/tests/boot-serial-test.c
/openbmc/qemu/tests/check-qjson.c
/openbmc/qemu/tests/docker/Makefile.include
/openbmc/qemu/tests/docker/dockerfiles/centos7.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-i386-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora.docker
/openbmc/qemu/tests/docker/dockerfiles/ubuntu.docker
/openbmc/qemu/tests/drive_del-test.c
/openbmc/qemu/tests/libqos/libqos.c
/openbmc/qemu/tests/libqtest.c
/openbmc/qemu/tests/libqtest.h
/openbmc/qemu/tests/machine-none-test.c
/openbmc/qemu/tests/migration-test.c
/openbmc/qemu/tests/migration/Makefile
/openbmc/qemu/tests/migration/i386/Makefile
/openbmc/qemu/tests/migration/i386/a-b-bootblock.S
/openbmc/qemu/tests/migration/i386/a-b-bootblock.h
/openbmc/qemu/tests/migration/migration-test.h
/openbmc/qemu/tests/qapi-schema/qapi-schema-test.json
/openbmc/qemu/tests/qapi-schema/qapi-schema-test.out
/openbmc/qemu/tests/qemu-iotests/040
/openbmc/qemu/tests/qemu-iotests/040.out
/openbmc/qemu/tests/qemu-iotests/051
/openbmc/qemu/tests/qemu-iotests/051.out
/openbmc/qemu/tests/qemu-iotests/051.pc.out
/openbmc/qemu/tests/qemu-iotests/067.out
/openbmc/qemu/tests/qemu-iotests/137
/openbmc/qemu/tests/qemu-iotests/137.out
/openbmc/qemu/tests/qemu-iotests/153.out
/openbmc/qemu/tests/qemu-iotests/182.out
/openbmc/qemu/tests/qemu-iotests/231
/openbmc/qemu/tests/qemu-iotests/231.out
/openbmc/qemu/tests/qemu-iotests/group
/openbmc/qemu/tests/qht-bench.c
/openbmc/qemu/tests/qmp-cmd-test.c
/openbmc/qemu/tests/qmp-test.c
/openbmc/qemu/tests/tcg/s390x/Makefile.target
/openbmc/qemu/tests/tcg/s390x/csst.c
/openbmc/qemu/tests/tcg/s390x/exrl-trt.c
/openbmc/qemu/tests/tcg/s390x/exrl-trtr.c
/openbmc/qemu/tests/tcg/s390x/hello-s390x.c
/openbmc/qemu/tests/tcg/s390x/ipm.c
/openbmc/qemu/tests/tcg/s390x/pack.c
/openbmc/qemu/tests/tcg/xtensa/Makefile
/openbmc/qemu/tests/tcg/xtensa/linker.ld.S
/openbmc/qemu/tests/tcg/xtensa/test_phys_mem.S
/openbmc/qemu/tests/tcg/xtensa/vectors.S
/openbmc/qemu/tests/test-bdrv-drain.c
/openbmc/qemu/tests/test-blockjob-txn.c
/openbmc/qemu/tests/test-blockjob.c
/openbmc/qemu/tests/test-qga.c
/openbmc/qemu/tests/test-qht.c
/openbmc/qemu/tests/test-qmp-cmds.c
/openbmc/qemu/tests/test-qmp-event.c
/openbmc/qemu/tests/test-rcu-list.c
/openbmc/qemu/tests/test-replication.c
/openbmc/qemu/tests/tpm-crb-test.c
/openbmc/qemu/tests/tpm-emu.c
/openbmc/qemu/tests/tpm-emu.h
/openbmc/qemu/tests/tpm-tis-test.c
/openbmc/qemu/tests/vhost-user-test.c
/openbmc/qemu/tests/vm/basevm.py
/openbmc/qemu/trace-events
/openbmc/qemu/ui/console.c
/openbmc/qemu/ui/cursor.c
/openbmc/qemu/ui/egl-helpers.c
/openbmc/qemu/ui/gtk.c
/openbmc/qemu/ui/sdl2-gl.c
/openbmc/qemu/ui/sdl2.c
/openbmc/qemu/ui/spice-core.c
/openbmc/qemu/ui/spice-display.c
/openbmc/qemu/ui/vnc-enc-tight.c
/openbmc/qemu/ui/vnc-jobs.c
/openbmc/qemu/ui/vnc.c
/openbmc/qemu/util/Makefile.objs
/openbmc/qemu/util/aio-posix.c
/openbmc/qemu/util/aio-wait.c
/openbmc/qemu/util/async.c
/openbmc/qemu/util/atomic64.c
/openbmc/qemu/util/cacheinfo.c
/openbmc/qemu/util/drm.c
/openbmc/qemu/util/memfd.c
/openbmc/qemu/util/oslib-posix.c
/openbmc/qemu/util/oslib-win32.c
/openbmc/qemu/util/qemu-coroutine.c
/openbmc/qemu/util/qemu-error.c
/openbmc/qemu/util/qht.c
/openbmc/qemu/util/qsp.c
/openbmc/qemu/util/trace-events
/openbmc/qemu/vl.c
/openbmc/qemu/win_dump.c
86cdf9ec23-Aug-2018 Markus Armbruster <armbru@redhat.com>

json: Clean up headers

The JSON parser has three public headers, json-lexer.h, json-parser.h,
json-streamer.h. They all contain stuff that is of no interest
outside qobject/json-*.c.

Collect the p

json: Clean up headers

The JSON parser has three public headers, json-lexer.h, json-parser.h,
json-streamer.h. They all contain stuff that is of no interest
outside qobject/json-*.c.

Collect the public interface in include/qapi/qmp/json-parser.h, and
everything else in qobject/json-parser-int.h.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20180823164025.12553-54-armbru@redhat.com>

show more ...

84a56f3823-Aug-2018 Markus Armbruster <armbru@redhat.com>

json: Pass lexical errors and limit violations to callback

The callback to consume JSON values takes QObject *json, Error *err.
If both are null, the callback is supposed to make up an error by
itse

json: Pass lexical errors and limit violations to callback

The callback to consume JSON values takes QObject *json, Error *err.
If both are null, the callback is supposed to make up an error by
itself. This sucks.

qjson.c's consume_json() neglects to do so, which makes
qobject_from_json() null instead of failing. I consider that a bug.

The culprit is json_message_process_token(): it passes two null
pointers when it runs into a lexical error or a limit violation. Fix
it to pass a proper Error object then. Update the callbacks:

* monitor.c's handle_qmp_command(): the code to make up an error is
now dead, drop it.

* qga/main.c's process_event(): lumps the "both null" case together
with the "not a JSON object" case. The former is now gone. The
error message "Invalid JSON syntax" is misleading for the latter.
Improve it to "Input must be a JSON object".

* qobject/qjson.c's consume_json(): no update; check-qjson
demonstrates qobject_from_json() now sets an error on lexical
errors, but still doesn't on some other errors.

* tests/libqtest.c's qmp_response(): the Error object is now reliable,
so use it to improve the error message.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20180823164025.12553-40-armbru@redhat.com>

show more ...

1...<<11121314151617181920>>...28