kvm presenting wrong CPU Topology for cache

Satish Patel
Fri, 28 Feb 2020 20:55:45 -0000

Folks,

I am having major performance issue with my Erlang application running
on openstack KVM hypervisor and after so many test i found something
wrong with my KVM guest CPU Topology

This is KVM host - http://paste.openstack.org/show/790120/
This is KVM guest - http://paste.openstack.org/show/790121/

If you carefully observe output of both host and guest you can see
guest machine threads has own cache that is very strange

L2 L#0 (4096KB) + Core L#0
      L1d L#0 (32KB) + L1i L#0 (32KB) + PU L#0 (P#0)
      L1d L#1 (32KB) + L1i L#1 (32KB) + PU L#1 (P#1)

I believe because of that my erlang doesn't understand topology and
going crazy..

I have Ali Cloud and AWS and when i compare with them they are showing
correct CPU Topology the way physical machine showing, something is
wrong with my KVM look like.

I am running qemu-kvm-2.12 on centos 7.6 and i have tune my KVM at my
best level, like CPU vining, NUMA and cpu host-passthrough.

Thanks in advance for your help.