[vfio-users] After CPU pinning with libvirt, performance hasn't improved

Garrett Powell garretttracypowell at gmail.com
Sat Sep 12 17:57:24 UTC 2015


I went back and read your post from last week, and tried setting things up
in the way you described there. I also used hugepages and "nohz_full=".
Still, my benchmarks with CPU-Z are no different and I'm still getting
sub-par performance in-game.

-Garrett

On Sat, Sep 12, 2015 at 12:10 PM Alex Williamson <
alex.l.williamson at gmail.com> wrote:

> On Sat, Sep 12, 2015 at 9:55 AM, Garrett Powell <
> garretttracypowell at gmail.com> wrote:
>
>> Per Alex's recommendation, I've switched from controlling QEMU directly
>> to using libvirt. I've been trying for the past few days to get CPU pinning
>> to work, but my performance hasn't improved. I should mention that my
>> graphics performance is fine. After reading through the entire thread at
>> virtualkvm.com, I've found a lot of people with similar issues but no
>> solutions that have worked for me. I'm using a single quad-core processor
>> with HT.
>>
>> Here's part of my xml file:
>> <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0
>> '>
>>   . . .
>>   <vcpu placement='static'>4</vcpu>
>>   <cputune>
>>     <vcpupin vcpu='0' cpuset='2'/>
>>     <vcpupin vcpu='1' cpuset='3'/>
>>     <vcpupin vcpu='2' cpuset='6'/>
>>     <vcpupin vcpu='3' cpuset='7'/>
>>   </cputune>
>>   . . .
>>   <cpu mode='host-passthrough'>
>>     <topology sockets='1' cores='2' threads='2'/>
>>   </cpu>
>>   . . .
>> </domain>
>>
>> Here are the core ids for my CPUs (0-7):
>> $ cat /proc/cpuinfo | grep "core id"
>> core id : 0
>> core id : 1
>> core id : 2
>> core id : 3
>> core id : 0
>> core id : 1
>> core id : 2
>> core id : 3
>>
>> Here are my kernel parameters:
>> GRUB_CMDLINE_LINUX_DEFAULT="isolcpus=2,3,6,7 intel_iommu=on
>> rd.driver.pre=vfio-pci"
>>
>> Some things from the forum thread I tried:
>>
>>    - Using <emulatorpin cpuset='2-3,6-7'/> in the xml file under
>>    <cputune> and removing "isolcpus" from my kernel parameters to set cpu
>>    affinity
>>    - Using "iommu=pt"
>>    - Using "nohz=off"
>>
>>
> Pinning the emulator to the same CPUs you're using for the vCPUs seems
> like a bad idea.  As I pointed out in my latency post last week, I got the
> best latency by pinning the emulator to the opposite thread of the CPU from
> the vCPU.  The "iommu=pt" option only affects the DMA performance of host
> devices.  The "nohz_full=" option seems to be missing from your list of
> things to try.  It also doesn't seem like you're using hugepages.
>
> I run tests where assigning threads to a VM degrades performance versus
> isolating the thread and reducing the number of vCPUs in the guest.  More
> vCPUs is not always the answer.  Thanks,
>
> Alex
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20150912/4f1db793/attachment.htm>


More information about the vfio-users mailing list