OSDN Git Service

qmiga/qemu.git
5 years agoMerge remote-tracking branch 'remotes/rth/tags/pull-hppa-20190307' into staging
Peter Maydell [Fri, 8 Mar 2019 15:17:01 +0000 (15:17 +0000)]
Merge remote-tracking branch 'remotes/rth/tags/pull-hppa-20190307' into staging

Fix use after free on temporary.
Optmize branch to next insn via br r0.

# gpg: Signature made Fri 08 Mar 2019 01:53:16 GMT
# gpg:                using RSA key 64DF38E8AF7E215F
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>" [full]
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A  05C0 64DF 38E8 AF7E 215F

* remotes/rth/tags/pull-hppa-20190307:
  target/hppa: Optimize blr r0,rn
  target/hppa: Do not return freed temporary

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
5 years agoMerge remote-tracking branch 'remotes/bonzini/tags/for-upstream-qgraph' into staging
Peter Maydell [Fri, 8 Mar 2019 14:05:17 +0000 (14:05 +0000)]
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream-qgraph' into staging

qgraph project from GSoC 2018

# gpg: Signature made Thu 07 Mar 2019 16:29:17 GMT
# gpg:                using RSA key BFFBD25F78C7AE83
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
# gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [full]
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* remotes/bonzini/tags/for-upstream-qgraph: (57 commits)
  qos-test: megasas test node
  qos-test: e1000 test node
  qos-test: eepro100 test node
  qos-test: es1370 test node
  qos-test: vmxnet3 test node
  qos-test: usb-hcd-ohci test node
  qos-test: spapr-phb test node
  qos-test: pcnet test node
  qos-test: nvme test node
  qos-test: ne2k_pci test node
  qos-test: ipoctal232 test node
  qos-test: tpci200 test node
  qos-test: ac97 test node
  tests: move virtio entirely to qos-test
  tests/libqos: remove pre-qgraph QVirtioPCIDevice API
  qos-test: virtio-scsi test node
  tests/libqos: virtio-scsi driver and interface nodes
  qos-test: vhost-user test node
  vhost-user-test: always use 256 MiB of guest memory
  tests/libqos: support multiqueue for virtio-net
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
5 years agoMerge remote-tracking branch 'remotes/thibault/tags/samuel-thibault' into staging
Peter Maydell [Fri, 8 Mar 2019 11:55:53 +0000 (11:55 +0000)]
Merge remote-tracking branch 'remotes/thibault/tags/samuel-thibault' into staging

Slirp updates

Greg Kurz (1):
  slirp: Fix build with gcc 9

Marc-André Lureau (7):
  slirp: adapt a subset of QEMU vmstate code
  slirp: use libslirp migration code
  slirp: use "slirp_" prefix for inet_aton() win32 implementation
  slirp: move sources to src/ subdirectory
  slirp: add a standalone Makefile
  build-sys: link with slirp as an external project
  slirp: remove QEMU Makefile.objs

Samuel Thibault (2):
  slirp: fix big/little endian conversion in ident protocol
  slirp: Mark pieces missing IPv6 support

Vic Lee (1):
  slirp: check for ioctlsocket error and 0-length udp payload.

William Bowling (1):
  slirp: check sscanf result when emulating ident

# gpg: Signature made Thu 07 Mar 2019 11:51:20 GMT
# gpg:                using RSA key E61DBB15D4172BDEC97E92D9DB550E89F0FA54F3
# gpg: Good signature from "Samuel Thibault <samuel.thibault@aquilenet.fr>" [unknown]
# gpg:                 aka "Samuel Thibault <sthibault@debian.org>" [marginal]
# gpg:                 aka "Samuel Thibault <samuel.thibault@gnu.org>" [unknown]
# gpg:                 aka "Samuel Thibault <samuel.thibault@inria.fr>" [marginal]
# gpg:                 aka "Samuel Thibault <samuel.thibault@labri.fr>" [marginal]
# gpg:                 aka "Samuel Thibault <samuel.thibault@ens-lyon.org>" [marginal]
# gpg:                 aka "Samuel Thibault <samuel.thibault@u-bordeaux.fr>" [unknown]
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 900C B024 B679 31D4 0F82  304B D017 8C76 7D06 9EE6
#      Subkey fingerprint: E61D BB15 D417 2BDE C97E  92D9 DB55 0E89 F0FA 54F3

* remotes/thibault/tags/samuel-thibault:
  slirp: remove QEMU Makefile.objs
  build-sys: link with slirp as an external project
  slirp: add a standalone Makefile
  slirp: move sources to src/ subdirectory
  slirp: use "slirp_" prefix for inet_aton() win32 implementation
  slirp: use libslirp migration code
  slirp: adapt a subset of QEMU vmstate code
  slirp: Mark pieces missing IPv6 support
  slirp: fix big/little endian conversion in ident protocol
  slirp: check sscanf result when emulating ident
  slirp: check for ioctlsocket error and 0-length udp payload.
  slirp: Fix build with gcc 9

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
5 years agoMerge remote-tracking branch 'remotes/bonzini/tags/for-upstream-kconfig' into staging
Peter Maydell [Fri, 8 Mar 2019 10:38:39 +0000 (10:38 +0000)]
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream-kconfig' into staging

Initial Kconfig work, excluding ARM and MIPS

