Hello Friends, Thanks to your help I have found the task structure of the target process (denote it as TASK) and its group leader (TASK->tgid)
Now I did the following: struct siginfo info; .. info.si_signo = SIGTERM; info.si_code = SI_QUEUE; info.si_errno = 0; /* no recovery */ status = send_sig_info(SIGTERM, &info, task); The result: both the host and the guest hang! Can I use the kill function directly : kill (TASK->tgid, SIGTERM) ? This function is a user-space one... Best Regards, the team On Thu 06 Mar 13:28 2014 Paolo Bonzini wrote: > Il 06/03/2014 11:31, Alexander Binun ha scritto: > > Then - more questions : > > 1. How can I access the Qemu process (relevant to a given VM) from > > within in the kernel context (being in a kernel module) ? > > The struct pid for the VCPU is in the "pid" field of struct kvm_vcpu. > > From there if needed you can get the task (with pid_task) and the > task's thread group leader (the task's group_leader), and send a signal > to it. > > > 2. Should I uninitialize some internal structures for the VM being > > killed ? > > No, it will happen automatically. When QEMU is terminated, the VM's > file descriptor is closed and this frees all internal structures. > > > 3. My module detects malicious activities at a VCPU. How can one get the > > VM owning this VCPU ? > > Field "kvm" in struct kvm_vcpu points to the struct kvm for the VM. > > Paolo >