How to get vCPU thread ID in QEMU/KVM host OS?
Posted on In QAIn order to collect more information about CPU information internal guest OS, we usually need to get vCPU’s thread ID in host OS.
Solution 1: Under directory ‘/sys/fs/cgroup/cpuset/machine’, you will find virtual_machine_name.libvirt-qemu directory. And under this directory, you will find all vCPU sub-directories and under these dirs, you will find vCPU thread IDs.
For example
sysmen tmp1.libvirt-qemu # ls
cgroup.clone_children cpuset.cpus cpuset.memory_migrate cpuset.memory_spread_slab cpuset.sched_relax_domain_level tasks vcpu2 vcpu5
cgroup.procs cpuset.mem_exclusive cpuset.memory_pressure cpuset.mems emulator vcpu0 vcpu3
cpuset.cpu_exclusive cpuset.mem_hardwall cpuset.memory_spread_page cpuset.sched_load_balance notify_on_release vcpu1 vcpu4
sysmen tmp1.libvirt-qemu # pwd
/sys/fs/cgroup/cpuset/machine/tmp1.libvirt-qemu
sysmen tmp1.libvirt-qemu # cat vcpu0/tasks
99461
sysmen tmp1.libvirt-qemu # taskset -pc 99461
pid 99461's current affinity list: 0
BTW, ‘# taskset -pc 99461’ will get this thread ID’s affinity information.