# gpg: Signature made Thu 07 Mar 2019 20:54:27 GMT
# gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg:                issuer "pbonzini@redhat.com"
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
# gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [full]
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* remotes/bonzini/tags/for-upstream-kconfig: (54 commits)
  kconfig: add documentation
  .travis.yml: test that no-default-device builds do not regress
  xtensa-softmmu.mak: express dependencies with Kconfig
  unicore32-softmmu.mak: express dependencies with Kconfig
  sparc64-softmmu.mak: express dependencies with Kconfig
  sparc-softmmu.mak: express dependencies with Kconfig
  sh4-softmmu.mak: express dependencies with Kconfig
  s390x: express dependencies with Kconfig
  riscv-softmmu.mak: replace CONFIG_* with Kconfig "select" directives
  or1k-softmmu.mak: express dependencies with Kconfig
  nios2-softmmu.mak: express dependencies with Kconfig
  moxie-softmmu.mak: express dependencies with Kconfig
  microblaze-softmmu.mak: express dependencies with Kconfig
  m68k-softmmu.mak: express dependencies with Kconfig
  lm32-softmmu.mak: express dependencies with Kconfig
  hppa-softmmu.mak: express dependencies with Kconfig
  cris-softmmu.mak: express dependencies with Kconfig
  alpha-softmmu.mak: express dependencies with Kconfig
  ppc: Express dependencies of the embedded machines with kconfig
  ppc: Express dependencies of the Sam460EX machines with kconfig
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
5 years agotarget/hppa: Optimize blr r0,rn
Richard Henderson [Thu, 21 Feb 2019 23:29:39 +0000 (15:29 -0800)]
target/hppa: Optimize blr r0,rn

We can eliminate an extra TB in this case, which merely
loads a "return address" into rn.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
5 years agotarget/hppa: Do not return freed temporary
Richard Henderson [Thu, 21 Feb 2019 22:01:07 +0000 (14:01 -0800)]
target/hppa: Do not return freed temporary

For priv levels 1 & 2, we were doing so from do_ibranch_priv.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
5 years agokconfig: add documentation
Paolo Bonzini [Tue, 12 Feb 2019 12:06:51 +0000 (13:06 +0100)]
kconfig: add documentation

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years ago.travis.yml: test that no-default-device builds do not regress
Paolo Bonzini [Thu, 31 Jan 2019 14:57:53 +0000 (15:57 +0100)]
.travis.yml: test that no-default-device builds do not regress

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoxtensa-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:27 +0000 (12:16 +0100)]
xtensa-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agounicore32-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:27 +0000 (12:16 +0100)]
unicore32-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agosparc64-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:27 +0000 (12:16 +0100)]
sparc64-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agosparc-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:27 +0000 (12:16 +0100)]
sparc-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agosh4-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:27 +0000 (12:16 +0100)]
sh4-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Note that USB_OHCI was missing (it was brought in via pci.mak,
but r2d needs the sysbus version) and SERIAL is not used.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agos390x: express dependencies with Kconfig
Thomas Huth [Tue, 29 Jan 2019 09:42:14 +0000 (10:42 +0100)]
s390x: express dependencies with Kconfig

Instead of hard-coding all config switches in the config file
default-configs/s390x-softmmu.mak, let's use the new Kconfig files
to express the necessary dependencies: The S390_CCW_VIRTIO config switch
for the "s390-ccw-virtio" machine now selects all non-optional devices.

And since we already have the VIRTIO_PCI and VIRTIO_MMIO config switches
for the other two virtio transports, this patch also introduces a new
config switch VIRTIO_CCW for the third, s390x-specific virtio transport,
so that all three virtio transports are now handled in the same way.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoriscv-softmmu.mak: replace CONFIG_* with Kconfig "select" directives
Paolo Bonzini [Tue, 29 Jan 2019 11:16:27 +0000 (12:16 +0100)]
riscv-softmmu.mak: replace CONFIG_* with Kconfig "select" directives

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoor1k-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:27 +0000 (12:16 +0100)]
or1k-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agonios2-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:27 +0000 (12:16 +0100)]
nios2-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agomoxie-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:26 +0000 (12:16 +0100)]
moxie-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Moxie does not use VGA, ISA or RTC, and only has a memory-mapped
serial port.  Adjust for the correct dependencies.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agomicroblaze-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:26 +0000 (12:16 +0100)]
microblaze-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agom68k-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:26 +0000 (12:16 +0100)]
m68k-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agolm32-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:26 +0000 (12:16 +0100)]
lm32-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agohppa-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 14:04:49 +0000 (15:04 +0100)]
hppa-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Note that the Dino board uses a memory mapped 16550 UART and
therefore only CONFIG_SERIAL is needed, not CONFIG_SERIAL_ISA.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agocris-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:26 +0000 (12:16 +0100)]
cris-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoalpha-softmmu.mak: express dependencies with Kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:26 +0000 (12:16 +0100)]
alpha-softmmu.mak: express dependencies with Kconfig

%-softmmu.mak only keep boards and optional device
definitions in Kconfig mode.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoppc: Express dependencies of the embedded machines with kconfig
Thomas Huth [Thu, 31 Jan 2019 13:53:30 +0000 (14:53 +0100)]
ppc: Express dependencies of the embedded machines with kconfig

This makes it much easier if the users want to disable some of
the embedded machines for their builds.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoppc: Express dependencies of the Sam460EX machines with kconfig
Thomas Huth [Thu, 31 Jan 2019 13:53:29 +0000 (14:53 +0100)]
ppc: Express dependencies of the Sam460EX machines with kconfig

