All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bandan Das <bsd@redhat.com>
To: "Kevin O'Connor" <kevin@koconnor.net>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	kraxel@redhat.com, Andrey Korolyov <andrey@xdel.ru>,
	"qemu-devel\@nongnu.org" <qemu-devel@nongnu.org>,
	"kvm\@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: [Qemu-devel] E5-2620v2 - emulation stop error
Date: Wed, 11 Mar 2015 13:09:42 -0400	[thread overview]
Message-ID: <jpgvbi7v4tl.fsf@redhat.com> (raw)
In-Reply-To: <20150311154220.GA26463@morn.localdomain> (Kevin O'Connor's message of "Wed, 11 Mar 2015 11:42:20 -0400")

"Kevin O'Connor" <kevin@koconnor.net> writes:
...
>
> Something is very odd here.  When I run the above command (on an older
> AMD machine) I get:
>
> Found 128 cpu(s) max supported 128 cpu(s)
>
> That first value (1 vs 128) comes from QEMU (via cmos index 0x5f).
> That is, during smp init, SeaBIOS expects QEMU to tell it how many
> cpus are active, and SeaBIOS waits until that many CPUs check in from
> its SIPI request before proceeding.
>
> I wonder if QEMU reported only 1 active cpu via that cmos register,
> but more were actually active.  If that was the case, it could

I was daring enough to try this and I don't see the crash :)

