kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kevin O'Connor <kevin@koconnor.net>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Bandan Das <bsd@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 14:40:39 -0400	[thread overview]
Message-ID: <20150311184039.GA7341@morn.localdomain> (raw)
In-Reply-To: <20150311175904.GN2334@work-vm>

On Wed, Mar 11, 2015 at 05:59:04PM +0000, Dr. David Alan Gilbert wrote:
> * Kevin O'Connor (kevin@koconnor.net) wrote:
> > On Wed, Mar 11, 2015 at 04:52:03PM +0000, Dr. David Alan Gilbert wrote:
> > > * Kevin O'Connor (kevin@koconnor.net) wrote:
> > > > So, I couldn't get this to fail on my older AMD machine at all with
> > > > the default SeaBIOS code.  But, when I change the code with the patch
> > > > below, it failed right away.
> > [...]
> > > > And the failed debug output looks like:
> > > > 
> > > > SeaBIOS (version rel-1.8.0-7-gd23eba6-dirty-20150311_121819-morn.localdomain)
> > > > [...]
> > > > cmos_smp_count0=20
> > > > [...]
> > > > cmos_smp_count=1
> > > > cmos_smp_count2=1/20
> > > > Found 1 cpu(s) max supported 20 cpu(s)
> > > > 
> > > > I'm going to check the assembly for a compiler error, but is it
> > > > possible QEMU is returning incorrect data in cmos index 0x5f?
> > 
> > I checked the SeaBIOS assembler and it looks sane.  So, I think the
> > question is, why is QEMU sometimes returning a 0 instead of 127 from
> > cmos 0x5f.
> 
> My reading of the logs I've just created is that qemu doesn't think
> it's ever being asked to read 5f in the failed case:
> 
> good:
> 
> pc_cmos_init 5f setting smp_cpus=20
> cmos: read index=0x0f val=0x00
> cmos: read index=0x34 val=0x00
> cmos: read index=0x35 val=0x3f
> cmos: read index=0x38 val=0x30
> cmos: read index=0x3d val=0x12
> cmos: read index=0x38 val=0x30
> cmos: read index=0x0b val=0x02
> cmos: read index=0x0d val=0x80
> cmos: read index=0x5f val=0x13  Yeh!
> cmos: read index=0x0f val=0x00
> cmos: read index=0x0f val=0x00
> cmos: read index=0x0f val=0x00
> 
> bad:
> pc_cmos_init 5f setting smp_cpus=20
> cmos: read index=0x0f val=0x00
> cmos: read index=0x34 val=0x00
> cmos: read index=0x35 val=0x3f
> cmos: read index=0x38 val=0x30
> cmos: read index=0x3d val=0x12
> cmos: read index=0x38 val=0x30
> cmos: read index=0x0b val=0x02
> cmos: read index=0x0d val=0x80  Oh!
> cmos: read index=0x0f val=0x00
> cmos: read index=0x0f val=0x00
> cmos: read index=0x0f val=0x00

For what it's worth, I can't seem to trigger the problem if I move the
cmos read above the SIPI/LAPIC code (see patch below).

I used this command line:

while true; do (sleep 5; echo -e '\001cq\n')| ../qemu/qemu-git/x86_64-softmmu/qemu-system-x86_64 -chardev file,path=foo.`date +%s`,id=seabios -device isa-debugcon,iobase=0x402,chardev=seabios -machine pc-i440fx-2.0,accel=kvm -m 1024 -smp 128 -nographic -device sga -L test 2>&1 | tee /tmp/qemu.op; grep "internal error" /tmp/qemu.op -q && break; done

This is on an "AMD Phenom(tm) II X6 1090T Processor" machine.

-Kevin


--- a/src/fw/smp.c
+++ b/src/fw/smp.c
@@ -107,6 +107,8 @@ smp_setup(void)
                | (((u32)entry_smp - BUILD_BIOS_ADDR) << 8));
     *(u64*)BUILD_AP_BOOT_ADDR = new;
 
+    u8 cmos_smp_count = rtc_read(CMOS_BIOS_SMP_COUNT) + 1;
+
     // enable local APIC
     u32 val = readl(APIC_SVR);
     writel(APIC_SVR, val | APIC_ENABLED);
@@ -127,7 +129,7 @@ smp_setup(void)
     writel(APIC_ICR_LOW, 0x000C4600 | sipi_vector);
 
     // Wait for other CPUs to process the SIPI.
-    u8 cmos_smp_count = rtc_read(CMOS_BIOS_SMP_COUNT) + 1;
+    dprintf(1, "cmos_smp_count=%d\n", cmos_smp_count);
     while (cmos_smp_count != CountCPUs)
         asm volatile(
             // Release lock and allow other processors to use the stack.
@@ -140,6 +142,8 @@ smp_setup(void)
             : "+m" (SMPLock), "+m" (SMPStack)
             : : "cc", "memory");
     yield();
+    dprintf(1, "cmos_smp_count2=%d/%d\n", cmos_smp_count
+            , rtc_read(CMOS_BIOS_SMP_COUNT) + 1);
 
     // Restore memory.
     *(u64*)BUILD_AP_BOOT_ADDR = old;
diff --git a/src/post.c b/src/post.c
index 9ea5620..dc11c72 100644
--- a/src/post.c
+++ b/src/post.c
@@ -170,6 +170,7 @@ platform_hardware_setup(void)
     clock_setup();
 
     // Platform specific setup
