From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: Is KVM_GET_SREGS safe from other threads? Date: Sun, 08 May 2011 11:50:57 +0300 Message-ID: <4DC65971.7060203@redhat.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: KVM General , Ingo Molnar , Cyrill Gorcunov To: Pekka Enberg Return-path: Received: from mx1.redhat.com ([209.132.183.28]:48456 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751361Ab1EHIvR (ORCPT ); Sun, 8 May 2011 04:51:17 -0400 In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: On 05/08/2011 11:24 AM, Pekka Enberg wrote: > Hi! > > We've noticed that sometimes KVM_GET_SREGS from a signal handler > hangs. We use it like this: > > static void handle_sigquit(int sig) > { > int i; > > for (i = 0; i< nrcpus; i++) { > struct kvm_cpu *cpu = kvm_cpus[i]; > > kvm_cpu__show_registers(cpu);<-- here > kvm_cpu__show_code(cpu); > kvm_cpu__show_page_tables(cpu); > } > > and > > void kvm_cpu__show_registers(struct kvm_cpu *self) > { > [...] > if (ioctl(self->vcpu_fd, KVM_GET_SREGS,&sregs)< 0) > die("KVM_GET_REGS failed"); > > is it not OK to call KVM_GET_SREGS from other threads than the one > that's doing KVM_RUN? From Documentation/kvm/api.txt: - vcpu ioctls: These query and set attributes that control the operation of a single virtual cpu. Only run vcpu ioctls from the same thread that was used to create the vcpu. So no, it is not okay (nor is it meaningful, you get a register snapshot that is disconnected from all other vcpu state). -- error compiling committee.c: too many arguments to function