On Thu, Feb 01, 2018 at 12:54:41PM -0500, Luiz Capitulino wrote: > > Libvirt needs to know when a vCPU is halted. To get this information, > libvirt has started using the query-cpus command from QEMU. However, > if in kernel irqchip is in use, query-cpus will force all vCPUs > to user-space since they have to issue the KVM_GET_MP_STATE ioctl. > This has catastrophic implications to low-latency workloads like > KVM-RT and zero packet loss with DPDK. To make matters worse, there's > an OpenStack service called ceilometer that causes libvirt to > issue query-cpus every few minutes. > > The solution proposed in this patch is to export the vCPU > halted state in the already existing vcpu directory in sysfs. > This way, libvirt can read the vCPU halted state from sysfs and avoid > using the query-cpus command. This solution seems to be sufficient > for libvirt needs, but it has the following cons: > > * vcpu information in sysfs lives in a debug directory, so > libvirt would be basing its API on debug info Is this part of regular sysfs mount point, or does it require a debug fs to be mounted separately at /sys/fs/debug ? > * Currently, only x86 supports the vcpu dir in sysfs, so > we'd have to expand this to other archs (should be doable) Yep, that would be fairly important Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|