+    dprintf(1, "cmos_smp_count0=%d\n", rtc_read(CMOS_BIOS_SMP_COUNT) + 1);
     qemu_platform_setup();
     coreboot_platform_setup();
 }

  parent reply	other threads:[~2015-03-11 18:40 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-05 22:14 E5-2620v2 - emulation stop error Andrey Korolyov
2015-03-05 23:44 ` Andrey Korolyov
2015-03-06 16:57   ` [Qemu-devel] " 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 19:25               ` Paolo Bonzini
2015-03-10 19:37                 ` Dr. David Alan Gilbert
2015-03-10 20:29                 ` Dr. David Alan Gilbert
2015-03-11  2:38                   ` Bandan Das
2015-03-11 13:45                     ` Dr. David Alan Gilbert
2015-03-11 15:42                       ` Kevin O'Connor
2015-03-11 15:53                         ` Dr. David Alan Gilbert
2015-03-11 16:37                           ` Kevin O'Connor
2015-03-11 16:52                             ` [Qemu-devel] " Dr. David Alan Gilbert
2015-03-11 17:37                               ` Kevin O'Connor
2015-03-11 17:41                                 ` Paolo Bonzini
2015-03-11 17:59                                 ` Dr. David Alan Gilbert
2015-03-11 18:24                                   ` Bandan Das
2015-03-11 18:40                                   ` Kevin O'Connor [this message]
2015-03-11 18:45                                     ` Kevin O'Connor
2015-03-11 19:19                                       ` Kevin O'Connor
2015-03-11 19:33                                         ` Dr. David Alan Gilbert
2015-03-11 19:47                                           ` Bandan Das
2015-03-11 19:47                                           ` Andrey Korolyov
2015-03-11 19:59                                             ` Dr. David Alan Gilbert
2015-03-11 20:09                                               ` Andrey Korolyov
2015-03-12  9:59                                                 ` Dr. David Alan Gilbert
2015-03-12 10:47                                                   ` Andrey Korolyov
2015-03-16 19:17                                                     ` Andrey Korolyov
2015-03-16 19:26                                                       ` Dr. David Alan Gilbert
2015-03-25 20:43                                                       ` Andrey Korolyov
2015-03-25 20:46                                                         ` Andrey Korolyov
2015-03-25 20:54                                                         ` [Qemu-devel] " Kevin O'Connor
2015-03-25 22:31                                                           ` Andrey Korolyov
2015-03-25 23:02                                                             ` Kevin O'Connor
2015-03-25 23:35                                                               ` Andrey Korolyov
2015-03-26  0:05                                                                 ` Kevin O'Connor
2015-03-26 15:58                                                                   ` Radim Krčmář
2015-03-26 16:36                                                                     ` Kevin O'Connor
2015-03-26 16:48                                                                       ` [Qemu-devel] " Andrey Korolyov
2015-03-26 17:06                                                                         ` Kevin O'Connor
2015-03-26 17:08                                                                           ` Andrey Korolyov
2015-03-26 17:18                                                                             ` Kevin O'Connor
2015-03-26 17:33                                                                               ` Andrey Korolyov
2015-03-26 17:40                                                                             ` Radim Krčmář
2015-03-26 18:24                                                                               ` Andrey Korolyov
2015-03-26 20:40                                                                                 ` Radim Krčmář
2015-03-26 21:03                                                                                   ` Bandan Das
2015-03-27 10:16                                                                                     ` Andrey Korolyov
2015-03-30 18:56                                                                                       ` Radim Krčmář
2015-03-30 19:32                                                                                         ` [Qemu-devel] " Andrey Korolyov
2015-03-31 13:45                                                                                           ` Radim Krčmář
2015-03-31 14:56                                                                                             ` [Qemu-devel] " Andrey Korolyov
2015-03-31 16:45                                                                                               ` Radim Krčmář
2015-03-31 17:40                                                                                                 ` [Qemu-devel] " Andrey Korolyov
2015-03-31 18:01                                                                                                   ` Bandan Das
2015-03-31 18:04                                                                                                     ` Bandan Das
2015-03-31 18:23                                                                                                       ` [Qemu-devel] " Andrey Korolyov
2015-04-01 11:49                                                                                                         ` Radim Krčmář
2015-04-01 12:05                                                                                                           ` Paolo Bonzini
2015-04-01 12:26                                                                                                           ` Andrey Korolyov
2015-04-01 13:19                                                                                                             ` Paolo Bonzini
2015-04-01 15:37                                                                                                               ` Andrey Korolyov
2015-04-01 16:29                                                                                                                 ` Andrey Korolyov
2015-04-01 22:58                                                                                                                   ` Andrey Korolyov
2015-04-05 14:12                                                                                                                     ` Andrey Korolyov
2015-03-27 11:54                                                                                   ` [Qemu-devel] " Andrey Korolyov
2015-03-30 19:28                                                                                     ` Radim Krčmář
2015-03-26 17:35                                                                         ` Radim Krčmář
2015-03-26 17:34                                                                       ` Radim Krčmář
2015-03-26  2:47                                                         ` Bandan Das
2015-03-26  9:18                                                           ` Andrey Korolyov
2015-03-26 15:05                                                             ` Andrey Korolyov
2015-03-11 17:09                         ` Bandan Das
2015-03-11 17:32                           ` Kevin O'Connor
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=20150311184039.GA7341@morn.localdomain \
    --to=kevin@koconnor.net \
    --cc=andrey@xdel.ru \
    --cc=bsd@redhat.com \
    --cc=dgilbert@redhat.com \
    --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 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).