These are pretty rough patches, something like a draft, I beleive
there must be many problems, please review it heavily, :-)
New XML:
<cputune>
<shares>2048</shares>
<vcpupin vcpu='0' cpuset='0-4,^1'/>
<vcpupin vcpu='1' cpuset='1,3'/>
<vcpupin vcpu='2' cpuset='0,2'/>
</cputune>
"shares" is to define the the proportional weighted cpu share
for the domain.
"vcpupin" is to define the cpu affinities of vcpus, it will
not be displayed if one doesn't specify it explicitly in
XML or set the cpu affinites for vcpu via "vcpupin", means
there will be no vcpupin element in domain XML by default,
and the constraints are:
- Error if one specify entries more than the count of maxvcpus.
- Error when one specify entries for same vcpu.
- Error if value of attribute "vcpu" is more than count of
"maxvcpus - 1".
Attribute "cpuset" works same as "cpuset" of element
"vcpu",
reuse the codes for parsing and formating value of "cpuset"
of element "vcpu".
NB, the idea to add persistent XML for "cpushares" is from
"Nikunj A. Dadhania":
https://www.redhat.com/archives/libvir-list/2011-January/msg01183.html