diff --git a/src/fw/smp.c b/src/fw/smp.c
index a466ea6..a346d46 100644
--- a/src/fw/smp.c
+++ b/src/fw/smp.c
@@ -49,6 +49,7 @@ int apic_id_is_present(u8 apic_id)
 void VISIBLE32FLAT
 handle_smp(void)
 {
+  dprintf(DEBUG_HDL_smp, "Calling handle_smp\n");
     if (!CONFIG_QEMU)
         return;
 
@@ -128,6 +129,8 @@ smp_setup(void)
 
     // Wait for other CPUs to process the SIPI.
     u8 cmos_smp_count = rtc_read(CMOS_BIOS_SMP_COUNT) + 1;
+    while (cmos_smp_count == 1)
+        cmos_smp_count = rtc_read(CMOS_BIOS_SMP_COUNT) + 1;
     while (cmos_smp_count != CountCPUs)
         asm volatile(
             // Release lock and allow other processors to use the stack.

So, the while loop results in a race somehow ?

Bandan
> certainly explain the failure - as multiple cpus could be running
> without the sipi trapoline in place.
>
> What does the log look like on a non-failure case?
>
> -Kevin

WARNING: multiple messages have this Message-ID (diff)
From: Bandan Das <bsd@redhat.com>
To: Kevin O'Connor <kevin@koconnor.net>
Cc: Andrey Korolyov <andrey@xdel.ru>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	kraxel@redhat.com, Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] E5-2620v2 - emulation stop error
Date: Wed, 11 Mar 2015 13:09:42 -0400	[thread overview]
Message-ID: <jpgvbi7v4tl.fsf@redhat.com> (raw)
In-Reply-To: <20150311154220.GA26463@morn.localdomain> (Kevin O'Connor's message of "Wed, 11 Mar 2015 11:42:20 -0400")

"Kevin O'Connor" <kevin@koconnor.net> writes:
...
>
> Something is very odd here.  When I run the above command (on an older
> AMD machine) I get:
>
> Found 128 cpu(s) max supported 128 cpu(s)
>
> That first value (1 vs 128) comes from QEMU (via cmos index 0x5f).
> That is, during smp init, SeaBIOS expects QEMU to tell it how many
> cpus are active, and SeaBIOS waits until that many CPUs check in from
> its SIPI request before proceeding.
>
> I wonder if QEMU reported only 1 active cpu via that cmos register,
> but more were actually active.  If that was the case, it could

I was daring enough to try this and I don't see the crash :)

diff --git a/src/fw/smp.c b/src/fw/smp.c
index a466ea6..a346d46 100644
--- a/src/fw/smp.c
+++ b/src/fw/smp.c
@@ -49,6 +49,7 @@ int apic_id_is_present(u8 apic_id)
 void VISIBLE32FLAT
 handle_smp(void)
 {
+  dprintf(DEBUG_HDL_smp, "Calling handle_smp\n");
     if (!CONFIG_QEMU)
         return;
 
@@ -128,6 +129,8 @@ smp_setup(void)
 
     // Wait for other CPUs to process the SIPI.
     u8 cmos_smp_count = rtc_read(CMOS_BIOS_SMP_COUNT) + 1;
+    while (cmos_smp_count == 1)
+        cmos_smp_count = rtc_read(CMOS_BIOS_SMP_COUNT) + 1;
     while (cmos_smp_count != CountCPUs)
         asm volatile(
             // Release lock and allow other processors to use the stack.

So, the while loop results in a race somehow ?

Bandan
> certainly explain the failure - as multiple cpus could be running
> without the sipi trapoline in place.
>
> What does the log look like on a non-failure case?
>
> -Kevin

  parent reply	other threads:[~2015-03-11 17:09 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-05 22:14 E5-2620v2 - emulation stop error Andrey Korolyov
2015-03-05 22:14 ` [Qemu-devel] " Andrey Korolyov
2015-03-05 23:44 ` Andrey Korolyov
2015-03-05 23:44   ` [Qemu-devel] " Andrey Korolyov
2015-03-06 16:57   ` Bandan Das
2015-03-06 16:57     ` Bandan Das
2015-03-07  0:00     ` Andrey Korolyov
2015-03-10 14:24       ` Andrey Korolyov
2015-03-10 16:57         ` Dr. David Alan Gilbert
2015-03-10 18:08           ` Andrey Korolyov
2015-03-10 18:16             ` Dr. David Alan Gilbert
2015-03-10 18:21               ` Andrey Korolyov
2015-03-10 19:30               ` Paolo Bonzini
2015-03-10 18:10           ` Paolo Bonzini
2015-03-10 18:21             ` Bandan Das
2015-03-10 18:21               ` Bandan Das
2015-03-10 19:25               ` Paolo Bonzini
2015-03-10 19:25                 ` Paolo Bonzini
2015-03-10 19:37                 ` Dr. David Alan Gilbert
2015-03-10 20:29                 ` Dr. David Alan Gilbert
2015-03-10 20:29                   ` Dr. David Alan Gilbert
2015-03-11  2:38                   ` Bandan Das
2015-03-11  2:38                     ` Bandan Das
2015-03-11 13:45                     ` Dr. David Alan Gilbert
2015-03-11 13:45                       ` Dr. David Alan Gilbert
2015-03-11 15:42                       ` Kevin O'Connor
2015-03-11 15:42                         ` Kevin O'Connor
2015-03-11 15:53                         ` Dr. David Alan Gilbert
2015-03-11 15:53                           ` Dr. David Alan Gilbert
2015-03-11 16:37                           ` Kevin O'Connor
2015-03-11 16:37                             ` [Qemu-devel] " Kevin O'Connor
2015-03-11 16:52                             ` Dr. David Alan Gilbert
2015-03-11 16:52                               ` Dr. David Alan Gilbert
2015-03-11 17:37                               ` Kevin O'Connor
2015-03-11 17:37                                 ` Kevin O'Connor
2015-03-11 17:41                                 ` Paolo Bonzini
2015-03-11 17:41                                   ` Paolo Bonzini
2015-03-11 17:59                                 ` Dr. David Alan Gilbert
2015-03-11 17:59                                   ` Dr. David Alan Gilbert
2015-03-11 18:24                                   ` Bandan Das
2015-03-11 18:24                                     ` Bandan Das
2015-03-11 18:40                                   ` Kevin O'Connor
2015-03-11 18:40                                     ` Kevin O'Connor
2015-03-11 18:45                                     ` Kevin O'Connor
2015-03-11 18:45                                       ` Kevin O'Connor
2015-03-11 19:19                                       ` Kevin O'Connor
2015-03-11 19:19                                         ` Kevin O'Connor
2015-03-11 19:33                                         ` Dr. David Alan Gilbert
2015-03-11 19:33                                           ` Dr. David Alan Gilbert
2015-03-11 19:47                                           ` Bandan Das
2015-03-11 19:47                                             ` Bandan Das
2015-03-11 19:47                                           ` Andrey Korolyov
2015-03-11 19:47                                             ` Andrey Korolyov
2015-03-11 19:59                                             ` Dr. David Alan Gilbert
2015-03-11 19:59                                               ` Dr. David Alan Gilbert
2015-03-11 20:09                                               ` Andrey Korolyov
2015-03-11 20:09                                                 ` Andrey Korolyov
2015-03-12  9:59                                                 ` Dr. David Alan Gilbert
2015-03-12  9:59                                                   ` Dr. David Alan Gilbert
2015-03-12 10:47                                                   ` Andrey Korolyov
2015-03-12 10:47                                                     ` Andrey Korolyov
2015-03-16 19:17                                                     ` Andrey Korolyov
2015-03-16 19:17                                                       ` Andrey Korolyov
2015-03-16 19:26                                                       ` Dr. David Alan Gilbert
2015-03-16 19:26                                                         ` Dr. David Alan Gilbert
2015-03-25 20:43                                                       ` Andrey Korolyov
2015-03-25 20:43                                                         ` [Qemu-devel] " Andrey Korolyov
2015-03-25 20:46                                                         ` Andrey Korolyov
2015-03-25 20:46                                                           ` [Qemu-devel] " Andrey Korolyov
2015-03-25 20:54                                                         ` Kevin O'Connor
2015-03-25 20:54                                                           ` Kevin O'Connor
2015-03-25 22:31                                                           ` Andrey Korolyov
2015-03-25 22:31                                                             ` Andrey Korolyov
2015-03-25 23:02                                                             ` Kevin O'Connor
2015-03-25 23:02                                                               ` Kevin O'Connor
2015-03-25 23:35                                                               ` Andrey Korolyov
2015-03-25 23:35                                                                 ` Andrey Korolyov
2015-03-26  0:05                                                                 ` Kevin O'Connor
2015-03-26  0:05                                                                   ` Kevin O'Connor
2015-03-26 15:58                                                                   ` Radim Krčmář
2015-03-26 15:58                                                                     ` Radim Krčmář
2015-03-26 16:36                                                                     ` Kevin O'Connor
2015-03-26 16:36                                                                       ` [Qemu-devel] " Kevin O'Connor
2015-03-26 16:48                                                                       ` Andrey Korolyov
2015-03-26 16:48                                                                         ` Andrey Korolyov
2015-03-26 17:06                                                                         ` Kevin O'Connor
2015-03-26 17:06                                                                           ` Kevin O'Connor
2015-03-26 17:08                                                                           ` Andrey Korolyov
2015-03-26 17:08                                                                             ` Andrey Korolyov
2015-03-26 17:18                                                                             ` Kevin O'Connor
2015-03-26 17:18                                                                               ` Kevin O'Connor
2015-03-26 17:33                                                                               ` Andrey Korolyov
2015-03-26 17:33                                                                                 ` Andrey Korolyov
2015-03-26 17:40                                                                             ` Radim Krčmář
2015-03-26 17:40                                                                               ` Radim Krčmář
2015-03-26 18:24                                                                               ` Andrey Korolyov
2015-03-26 18:24                                                                                 ` Andrey Korolyov
2015-03-26 20:40                                                                                 ` Radim Krčmář
2015-03-26 20:40                                                                                   ` Radim Krčmář
2015-03-26 21:03                                                                                   ` Bandan Das
2015-03-26 21:03                                                                                     ` Bandan Das
2015-03-27 10:16                                                                                     ` Andrey Korolyov
2015-03-27 10:16                                                                                       ` Andrey Korolyov
2015-03-30 18:56                                                                                       ` Radim Krčmář
2015-03-30 18:56                                                                                         ` [Qemu-devel] " Radim Krčmář
2015-03-30 19:32                                                                                         ` Andrey Korolyov
2015-03-30 19:32                                                                                           ` Andrey Korolyov
2015-03-31 13:45                                                                                           ` Radim Krčmář
2015-03-31 13:45                                                                                             ` [Qemu-devel] " Radim Krčmář
2015-03-31 14:56                                                                                             ` Andrey Korolyov
2015-03-31 14:56                                                                                               ` Andrey Korolyov
2015-03-31 16:45                                                                                               ` Radim Krčmář
2015-03-31 16:45                                                                                                 ` [Qemu-devel] " Radim Krčmář
2015-03-31 17:40                                                                                                 ` Andrey Korolyov
2015-03-31 17:40                                                                                                   ` Andrey Korolyov
2015-03-31 18:01                                                                                                   ` Bandan Das
2015-03-31 18:01                                                                                                     ` Bandan Das
2015-03-31 18:04                                                                                                     ` Bandan Das
2015-03-31 18:04                                                                                                       ` [Qemu-devel] " Bandan Das
2015-03-31 18:23                                                                                                       ` Andrey Korolyov
2015-03-31 18:23                                                                                                         ` Andrey Korolyov
2015-04-01 11:49                                                                                                         ` Radim Krčmář
2015-04-01 11:49                                                                                                           ` Radim Krčmář
2015-04-01 12:05                                                                                                           ` Paolo Bonzini
2015-04-01 12:05                                                                                                             ` Paolo Bonzini
2015-04-01 12:26                                                                                                           ` Andrey Korolyov
2015-04-01 12:26                                                                                                             ` Andrey Korolyov
2015-04-01 13:19                                                                                                             ` Paolo Bonzini
2015-04-01 13:19                                                                                                               ` Paolo Bonzini
2015-04-01 15:37                                                                                                               ` Andrey Korolyov
2015-04-01 15:37                                                                                                                 ` Andrey Korolyov
2015-04-01 16:29                                                                                                                 ` Andrey Korolyov
2015-04-01 16:29                                                                                                                   ` Andrey Korolyov
2015-04-01 22:58                                                                                                                   ` Andrey Korolyov
2015-04-01 22:58                                                                                                                     ` Andrey Korolyov
2015-04-05 14:12                                                                                                                     ` Andrey Korolyov
2015-04-05 14:12                                                                                                                       ` [Qemu-devel] " Andrey Korolyov
2015-03-27 11:54                                                                                   ` Andrey Korolyov
2015-03-27 11:54                                                                                     ` Andrey Korolyov
2015-03-30 19:28                                                                                     ` Radim Krčmář
2015-03-30 19:28                                                                                       ` Radim Krčmář
2015-03-26 17:35                                                                         ` Radim Krčmář
2015-03-26 17:35                                                                           ` Radim Krčmář
2015-03-26 17:34                                                                       ` Radim Krčmář
2015-03-26 17:34                                                                         ` Radim Krčmář
2015-03-26  2:47                                                         ` Bandan Das
2015-03-26  2:47                                                           ` Bandan Das
2015-03-26  9:18                                                           ` Andrey Korolyov
2015-03-26  9:18                                                             ` Andrey Korolyov
2015-03-26 15:05                                                             ` Andrey Korolyov
2015-03-26 15:05                                                               ` Andrey Korolyov
2015-03-11 17:09                         ` Bandan Das [this message]
2015-03-11 17:09                           ` Bandan Das
2015-03-11 17:32                           ` Kevin O'Connor
2015-03-11 17:32                             ` Kevin O'Connor
2015-03-11 18:01                             ` Bandan Das
2015-03-11 18:01                               ` Bandan Das

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=jpgvbi7v4tl.fsf@redhat.com \
    --to=bsd@redhat.com \
    --cc=andrey@xdel.ru \
    --cc=dgilbert@redhat.com \
    --cc=kevin@koconnor.net \
    --cc=kraxel@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@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 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.