[ovirt-devel] Discussion VM CPU pinning and NUMA CPU pinning

Liao, Chuan (Jason Liao, HPservers-Core-OE-PSC) chuan.liao at hp.com
Fri May 16 02:30:34 UTC 2014


Hi Gilad,

The restful API model of NUMA CPU and CPU-pinning is named NUMACPU ( Under NumaNode, VirutalNumaNode )
Which is contain some attributes;
index (xs:int): Numa CPU index or vNuma CPU index. 
pin_set (xs:string): Virtual NUMA CPU pin to host NUMA CPU set. ( only enabled on VirtualNumaNode )

BTW, Could you give us some update about UI layer solution of NUMA CPU-pinning configuration ?

Best Regards,
Jason Liao

> -----Original Message-----
> From: Gilad Chaplik [mailto:gchaplik at redhat.com]
> Sent: 2014年5月15日 20:07
> To: Liao, Chuan (Jason Liao, HPservers-Core-OE-PSC)
> Cc: devel at ovirt.org; Doron Fediuck; Martin Sivák; Juan Hernandez; Malini Rao; Vinod,
> Chegu; Liang, Shang-Chun (David Liang, HPservers-Core-OE-PSC); Shi, Xiao-Lei (Bruce,
> HP Servers-PSC-CQ)
> Subject: Re: Discussion VM CPU pinning and NUMA CPU pinning
> 
> Can you please be more specific on how to model RESTful API, with regards to CPU and
> CPU-pinning.
> 
> Thanks,
> Gilad.
> 
> 
> ----- Original Message -----
> > From: "Chuan Liao (Jason Liao, HPservers-Core-OE-PSC)" <chuan.liao at hp.com>
> > To: devel at ovirt.org
> > Cc: "Doron Fediuck" <dfediuck at redhat.com>, "Gilad Chaplik"
> <gchaplik at redhat.com>, "Martin Sivák" <msivak at redhat.com>,
> > "Juan Hernandez" <juan.hernandez at redhat.com>, "Malini Rao"
> <mrao at redhat.com>, "Chegu Vinod" <chegu_vinod at hp.com>,
> > "Shang-Chun Liang (David Liang, HPservers-Core-OE-PSC)"
> <shangchun.liang at hp.com>, "Xiao-Lei Shi (Bruce, HP
> > Servers-PSC-CQ)" <xiao-lei.shi at hp.com>
> > Sent: Thursday, May 15, 2014 2:50:23 PM
> > Subject: Discussion VM CPU pinning and NUMA CPU pinning
> >
> > Hi All,
> >
> > Now we are working on the NUMA tune feature development for oVirt 3.5. This
> > feature allow user to configure the vCPU pining according to host CPU/NUMA
> > topology to get the best performance for created VM. But this will impact
> > the current function of vCPU pining. Now, we are looking for a solution to
> > consolidate the conflict. We want to start an open discussion about VM CPU
> > pinning (the current design) and NUMA CPU pining (new feature we are working
> > on) in developer list:
> >
> > Background:
> > Concept:
> >
> > 1.      VM CPU pinning: the exist feature in current oVirt, which allow user
> > to configure the VM vCPU pinning over ovirt, user can configure vCPU pining
> > independently without NUMA tune.
> >
> > 2.      NUMA CPU pinning: allow user to configure the vCPU pining according
> > to host NUMA topology to get the best performance for created VM
> >
> > 3.      vNode: Virtual NUMA node ( User configured )
> >
> > 4.      pNode: host physical NUMA node ( Get capability from host )
> > Notice:
> >
> > 1.      NUMA tuning feature and CPU pinning feature are individually in
> > libvirt ( ovirt backend ).
> >
> > 2.      User could configure VM CPU pining individually without NUMA tune
> > setup.
> >
> > 3.      When configuring NUMA tuning feature, user need to configure VM NUMA
> > tuning ( vNode pinto pNode & tuning mode ) and VM CPU pinning ( NUMA
> > included ) to get optimized VM performance, otherwise VM will have low
> > performance.
> >
> > We have two proposal now for this issue. Please give us some comments and
> > your feedback, thanks.
> >
> > Solution 1:
> >          GUI:
> > Transform between the CPU pinning text and a structure which will be used in
> > NUMA CPU pinning configure page.
> >     And then save the CPU pinning text to the current VM CPU pinning field of
> >     VM.
> >          Restful:
> > Transform between the CPU pinning text and a structure which will be used in
> > restful NUMA CPU pinning.
> > And then save the CPU pinning text to the current VM CPU pinning field of VM.
> >          Broker:
> > Remove temporary solution(See the current implementation as below) and follow
> > previous cpupin configuration procedure.
> >
> > Solution 2:
> >          GUI:
> > If current VM CPU pinning is configured, when user open NUMA CPU pinning
> > configure page, he will get a warning message. If he continues to configure
> > NUMA CPU pinning and save the data, the current VM CPU pinning
> > configuration will be cleared.
> > NUMA CPU pinning configured data will be saved as new structure individually
> > without changing current VM CPU pinning configuration.
> >          Restful:
> > Configure NUMA CPU pinning and then save the data with the new NUMA CPU
> > pinning structure.
> >          Entity and Database:
> > Individually NUMA CPU pinning entities and data structure.
> >          Broker:
> >          NUMA CPU pinning configuration will be first considered to use. If
> >          it's not configured, it will use the current VM CPU pinning.
> >
> > Solution 1 The CPU pining data is consistent but the code logic is very
> > complex.
> > Solution 2 have better adaptive and better data structure. This is the way we
> > preferred.
> >
> > We are appreciated that anybody could give us your comments or the better
> > solution you have.
> >
> >
> >
> > The below is the current implementation for your reference:
> > VM CPU pinning feature
> >          GUI:
> > User input vCPU pining configure data with formatted text.
> >          Restful:
> > User configure CpuTune and VCpuPin model with mapper to CPU pinning text.
> >          Entity and Database:
> > CPU pinning is String property.
> >          Broker:
> > Generate structure of cputune ( libvirt format ) from CPU pining string
> > property.
> > NUMA tuning feature
> >          GUI:
> > User can drag & drop virtual NUMA node to host NUMA node ( pin to or remove
> > pin to ).
> >          Restful:
> > Add/update/remove virtual NUMA node with property of pin to host NUMA node
> > index.
> >          Design NUMACPU model under NUMA node for extend.
> >          Entity and Database:
> > Individually NUMA node entities ( vNode extend pNode ) and store procedure.
> >          Broker:
> > Generate structure of numatune, cpu/numa ( libvirt format ) from NUMA node
> > entities.
> > Temporary solution prevent Notice 3
> >          Broker:
> > Generate right structure of cputune ( libivirt format ) from NUMA node
> > entities ( vNode pinto pNode )
> >          Limitation:
> > This structure of cputune will not get the best performance of vNode.
> >
> > Best Regards,
> > Jason Liao
> >
> >


More information about the Devel mailing list