qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] icount: disable icount with multiprocessor guests
@ 2013-09-24 15:52 Paolo Bonzini
  2013-09-24 23:39 ` Peter Maydell
  0 siblings, 1 reply; 3+ messages in thread
From: Paolo Bonzini @ 2013-09-24 15:52 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell

If -icount is enabled with multiprocessor guests, all CPUs increment
the same counter, which then basically runs too fast by a factor of
smp_cpus.  This makes little sense and complicates further a feature
whose implementation is pretty obscure already.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 cpus.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/cpus.c b/cpus.c
index 6fb2bc8..e74166e 100644
--- a/cpus.c
+++ b/cpus.c
@@ -401,6 +401,11 @@ void configure_icount(const char *option)
         return;
     }
 
+    if (smp_cpus > 1) {
+        fprintf(stderr, "-icount is not allowed with SMP guests\n");
+        exit(1);
+    }
+
     icount_warp_timer = timer_new_ns(QEMU_CLOCK_REALTIME,
                                           icount_warp_rt, NULL);
     if (strcmp(option, "auto") != 0) {
-- 
1.8.3.1

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

* Re: [Qemu-devel] [PATCH] icount: disable icount with multiprocessor guests
  2013-09-24 15:52 [Qemu-devel] [PATCH] icount: disable icount with multiprocessor guests Paolo Bonzini
@ 2013-09-24 23:39 ` Peter Maydell
  2013-09-27  8:23   ` Paolo Bonzini
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Maydell @ 2013-09-24 23:39 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: QEMU Developers

On 25 September 2013 00:52, Paolo Bonzini <pbonzini@redhat.com> wrote:
> If -icount is enabled with multiprocessor guests, all CPUs increment
> the same counter, which then basically runs too fast by a factor of
> smp_cpus.  This makes little sense and complicates further a feature
> whose implementation is pretty obscure already.

Just forbidding -icount with SMP configs seems like the wrong
fix, though -- why wouldn't you want the deterministic execution
icount (claims it) gives you with an SMP config?

-- PMM

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

* Re: [Qemu-devel] [PATCH] icount: disable icount with multiprocessor guests
  2013-09-24 23:39 ` Peter Maydell
@ 2013-09-27  8:23   ` Paolo Bonzini
  0 siblings, 0 replies; 3+ messages in thread
From: Paolo Bonzini @ 2013-09-27  8:23 UTC (permalink / raw)
  To: Peter Maydell; +Cc: QEMU Developers

Il 25/09/2013 01:39, Peter Maydell ha scritto:
> On 25 September 2013 00:52, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> If -icount is enabled with multiprocessor guests, all CPUs increment
>> the same counter, which then basically runs too fast by a factor of
>> smp_cpus.  This makes little sense and complicates further a feature
>> whose implementation is pretty obscure already.
> 
> Just forbidding -icount with SMP configs seems like the wrong
> fix, though -- why wouldn't you want the deterministic execution
> icount (claims it) gives you with an SMP config?

Right now, the SMP version of icount is all but deterministic.  I/O and
rt_clock timers cause the TCG thread to relinquish the BQL, and the
round-robin will switch to the next VCPU.  Perhaps once the TCG loop
breaks free of the BQL we can modify icount to trigger a VCPU switch
every 2^16 instructions or something like that, and revert this patch.

Paolo

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

end of thread, other threads:[~2013-09-27  8:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-24 15:52 [Qemu-devel] [PATCH] icount: disable icount with multiprocessor guests Paolo Bonzini
2013-09-24 23:39 ` Peter Maydell
2013-09-27  8:23   ` Paolo Bonzini

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).