qemu-ppc
[Top][All Lists]
Advanced

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

Re: [Qemu-ppc] system-ppcemb -M bamboo, troubles with RTC


From: Alexander Graf
Subject: Re: [Qemu-ppc] system-ppcemb -M bamboo, troubles with RTC
Date: Tue, 02 Jul 2013 14:50:10 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.3) Gecko/20120306 Thunderbird/10.0.3

On 07/02/2013 06:26 AM, nello martuscielli wrote:
On Mon, Jul 1, 2013 at 11:22 AM, Alexander Graf<address@hidden>  wrote:

_cut__
[...]
KVM: invalid SPR write: 1013
mtspr: unknown spr 3f5
Couldn't emulate instruction 0x7c75fba6 (op 31 xop 467)
kvmppc_handle_exit: emulation at 700 failed (7c75fba6)

in my host dmesg and a kernel panic booting my guest.
Yes, that is also expected. KVM is only able to do very limited 
cross-virtualization. You can run a G3/G4/Gekko guest on a G5/P7. But that's 
about as far as it goes. 440 is a completely different specification, rendering 
it vastly incompatible with your G4. They are only mostly compatible from a 
user space perspective.

So if you want to use KVM on your G4, I'd be more than happy to see you doing 
so, but please use -M g3beige or -M mac99 with -cpu G3 or G4 :).

well, it happens also with host (POWER4+, Linux-3.4.51) and (G4, Linux-3.10).
As i know POWER4+ is a full book3s specs compliant.

Yes, for the most part a POWER4+ system behaves very similar to a G5. The only thing that won't work on that one (yet) is -M pseries, as you're most likely running on pHyp which filters hypercalls from us.



Instead that's from host (G4,linux-3.10) and guest (mac99,
Linux-3.9.7) when i use -enable-kvm:

from qemu-1.5.1 console:
[...]
Please wait, loading kernel...
Amiga partition table corrupted at block 0
block type is not partition but 00000000
    Elf32 kernel loaded...
zImage starting: loaded at 0x00600000 (sp: 0x0fde7a80)
Allocating 0x636e58 bytes for kernel ...
OF version = 'OpenFirmware 3'
Trying to claim from 0x600000 to 0x8a4c70 (0x2a4c70) got ffffffff
gunzipping (0x00a00000<- 0x00607000:0x00898237)...done 0x51b260 bytes
Linux/PowerPC load: root=/dev/sda1 ro console=ttyPZ0,57600
Finalizing device tree... using OF tree (promptr=fff025a4)
OF stdout device is: 
/address@hidden/address@hidden/address@hidden/address@hidden
Preparing to boot Linux version 3.9.7-mac99 (address@hidden) (gcc version
4.7.3 (CRUX PPC) ) #3 Mon Jul 1 06:32:42 CEST 2013
Detected machine type: 00000400
command line:
memory layout at init:
   memory_limit : 00000000 (16 MB aligned)
   alloc_bottom : 0103b000
   alloc_top    : 10000000
   alloc_top_hi : 10000000
   rmo_top      : 10000000
   ram_top      : 10000000
found display   : /address@hidden/QEMU,address@hidden, opening... done
copying OF device tree...
Building dt strings...
Building dt structure...
Device tree strings 0x0103c000 ->  0x0103c518
Device tree struct  0x0103d000 ->  0x0103f000
Calling quiesce...
returning from prom_init
console [ttyPZ0] enabled, bootconsole disabled
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
Oops: Exception in kernel mode, sig: 4 [#1]
PowerMac
Modules linked in:
NIP: 00000700 LR: c00077a4 CTR: c0048f90
REGS: c050fea0 TRAP: 0700   Not tainted  (3.9.7-mac99)
MSR: 00040000<>   CR: 22000022  XER: 00000000
TASK = c04e43c0[0] 'swapper' THREAD: c050e000
GPR00: c03c5788 c050ff50 c04e43c0 00000000 00000000 00000001 00000000 cf840638
GPR08: 00000000 00000000 00000000 00000000 22000024 00000000 0fde7ac8 00000002
GPR16: 00000000 00000000 0fc5c91c c04e4518 c0520000 c04e9304 c03d0000 c03d0000
GPR24: 00000001 00000004 c0510000 c050e000 cf840600 c04ea30c c04e8f20 cf840600
NIP [00000700] 0x700
LR [c00077a4] __switch_to+0xa8/0xb4
Call Trace:
[c050ff50] [c0520000] 0xc0520000 (unreliable)
[c050ff60] [c03c5788] __schedule+0x2c8/0x34c
[c050ffa0] [c03c5a8c] schedule_preempt_disabled+0x10/0x20
[c050ffb0] [c00045d8] rest_init+0x60/0x70
[c050ffc0] [c04b3978] start_kernel+0x280/0x288
[c050fff0] [00003444] 0x3444
Instruction dump:
00000000 XXXXXXXX XXXXXXXX XXXXXXXX 00000000 XXXXXXXX XXXXXXXX XXXXXXXX
00000000 XXXXXXXX XXXXXXXX XXXXXXXX 7d5043a6 XXXXXXXX XXXXXXXX XXXXXXXX
---[ end trace 31fd0ba7d8756001 ]---
Kernel panic - not syncing: Attempted to kill the idle task!

and from host dmesg:
[...]
[  470.988993] KVM: invalid SPR write: 1013
[  470.989004] mtspr: unknown spr 0x3f5
[  470.989009] Couldn't emulate instruction 0x7c75fba6 (op 31 xop 467)
[  470.990466] kvmppc_handle_exit: emulation at 700 failed (7c75fba6)

Oh, the guest kernel is trying to access DABR. Great. Does the following host patch help?


Alex

diff --git a/arch/powerpc/kvm/book3s_emulate.c b/arch/powerpc/kvm/book3s_emulate.c
index 1f6344c..360ce68 100644
--- a/arch/powerpc/kvm/book3s_emulate.c
+++ b/arch/powerpc/kvm/book3s_emulate.c
@@ -458,6 +458,7 @@ int kvmppc_core_emulate_mtspr(struct kvm_vcpu *vcpu, int sprn, ulong spr_val)
        case SPRN_PMC4_GEKKO:
        case SPRN_WPAR_GEKKO:
        case SPRN_MSSSR0:
+       case SPRN_DABR:
                break;
 unprivileged:
        default:
@@ -555,6 +556,7 @@ int kvmppc_core_emulate_mfspr(struct kvm_vcpu *vcpu, int sprn, ulong *spr_val)
        case SPRN_PMC4_GEKKO:
        case SPRN_WPAR_GEKKO:
        case SPRN_MSSSR0:
+       case SPRN_DABR:
                *spr_val = 0;
                break;
        default:




reply via email to

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