Most of the dependencies are now directly selected by the SAM460EX
switch. We can drop CONFIG_VGA_CIRRUS since this device is already
selected automatically when CONFIG_PCI_DEVICES is set.

Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoppc: Express dependencies of the Mac machines with kconfig
Thomas Huth [Thu, 31 Jan 2019 13:53:28 +0000 (14:53 +0100)]
ppc: Express dependencies of the Mac machines with kconfig

This will make it for example easier if the users want to disable
one of the two machines for their builds.

Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoppc: Express dependencies of the 'prep' and '40p' machines with kconfig
Thomas Huth [Thu, 31 Jan 2019 13:53:27 +0000 (14:53 +0100)]
ppc: Express dependencies of the 'prep' and '40p' machines with kconfig

Select the required devices in hw/ppc/Kconfig instead, so that
ppc-softmmu.mak only contains the user-selectable PREP switch.
Plug-in devices like NE2000_ISA are pulled in automatically by the
Kconfig build system now.

Cc: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoppc64: Express dependencies of 'pseries' and 'powernv' machines with kconfig
Thomas Huth [Thu, 31 Jan 2019 13:53:26 +0000 (14:53 +0100)]
ppc64: Express dependencies of 'pseries' and 'powernv' machines with kconfig

The POWERNV switch should always select ISA_IPMI_BT, then the other
IPMI options are turned on automatically now.
CONFIG_DIMM should always be selected by the pseries machine,
which in turn depends on CONFIG_MEM_DEVICE since DIMM implements
this interface.
CONFIG_VIRTIO_VGA can be dropped from default-configs/ppc64-softmmu.mak
completely since this device is already automatically enabled via
hw/display/Kconfig now.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoi386-softmmu.mak: remove all CONFIG_* except boards definitions
Yang Zhong [Wed, 23 Jan 2019 06:56:16 +0000 (14:56 +0800)]
i386-softmmu.mak: remove all CONFIG_* except boards definitions

%-softmmu.mak only keep boards definitions in Kconfig mode.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <20190123065618.3520-43-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoipmi: express dependencies with kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:25 +0000 (12:16 +0100)]
ipmi: express dependencies with kconfig

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <20190123065618.3520-36-yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agosd: express dependencies with kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:25 +0000 (12:16 +0100)]
sd: express dependencies with kconfig

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agossi: express dependencies with kconfig
Paolo Bonzini [Tue, 29 Jan 2019 11:16:25 +0000 (12:16 +0100)]
ssi: express dependencies with kconfig

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoisa: express SuperIO dependencies with Kconfig
Paolo Bonzini [Fri, 25 Jan 2019 06:21:49 +0000 (07:21 +0100)]
isa: express SuperIO dependencies with Kconfig

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotpm: express dependencies with Kconfig
Paolo Bonzini [Wed, 23 Jan 2019 06:56:07 +0000 (14:56 +0800)]
tpm: express dependencies with Kconfig

This automatically removes the TPM backends from the
binary altogether if no front-ends are selected.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agovirtio: express virtio dependencies with Kconfig
Yang Zhong [Wed, 23 Jan 2019 06:56:15 +0000 (14:56 +0800)]
virtio: express virtio dependencies with Kconfig

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-42-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agovfio: express vfio dependencies with Kconfig
Paolo Bonzini [Wed, 23 Jan 2019 18:31:21 +0000 (19:31 +0100)]
vfio: express vfio dependencies with Kconfig

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agohyperv: express dependencies with kconfig
Yang Zhong [Wed, 23 Jan 2019 06:56:14 +0000 (14:56 +0800)]
hyperv: express dependencies with kconfig

remove default-configs/hyperv.mak and make dependencies
with Kconfig.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-41-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agodisplay: express dependencies with kconfig
Yang Zhong [Wed, 23 Jan 2019 06:56:13 +0000 (14:56 +0800)]
display: express dependencies with kconfig

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-40-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoptimer: express dependencies with Kconfig
Paolo Bonzini [Wed, 23 Jan 2019 06:56:12 +0000 (14:56 +0800)]
ptimer: express dependencies with Kconfig

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-39-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoi2c: express dependencies with Kconfig
Paolo Bonzini [Wed, 23 Jan 2019 06:56:11 +0000 (14:56 +0800)]
i2c: express dependencies with Kconfig

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-38-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoi386: express dependencies with Kconfig
Paolo Bonzini [Wed, 23 Jan 2019 06:56:10 +0000 (14:56 +0800)]
i386: express dependencies with Kconfig

This way, the default-configs file only need to specify the boards
and any optional devices.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <20190123065618.3520-37-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoisa: express dependencies with kconfig
Paolo Bonzini [Wed, 23 Jan 2019 06:56:09 +0000 (14:56 +0800)]
isa: express dependencies with kconfig

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <20190123065618.3520-36-yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoscsi: express dependencies with Kconfig
Paolo Bonzini [Wed, 23 Jan 2019 06:56:07 +0000 (14:56 +0800)]
scsi: express dependencies with Kconfig

This automatically removes the SCSI subsystem from the
binary altogether if no controllers are selected.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <20190123065618.3520-34-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoblock: fix recursion in hw/block/dataplane
Paolo Bonzini [Thu, 7 Feb 2019 17:37:38 +0000 (18:37 +0100)]
block: fix recursion in hw/block/dataplane

