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