All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] tests: avoid running duplicate qom-tests
@ 2014-09-18 22:59 Michael Roth
  2014-09-18 23:18 ` Peter Maydell
  2014-09-24  8:00 ` [Qemu-devel] [Qemu-trivial] " Michael Tokarev
  0 siblings, 2 replies; 3+ messages in thread
From: Michael Roth @ 2014-09-18 22:59 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, peter.maydell, afaerber

Since 3687d532 we've been unconditionally adding qom-test to our qtests
for every arch. However, some archs inherit their tests from Makefile
variables for other archs, such as i386/x86_64,
microblaze/microblazeel, and xtensa/xtensaeb. Since these are evaluated
in a lazy manner, we ultimately end up adding qom-test twice.

In the case x86_64, where we have a large number of machine types that
we rerun qom-test for, this has lead to a fairly noticeable increase
in the overall run-time of `make check` (78s vs. 42s on my machine).
Similar speed-ups are visible for other such archs, but not nearly as
significant.

Fix this by only adding qom-test to an arch's test list if it's not
already present.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
---
 tests/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/Makefile b/tests/Makefile
index a5e3d0c..9f2a35c 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -192,7 +192,8 @@ check-qtest-xtensaeb-y = $(check-qtest-xtensa-y)
 
 # qom-test works for all sysemu architectures:
 $(foreach target,$(SYSEMU_TARGET_LIST), \
-    $(eval check-qtest-$(target)-y += tests/qom-test$(EXESUF)))
+	$(if $(findstring tests/qom-test$(EXESUF), $(check-qtest-$(target)-y)),, \
+		$(eval check-qtest-$(target)-y += tests/qom-test$(EXESUF))))
 
 check-qapi-schema-y := $(addprefix tests/qapi-schema/, \
         comments.json empty.json funny-char.json indented-expr.json \
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] tests: avoid running duplicate qom-tests
  2014-09-18 22:59 [Qemu-devel] [PATCH] tests: avoid running duplicate qom-tests Michael Roth
@ 2014-09-18 23:18 ` Peter Maydell
  2014-09-24  8:00 ` [Qemu-devel] [Qemu-trivial] " Michael Tokarev
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Maydell @ 2014-09-18 23:18 UTC (permalink / raw)
  To: Michael Roth; +Cc: QEMU Trivial, QEMU Developers, Andreas Färber

On 18 September 2014 15:59, Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> Since 3687d532 we've been unconditionally adding qom-test to our qtests
> for every arch. However, some archs inherit their tests from Makefile
> variables for other archs, such as i386/x86_64,
> microblaze/microblazeel, and xtensa/xtensaeb. Since these are evaluated
> in a lazy manner, we ultimately end up adding qom-test twice.
>
> In the case x86_64, where we have a large number of machine types that
> we rerun qom-test for, this has lead to a fairly noticeable increase
> in the overall run-time of `make check` (78s vs. 42s on my machine).
> Similar speed-ups are visible for other such archs, but not nearly as
> significant.
>
> Fix this by only adding qom-test to an arch's test list if it's not
> already present.
>
> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
> ---
>  tests/Makefile | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/tests/Makefile b/tests/Makefile
> index a5e3d0c..9f2a35c 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -192,7 +192,8 @@ check-qtest-xtensaeb-y = $(check-qtest-xtensa-y)
>
>  # qom-test works for all sysemu architectures:
>  $(foreach target,$(SYSEMU_TARGET_LIST), \
> -    $(eval check-qtest-$(target)-y += tests/qom-test$(EXESUF)))
> +       $(if $(findstring tests/qom-test$(EXESUF), $(check-qtest-$(target)-y)),, \
> +               $(eval check-qtest-$(target)-y += tests/qom-test$(EXESUF))))

See also Andreas' suggested fix:
https://lists.gnu.org/archive/html/qemu-devel/2014-04/msg01087.html
and mine:
https://lists.gnu.org/archive/html/qemu-devel/2014-03/msg05771.html

Andreas didn't like my patch because it sorts all the tests
as a side effect, and I didn't like the hard-coded listing
of architectures in Andreas' patch. It looks like maybe your
version will satisfy both of us :-)

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [Qemu-trivial] [PATCH] tests: avoid running duplicate qom-tests
  2014-09-18 22:59 [Qemu-devel] [PATCH] tests: avoid running duplicate qom-tests Michael Roth
  2014-09-18 23:18 ` Peter Maydell
@ 2014-09-24  8:00 ` Michael Tokarev
  1 sibling, 0 replies; 3+ messages in thread
From: Michael Tokarev @ 2014-09-24  8:00 UTC (permalink / raw)
  To: Michael Roth, qemu-devel; +Cc: qemu-trivial, peter.maydell, afaerber

Applied to -trivial, I overlooked it initially, not reading Peter's
comments thinkfully.  Thank you!

/mjt

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-09-24  8:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-18 22:59 [Qemu-devel] [PATCH] tests: avoid running duplicate qom-tests Michael Roth
2014-09-18 23:18 ` Peter Maydell
2014-09-24  8:00 ` [Qemu-devel] [Qemu-trivial] " Michael Tokarev

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.