Re: Is KVM_GET_SREGS safe from other threads?

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

 



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

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux