* [Qemu-devel] [PULL v4 00/69] Misc patches for 2018-08-21
@ 2018-08-23 16:47 Paolo Bonzini
2018-08-23 16:47 ` [Qemu-devel] [PULL 14/69] tests: Skip old versioned machine types in quick testing mode Paolo Bonzini
2018-08-24 10:06 ` [Qemu-devel] [PULL v4 00/69] Misc patches for 2018-08-21 Peter Maydell
0 siblings, 2 replies; 3+ messages in thread
From: Paolo Bonzini @ 2018-08-23 16:47 UTC (permalink / raw)
To: qemu-devel
The following changes since commit 659b11e7a7239529cfdb4968418268ff9aa22d88:
Merge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-3.1-pull-request' into staging (2018-08-21 11:36:15 +0100)
are available in the Git repository at:
git://github.com/bonzini/qemu.git tags/for-upstream
for you to fetch changes up to b2e78fac6f27c36938353e477354778896adc08f:
KVM: cleanup unnecessary #ifdef KVM_CAP_... (2018-08-23 18:46:25 +0200)
----------------------------------------------------------------
* x86 TCG fixes for 64-bit call gates (Andrew)
* qumu-guest-agent freeze-hook tweak (Christian)
* pm_smbus improvements (Corey)
* Move validation to pre_plug for pc-dimm (David)
* Fix memory leaks (Eduardo, Marc-André)
* synchronization profiler (Emilio)
* Convert the CPU list to RCU (Emilio)
* LSI support for PPR Extended Message (George)
* vhost-scsi support for protection information (Greg)
* Mark mptsas as a storage device in the help (Guenter)
* checkpatch tweak cherry-picked from Linux (me)
* Typos, cleanups and dead-code removal (Julia, Marc-André)
* qemu-pr-helper support for old libmultipath (Murilo)
* Annotate fallthroughs (me)
* MemoryRegionOps cleanup (me, Peter)
* Make s390 qtests independent from libqos, which doesn't actually support it (me)
* Make cpu_get_ticks independent from BQL (me)
* Introspection fixes (Thomas)
* Support QEMU_MODULE_DIR environment variable (ryang)
----------------------------------------------------------------
Andrew Oates (2):
target-i386: Fix lcall/ljmp to call gate in IA-32e mode
target-i386: fix segment limit check in ljmp
Christian Ehrhardt (1):
qemu-guest-agent: freeze-hook to ignore dpkg files as well
Corey Minyard (8):
ipmi: Use proper struct reference for BT vmstate
i2c: pm_smbus: Clean up some style issues
i2c: pm_smbus: Fix the semantics of block I2C transfers
i2c: pm_smbus: Make the I2C block read command read-only
i2c: pm_smbus: Add block transfer capability
i2c: pm_smbus: Add interrupt handling
i2c: pm_smbus: Don't delay host status register busy bit when interrupts are enabled
i2c: pm_smbus: Add the ability to force block transfer enable
David Hildenbrand (4):
pc-dimm: assign and verify the "slot" property during pre_plug
util/oslib-win32: indicate alignment for qemu_anon_ram_alloc()
pc: drop memory region alignment check for 0
pc-dimm: assign and verify the "addr" property during pre_plug
Eduardo Habkost (1):
i386: Fix arch_query_cpu_model_expansion() leak
Emilio G. Cota (20):
seqlock: constify seqlock_read_begin
qsp: QEMU's Synchronization Profiler
qsp: add sort_by option to qsp_report
qsp: add qsp_reset
qsp: support call site coalescing
qsp: track BQL callers explicitly
tests/atomic_add-bench: add -p to enable sync profiler
vl: add -enable-sync-profile
hmp-commands: add sync-profile
hmp-commands-info: add sync-profile
rcu_queue: use atomic_set in QLIST_REMOVE_RCU
rcu_queue: remove barrier from QLIST_EMPTY_RCU
rcu_queue: add RCU QSIMPLEQ
rcu_queue: add RCU QTAILQ
test-rcu-list: access goflag with atomics
test-rcu-list: abstract the list implementation
tests: add test-list-simpleq
tests: add test-rcu-tailq
spapr: do not use CPU_FOREACH_REVERSE
qom: convert the CPU list to RCU
George Kennedy (1):
lsi_scsi: add support for PPR Extended Message
Greg Edwards (3):
vhost-user-scsi: move host_features into VHostSCSICommon
vhost-scsi: unify vhost-scsi get_features implementations
vhost-scsi: expose 't10_pi' property for VIRTIO_SCSI_F_T10_PI
Guenter Roeck (1):
scsi: mptsas: Mark as storage device
Heinrich Schuchardt (1):
checkpatch: allow space in more places before a bracket
Julia Suvorova (1):
chardev/char-fe: Fix typos
Marc-André Lureau (4):
megasas: fix sglist leak
update-linux-headers.sh: add qemu_fw_cfg.h
fw_cfg: import & use linux/qemu_fw_cfg.h
build-sys: remove glib_subprocess check
Murilo Opsfelder Araujo (1):
qemu-pr-helper: Fix build on CentOS 7
Paolo Bonzini (11):
tests: virtio: separate ccw tests from libqos
es1370: simplify MemoryRegionOps
fix "Missing break in switch" coverity reports
checkpatch: fix filename detection when using -f
MAINTAINERS: add maintainers for qtest
cpus: protect all icount computation with seqlock
seqlock: add QemuLockable support
cpus: protect TimerState writes with a spinlock
cpus: allow cpu_get_ticks out of BQL
target/i386: update MPX flags when CPL changes
KVM: cleanup unnecessary #ifdef KVM_CAP_...
Peter Maydell (1):
hw/intc/apic: Switch away from old_mmio
Prasad Singamsetty (1):
kvm: add call to qemu_add_opts() for -overcommit option
Thomas Huth (7):
tests/migration-test: Silence the kvm_hv message by default
net: Silence 'has no peer' messages in testing mode
hw/timer/mc146818rtc: White space clean-up
hw/timer/mc146818rtc: Fix introspection problem
tests: Skip old versioned machine types in quick testing mode
tests/device-introspection: Check that the qom-tree and qtree do not change
tests/device-introspect: Test with all machines, not only with "none"
ryang (1):
module: Use QEMU_MODULE_DIR as a search path
MAINTAINERS | 11 +-
accel/kvm/kvm-all.c | 2 -
configure | 27 +-
cpus-common.c | 4 +-
cpus.c | 186 +++---
disas/m68k.c | 1 +
dump.c | 2 +-
hmp-commands-info.hx | 22 +
hmp-commands.hx | 15 +
hmp.c | 24 +
hmp.h | 1 +
hw/acpi/piix4.c | 2 +-
hw/arm/pxa2xx.c | 2 +-
hw/audio/cs4231a.c | 1 +
hw/audio/es1370.c | 235 +-------
hw/audio/gusemu_hal.c | 1 +
hw/audio/sb16.c | 11 +-
hw/display/cg3.c | 1 +
hw/display/cirrus_vga.c | 3 +-
hw/i2c/pm_smbus.c | 254 ++++++--
hw/i2c/smbus.c | 37 +-
hw/i2c/smbus_ich9.c | 26 +-
hw/i386/pc.c | 16 +-
hw/intc/apic.c | 42 +-
hw/ipmi/isa_ipmi_bt.c | 68 ++-
hw/isa/vt82c686.c | 2 +-
hw/mem/pc-dimm.c | 61 +-
hw/misc/vmcoreinfo.c | 6 +-
hw/ppc/prep.c | 3 +
hw/ppc/spapr.c | 30 +-
hw/scsi/lsi53c895a.c | 4 +
hw/scsi/megasas.c | 2 +-
hw/scsi/mptsas.c | 1 +
hw/scsi/vhost-scsi-common.c | 3 +
hw/scsi/vhost-scsi.c | 3 +
hw/scsi/vhost-user-scsi.c | 28 +-
hw/timer/mc146818rtc.c | 20 +-
hw/timer/sh_timer.c | 1 +
include/chardev/char-fe.h | 10 +-
include/hw/i2c/pm_smbus.h | 24 +-
include/hw/i2c/smbus.h | 17 +-
include/hw/mem/pc-dimm.h | 5 +-
include/hw/misc/vmcoreinfo.h | 12 +-
include/hw/nvram/fw_cfg.h | 18 +-
include/hw/nvram/fw_cfg_keys.h | 45 --
include/hw/virtio/vhost-scsi-common.h | 1 +
include/hw/virtio/vhost-user-scsi.h | 1 -
include/qemu/main-loop.h | 4 +-
include/qemu/qht.h | 1 +
include/qemu/qsp.h | 29 +
include/qemu/rcu_queue.h | 135 ++++-
include/qemu/seqlock.h | 22 +-
include/qemu/thread-posix.h | 4 +-
include/qemu/thread-win32.h | 5 +-
include/qemu/thread.h | 66 ++-
include/qom/cpu.h | 11 +-
include/standard-headers/linux/qemu_fw_cfg.h | 97 ++++
linux-user/main.c | 2 +-
linux-user/syscall.c | 2 +-
monitor.c | 11 +
pc-bios/optionrom/linuxboot_dma.c | 4 +-
pc-bios/optionrom/optionrom.h | 15 +-
qemu-options.hx | 10 +
scripts/checkpatch.pl | 7 +-
scripts/qemu-guest-agent/fsfreeze-hook | 2 +-
scripts/update-linux-headers.sh | 4 +-
scsi/qemu-pr-helper.c | 4 +
stubs/iothread-lock.c | 2 +-
target/arm/helper.c | 1 +
target/i386/cpu.c | 9 +-
target/i386/cpu.h | 7 +-
target/i386/kvm.c | 8 -
target/i386/seg_helper.c | 196 +++++--
target/i386/translate.c | 2 +
target/s390x/cpu_models.c | 2 +-
tests/Makefile.include | 15 +-
tests/atomic_add-bench.c | 6 +-
tests/boot-order-test.c | 2 +-
tests/cpu-plug-test.c | 6 +-
tests/device-introspect-test.c | 55 +-
tests/fw_cfg-test.c | 2 +-
tests/libqos/malloc-pc.c | 2 +-
tests/libqtest.c | 52 +-
tests/libqtest.h | 4 +-
tests/migration-test.c | 20 +-
tests/qom-test.c | 2 +-
tests/test-char.c | 4 -
tests/test-hmp.c | 2 +-
tests/test-rcu-list.c | 92 ++-
tests/test-rcu-simpleq.c | 2 +
tests/test-rcu-tailq.c | 2 +
tests/test-x86-cpuid-compat.c | 6 -
tests/vhost-user-test.c | 4 -
tests/virtio-ccw-test.c | 110 ++++
util/Makefile.objs | 1 +
util/module.c | 22 +-
util/oslib-win32.c | 15 +-
util/qemu-thread-win32.c | 4 +-
util/qht.c | 47 +-
util/qsp.c | 828 +++++++++++++++++++++++++++
vl.c | 7 +-
101 files changed, 2529 insertions(+), 736 deletions(-)
delete mode 100644 include/hw/nvram/fw_cfg_keys.h
create mode 100644 include/qemu/qsp.h
create mode 100644 include/standard-headers/linux/qemu_fw_cfg.h
create mode 100644 tests/test-rcu-simpleq.c
create mode 100644 tests/test-rcu-tailq.c
create mode 100644 tests/virtio-ccw-test.c
create mode 100644 util/qsp.c
--
2.17.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Qemu-devel] [PULL 14/69] tests: Skip old versioned machine types in quick testing mode
2018-08-23 16:47 [Qemu-devel] [PULL v4 00/69] Misc patches for 2018-08-21 Paolo Bonzini
@ 2018-08-23 16:47 ` Paolo Bonzini
2018-08-24 10:06 ` [Qemu-devel] [PULL v4 00/69] Misc patches for 2018-08-21 Peter Maydell
1 sibling, 0 replies; 3+ messages in thread
From: Paolo Bonzini @ 2018-08-23 16:47 UTC (permalink / raw)
To: qemu-devel; +Cc: Thomas Huth
From: Thomas Huth <thuth@redhat.com>
The tests that check something for all machine types currently spend
a lot of time checking old machine types (like "pc-i440fx-2.0" for
example). The chances that we find something new there in addition
to checking the latest version of a machine type are pretty low, so
we should not waste the time of the developers by testing this again
and again in the "quick" testing mode.
Thus let's add some code to determine whether we are testing a current
machine type or an old one, and only test the old types if we are
running in "SPEED=slow" mode.
This decreases the testing time quite a bit now, e.g. the qom-test
now finishes within 4 seconds for qemu-system-x86_64 instead of 30
seconds when testing all machines.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1534419358-10932-6-git-send-email-thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
tests/cpu-plug-test.c | 6 ++---
tests/libqtest.c | 52 +++++++++++++++++++++++++++++++++++++++++--
tests/libqtest.h | 4 +++-
tests/qom-test.c | 2 +-
tests/test-hmp.c | 2 +-
5 files changed, 58 insertions(+), 8 deletions(-)
diff --git a/tests/cpu-plug-test.c b/tests/cpu-plug-test.c
index f5d57da60e..3e93c8e096 100644
--- a/tests/cpu-plug-test.c
+++ b/tests/cpu-plug-test.c
@@ -257,11 +257,11 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
- qtest_cb_for_every_machine(add_pc_test_case);
+ qtest_cb_for_every_machine(add_pc_test_case, g_test_quick());
} else if (g_str_equal(arch, "ppc64")) {
- qtest_cb_for_every_machine(add_pseries_test_case);
+ qtest_cb_for_every_machine(add_pseries_test_case, g_test_quick());
} else if (g_str_equal(arch, "s390x")) {
- qtest_cb_for_every_machine(add_s390x_test_case);
+ qtest_cb_for_every_machine(add_s390x_test_case, g_test_quick());
}
return g_test_run();
diff --git a/tests/libqtest.c b/tests/libqtest.c
index 852ccff1ce..1105c37e08 100644
--- a/tests/libqtest.c
+++ b/tests/libqtest.c
@@ -991,7 +991,53 @@ bool qtest_big_endian(QTestState *s)
return s->big_endian;
}
-void qtest_cb_for_every_machine(void (*cb)(const char *machine))
+static bool qtest_check_machine_version(const char *mname, const char *basename,
+ int major, int minor)
+{
+ char *newname;
+ bool is_equal;
+
+ newname = g_strdup_printf("%s-%i.%i", basename, major, minor);
+ is_equal = g_str_equal(mname, newname);
+ g_free(newname);
+
+ return is_equal;
+}
+
+static bool qtest_is_old_versioned_machine(const char *mname)
+{
+ const char *dash = strrchr(mname, '-');
+ const char *dot = strrchr(mname, '.');
+ const char *chr;
+ char *bname;
+ const int major = QEMU_VERSION_MAJOR;
+ const int minor = QEMU_VERSION_MINOR;
+ bool res = false;
+
+ if (dash && dot && dot > dash) {
+ for (chr = dash + 1; *chr; chr++) {
+ if (!qemu_isdigit(*chr) && *chr != '.') {
+ return false;
+ }
+ }
+ /*
+ * Now check if it is one of the latest versions. Check major + 1
+ * and minor + 1 versions as well, since they might already exist
+ * in the development branch.
+ */
+ bname = g_strdup(mname);
+ bname[dash - mname] = 0;
+ res = !qtest_check_machine_version(mname, bname, major + 1, 0) &&
+ !qtest_check_machine_version(mname, bname, major, minor + 1) &&
+ !qtest_check_machine_version(mname, bname, major, minor);
+ g_free(bname);
+ }
+
+ return res;
+}
+
+void qtest_cb_for_every_machine(void (*cb)(const char *machine),
+ bool skip_old_versioned)
{
QDict *response, *minfo;
QList *list;
@@ -1014,7 +1060,9 @@ void qtest_cb_for_every_machine(void (*cb)(const char *machine))
qstr = qobject_to(QString, qobj);
g_assert(qstr);
mname = qstring_get_str(qstr);
- cb(mname);
+ if (!skip_old_versioned || !qtest_is_old_versioned_machine(mname)) {
+ cb(mname);
+ }
}
qtest_end();
diff --git a/tests/libqtest.h b/tests/libqtest.h
index def1edaafa..1159b73d15 100644
--- a/tests/libqtest.h
+++ b/tests/libqtest.h
@@ -954,10 +954,12 @@ QDict *qmp_fd(int fd, const char *fmt, ...) GCC_FMT_ATTR(2, 3);
/**
* qtest_cb_for_every_machine:
* @cb: Pointer to the callback function
+ * @skip_old_versioned: true if versioned old machine types should be skipped
*
* Call a callback function for every name of all available machines.
*/
-void qtest_cb_for_every_machine(void (*cb)(const char *machine));
+void qtest_cb_for_every_machine(void (*cb)(const char *machine),
+ bool skip_old_versioned);
/**
* qtest_qmp_device_add:
diff --git a/tests/qom-test.c b/tests/qom-test.c
index e6f712cbd3..73c52af3bb 100644
--- a/tests/qom-test.c
+++ b/tests/qom-test.c
@@ -123,7 +123,7 @@ int main(int argc, char **argv)
{
g_test_init(&argc, &argv, NULL);
- qtest_cb_for_every_machine(add_machine_test_case);
+ qtest_cb_for_every_machine(add_machine_test_case, g_test_quick());
return g_test_run();
}
diff --git a/tests/test-hmp.c b/tests/test-hmp.c
index 5352c9c088..1a3a9c5099 100644
--- a/tests/test-hmp.c
+++ b/tests/test-hmp.c
@@ -158,7 +158,7 @@ int main(int argc, char **argv)
g_test_init(&argc, &argv, NULL);
- qtest_cb_for_every_machine(add_machine_test_case);
+ qtest_cb_for_every_machine(add_machine_test_case, g_test_quick());
/* as none machine has no memory by default, add a test case with memory */
qtest_add_data_func("hmp/none+2MB", g_strdup("none -m 2"), test_machine);
--
2.17.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PULL v4 00/69] Misc patches for 2018-08-21
2018-08-23 16:47 [Qemu-devel] [PULL v4 00/69] Misc patches for 2018-08-21 Paolo Bonzini
2018-08-23 16:47 ` [Qemu-devel] [PULL 14/69] tests: Skip old versioned machine types in quick testing mode Paolo Bonzini
@ 2018-08-24 10:06 ` Peter Maydell
1 sibling, 0 replies; 3+ messages in thread
From: Peter Maydell @ 2018-08-24 10:06 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: QEMU Developers
On 23 August 2018 at 17:47, Paolo Bonzini <pbonzini@redhat.com> wrote:
> The following changes since commit 659b11e7a7239529cfdb4968418268ff9aa22d88:
>
> Merge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-3.1-pull-request' into staging (2018-08-21 11:36:15 +0100)
>
> are available in the Git repository at:
>
> git://github.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to b2e78fac6f27c36938353e477354778896adc08f:
>
> KVM: cleanup unnecessary #ifdef KVM_CAP_... (2018-08-23 18:46:25 +0200)
>
> ----------------------------------------------------------------
> * x86 TCG fixes for 64-bit call gates (Andrew)
> * qumu-guest-agent freeze-hook tweak (Christian)
> * pm_smbus improvements (Corey)
> * Move validation to pre_plug for pc-dimm (David)
> * Fix memory leaks (Eduardo, Marc-André)
> * synchronization profiler (Emilio)
> * Convert the CPU list to RCU (Emilio)
> * LSI support for PPR Extended Message (George)
> * vhost-scsi support for protection information (Greg)
> * Mark mptsas as a storage device in the help (Guenter)
> * checkpatch tweak cherry-picked from Linux (me)
> * Typos, cleanups and dead-code removal (Julia, Marc-André)
> * qemu-pr-helper support for old libmultipath (Murilo)
> * Annotate fallthroughs (me)
> * MemoryRegionOps cleanup (me, Peter)
> * Make s390 qtests independent from libqos, which doesn't actually support it (me)
> * Make cpu_get_ticks independent from BQL (me)
> * Introspection fixes (Thomas)
> * Support QEMU_MODULE_DIR environment variable (ryang)
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-08-24 10:07 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-08-23 16:47 [Qemu-devel] [PULL v4 00/69] Misc patches for 2018-08-21 Paolo Bonzini
2018-08-23 16:47 ` [Qemu-devel] [PULL 14/69] tests: Skip old versioned machine types in quick testing mode Paolo Bonzini
2018-08-24 10:06 ` [Qemu-devel] [PULL v4 00/69] Misc patches for 2018-08-21 Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).