On 12/08/2015 17:19, Frederic Konrad wrote: > BTW that affect KVM as well. Seems this mechanism is used as well with > qemu_cpu_kick_self().. Which is a little strange as it seems the SIGIPI > trigger a > dummy signal handler? > > memset(&sigact, 0, sizeof(sigact)); > sigact.sa_handler = dummy_signal; > sigaction(SIG_IPI, &sigact, NULL);
KVM is different, the signal handler is used to kick the VM out of KVM_RUN. We're going to add another path (a ioctl) but it cannot use the same code as TCG. qemu_cpu_kick_self is needed in some special cases where KVM tells you "call KVM_RUN asap" but you know you have more work to do in userspace. Calling qemu_cpu_kick_self lets you call KVM_RUN work and immediately do the userspace work. Paolo