Re: [PATCH] KVM/X86: vpmu migration, make perf_event associated with vcpu thread

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

 



On 2013/11/30 18:54, Gleb Natapov wrote:
> On Sat, Nov 30, 2013 at 01:59:24AM +0800, Wang Hui wrote:
>> After applying Paolo's patch, vpmu's data was migrated correctly.
>> https://patchwork.kernel.org/patch/2850813/
>>
>> But when I wrote a test module to make IA32_PMC1 to count the event of unhalted
>> cpu-cycles, after migration the value of IA32_PMC1 never grows up again. I found
>> that after migration perf_event was created exactly, but when it was created,
>> "current" is qemu's main thread which won't enter no-root mode, so the count of
>> perf_event will never increase.
>>
>> I have tried pid in the struct of kvm_vcpu to get the vcpu thread's task_struct,
>> but after migration when create perf_event, pid is pointed to qemu's main thread
>> but not vcpu thread because of the pid switching in vcpu_load. I don't understand
>> this very well, I think vcpu is created in qemu_kvm_cpu_thread_fn, which is the
>> vcpu thread, use the pid of current is enough, why switch is needed?
>>
> 
> Because the fact that thread that creates vcpu is the one that will
> "run" the vcpu is QEMU implementation detail. Other userspace may create
> all vcpus in one thread and then handle each one to a dedicated thread. Your
> code will not work for such userspace. You need to use pid and reprogram all mmu
> counters when it changes.
> 
Thank you Gleb, my thought was too simple, I will try pid.
--
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