On Sun, May 8, 2011 at 11:50 AM, Avi Kivity <a...@redhat.com> wrote:
> 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).

Aah, I've read that part at some point but forgot all about it. Thanks, Avi!
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to