[Kimchi-devel] [PATCH v5] Auto Topology for Guest Templates
Aline Manera
alinefm at linux.vnet.ibm.com
Tue Nov 18 17:54:59 UTC 2014
On 11/18/2014 03:52 PM, Aline Manera wrote:
>
> On 11/18/2014 02:47 AM, Christy Perez wrote:
>> 1. UI calls GET host/cpuinfo
>>
>> curl -k -u user -H 'Content-Type: application/json' \
>> -H 'Accept: application/json'
>> https://localhost:8001/host/cpuinfo
>>
>> {
>> "cores":2,
>> "threading_enabled":true,
>> "sockets":1,
>> "threads_per_core":2
>> }
>>
>> 2. UI displays appropriate title and checkboxes
>> - For both arches (based on Aline's suggestion),
>> include a checkbox that says, "Configure vCPU topology manually."
>> If checked, two fields appear, labeled, 'cores,' and 'threads.'
>> For the threads box, have another dropdown that's the same in
>> theory as the SMTX choices: a drop-down of 1, 2, 4, 8
>> (depending on
>> the threads_per_socket value).
>> Can the 'cores' box have a hover hint that lists the max?
>> Since sockets will never be more than one, let's list it as a
>> static
>> placeholder (or leave it off completely).
>> Checking this box will make the CPU box inactive, and the CPU
>> number
>> should now be calculated by the UI: CPUs = cores * threads
>> (from the
>> new boxes).
>> - If that manual tickbox isn't selected:
>> - Display the same box for CPUs as before.
>> - Display a menu labled SMT (Power)/Hyper-Threads (x86) with
>> up to five selections:
>> Automatic, 1, 2, 4, 8.
>> The max SMT value displayed will be dependant upoon
>> threads_per_core
>> from above. The default option should be 'Automatic.'
>> For 'Automatic,' send in '0' for the threads value (#3
>> below).
>> Otherwise, pass the threads selection value (#3 below).
>> Note: This is more architecture-agnostic. The only
>> difference is the label.
>> I'm in favor of keeping SMT somewhere in the screen for
>> Power, since that
>> is how users traditionally think of this, and will look
>> for it.
>
> I think 2 ways to do the same think will let user confused.
> So I'd say to go by the first approach (that works for both arch). In
> this approach we can also setup the cores and threads values
> automatically based on CPU and the best SMT option.
>
> Example:
>
> On Power8:
> - Disable vCPU field
> - Enable/display cores and threads with the best options and update
> the vCPU field by doing cores * threads.
>
> CPU number: 16
>
> [x] Configure vCPU topology manually
> Cores: 2
> Threads: 8
>
> And if user agrees he just needs to select "Save"
And if the name SMT is very important we could do:
Threads per core (SMT): [<combo box>]
>
>> 3. UI calls POST template with threads value set to '0' (x86) or SMTX
>> (Power)
>> Note that vcpus is still optional, so no change in how that's
>> handled needs
>> to be done.
>>
>> $ curl -k -u user -X POST -H 'Content-Type: application/json' -H
>> 'Accept: application/json' https://localhost:8001/templates
>> -d'{"name": "test_auto_topo", "cdrom":
>> "/home/iso-pool/Fedora-Live-Desktop-x86_64-20-1.iso", "cpu_info":
>> {"topology": {"threads":0}}}'
>>
>> {
>> "cpus":1,
>> "cpu_info":{
>> "topology":{
>> "cores":1,
>> "threads":1,
>> "sockets":1
>> }
>> },
>> "graphics":{
>> "type":"vnc",
>> "listen":"127.0.0.1"
>> },
>> "cdrom":"/home/iso-pool/Fedora-Live-Desktop-x86_64-20-1.iso",
>> "networks":[
>> "default"
>> ],
>> "icon":"images/icon-fedora.png",
>> "os_distro":"fedora",
>> "name":"test_auto_topo",
>> "disks":[
>> {
>> "index":0,
>> "size":10
>> }
>> ],
>> "invalid":{},
>> "os_version":"20",
>> "storagepool":"/storagepools/default",
>> "memory":1024,
>> "folder":[]
>> }
>>
>> Christy Perez (1):
>> Parts to allow Kimchi to configure the cpu topology.
>>
>> docs/API.md | 28 ++++++
>> src/kimchi/API.json | 11 +--
>> src/kimchi/control/cpuinfo.py | 37 ++++++++
>> src/kimchi/control/host.py | 2 +
>> src/kimchi/i18n.py | 6 +-
>> src/kimchi/model/cpuinfo.py | 215
>> ++++++++++++++++++++++++++++++++++++++++++
>> src/kimchi/model/host.py | 2 +-
>> src/kimchi/model/templates.py | 25 +++--
>> 8 files changed, 309 insertions(+), 17 deletions(-)
>> create mode 100644 src/kimchi/control/cpuinfo.py
>> create mode 100644 src/kimchi/model/cpuinfo.py
>>
>
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>
More information about the Kimchi-devel
mailing list