There are Xen files in hw/block/dataplane that should be compiled even if
virtio-blk is disabled.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agobuild: convert usb.mak to Kconfig
Paolo Bonzini [Wed, 23 Jan 2019 06:56:06 +0000 (14:56 +0800)]
build: convert usb.mak to Kconfig

Instead of including the same list of devices for each target,
let the host controllers select CONFIG_USB and make the devices
default to present whenever USB is available.

Done with the following script:
  while read i; do
     i=${i%=y}; i=${i#CONFIG_}
     sed -i -e'/^config '$i'$/!b' -en \
            -e'a\' -e'    default y\' -e'    depends on USB' \
          `grep -lw $i hw/*/Kconfig`
  done < default-configs/usb.mak

followed by adding "select USB" on the host controllers.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-33-yang.zhong@intel.com>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agobuild: convert sound.mak to Kconfig
Paolo Bonzini [Wed, 23 Jan 2019 06:56:05 +0000 (14:56 +0800)]
build: convert sound.mak to Kconfig

There is really nothing special in these devices; they are just
ISA devices.  Instead of including them for each target,
set CONFIG_ISA_BUS to true, and make the devices default to present
whenever ISA is available.  More conversion of ISA devices will
follow.

Done with the following script:

  while read i; do
     i=${i%=y}; i=${i#CONFIG_}
     sed -i -e'/^config '$i'$/!b' -en \
            -e'a\' -e'    default y\' -e'    depends on ISA_BUS' \
          `grep -lw $i hw/*/Kconfig`
  done < default-configs/sound.mak

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-32-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agobuild: convert pci.mak to Kconfig
Paolo Bonzini [Wed, 23 Jan 2019 06:56:04 +0000 (14:56 +0800)]
build: convert pci.mak to Kconfig

Instead of including the same list of devices for each target,
set CONFIG_PCI to true, and make the devices default to present
whenever PCI is available.  However, s390x does not want all the
PCI devices, so there is a separate symbol to enable them.

Done mostly with the following script:

  while read i; do
     i=${i%=y}; i=${i#CONFIG_}
     sed -i -e'/^config '$i'$/!b' -en \
            -e'a\' -e'    default y if PCI_DEVICES\' -e'    depends on PCI' \
          `grep -lw $i hw/*/Kconfig`
  done < default-configs/pci.mak

followed by replacing a few "depends on" clauses with "select"
whenever the symbol is not really related to PCI.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-31-yang.zhong@intel.com>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agohw/pci/Makefile.objs: make pcie configurable
Yang Zhong [Wed, 23 Jan 2019 06:56:03 +0000 (14:56 +0800)]
hw/pci/Makefile.objs: make pcie configurable

Make pcie splited from pci and make it configurable.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-30-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoide: express dependencies with Kconfig
Paolo Bonzini [Wed, 23 Jan 2019 06:56:02 +0000 (14:56 +0800)]
ide: express dependencies with Kconfig

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-29-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agokconfig: introduce CONFIG_TEST_DEVICES
Paolo Bonzini [Fri, 25 Jan 2019 05:48:56 +0000 (06:48 +0100)]
kconfig: introduce CONFIG_TEST_DEVICES

Devices that are mostly used for testing purposes (for example in
endianness-test) will be moved under a new symbol CONFIG_TEST_DEVICES
that can be disabled in the default-configs file.  This makes
it easier to drop this code from QEMU if desirable.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agominikconfig: implement allnoconfig and defconfig modes
Paolo Bonzini [Wed, 23 Jan 2019 06:56:17 +0000 (14:56 +0800)]
minikconfig: implement allnoconfig and defconfig modes

Apart from defconfig (which is a no-op),
allyesconfig/allnoconfig/randcondfig can be implemented simply by ignoring
the RHS of assignments and "default" statements.  The RHS is replaced
respectively by "true", "false" or a random value.

However, allyesconfig and randconfig do not quite work, because all the
files for hw/ARCH/Kconfig are sourced and therefore you could end up
enabling some ARM boards in x86 or things like that.  This is left for
future work, but I am leaving it in to help debugging minikconf itself.

allnoconfig mode is tied to a new configure option, --without-default-devices.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agobuild: switch to Kconfig
Paolo Bonzini [Wed, 23 Jan 2019 06:56:01 +0000 (14:56 +0800)]
build: switch to Kconfig

The make_device_config.sh script is replaced by minikconf, which
is modified to support the same command line as its predecessor.

The roots of the parsing are default-configs/*.mak, Kconfig.host and
hw/Kconfig.  One difference with make_device_config.sh is that all symbols
have to be defined in a Kconfig file, including those coming from the
configure script.  This is the reason for the Kconfig.host file introduced
in the previous patch. Whenever a file in default-configs/*.mak used
$(...) to refer to a config-host.mak symbol, this is replaced by a
Kconfig dependency; this part must be done already in this patch
for bisectability.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-28-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agokconfig: introduce kconfig files
Paolo Bonzini [Wed, 23 Jan 2019 06:56:00 +0000 (14:56 +0800)]
kconfig: introduce kconfig files

The Kconfig files were generated mostly with this script:

  for i in `grep -ho CONFIG_[A-Z0-9_]* default-configs/* | sort -u`; do
    set fnord `git grep -lw $i -- 'hw/*/Makefile.objs' `
    shift
    if test $# = 1; then
      cat >> $(dirname $1)/Kconfig << EOF
config ${i#CONFIG_}
    bool

EOF
      git add $(dirname $1)/Kconfig
    else
      echo $i $*
    fi
  done
  sed -i '$d' hw/*/Kconfig
  for i in hw/*; do
    if test -d $i && ! test -f $i/Kconfig; then
      touch $i/Kconfig
      git add $i/Kconfig
    fi
  done

Whenever a symbol is referenced from multiple subdirectories, the
script prints the list of directories that reference the symbol.
These symbols have to be added manually to the Kconfig files.

Kconfig.host and hw/Kconfig were created manually.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Message-Id: <20190123065618.3520-27-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agohw/display: make edid configurable
Yang Zhong [Wed, 23 Jan 2019 06:55:59 +0000 (14:55 +0800)]
hw/display: make edid configurable

Use CONFIG_EDID to make edid-generate.c and edid-region.c
configurable.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20190123065618.3520-26-yang.zhong@intel.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agominikconfig: add semantic analysis
Paolo Bonzini [Wed, 23 Jan 2019 06:55:58 +0000 (14:55 +0800)]
minikconfig: add semantic analysis

There are three parts in the semantic analysis:

1) evaluating expressions.  This is done as a simple visit
of the Expr nodes.

2) ordering clauses.  This is done by constructing a graph of variables.
There is an edge from X to Y if Y depends on X, if X selects Y, or if
X appears in a conditional selection of Y; in other words, if the value
of X can affect the value of Y.  Each clause has a "destination" variable
whose value can be affected by the clause, and clauses will be processed
according to a topological sorting of their destination variables.
Defaults are processed after all other clauses with the same destination.

3) deriving the value of the variables.  This is done by processing
the clauses in the topological order provided by the previous step.
A "depends on" clause will force a variable to False, a "select" clause
will force a variable to True, an assignment will force a variable
to its RHS.  A default will set a variable to its RHS if it has not
been set before.  Because all variables have a default, after visiting
all clauses all variables will have been set.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20190123065618.3520-25-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agominikconfig: add AST
Paolo Bonzini [Wed, 23 Jan 2019 06:55:57 +0000 (14:55 +0800)]
minikconfig: add AST

Add Python classes that represent the Kconfig abstract syntax tree.
The abstract syntax tree is stored as a list of clauses.  For example:

    config FOO
        depends on BAR
        select BAZ

is represented as three clauses:

    FOO depends on BAR
    FOO default n
    select BAZ if FOO

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20190123065618.3520-24-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agominikconfig: add parser skeleton
Paolo Bonzini [Wed, 23 Jan 2019 06:55:56 +0000 (14:55 +0800)]
minikconfig: add parser skeleton

This implements a scanner and recursive descent parser for Kconfig-like
configuration files.  The only "action" of the parser is for now to
detect undefined variables and process include files.

The main differences between Kconfig and this are:

* only the "bool" type is supported

* variables can only be defined once

* choices are not supported (but they could be added as syntactic
sugar for multiple Boolean values)

* menus and other graphical concepts (prompts, help text) are not
supported

* assignments ("CONFIG_FOO=y", "CONFIG_FOO=n") are parsed as part
of the Kconfig language, not as a separate file.

The idea was originally by Ákos Kovács, but I could not find his
implementation so I had to redo it.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20190123065618.3520-23-yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoxtensa: rename CONFIG_XTENSA_FPGA to CONFIG_XTENSA_XTFPGA
Paolo Bonzini [Wed, 20 Feb 2019 17:45:35 +0000 (18:45 +0100)]
xtensa: rename CONFIG_XTENSA_FPGA to CONFIG_XTENSA_XTFPGA

Match the symbol name that is used e.g. in Linux (drivers/spi/Kconfig).

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years ago9pfs: remove unnecessary conditionals
Paolo Bonzini [Wed, 20 Feb 2019 16:49:26 +0000 (17:49 +0100)]
9pfs: remove unnecessary conditionals

The VIRTIO_9P || VIRTFS && XEN condition can be computed in hw/Makefile.objs,
removing an "if" from hw/9pfs/Makefile.objs.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoMerge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-4.0-pull-request...
Peter Maydell [Thu, 7 Mar 2019 18:40:43 +0000 (18:40 +0000)]
Merge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-4.0-pull-request' into staging

- Update netlink types to linux v5.0
- fix accept4/getpeername/getsockname/recvfrom/recvmsg/read
- add/fix ELF_PLATFORM ofr aarch64 and arm
- fix "may be used uninitialized" warnings
- Fix breakpoint support in Nios
- Nicer strace output of chroot() syscall

# gpg: Signature made Thu 07 Mar 2019 10:06:16 GMT
# gpg:                using RSA key F30C38BD3F2FBE3C
# gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" [full]
# gpg:                 aka "Laurent Vivier <laurent@vivier.eu>" [full]
# gpg:                 aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" [full]
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F  5173 F30C 38BD 3F2F BE3C

* remotes/vivier2/tags/linux-user-for-4.0-pull-request:
  linux-user: add new netlink types
  linux-user: Nicer strace output of chroot() syscall
  linux-user: fix "may be used uninitialized" warnings
  linux-user: don't short-circuit read with zero length
  Fix breakpoint support in Nios II user-mode emulation.
  linux-user: fix emulation of accept4/getpeername/getsockname/recvfrom syscalls
  linux-user: Fix ELF_PLATFORM for aarch64_be-linux-user
  linux-user: Add ELF_PLATFORM for arm
  linux-user: fix recvmsg emulation

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
5 years agoqos-test: megasas test node
Paolo Bonzini [Thu, 29 Nov 2018 10:35:13 +0000 (11:35 +0100)]
qos-test: megasas test node

Convert tests/megasas-test to a driver node; the code to discover the PCI
device is replaced by generic qgraph code.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: e1000 test node
Emanuele Giuseppe Esposito [Fri, 17 Aug 2018 14:16:22 +0000 (16:16 +0200)]
qos-test: e1000 test node

Convert tests/e1000-test to a driver node; currently it runs
the PCI nop test only, therefore we're not placing it in tests/libqos.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: eepro100 test node
Emanuele Giuseppe Esposito [Fri, 17 Aug 2018 14:13:25 +0000 (16:13 +0200)]
qos-test: eepro100 test node

Convert tests/eepro100-test to a driver node; currently it runs
the PCI nop test only, therefore we're not placing it in tests/libqos.
For now, all nodes share the same constructor and destructor.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: es1370 test node
Emanuele Giuseppe Esposito [Fri, 17 Aug 2018 14:03:36 +0000 (16:03 +0200)]
qos-test: es1370 test node

Convert tests/es1370-test to a driver node; currently it runs
the PCI nop test only, therefore we're not placing it in tests/libqos.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: vmxnet3 test node
Emanuele Giuseppe Esposito [Fri, 17 Aug 2018 13:52:52 +0000 (15:52 +0200)]
qos-test: vmxnet3 test node

Convert tests/vmxnet3-test to a driver node; currently it runs
the PCI nop test only, therefore we're not placing it in tests/libqos.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: usb-hcd-ohci test node
Emanuele Giuseppe Esposito [Fri, 17 Aug 2018 13:47:17 +0000 (15:47 +0200)]
qos-test: usb-hcd-ohci test node

Convert tests/usb-hcd-ohci-test to a driver node; currently it runs
the PCI nop test only, therefore we're not placing it in tests/libqos.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: spapr-phb test node
Emanuele Giuseppe Esposito [Fri, 17 Aug 2018 11:35:12 +0000 (13:35 +0200)]
qos-test: spapr-phb test node

Convert tests/spapr-phb-test to a qgraph test node,
spapr-phb-test. This test adds another
spapr-pci-host-bridge device in the
ppc64/pseries machine

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: pcnet test node
Emanuele Giuseppe Esposito [Fri, 17 Aug 2018 11:22:12 +0000 (13:22 +0200)]
qos-test: pcnet test node

Convert tests/pcnet-test to a driver node; currently it runs
the PCI nop test only, therefore we're not placing it in tests/libqos.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: nvme test node
Emanuele Giuseppe Esposito [Fri, 17 Aug 2018 11:16:07 +0000 (13:16 +0200)]
qos-test: nvme test node

Convert tests/nvme-test to a driver node; the code to discover the PCI
device is replaced by generic qgraph code, therefore we're not placing it in tests/libqos.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: ne2k_pci test node
Emanuele Giuseppe Esposito [Fri, 17 Aug 2018 11:04:12 +0000 (13:04 +0200)]
qos-test: ne2k_pci test node

Convert tests/ne2000-test to a driver node; currently it runs
the PCI nop test only, therefore we're not placing it in tests/libqos.

The actual device consumed by the test is ne2k_pci.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: ipoctal232 test node
Emanuele Giuseppe Esposito [Fri, 17 Aug 2018 10:48:27 +0000 (12:48 +0200)]
qos-test: ipoctal232 test node

Convert tests/ipoctal232-test to a driver node; currently it runs
the PCI nop test only, therefore we're not placing it in tests/libqos.

This test creates a tpci200 node that produces an interface ipack
consumed by the ipoctal232 device.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: tpci200 test node
Emanuele Giuseppe Esposito [Fri, 17 Aug 2018 12:04:33 +0000 (14:04 +0200)]
qos-test: tpci200 test node

Convert tests/tpci200-test to a driver node; currently it runs
the PCI nop test only, but it also produces the ipack interface.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: ac97 test node
Emanuele Giuseppe Esposito [Fri, 17 Aug 2018 10:01:59 +0000 (12:01 +0200)]
qos-test: ac97 test node

Convert tests/ac97-test to a driver node; currently it runs
the PCI nop test only, therefore we're not placing it in tests/libqos.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests: move virtio entirely to qos-test
Paolo Bonzini [Fri, 5 Oct 2018 13:02:44 +0000 (15:02 +0200)]
tests: move virtio entirely to qos-test

The only remaining test that needs libqos-virtio-obj-y is drive_del-test,
which really only needs a function.  Move that function to the test
and remove libqos-virtio-obj-y.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/libqos: remove pre-qgraph QVirtioPCIDevice API
Paolo Bonzini [Thu, 15 Nov 2018 11:28:38 +0000 (12:28 +0100)]
tests/libqos: remove pre-qgraph QVirtioPCIDevice API

Remove the qvirtio_pci_device_find* and qvirtio_pci_device_free
APIs, now that they do not have any users.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: virtio-scsi test node
Emanuele Giuseppe Esposito [Tue, 31 Jul 2018 09:19:06 +0000 (11:19 +0200)]
qos-test: virtio-scsi test node

Convert tests/virtio-scsi-test in qgraph test node,
virtio-scsi-test. This test consumes a virtio-scsi interface
and checks that its function return the expected values.

Some functions are implemented only for virtio-scsi-pci, so they
don't consume virtio-scsi, but virtio-scsi-pci

Note that this test does not allocate any virtio-scsi structure,
it's all done by the qtest walking graph mechanism

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/libqos: virtio-scsi driver and interface nodes
Emanuele Giuseppe Esposito [Tue, 31 Jul 2018 09:17:38 +0000 (11:17 +0200)]
tests/libqos: virtio-scsi driver and interface nodes

Add qgraph nodes for virtio-scsi-pci and virtio-scsi-device.
Both nodes produce virtio-scsi, but virtio-scsi-pci receives
a pci-bus and uses virtio-pci QOSGraphObject and its functions,
while virtio-scsi-device receives a virtio and implements
its own functions

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: vhost-user test node
Paolo Bonzini [Thu, 15 Nov 2018 09:08:28 +0000 (10:08 +0100)]
qos-test: vhost-user test node

Convert tests/virtio-net-test in qgraph test node,
virtio-net-test. This test consumes a virtio-net interface
and checks that its function return the expected values.

Note that this test does not allocate any virtio-net structure,
it's all done by the qtest walking graph mechanism.  Nevertheless,
vhost-user-test is a bit more complex than the other tests, because
it requires more complicated setup of back-ends and thus almost each
test has a slightly different opts.before function.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agovhost-user-test: always use 256 MiB of guest memory
Paolo Bonzini [Thu, 15 Nov 2018 09:50:15 +0000 (10:50 +0100)]
vhost-user-test: always use 256 MiB of guest memory

Some tests are using a small amount of RAM for the guest (2 MiB) in order to
save host memory, others are using 512 MiB.

However, pSeries machines only support multiples of 256 MiB.  Using 256
MiB of memory does not use more host memory than now, even for the
migration test that starts two guests, and it allows running the test on
pSeries too.

This of course is not optimal, it would be nice to let the qgraph machine object
judge how much memory to provide.  This is left for future work, together
with a more generic framework that wraps the QEMU command line.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/libqos: support multiqueue for virtio-net
Paolo Bonzini [Mon, 22 Oct 2018 10:37:21 +0000 (12:37 +0200)]
tests/libqos: support multiqueue for virtio-net

Initialize the additional virtqueues if they are supported.
This is needed to switch vhost-user-test's multiqueue test
to the virtio-net qgraph.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: virtio-net test node
Emanuele Giuseppe Esposito [Mon, 30 Jul 2018 20:22:20 +0000 (22:22 +0200)]
qos-test: virtio-net test node

Convert tests/virtio-net-test in qgraph test node,
virtio-net-test. This test consumes a virtio-net interface
and checks that its function return the expected values.

Some functions are implemented only for virtio-net-pci, so they
don't consume virtio-net, but virtio-net-pci

Note that this test does not allocate any virtio-net structure,
it's all done by the qtest walking graph mechanism

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/libqos: virtio-net driver and interface nodes
Emanuele Giuseppe Esposito [Mon, 30 Jul 2018 20:21:42 +0000 (22:21 +0200)]
tests/libqos: virtio-net driver and interface nodes

Add qgraph nodes for virtio-net-pci and virtio-net-device.
Both nodes produce virtio-net, but virtio-net-pci receives
a pci-bus and overrides virtio-pci QOSGraphObject and its functions,
while virtio-net-device receives a virtio and implements
its own functions

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: virtio-blk test node
Paolo Bonzini [Thu, 29 Nov 2018 11:51:08 +0000 (12:51 +0100)]
qos-test: virtio-blk test node

Convert tests/virtio-blk-test in qgraph test node,
virtio-blk-test. This test consumes a virtio-blk interface
and checks that its function return the expected values.

Some functions are implemented only for virtio-blk-pci, so they
don't consume virtio-blk, but virtio-blk-pci

Note that this test does not allocate any virtio-blk structure,
it's all done by the qtest walking graph mechanism.  The allocator
is also provided by qgraph; remove malloc-generic.c and malloc-generic.h
which are not used anymore.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/libqos: virtio-blk driver and interface nodes
Emanuele Giuseppe Esposito [Thu, 26 Jul 2018 09:25:02 +0000 (11:25 +0200)]
tests/libqos: virtio-blk driver and interface nodes

Add qgraph nodes for virtio-blk-pci and virtio-blk-device.
Both nodes produce virtio-blk, but virtio-blk-pci receives
a pci-bus and uses virtio-pci QOSGraphObject and functions,
while virtio-blk-device receives a virtio and implements
its own functions

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: virtio-rng test node
Emanuele Giuseppe Esposito [Thu, 26 Jul 2018 09:24:50 +0000 (11:24 +0200)]
qos-test: virtio-rng test node

Convert tests/virtio-rng-test in qgraph test node,
virtio-rng-test. This test consumes a virtio-rng interface
and checks that its function return the expected values.

Some functions are implemented only for virtio-rng-pci, so they
don't consume virtio-rng, but virtio-rng-pci

Note that this test does not allocate any virtio-rng structure,
it's all done by the qtest walking graph mechanism

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/libqos: virtio-rng driver and interface nodes
Emanuele Giuseppe Esposito [Wed, 25 Jul 2018 21:55:38 +0000 (23:55 +0200)]
tests/libqos: virtio-rng driver and interface nodes

Add qgraph nodes for virtio-rng-pci and virtio-rng-device.
Both nodes produce virtio-rng, but virtio-rng-pci receives
a pci-bus and uses virtio-pci QOSGraphObject and functions,
while virtio-rng-device receives a virtio and implements
its own functions

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/qgraph: remove virtio-balloon-test
Emanuele Giuseppe Esposito [Wed, 25 Jul 2018 21:39:36 +0000 (23:39 +0200)]
tests/qgraph: remove virtio-balloon-test

The tests/virtio-balloon-test is covered by generic virtio tests,
so remove it.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
5 years agotests/libqos: virtio-balloon driver and interface nodes
Emanuele Giuseppe Esposito [Wed, 25 Jul 2018 21:39:13 +0000 (23:39 +0200)]
tests/libqos: virtio-balloon driver and interface nodes

Add qgraph nodes for virtio-balloon-pci and virtio-balloon-device.
Both nodes produce virtio-balloon, but virtio-balloon-pci receives
a pci-bus and uses virtio-pci QOSGraphObject and functions,
while virtio-balloon-device receives a virtio and implements
its own functions

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: virtio-9p test node
Emanuele Giuseppe Esposito [Fri, 20 Jul 2018 13:42:11 +0000 (15:42 +0200)]
qos-test: virtio-9p test node

Convert tests/virtio-9p-test into a qgraph test node.
This test consumes a virtio-9p interface and checks that its functions
return the expected values.

Note that this test does not allocate any virtio-9p structure,
it's all done by the qtest walking graph mechanism

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/libqos: virtio-9p driver and interface nodes
Emanuele Giuseppe Esposito [Fri, 20 Jul 2018 13:41:46 +0000 (15:41 +0200)]
tests/libqos: virtio-9p driver and interface nodes

Add qgraph nodes for virtio-9p-pci and virtio-9p-device.
Both nodes produce virtio-9p, but virtio-9p-pci receives
a pci-bus and overrides virtio-pci QOSGraphObject and its functions,
while virtio-9p-device receives a virtio and implements
its own functions

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: virtio-console and virtio-serial test node
Emanuele Giuseppe Esposito [Wed, 18 Jul 2018 15:18:46 +0000 (17:18 +0200)]
qos-test: virtio-console and virtio-serial test node

Convert tests/virtio-console-test and tests/virtio-serial-test
in qgraph test node. This test consumes a virtio-serial interface
and checks that its function return the expected values.

Note that this test does not allocate any virtio-console or
virtio-serial structure, it's all done by the qtest walking graph mechanism

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/libqos: virtio-serial driver and interface nodes
Emanuele Giuseppe Esposito [Tue, 24 Jul 2018 17:40:14 +0000 (19:40 +0200)]
tests/libqos: virtio-serial driver and interface nodes

Add qgraph nodes for virtio-serial-pci and virtio-serial-device.
Both nodes produce virtio-serial, but virtio-serial-pci receives
a pci-bus and uses virtio-pci QOSGraphObject and functions,
while virtio-serial-device receives a virtio-bus and implements
its own functions

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/qgraph: add generic virtio testcases
Paolo Bonzini [Fri, 5 Oct 2018 17:00:19 +0000 (19:00 +0200)]
tests/qgraph: add generic virtio testcases

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/libqos: arm/virt machine node
Emanuele Giuseppe Esposito [Wed, 18 Jul 2018 14:32:49 +0000 (16:32 +0200)]
tests/libqos: arm/virt machine node

Add arm/virt machine to the graph. This machine contains virtio-mmio, so
its constructor must take care of setting it properly when called.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/libqos: virtio-mmio driver and interface nodes
Emanuele Giuseppe Esposito [Thu, 19 Jul 2018 13:14:44 +0000 (15:14 +0200)]
tests/libqos: virtio-mmio driver and interface nodes

Add virtio-mmio node in qgraph framework.
virtio-mmio produces virtio-bus, the interface consumed by all virtio-*-device
nodes.

Being a memory-mapped device, it doesn't have to provide a constructor
to qgraph, since it's always "contained" inside some other nodes.

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/libqos: remove global_qtest from virtio endianness checks
Paolo Bonzini [Sun, 7 Oct 2018 07:37:44 +0000 (09:37 +0200)]
tests/libqos: remove global_qtest from virtio endianness checks

This is needed to support migration tests with qgraph.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/libqos: virtio-pci driver and interface nodes
Emanuele Giuseppe Esposito [Wed, 18 Jul 2018 14:02:41 +0000 (16:02 +0200)]
tests/libqos: virtio-pci driver and interface nodes

Add QOSGraphObject to QVirtioPCIDevice structure, with a basic
constructor. virtio-pci is not present in qgraph, since it
will be used as starting point by its subclasses (virtio-*-pci)

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agoqos-test: e1000e test node
Emanuele Giuseppe Esposito [Fri, 20 Jul 2018 13:35:56 +0000 (15:35 +0200)]
qos-test: e1000e test node

Convert tests/e1000e-test in qgraph test node, e1000e-test. This test
consumes an e1000e interface and checks that its function return the
expected values.

Note that this test does not allocate any e1000e structure, it's all done by the
qtest walking graph mechanism

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 years agotests/libqos: e1000e driver and interface nodes
Emanuele Giuseppe Esposito [Fri, 20 Jul 2018 13:35:36 +0000 (15:35 +0200)]
tests/libqos: e1000e driver and interface nodes

Add qgraph nodes for virtio-e1000e.
It consumes a pci-bus, and it's directly used by tests
(e1000e is pci based).

Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>