qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] svm_decache_regs Problem?


From: calvino
Subject: [Qemu-devel] svm_decache_regs Problem?
Date: Thu, 23 Dec 2010 12:11:06 +0800

Hi there, recently I'm digging on kvm source code and when I use the svm_decache_regs the kvm oops and throw out bug like this 
--------------
BUG:unable to handle kernel NULL pointer dereference at 00000000000005f8
IP:[<ffffffff8022a8f6>]svm_decache_regs+0x2f/0x72
PGD 19c98067 PUD 1c8db067 PMD 0
Oops:0002 [1] SMP
--------------

My os is debian-lenny-507 and kernel version is 2.6.26-0.rc8 and cpuinfo is 

vendor_id : AuthenticAMD
cpu family : 15
model : 107
model name : AMD Athlon(tm) Dual Core Processor 4850e
stepping : 2
cpu MHz : 2505.188
cache size : 512 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch

the system is x86_64

------------------------------------------------------

Here is my dump of the svm_decache_regs
0xffffffff8022a8c7 <svm_decache_regs+0>: push   %rbp
0xffffffff8022a8c8 <svm_decache_regs+1>: mov    %rsp,%rbp
0xffffffff8022a8cb <svm_decache_regs+4>: sub    $0x18,%rsp
0xffffffff8022a8cf <svm_decache_regs+8>: mov    %rdi,-0x18(%rbp)
0xffffffff8022a8d3 <svm_decache_regs+12>: mov    -0x18(%rbp),%rdi
0xffffffff8022a8d7 <svm_decache_regs+16>: callq  0xffffffff8022a2a0 <to_svm>
0xffffffff8022a8dc <svm_decache_regs+21>: mov    %rax,-0x8(%rbp)
0xffffffff8022a8e0 <svm_decache_regs+25>: mov    -0x8(%rbp),%rax
0xffffffff8022a8e4 <svm_decache_regs+29>: mov    0x1ca0(%rax),%rdx
0xffffffff8022a8eb <svm_decache_regs+36>: mov    -0x18(%rbp),%rax
0xffffffff8022a8ef <svm_decache_regs+40>: mov    0x168(%rax),%rax
0xffffffff8022a8f6 <svm_decache_regs+47>: mov    %rax,0x5f8(%rdx) ---> error step?
0xffffffff8022a8fd <svm_decache_regs+54>: mov    -0x8(%rbp),%rax
0xffffffff8022a901 <svm_decache_regs+58>: mov    0x1ca0(%rax),%rdx
0xffffffff8022a908 <svm_decache_regs+65>: mov    -0x18(%rbp),%rax
0xffffffff8022a90c <svm_decache_regs+69>: mov    0x188(%rax),%rax
0xffffffff8022a913 <svm_decache_regs+76>: mov    %rax,0x5d8(%rdx)
0xffffffff8022a91a <svm_decache_regs+83>: mov    -0x8(%rbp),%rax
0xffffffff8022a91e <svm_decache_regs+87>: mov    0x1ca0(%rax),%rdx
0xffffffff8022a925 <svm_decache_regs+94>: mov    -0x18(%rbp),%rax
0xffffffff8022a929 <svm_decache_regs+98>: mov    0x1e8(%rax),%rax
0xffffffff8022a930 <svm_decache_regs+105>: mov    %rax,0x578(%rdx)
0xffffffff8022a937 <svm_decache_regs+112>: leaveq 
0xffffffff8022a938 <svm_decache_regs+113>: retq

AS I see before the BUG means %rax,0x5f8(%rdx) but this address 0x5f8(%rdx) access error.

----------------------------------------
MORE this is a piece of my function dump
0xffffffff8022bfa0 <handle_invalid_op+37>: callq  0xffffffff8022a2a0 <to_svm> ----> here to_svm(vcpu)
0xffffffff8022bfa5 <handle_invalid_op+42>: mov    %rax,-0x8(%rbp)
0xffffffff8022bfa9 <handle_invalid_op+46>: mov    -0x8(%rbp),%rax
0xffffffff8022bfad <handle_invalid_op+50>: mov    0x1ca0(%rax),%rdx
0xffffffff8022bfb4 <handle_invalid_op+57>: mov    -0x20(%rbp),%rax
0xffffffff8022bfb8 <handle_invalid_op+61>: mov    0x168(%rax),%rax
0xffffffff8022bfbf <handle_invalid_op+68>: mov    %rax,0x5f8(%rdx)  ---->the error instruction, the 0x5f8(%rdx) address
0xffffffff8022bfc6 <handle_invalid_op+75>: mov    -0x8(%rbp),%rax
0xffffffff8022bfca <handle_invalid_op+79>: mov    0x1ca0(%rax),%rdx
0xffffffff8022bfd1 <handle_invalid_op+86>: mov    -0x20(%rbp),%rax
0xffffffff8022bfd5 <handle_invalid_op+90>: mov    0x1e8(%rax),%rax
0xffffffff8022bfdc <handle_invalid_op+97>: mov    %rax,0x578(%rdx)
0xffffffff8022bfe3 <handle_invalid_op+104>: mov    -0x20(%rbp),%rax
0xffffffff8022bfe7 <handle_invalid_op+108>: mov    0x1e8(%rax),%rax
0xffffffff8022bfee <handle_invalid_op+115>: cmp    $0xffffffff8026103a,%rax
0xffffffff8022bff4 <handle_invalid_op+121>: jne    0xffffffff8022c06a <handle_invalid_op+239>
0xffffffff8022bff6 <handle_invalid_op+123>: mov    $0xffffffff805f07a3,%rdi

static int handle_invalid_op(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
{
     struct vcpu_svm *svm = to_svm(vcpu);

     do something
}
----------------------------------------

ADDON: my kvm startup command is:kvm -hda xxx -cdrom xxx -net nic,model=rtl8139,macaddress=11:11:11:11:11:11 -net tap,ifname=tap,script=xxx vnc xxxx -boot c

when I start the kvm and then it oops and a memory error like that.


---------------------------------------
Is anyone will check how svm_decache_regs works?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]