public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: "Roedel, Joerg" <Joerg.Roedel@amd.com>
To: Avi Kivity <avi@redhat.com>
Cc: IVAN ANGELOV <ivangotoy@gmail.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	Ingo Molnar <mingo@elte.hu>, <x86@kernel.org>
Subject: Re: kvm_amd BUG: unable to handle kernel NULL pointer dereference at 00000014
Date: Mon, 7 Mar 2011 13:11:38 +0100	[thread overview]
Message-ID: <20110307121138.GD17719@amd.com> (raw)
In-Reply-To: <4D736090.1000300@redhat.com>

(CC'ing x86 Maintainers)

On Sun, Mar 06, 2011 at 05:23:12AM -0500, Avi Kivity wrote:
> On 03/04/2011 12:34 AM, IVAN ANGELOV wrote:
> > Hello,
> > This provided dmesg message and kernel behavior appear when trying to
> > run qemu-kvm with kvm_amd module. Without kvm_amd qemu-kvm runs fine
> > but a slower. I managed to see that this happens with 2.6.38-rc6 ,
> > 2.6.38-rc7 vanilla kernels compiled using kernel-package. OS ubuntu
> > natty. Using the standard toolchain and gcc from ubuntu: gcc version
> > 4.5.2 (Ubuntu/Linaro 4.5.2-3ubuntu3)
> > I reverted to 2.6.37.2 linux kernel, compiled with the very same tools
> > and machine I use qemu-kvm with kvm_amd module without any problems.
> > If I can provide some extra info about that please let me know.
> > This issue also appears with the kernel provided by the Ubuntu
> > distribution: 2.6.38-5-generic-pae #32-Ubuntu SMP Tue Feb 22 17:48:56
> > UTC 2011 i686 athlon i386 GNU/Linux , I suspect it is somehow related
> > to the 2.6.38 kernel series.
> > cpuinfo - phenom ii x4 955 mildly overclocked - 4 fields like this is
> > the whole cpuinfo.
> 
> 
>     c:    65 a1 14 00 00 00        mov    %gs:0x14,%eax
> 
> faults, gsbase == NULL.
> 
> But arch/x86/include/asm/percpu.h says:
> 
> #ifdef CONFIG_X86_64
> #define __percpu_seg        gs
> #define __percpu_mov_op        movq
> #else
> #define __percpu_seg        fs
> #define __percpu_mov_op        movl
> #endif
> 
> 
> So we should be using %fs, not %gs.

There is no access to per_cpu variables at the start of x86_decode_insn.
I did a bit of investigation and it turns out that the faulting
instruction is inserted into the code by the gcc because the
CONFIG_CC_STACKPROTECTOR is enabled.
The user tested this is Ubuntu 11.04 alpha-something i386 and this
distro uses gcc 4.5.2. So CC_STACKPROTECTOR seems to be harmful with
this gcc version but I am not sure whether this counts as a gcc bug.

	Joerg

-- 
AMD Operating System Research Center

Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach
General Managers: Alberto Bozzo, Andrew Bowd
Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632


  reply	other threads:[~2011-03-07 12:11 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-03 22:34 kvm_amd BUG: unable to handle kernel NULL pointer dereference at 00000014 IVAN ANGELOV
2011-03-06 10:23 ` Avi Kivity
2011-03-07 12:11   ` Roedel, Joerg [this message]
2011-03-07 12:50     ` Avi Kivity
2011-03-07 13:16       ` Roedel, Joerg
2011-03-07 13:20         ` Avi Kivity
2011-03-07 13:29           ` Roedel, Joerg

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=20110307121138.GD17719@amd.com \
    --to=joerg.roedel@amd.com \
    --cc=avi@redhat.com \
    --cc=ivangotoy@gmail.com \
    --cc=kvm@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=x86@kernel.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