qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Gonglei <arei.gonglei@huawei.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	qemu-stable@nongnu.org
Subject: [Qemu-devel] [PULL 09/14] timer: set vm_clock disabled default
Date: Wed, 10 Aug 2016 15:57:12 +0200	[thread overview]
Message-ID: <1470837437-14713-10-git-send-email-pbonzini@redhat.com> (raw)
In-Reply-To: <1470837437-14713-1-git-send-email-pbonzini@redhat.com>

From: Gonglei <arei.gonglei@huawei.com>

(commit 80dcfb8532ae76343109a48f12ba8ca1c505c179)
Upon migration, the code use a timer based on vm_clock for 1ns
in the future from post_load to do the event send in case host_connected
differs between migration source and target.

However, it's not guaranteed that the apic is ready to inject irqs into
the guest, and the irq line remained high, resulting in any future interrupts
going unnoticed by the guest as well.

That's because 1) the migration coroutine is not blocked when it get EAGAIN
while reading QEMUFile. 2) The vm_clock is enabled default currently, it doesn't
rely on the calling of vm_start(), that means vm_clock timers can run before
VCPUs are running.

So, let's set the vm_clock disabled default, keep the initial intention of
design for vm_clock timers.

Meanwhile, change the test-aio usecase, using QEMU_CLOCK_REALTIME instead of
QEMU_CLOCK_VIRTUAL as the block code does.

CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Dr. David Alan Gilbert <dgilbert@redhat.com>
CC: qemu-stable@nongnu.org
Signed-off-by: Gonglei <arei.gonglei@huawei.com>
Message-Id: <1470728955-90600-1-git-send-email-arei.gonglei@huawei.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 qemu-timer.c     | 2 +-
 tests/test-aio.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/qemu-timer.c b/qemu-timer.c
index eb22e92..9299cdc 100644
--- a/qemu-timer.c
+++ b/qemu-timer.c
@@ -129,7 +129,7 @@ static void qemu_clock_init(QEMUClockType type)
     assert(main_loop_tlg.tl[type] == NULL);
 
     clock->type = type;
-    clock->enabled = true;
+    clock->enabled = (type == QEMU_CLOCK_VIRTUAL ? false : true);
     clock->last = INT64_MIN;
     QLIST_INIT(&clock->timerlists);
     notifier_list_init(&clock->reset_notifiers);
diff --git a/tests/test-aio.c b/tests/test-aio.c
index 982339c..03aa846 100644
--- a/tests/test-aio.c
+++ b/tests/test-aio.c
@@ -452,7 +452,7 @@ static void test_timer_schedule(void)
 {
     TimerTestData data = { .n = 0, .ctx = ctx, .ns = SCALE_MS * 750LL,
                            .max = 2,
-                           .clock_type = QEMU_CLOCK_VIRTUAL };
+                           .clock_type = QEMU_CLOCK_REALTIME };
     EventNotifier e;
 
     /* aio_poll will not block to wait for timers to complete unless it has
@@ -782,7 +782,7 @@ static void test_source_timer_schedule(void)
 {
     TimerTestData data = { .n = 0, .ctx = ctx, .ns = SCALE_MS * 750LL,
                            .max = 2,
-                           .clock_type = QEMU_CLOCK_VIRTUAL };
+                           .clock_type = QEMU_CLOCK_REALTIME };
     EventNotifier e;
     int64_t expiry;
 
-- 
1.8.3.1

  parent reply	other threads:[~2016-08-10 13:57 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-10 13:57 [Qemu-devel] [PULL 00/14] checkpatch, warnings and other fixes Paolo Bonzini
2016-08-10 13:57 ` [Qemu-devel] [PULL 01/14] linuxboot_dma: avoid guest ABI breakage on gcc vs. clang compilation Paolo Bonzini
2016-08-10 13:57 ` [Qemu-devel] [PULL 02/14] build-sys: fix building with make CFLAGS=.. argument Paolo Bonzini
2016-08-15  8:41   ` Christian Borntraeger
2016-08-15  9:08     ` Christian Borntraeger
2016-08-10 13:57 ` [Qemu-devel] [PULL 03/14] optionrom: add -fno-stack-protector Paolo Bonzini
2016-08-10 13:57 ` [Qemu-devel] [PULL 04/14] optionrom: fix compilation with mingw docker target Paolo Bonzini
2016-08-10 13:57 ` [Qemu-devel] [PULL 05/14] atomic: strip "const" from variables declared with typeof Paolo Bonzini
2016-08-10 13:57 ` [Qemu-devel] [PULL 06/14] Disable warn about left shifts of negative values Paolo Bonzini
2016-08-10 13:57 ` [Qemu-devel] [PULL 07/14] clang: Fix warning reg. expansion to 'defined' Paolo Bonzini
2016-08-10 13:57 ` [Qemu-devel] [PULL 08/14] checkpatch: ignore automatically imported Linux headers Paolo Bonzini
2016-08-10 13:57 ` Paolo Bonzini [this message]
2016-08-10 13:57 ` [Qemu-devel] [PULL 10/14] checkpatch: tweak the files in which TABs are checked Paolo Bonzini
2016-08-10 13:57 ` [Qemu-devel] [PULL 11/14] checkpatch: check for CVS keywords on all sources Paolo Bonzini
2016-08-10 13:57 ` [Qemu-devel] [PULL 12/14] CODING_STYLE, checkpatch: update line length rules Paolo Bonzini
2016-08-10 13:57 ` [Qemu-devel] [PULL 13/14] checkpatch: bump most warnings to errors Paolo Bonzini
2016-08-10 13:57 ` [Qemu-devel] [PULL 14/14] checkpatch: default to success if only warnings Paolo Bonzini
2016-08-10 16:14 ` [Qemu-devel] [PULL 00/14] checkpatch, warnings and other fixes Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1470837437-14713-10-git-send-email-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=arei.gonglei@huawei.com \
    --cc=dgilbert@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-stable@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).