Message ID | 1394720249-13318-1-git-send-email-peter.maydell@linaro.org |
---|---|
State | Accepted |
Headers | show |
Am 13.03.2014 15:17, schrieb Peter Maydell: > When running under qtest we don't actually have any vcpu threads > to be starved, so the warning about the I/O thread spinning isn't > relevant, and the way qtest manipulates the simulated clock means > the warning is produced a lot as a false positive. Suppress it if > qtest_enabled(), so 'make check' output is less noisy. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > main-loop.c | 3 ++- > stubs/Makefile.objs | 1 + > stubs/qtest.c | 14 ++++++++++++++ > 3 files changed, 17 insertions(+), 1 deletion(-) > create mode 100644 stubs/qtest.c Looks OK to me, a bit unfortunate that we need a stub, but Reviewed-by: Andreas Färber <afaerber@suse.de> Thanks, Andreas
On Thu, Mar 13, 2014 at 02:17:29PM +0000, Peter Maydell wrote: > When running under qtest we don't actually have any vcpu threads > to be starved, so the warning about the I/O thread spinning isn't > relevant, and the way qtest manipulates the simulated clock means > the warning is produced a lot as a false positive. Suppress it if > qtest_enabled(), so 'make check' output is less noisy. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > main-loop.c | 3 ++- > stubs/Makefile.objs | 1 + > stubs/qtest.c | 14 ++++++++++++++ > 3 files changed, 17 insertions(+), 1 deletion(-) > create mode 100644 stubs/qtest.c Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Am 13.03.2014 15:17, schrieb Peter Maydell: > When running under qtest we don't actually have any vcpu threads > to be starved, so the warning about the I/O thread spinning isn't > relevant, and the way qtest manipulates the simulated clock means > the warning is produced a lot as a false positive. Suppress it if > qtest_enabled(), so 'make check' output is less noisy. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> [...] > diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs > index df3aa7a..6f06fca 100644 > --- a/stubs/Makefile.objs > +++ b/stubs/Makefile.objs > @@ -28,3 +28,4 @@ stub-obj-y += vmstate.o > stub-obj-$(CONFIG_WIN32) += fd-register.o > stub-obj-y += cpus.o > stub-obj-y += kvm.o > +stub-obj-y += qtest.o [snip] Please note that the stubs are supposed to be sorted alphabetically. I'm still seeing two instances of the warning for i386 and x86_64 each. But it's a clear improvement. Thanks, applying to qom-next (with Makefile tweaked): https://github.com/afaerber/qemu-cpu/commits/qom-next Andreas
On 13 March 2014 20:39, Andreas Färber <afaerber@suse.de> wrote: > Am 13.03.2014 15:17, schrieb Peter Maydell: >> When running under qtest we don't actually have any vcpu threads >> to be starved, so the warning about the I/O thread spinning isn't >> relevant, and the way qtest manipulates the simulated clock means >> the warning is produced a lot as a false positive. Suppress it if >> qtest_enabled(), so 'make check' output is less noisy. >> >> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > [...] >> diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs >> index df3aa7a..6f06fca 100644 >> --- a/stubs/Makefile.objs >> +++ b/stubs/Makefile.objs >> @@ -28,3 +28,4 @@ stub-obj-y += vmstate.o >> stub-obj-$(CONFIG_WIN32) += fd-register.o >> stub-obj-y += cpus.o >> stub-obj-y += kvm.o >> +stub-obj-y += qtest.o > [snip] > > Please note that the stubs are supposed to be sorted alphabetically. OK. I looked at the tail end of the file (which as you can see is not in order) and thought we weren't trying to maintain an order here. I guess that's just previous commits also adding at the end of the file, though... thanks -- PMM
diff --git a/main-loop.c b/main-loop.c index c3c9c28..8a85493 100644 --- a/main-loop.c +++ b/main-loop.c @@ -25,6 +25,7 @@ #include "qemu-common.h" #include "qemu/timer.h" #include "qemu/sockets.h" // struct in_addr needed for libslirp.h +#include "sysemu/qtest.h" #include "slirp/libslirp.h" #include "qemu/main-loop.h" #include "block/aio.h" @@ -208,7 +209,7 @@ static int os_host_main_loop_wait(int64_t timeout) if (!timeout && (spin_counter > MAX_MAIN_LOOP_SPIN)) { static bool notified; - if (!notified) { + if (!notified && !qtest_enabled()) { fprintf(stderr, "main-loop: WARNING: I/O thread spun for %d iterations\n", MAX_MAIN_LOOP_SPIN); diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs index df3aa7a..6f06fca 100644 --- a/stubs/Makefile.objs +++ b/stubs/Makefile.objs @@ -28,3 +28,4 @@ stub-obj-y += vmstate.o stub-obj-$(CONFIG_WIN32) += fd-register.o stub-obj-y += cpus.o stub-obj-y += kvm.o +stub-obj-y += qtest.o diff --git a/stubs/qtest.c b/stubs/qtest.c new file mode 100644 index 0000000..e671ed8 --- /dev/null +++ b/stubs/qtest.c @@ -0,0 +1,14 @@ +/* + * qtest stubs + * + * Copyright (c) 2014 Linaro Limited + * Written by Peter Maydell + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#include "qemu-common.h" + +/* Needed for qtest_allowed() */ +bool qtest_allowed;
When running under qtest we don't actually have any vcpu threads to be starved, so the warning about the I/O thread spinning isn't relevant, and the way qtest manipulates the simulated clock means the warning is produced a lot as a false positive. Suppress it if qtest_enabled(), so 'make check' output is less noisy. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- main-loop.c | 3 ++- stubs/Makefile.objs | 1 + stubs/qtest.c | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 stubs/qtest.c