* [Qemu-devel] [PATCH] APIC: Do not start zero-period timers
@ 2008-07-19 8:32 Jan Kiszka
2008-08-16 9:07 ` [Qemu-devel] [RESEND][PATCH] " Jan Kiszka
0 siblings, 1 reply; 4+ messages in thread
From: Jan Kiszka @ 2008-07-19 8:32 UTC (permalink / raw)
To: qemu-devel
The APIC timer must not start when the initial count is (still) zero.
This caused occasional stalls when booting secondary CPUs of Linux SMP
guests.
Signed-off-by: Jan Kiszka <jan.kiszka@web.de>
---
hw/apic.c | 2 ++
1 file changed, 2 insertions(+)
Index: b/hw/apic.c
===================================================================
--- a/hw/apic.c
+++ b/hw/apic.c
@@ -566,6 +566,8 @@ static void apic_timer_update(APICState
d = (current_time - s->initial_count_load_time) >>
s->count_shift;
if (s->lvt[APIC_LVT_TIMER] & APIC_LVT_TIMER_PERIODIC) {
+ if (!s->initial_count)
+ goto no_timer;
d = ((d / ((uint64_t)s->initial_count + 1)) + 1) * ((uint64_t)s->initial_count + 1);
} else {
if (d >= s->initial_count)
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [RESEND][PATCH] APIC: Do not start zero-period timers
2008-07-19 8:32 [Qemu-devel] [PATCH] APIC: Do not start zero-period timers Jan Kiszka
@ 2008-08-16 9:07 ` Jan Kiszka
2008-08-18 14:20 ` Anthony Liguori
0 siblings, 1 reply; 4+ messages in thread
From: Jan Kiszka @ 2008-08-16 9:07 UTC (permalink / raw)
To: qemu-devel
The APIC timer must not start when the initial count is (still) zero.
This caused occasional stalls when booting secondary CPUs of Linux SMP
guests.
Signed-off-by: Jan Kiszka <jan.kiszka@web.de>
---
hw/apic.c | 2 ++
1 file changed, 2 insertions(+)
Index: b/hw/apic.c
===================================================================
--- a/hw/apic.c
+++ b/hw/apic.c
@@ -566,6 +566,8 @@ static void apic_timer_update(APICState
d = (current_time - s->initial_count_load_time) >>
s->count_shift;
if (s->lvt[APIC_LVT_TIMER] & APIC_LVT_TIMER_PERIODIC) {
+ if (!s->initial_count)
+ goto no_timer;
d = ((d / ((uint64_t)s->initial_count + 1)) + 1) * ((uint64_t)s->initial_count + 1);
} else {
if (d >= s->initial_count)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [RESEND][PATCH] APIC: Do not start zero-period timers
2008-08-16 9:07 ` [Qemu-devel] [RESEND][PATCH] " Jan Kiszka
@ 2008-08-18 14:20 ` Anthony Liguori
2008-08-18 19:29 ` Asheesh Laroia
0 siblings, 1 reply; 4+ messages in thread
From: Anthony Liguori @ 2008-08-18 14:20 UTC (permalink / raw)
To: qemu-devel; +Cc: kvm-devel, Jan Kiszka
Jan Kiszka wrote:
> The APIC timer must not start when the initial count is (still) zero.
>
> This caused occasional stalls when booting secondary CPUs of Linux SMP
> guests.
>
Applied. Thanks.
Besides testing, I confirmed that this is what's done in the in-kernel
APIC in KVM (which is also used by Xen). It seems really unfortunate to
me that there are fixes in the in-kernel APIC that aren't in QEMU (and
perhaps vice-versa). I wonder if there's any way to unify the two code
bases?
Regards,
Anthony Liguori
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [RESEND][PATCH] APIC: Do not start zero-period timers
2008-08-18 14:20 ` Anthony Liguori
@ 2008-08-18 19:29 ` Asheesh Laroia
0 siblings, 0 replies; 4+ messages in thread
From: Asheesh Laroia @ 2008-08-18 19:29 UTC (permalink / raw)
To: qemu-devel; +Cc: kvm-devel, Jan Kiszka
On Mon, 18 Aug 2008, Anthony Liguori wrote:
> Jan Kiszka wrote:
>> The APIC timer must not start when the initial count is (still) zero.
>>
>> This caused occasional stalls when booting secondary CPUs of Linux SMP
>> guests.
>>
>
> Applied. Thanks.
>
> Besides testing, I confirmed that this is what's done in the in-kernel APIC
> in KVM (which is also used by Xen). It seems really unfortunate to me that
> there are fixes in the in-kernel APIC that aren't in QEMU (and perhaps
> vice-versa). I wonder if there's any way to unify the two code bases?
Just a thought - if the code bases have similar textual content, one could
start playing games like noticing when the kernel releases have APIC
changes in KVM, and then mailing those as [PATCH] automatically to this
list by detecting the commit log messages for them from kernel git.
And vice versa, even?
Even just a web page that shows the two implementations side by side,
highlighting the diff, could probably be useful.
-- Asheesh.
--
Experience is what you get when you were expecting something else.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-08-18 20:55 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-19 8:32 [Qemu-devel] [PATCH] APIC: Do not start zero-period timers Jan Kiszka
2008-08-16 9:07 ` [Qemu-devel] [RESEND][PATCH] " Jan Kiszka
2008-08-18 14:20 ` Anthony Liguori
2008-08-18 19:29 ` Asheesh Laroia
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).