On Fri, May 14, 2010 at 04:14:31PM +0200, Alexander Graf wrote: > For SMP to work with KVM, we need to properly emulate the SIGP Initial Reset > Command. Recent (2.6.32) kernels issue that before the SIGP Reset command that > actually wakes up the vcpu. > > This patch makes -smp work on S390x. > > Signed-off-by: Alexander Graf <ag...@suse.de>
Thanks, applied. > --- > target-s390x/kvm.c | 17 ++++++++++++++--- > 1 files changed, 14 insertions(+), 3 deletions(-) > > diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c > index a2d7741..9bf6abb 100644 > --- a/target-s390x/kvm.c > +++ b/target-s390x/kvm.c > @@ -344,9 +344,20 @@ static int s390_store_status(CPUState *env, uint32_t > parameter) > > static int s390_cpu_initial_reset(CPUState *env) > { > - /* XXX */ > - fprintf(stderr, "XXX SIGP init\n"); > - return -1; > + int i; > + > + if (kvm_vcpu_ioctl(env, KVM_S390_INITIAL_RESET, NULL) < 0) { > + perror("cannot init reset vcpu"); > + } > + > + /* Manually zero out all registers */ > + cpu_synchronize_state(env); > + for (i = 0; i < 16; i++) { > + env->regs[i] = 0; > + } > + > + dprintf("DONE: SIGP initial reset: %p\n", env); > + return 0; > } > > static int handle_sigp(CPUState *env, struct kvm_run *run, uint8_t ipa1) > -- > 1.6.0.2 > > > -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurel...@aurel32.net http://www.aurel32.net