All of lore.kernel.org
 help / color / mirror / Atom feed
From: Serge Hallyn <1297651@bugs.launchpad.net>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [Bug 1297651] Re: KVM create a win7 guest with Qemu, it boots up fail
Date: Thu, 27 Mar 2014 14:03:22 -0000	[thread overview]
Message-ID: <20140327140322.GA4262@sergelap> (raw)
In-Reply-To: 20140327052251.9642.54769.malone@soybean.canonical.com

Quoting Robert Hu (robert.hu@intel.com):
> on latest commit (db237e33), this bug doesn't exit.

Sorry, I don't see this commit in qemu.git?

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1297651

Title:
  KVM create a win7 guest with Qemu, it boots up fail

Status in QEMU:
  New

Bug description:
  Environment:
  ------------
  Host OS (ia32/ia32e/IA64):ia32e
  Guest OS (ia32/ia32e/IA64):ia32e
  Guest OS Type (Linux/Windows):Windows
  kvm.git Commit:94b3ffcd41a90d2cb0b32ca23aa58a01111d5dc0
  qemu-kvm Commit:839a5547574e57cce62f49bfc50fe1f04b00589a
  Host Kernel Version:3.14.0-rc3
  Hardware:Romley_EP, Ivytown_EP, HSW_EP

  
  Bug detailed description:
  --------------------------
  when create a win7 guest, the guest boot up fail.

  note: 
  1. when create win2000, winxp, win2k3, win2k8, guest, the guest boot up fail.
  2. when create win8, win8.1, win2012 guest, the guest boot up fine.

  
  Reproduce steps:
  ----------------
  1.create guest
  qemu-system-x86_64 -enable-kvm -m 1024 -smp 2 -net none -hda /root/win7.qcow

  
  Current result:
  ----------------
  win7 guest boot up fail

  Expected result:
  ----------------
  win7 guest boot up fine

  Basic root-causing log:
  ----------------------

  This should be a qemu bug
  kvm      + qemu     =  result
  94b3ffcd + 839a5547 = bad
  94b3ffcd + 3a87f8b6 = good

  the first bad commit is:
  commit 9bcc80cd71892df42605e0c097d85c0237ff45d1
  Author: Laszlo Ersek <lersek@redhat.com>
  Date:   Mon Mar 17 17:05:16 2014 +0100

      i386/acpi-build: allow more than 255 elements in CPON

      The build_ssdt() function builds a number of AML objects that are related
      to CPU hotplug, and whose IDs form a contiguous sequence of APIC IDs.
      (APIC IDs are in fact discontiguous, but this is the traditional
      interface: build a contiguous sequence from zero up that covers all
      possible APIC IDs.) These objects are:

      - a Processor() object for each VCPU,
      - a NTFY method, with one branch for each VCPU,
      - a CPON package with one element (hotplug status byte) for each VCPU.

      The build_ssdt() function currently limits the *count* of processor
      objects, and NTFY branches, and CPON elements, in 0xFF (see the assignment
      to "acpi_cpus"). This allows for an inclusive APIC ID range of [0..254].
      This is incorrect, because the highest APIC ID that we otherwise allow a
      VCPU to take is 255.

      In order to extend the maximum count to 256, and the traversed APIC ID
      range correspondingly to [0..255]:
      - the Processor() objects need no change,
      - the NTFY method also needs no change,
      - the CPON package must be updated, because it is defined with a
        DefPackage, and the number of elements in such a package can be at most
        255. We pick a DefVarPackage instead.

      We replace the Op byte, and the encoding of the number of elements.
      Compare:

      DefPackage     := PackageOp    PkgLength NumElements    PackageElementList
      DefVarPackage  := VarPackageOp PkgLength VarNumElements PackageElementList

      PackageOp      := 0x12
      VarPackageOp   := 0x13

      NumElements    := ByteData
      VarNumElements := TermArg => Integer

      The build_append_int() function implements precisely the following TermArg
      encodings (a subset of what the ACPI spec describes):

        TermArg             := DataObject
        DataObject          := ComputationalData
        ComputationalData   := ConstObj | ByteConst | WordConst | DWordConst
        directly encoded in the function, with build_append_byte():
          ConstObj          := ZeroOp | OneOp
            ZeroOp          := 0x00
            OneOp           := 0x01

        call to build_append_value(..., 1):
          ByteConst         := BytePrefix ByteData
            BytePrefix      := 0x0A
            ByteData        := 0x00 - 0xFF

        call to build_append_value(..., 2):
          WordConst         := WordPrefix WordData
            WordPrefix      := 0x0B
            WordData        := ByteData[0:7] ByteData[8:15]

        call to build_append_value(..., 4):
          DWordConst        := DWordPrefix DWordData
            DWordPrefix     := 0x0C
            DWordData       := WordData[0:15] WordData[16:31]

      Signed-off-by: Laszlo Ersek <lersek@redhat.com>
      Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
      Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1297651/+subscriptions

  reply	other threads:[~2014-03-27 14:11 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-26  6:45 [Qemu-devel] [Bug 1297651] [NEW] KVM create a win7 guest with Qemu, it boots up fail Robert Hu
2014-03-26  7:10 ` Gonglei (Arei)
2014-03-26  7:16 ` Gonglei (Arei)
2014-03-26 10:45   ` Michael S. Tsirkin
2014-03-26  9:31 ` Stefan Hajnoczi
2014-03-26 10:31 ` Michael S. Tsirkin
2014-03-26 12:28   ` Laszlo Ersek
2014-03-26 12:58     ` Michael S. Tsirkin
2014-03-26 13:48       ` Igor Mammedov
2014-03-26 13:56         ` Michael S. Tsirkin
2014-03-26 14:54         ` Michael S. Tsirkin
2014-03-26 15:06           ` Eduardo Habkost
2014-03-26 15:09             ` Michael S. Tsirkin
2014-03-26 15:23               ` Eduardo Habkost
2014-03-26 16:28                 ` Laszlo Ersek
2014-03-26 15:52         ` Laszlo Ersek
2014-03-26 16:29           ` Michael S. Tsirkin
2014-03-26 13:56       ` Laszlo Ersek
2014-03-26 14:50         ` Michael S. Tsirkin
2014-03-27  5:19         ` Hu, Robert
2014-03-27  5:15   ` Hu, Robert
2014-03-27  5:22 ` [Qemu-devel] [Bug 1297651] " Robert Hu
2014-03-27 14:03   ` Serge Hallyn [this message]
2014-03-28  2:22 ` Robert Hu
2014-04-04  3:39 ` Serge Hallyn

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=20140327140322.GA4262@sergelap \
    --to=1297651@bugs.launchpad.net \
    --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.