Jump to content

Question about vcpupin


johnodon

Recommended Posts

Here is my CPU params for one of me XBMCBuntu VMs:

 

  <vcpu placement='static'>2</vcpu>

  <cputune>

    <vcpupin vcpu='0' cpuset='0'/>

    <vcpupin vcpu='1' cpuset='1'/>

  </cputune>

  <os>

    <type arch='x86_64' machine='pc-q35-2.1'>hvm</type>

    <boot dev='hd'/>

    <bootmenu enable='no'/>

  </os>

  <features>

    <acpi/>

    <apic/>

  </features>

  <cpu mode='host-passthrough'>

    <topology sockets='1' cores='2' threads='1'/>

  </cpu>

 

1.  Does it look correct?

2.  Do the items highlighted in red need to be different per VM?  Are specific CPUs/cores (0 and 1) being assigned to this VM or is it just a placeholder to reserve any available 2 CPUs/cores?

 

I read the below as it is pinning to specific CPUs:

 

vcpupin

The optional vcpupin element specifies which of host's physical CPUs the domain VCPU will be pinned to. If this is omitted, and attribute cpuset of element vcpu is not specified, the vCPU is pinned to all the physical CPUs by default. It contains two required attributes, the attribute vcpu specifies vcpu id, and the attribute cpuset is same as attribute cpuset of element vcpu. (NB: Only qemu driver support) Since 0.9.0

 

If that is the case, this is one more situation where we need to be VERY careful with our copy/paste XML habits.  :)

 

So this is what I now have for each of my XBMCBuntu VMs.  Is this the right thing to do or am I completely misunderstanding?

 

XBMCBUNTU #1

  <vcpu placement='static'>2</vcpu>

  <cputune>

    <vcpupin vcpu='0' cpuset='0'/>

    <vcpupin vcpu='1' cpuset='1'/>

  </cputune>

  <os>

    <type arch='x86_64' machine='pc-q35-2.1'>hvm</type>

    <boot dev='hd'/>

    <bootmenu enable='no'/>

  </os>

  <features>

    <acpi/>

    <apic/>

  </features>

  <cpu mode='host-passthrough'>

    <topology sockets='1' cores='2' threads='1'/>

  </cpu>

 

XBMCBUNTU #2

  <vcpu placement='static'>2</vcpu>

  <cputune>

    <vcpupin vcpu='0' cpuset='2'/>

    <vcpupin vcpu='1' cpuset='3'/>

  </cputune>

  <os>

    <type arch='x86_64' machine='pc-q35-2.1'>hvm</type>

    <boot dev='hd'/>

    <bootmenu enable='no'/>

  </os>

  <features>

    <acpi/>

    <apic/>

  </features>

  <cpu mode='host-passthrough'>

    <topology sockets='1' cores='2' threads='1'/>

  </cpu>

 

TIA.

 

John

Link to comment

Here is my CPU params for one of me XBMCBuntu VMs:

 

  <vcpu placement='static'>2</vcpu>

  <cputune>

    <vcpupin vcpu='0' cpuset='0'/>

    <vcpupin vcpu='1' cpuset='1'/>

  </cputune>

  <os>

    <type arch='x86_64' machine='pc-q35-2.1'>hvm</type>

    <boot dev='hd'/>

    <bootmenu enable='no'/>

  </os>

  <features>

    <acpi/>

    <apic/>

  </features>

  <cpu mode='host-passthrough'>

    <topology sockets='1' cores='2' threads='1'/>

  </cpu>

 

1.  Does it look correct?

2.  Do the items highlighted in red need to be different per VM?  Are specific CPUs/cores (0 and 1) being assigned to this VM or is it just a placeholder to reserve any available 2 CPUs/cores?

 

I read the below as it is pinning to specific CPUs:

 

vcpupin

The optional vcpupin element specifies which of host's physical CPUs the domain VCPU will be pinned to. If this is omitted, and attribute cpuset of element vcpu is not specified, the vCPU is pinned to all the physical CPUs by default. It contains two required attributes, the attribute vcpu specifies vcpu id, and the attribute cpuset is same as attribute cpuset of element vcpu. (NB: Only qemu driver support) Since 0.9.0

 

If that is the case, this is one more situation where we need to be VERY careful with our copy/paste XML habits.  :)

 

So this is what I now have for each of my XBMCBuntu VMs.  Is this the right thing to do or am I completely misunderstanding?

 

XBMCBUNTU #1

  <vcpu placement='static'>2</vcpu>

  <cputune>

    <vcpupin vcpu='0' cpuset='0'/>

    <vcpupin vcpu='1' cpuset='1'/>

  </cputune>

  <os>

    <type arch='x86_64' machine='pc-q35-2.1'>hvm</type>

    <boot dev='hd'/>

    <bootmenu enable='no'/>

  </os>

  <features>

    <acpi/>

    <apic/>

  </features>

  <cpu mode='host-passthrough'>

    <topology sockets='1' cores='2' threads='1'/>

  </cpu>

 

XBMCBUNTU #2

  <vcpu placement='static'>2</vcpu>

  <cputune>

    <vcpupin vcpu='0' cpuset='2'/>

    <vcpupin vcpu='1' cpuset='3'/>

  </cputune>

  <os>

    <type arch='x86_64' machine='pc-q35-2.1'>hvm</type>

    <boot dev='hd'/>

    <bootmenu enable='no'/>

  </os>

  <features>

    <acpi/>

    <apic/>

  </features>

  <cpu mode='host-passthrough'>

    <topology sockets='1' cores='2' threads='1'/>

  </cpu>

 

TIA.

 

John

Looking good to me!  You've got it right!

Link to comment

Looking good to me!  You've got it right!

 

Meaning you absolutely have to use different cpuset values for each VM?

 

John

Oh no.  You can use the same values, but that won't help you with context switching performance. For XBMC you could probably get away pinning each if those two VMs to the same cores, but for Windows, make sure they are separate cores.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...