)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3a55b8e33e215cffd532bccd32cb0eff30735418","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a0d128fc_4e9aab2f","updated":"2022-11-16 17:41:47.000000000","message":"im generally fine with this this is a very soft -1 but there are a few nits inline\n","commit_id":"4d8daf7db868af8e3c9d8e8e6a20c4c869f492a5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c6776a4762eeec4d6f92da914cf4df913c0a0ce9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a3699bf8_279c3ffa","updated":"2022-11-16 17:19:59.000000000","message":"only a nit inline the current proposal works for me.","commit_id":"4d8daf7db868af8e3c9d8e8e6a20c4c869f492a5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"00580c38105848c0661ce36a75cd6992c958ace4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f921eaf5_1a8a47e0","updated":"2022-11-28 10:43:46.000000000","message":"LGTM","commit_id":"bba19dc7939198528f9b3583472691d997860e03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0ad706c0240c8a3ca3724a4b43f15584bbf4c2da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5712aa1b_8f150c16","updated":"2022-11-28 11:17:53.000000000","message":"this is inline with the reduced scope and change in direction we agreed at the ptg and the issue i have raised in previous iterations have been addressed so im ok with proceeding with it as is.\n\nthere is still one nit inline but the current sentence is still understandable","commit_id":"bba19dc7939198528f9b3583472691d997860e03"}],"specs/2023.1/approved/external-cpu-management.rst":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ee8a830a945ce4b6b0b16c36c0d6c36f7328479c","unresolved":true,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"As an operator, I would like to leverage server metadata and tags to"},{"line_number":51,"context_line":"express a policy that my external tool can use to tune the host."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Proposed change"},{"line_number":54,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ecea4d2_d59566cf","line":52,"updated":"2022-11-15 11:10:43.000000000","message":"I guess we changed direction here on the PTG. So that we only do a small nova internal module to do the offlining","commit_id":"da67beac37b0dfe7ee263284e9de3b03f9f16299"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1b0500af2f796bfd14aa26eaec0e2f96f844babb","unresolved":true,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"As an operator, I would like to leverage server metadata and tags to"},{"line_number":51,"context_line":"express a policy that my external tool can use to tune the host."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Proposed change"},{"line_number":54,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"c1c068ef_1d984b7f","line":52,"in_reply_to":"9ecea4d2_d59566cf","updated":"2022-11-15 12:04:53.000000000","message":"yes most of this well need to be rewritten\nas an fyi i have abandoned the oslo.concurancy unix socket notification driver that was going to be added to enabel local consumtion of the notifactions without needing to go over rabbit.\n\nthat can be revied if needed for something else but this was the primary usecase and its nolonger external","commit_id":"da67beac37b0dfe7ee263284e9de3b03f9f16299"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ca4fd0c80070e9238214d9b93dd2fe4c3ed5cb11","unresolved":true,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"There are three parts to this proposal :"},{"line_number":57,"context_line":" - add a config option for declaring that CPUs are externally managed"},{"line_number":58,"context_line":" - modify inventories for reserving offlined CPUs"},{"line_number":59,"context_line":" - use events between Nova and the external tool to know when a CPU is onlined"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7372ccd7_53e47de7","line":58,"range":{"start_line":58,"start_character":1,"end_line":58,"end_character":49},"updated":"2022-10-17 11:21:16.000000000","message":"so this step is not actully required if we have the external event.\nthat was something we discussed previously but i never got around to removing this.\n\nthe reaons i had 3 steps was to show an incremental approch incase this was not completed in one cycle however it was suggested last time that insted i should descirbe the endstate for the clean interface and in that end state this step is not required at all.\n\nif we use a lib/unix socket interface as i describe below the external event is also not needed.","commit_id":"da67beac37b0dfe7ee263284e9de3b03f9f16299"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ca4fd0c80070e9238214d9b93dd2fe4c3ed5cb11","unresolved":true,"context_lines":[{"line_number":83,"context_line":"          other drivers could support it too later."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Modify the inventories to reserve offline CPUs"},{"line_number":87,"context_line":"----------------------------------------------"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"The update provider tree will be modified for CPU inventories by modifying the"},{"line_number":90,"context_line":"``reserved`` field to the number of offline CPUs if"},{"line_number":91,"context_line":"``[hardware]/cpu_external_management option`` is set to True."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"This will allow the external tool to notify Placement of the offlined CPUs for"},{"line_number":94,"context_line":"correct scheduling."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Use events between Nova and the external tool"}],"source_content_type":"text/x-rst","patch_set":3,"id":"753a8508_0e95425f","line":94,"range":{"start_line":86,"start_character":0,"end_line":94,"end_character":19},"updated":"2022-10-17 11:21:16.000000000","message":"this can be removed, this approach of reserving only woks in a static model\n\nit is incompatible with dynamically offlining as the cores need to be available to be selected by placement.\n\nthis was just a fallback approach in the event that the external event was not accepted and we did not have another alternative way of doing the synchronization.","commit_id":"da67beac37b0dfe7ee263284e9de3b03f9f16299"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ca4fd0c80070e9238214d9b93dd2fe4c3ed5cb11","unresolved":true,"context_lines":[{"line_number":120,"context_line":"waiters will be activated in specific instance actions before nova starts"},{"line_number":121,"context_line":"a VM at boot, unshelve, cold migrate, rebuild, rescue, and evacuate."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"As synchronization during a live migrate action is non-trivial and Nova can not"},{"line_number":124,"context_line":"control when the VM un-pauses, *no* additional waiting will be added for"},{"line_number":125,"context_line":"live-migrate."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"The external service would listen to the versioned nova notification"},{"line_number":128,"context_line":"stream to know that an instance needs to be managed so no direct interface"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c0efdc5b_ce799489","line":125,"range":{"start_line":123,"start_character":0,"end_line":125,"end_character":13},"updated":"2022-10-17 11:21:16.000000000","message":"for live migration we would proably need to do it in pre-live migrate \nso have it turn on the cores in pre live migration. we caculate the cpu pinnign in prelive migration and pass it back to the source node to allow it to generate the external event.","commit_id":"da67beac37b0dfe7ee263284e9de3b03f9f16299"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ca4fd0c80070e9238214d9b93dd2fe4c3ed5cb11","unresolved":true,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"The external service would listen to the versioned nova notification"},{"line_number":128,"context_line":"stream to know that an instance needs to be managed so no direct interface"},{"line_number":129,"context_line":"between nova and the external service is required."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Some examples of this back-and-forth between the nova-compute service and the"},{"line_number":132,"context_line":"external management tool can be :"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b6462a5c_a13ba1df","line":129,"updated":"2022-10-17 11:21:16.000000000","message":"long term it might be desierable to have such a direct interface, but it could be done without one.\n\nif we were to have such an interface i would crete a very small client/server lib that uses a unix socket and comunciate betwen the two with a narrow provision/deporvision interface.\n\n\nthat would allow use to avoid the api change/external event and make the syncronisation simipler.\n\n\nall nova woudl do is call provsion like it does with os-vifs plug-vifs function.\n\nthat internally woudl write a serialsied ovo to the unix socket and then do a read to get the ACk. both the write and read io operation will be monkey patched\nby eventlet allowing the greenthread to yeild allowing nova ot work on other operatiosn while we wait for the external agent to complete it work.\n\nthat keeps a nice seperation between teh adress space and exectution envrionment \nof the nova compute agent and external agent.\n\n\nover time we could eventually evolve that interface to allow the external agent to provition addtional host resouces such as lvm volumes, usb devices, cpu cache similar to how we integrate with cyborg. i.e. the external agent can mange the provisoning and depovisioning of a host resocue an retrun a abstrcat represtation of a resouce to be included itn eh domain xml.\n\ni.e. a pci adrees, mdev uuid or other handel to the device.\n\nsome usecasuse i think coudl be address in the futre this way are as follows.\n- as an vnf vendor with low latency requirements i would like to be able to allocate a host, partion, lvm volume, local block device or directory to a tenant workload.\n- as an operator i would like to offer usb passthough of host devices such as gps recivers or hardware debuggers or other sepcialsied usb hardware for ci/test/industiral workloads.\n\njsut looking at that first usecasue today passing through say a nvme disk to a vm\nwe can do that with pci passthough already but we do not supprot that as the disk woudl not be cleaned. it would be trivial ot allow and external agent to do that cleanign when the vm is deleted or moved to another host.\n\n\nhavign a generic interface to delegate host resouce provisioning ot a local agent outside of nova would allow nova to focus on what its good at and allow that external agent to have a narrow focus, provsioing/deprovisioning resouces on a host.\n\nim not suggesting we have to do this now or that this is nessisarly the best cours of action thre are alternitives i just want to reraise this alternitive architecture.\n\ni do think haveing  a init/provision/deprovision interface with a unix socket transport (similar to how we talk to privsep) would actually be less invasive and more evolvable over time.","commit_id":"da67beac37b0dfe7ee263284e9de3b03f9f16299"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ca4fd0c80070e9238214d9b93dd2fe4c3ed5cb11","unresolved":true,"context_lines":[{"line_number":137,"context_line":"  performance."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Other examples could happen later, but as you see, all of those won\u0027t require"},{"line_number":140,"context_line":"any changes in Nova."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c8dacddc_062b9763","line":140,"updated":"2022-10-17 11:21:16.000000000","message":"this is ture provided the scope of the external deamon does not include prepareing a resouce that will be passedthrough to the guest.\n\nso for example configuring a cpu cache allocation could be doen without any changes to nova\n\nallocating a directory to be passthgouh through via virtiofs or a usb device or any other CUSTOM_ resouce class that corresponds to a consumable host resouce that is directly passhtough to the guest would need some minimal change to nova.\n\nit woudl be almsot identical to how cycborg integrates however.\n\ni.e. to passthough a mdev that it had prepared we would just need to give nova the uuid, for a pci device we woudl jsut need a pci address.\n\nso if we wanted to allow the geneirc resouce manamgnet case we just need two parmaters and \"identifier/handel\" and a \"bus/connecot_type\" e.g.\n\n{\"handle\":\"72d8bc3d-9c96-4d03-80f9-3a4ace5128d9\", \"type\":\"mdev\"}\n{\"handle\":\"3e:00.0\", \"type\":\"pci\"}\n{\"handle\":\"/mnt/fast/nova/72d8bc3d-9c96-4d03-80f9-3a4ace5128d9\", type:\"hostpath\"}\n{\"handle\":\"/dev/mapper/lvm--volumes-volume--20a03a7a--8481--4a4a--aecb--5ff10e60d6ef\", \"type\":\"blockdev\"\n\nrealistically that structure should have status and error/message fields too so that we can signal failure if required. and it woudl either need to be an ovo or have a version field but those are not important right now.\n\nto support this usecase which i admit is out of scope of this current spec nova would just need a list of externally manmabale types and a handeler for each that a driver (libvirt) would provide to generate teh relevent xml for that type.\n\nthis is what we do for cybrog managed resouces today so this woudl be reusabel code that coudl be use by nova,cyborg or externally managed reousces.\n\n\nhow i wudl see this working is we would use\n\n\"resource:\" in the flavor to request the allocation of the resouce which could be reported via provider.yaml or by the external agent directly to placment, in combination with one/two addtiona flavor extra spec keys\n\ni woudl hope one \"external_resouces:CUSTOM_EXT_1,CUSTOM_EXT_2\"  would be enough just a comma seperated list fo resouce that we would delegate to the external agent to manage.\n\nthe ohter key i was thinking of is \"external_resouce_group:...\"\nit woudl be the same but a list if resource groups instead of resouce classes.\ni dislike that option because it requires operators to use resouce_groups in teh flavor and i dont like that.","commit_id":"da67beac37b0dfe7ee263284e9de3b03f9f16299"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ca4fd0c80070e9238214d9b93dd2fe4c3ed5cb11","unresolved":true,"context_lines":[{"line_number":149,"context_line":"cumbersome."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"We could do this directly in nova and amend Nova everytime we want a new"},{"line_number":152,"context_line":"usecase. Not sure we\u0027d appreciate this."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"We could make reporting CPUs to the Placement API controlable via config, but"},{"line_number":155,"context_line":"this would only solve one usecase and would still require some tooling for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5542fd00_dd3cf112","line":152,"updated":"2022-10-17 11:21:16.000000000","message":"heh its what we have done up till now but we normally draw a line between allocating hardware that the operator has already partitioned and actully reconfiguring the host hardware.  turning on an off the the cpus dynmaicaly kind of crosses that line which is why this is probably best done by a compoenent that is outside of nova","commit_id":"da67beac37b0dfe7ee263284e9de3b03f9f16299"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ca4fd0c80070e9238214d9b93dd2fe4c3ed5cb11","unresolved":true,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"If we implement the last step, which is an event listener, we may also want to"},{"line_number":182,"context_line":"send a new notification to indicate we have started waiting for external"},{"line_number":183,"context_line":"management of the instance."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bdf4748b_f95cd675","line":183,"updated":"2022-10-17 11:21:16.000000000","message":"ya there are two ways this could work if we go the notifcation route.\neither we explcitly add a notificaiton at the point we wait or the external agent can listen to a subset of the exsiting ones.\n\nboth work the former is cleaner, but only required if we dont have a notifcation that is usabel for each of the intended wait points.","commit_id":"da67beac37b0dfe7ee263284e9de3b03f9f16299"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ca4fd0c80070e9238214d9b93dd2fe4c3ed5cb11","unresolved":true,"context_lines":[{"line_number":280,"context_line":""},{"line_number":281,"context_line":"This may be upstreamed to opendev in the future."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"In the specific case of arbiterd, the intent is to allow add integration with"},{"line_number":284,"context_line":"Placement so that it can mark any off-lined core as reserved in placement to"},{"line_number":285,"context_line":"ensure correct scheduling. Traits inventories of power budget or other"},{"line_number":286,"context_line":"resources may also be exposed over time however ``provider.yaml`` may also be"},{"line_number":287,"context_line":"used for that."},{"line_number":288,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"29860f27_ecd57c1e","line":285,"range":{"start_line":283,"start_character":34,"end_line":285,"end_character":26},"updated":"2022-10-17 11:21:16.000000000","message":"this actully is not required if we have the external event or other synconisation such as the unix socket interface.\n\nif we support the externally mange resouce uscase like stroage then yes arbiterd could report the inventories automatically to placemnt and/or provider.yaml can be used.","commit_id":"da67beac37b0dfe7ee263284e9de3b03f9f16299"}],"specs/2023.1/approved/libvirt-cpu-state-mgmt.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71ee025c9c3e590e824eeef8bee2564bb14fb610","unresolved":true,"context_lines":[{"line_number":43,"context_line":"---------"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"As an operator using the nova libvirt driver, I would like to be able"},{"line_number":46,"context_line":"to disable or run slower cpu cores using the kernel sysfs interface."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"As an operator, I want my nova-compute service to enable or put at max"},{"line_number":49,"context_line":"performance a CPU core if it will be in use for a new instance that is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"025ea873_ba0baf42","line":46,"range":{"start_line":46,"start_character":3,"end_line":46,"end_character":10},"updated":"2022-11-15 16:13:44.000000000","message":"so disabling a core is where most of the power saving is.\ni do think that setting the govoner is a valid alternitive that has value to support in parallel but i think the govonor need to be configurable see comment below.","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a95f5077819ab7867a72608c8bd41b9c8b2c2138","unresolved":false,"context_lines":[{"line_number":43,"context_line":"---------"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"As an operator using the nova libvirt driver, I would like to be able"},{"line_number":46,"context_line":"to disable or run slower cpu cores using the kernel sysfs interface."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"As an operator, I want my nova-compute service to enable or put at max"},{"line_number":49,"context_line":"performance a CPU core if it will be in use for a new instance that is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"2bd34cbf_85834b95","line":46,"range":{"start_line":46,"start_character":3,"end_line":46,"end_character":10},"in_reply_to":"025ea873_ba0baf42","updated":"2022-11-16 16:43:27.000000000","message":"Ack","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"90c305346b2b48fe3c348d33972b3e88a2dbee4e","unresolved":true,"context_lines":[{"line_number":67,"context_line":".. code::"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  # registered in group [libvirt]"},{"line_number":70,"context_line":"  cfg.BoolOpt(\u0027cpu_tuning_management\u0027,"},{"line_number":71,"context_line":"              default\u003dFalse,"},{"line_number":72,"context_line":"              help\u003d\u0027Use libvirt to manage CPU cores performance.\u0027)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"c9f414ac_fa17fbc9","line":70,"range":{"start_line":70,"start_character":15,"end_line":70,"end_character":36},"updated":"2022-11-15 16:05:59.000000000","message":"if we use this to power management of CPUs then I would name it `cpu_power_management`","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a0637a6a640c6689924a690bb5d319649ffdfe73","unresolved":true,"context_lines":[{"line_number":67,"context_line":".. code::"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  # registered in group [libvirt]"},{"line_number":70,"context_line":"  cfg.BoolOpt(\u0027cpu_tuning_management\u0027,"},{"line_number":71,"context_line":"              default\u003dFalse,"},{"line_number":72,"context_line":"              help\u003d\u0027Use libvirt to manage CPU cores performance.\u0027)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ce900411_a6cbd98a","line":70,"range":{"start_line":70,"start_character":15,"end_line":70,"end_character":36},"in_reply_to":"c9f414ac_fa17fbc9","updated":"2022-11-15 16:23:38.000000000","message":"ya i agree with that","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a95f5077819ab7867a72608c8bd41b9c8b2c2138","unresolved":false,"context_lines":[{"line_number":67,"context_line":".. code::"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  # registered in group [libvirt]"},{"line_number":70,"context_line":"  cfg.BoolOpt(\u0027cpu_tuning_management\u0027,"},{"line_number":71,"context_line":"              default\u003dFalse,"},{"line_number":72,"context_line":"              help\u003d\u0027Use libvirt to manage CPU cores performance.\u0027)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"eee45765_4ba1b292","line":70,"range":{"start_line":70,"start_character":15,"end_line":70,"end_character":36},"in_reply_to":"ce900411_a6cbd98a","updated":"2022-11-16 16:43:27.000000000","message":"Done","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"90c305346b2b48fe3c348d33972b3e88a2dbee4e","unresolved":true,"context_lines":[{"line_number":72,"context_line":"              help\u003d\u0027Use libvirt to manage CPU cores performance.\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"If this option is set to True, then at nova-compute startup, all the CPUs that"},{"line_number":76,"context_line":"are defined by the ``[compute]/cpu_dedicated_set`` option as dedicated will be"},{"line_number":77,"context_line":"tuned for minimum performance (either offlined or set to powersave) depending"},{"line_number":78,"context_line":"on the other CPU tuning configuration option explained below."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"a42ff6e4_28773e28","line":77,"range":{"start_line":75,"start_character":61,"end_line":77,"end_character":29},"updated":"2022-11-15 16:05:59.000000000","message":"even the allocated ones? ;)\n\nI would add a sentence to say why we are not supporting this on the shared set.","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"56cbcac3f5c1c779b7787776f037ebf690484332","unresolved":true,"context_lines":[{"line_number":72,"context_line":"              help\u003d\u0027Use libvirt to manage CPU cores performance.\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"If this option is set to True, then at nova-compute startup, all the CPUs that"},{"line_number":76,"context_line":"are defined by the ``[compute]/cpu_dedicated_set`` option as dedicated will be"},{"line_number":77,"context_line":"tuned for minimum performance (either offlined or set to powersave) depending"},{"line_number":78,"context_line":"on the other CPU tuning configuration option explained below."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1e1d374c_760147e2","line":77,"range":{"start_line":75,"start_character":61,"end_line":77,"end_character":29},"in_reply_to":"1d407de5_0203b1cc","updated":"2022-11-15 16:35:13.000000000","message":"\u003e we are not supporting this for the cpu_shared_set and the allocated ones should not be set to min performance if the VM is running.\n\nAm I correct in that we are not supporting this to shared set due to the fact that VMs float automatically across the shared set so that with a single VM booted on the host the whole shared set need to be in usable state already. So the only saving we could do is to turn off CPUs in the shared set while no VM is running on the host.\n\n\u003e \n\u003e we have two choices for a stopped VM either we can disable/set min performance\n\u003e when the VM is pinned but stopped. the alternative is to be more conservative and\n\u003e only turn off the core when the VM is deleted/moved to another host.\n\u003e \n\u003e I think implementing this in spawn and power off makes a lot of sense.\n\u003e it would generally say let\u0027s save as much power as we can when you opt into this.\n\u003e \n\u003e two special cases to consider in that regard are pause and suspend\n\u003e \n\u003e pause just stops the qemu process CPUs, qemu does not exit and I don\u0027t think we should do the hardware change on pause. It\u0027s ment to be fast to unpause.\n\u003e \n\u003e suspend calls libvirts managed save and it\u0027s basically like stop but also saves the guess ram to a file.\n\u003e \n\u003e suspend should have the same behaviour as stop and we should stop/throttle the CPUs.\n\nI agree about the handling of paused and suspended state as you proposed.","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a95f5077819ab7867a72608c8bd41b9c8b2c2138","unresolved":false,"context_lines":[{"line_number":72,"context_line":"              help\u003d\u0027Use libvirt to manage CPU cores performance.\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"If this option is set to True, then at nova-compute startup, all the CPUs that"},{"line_number":76,"context_line":"are defined by the ``[compute]/cpu_dedicated_set`` option as dedicated will be"},{"line_number":77,"context_line":"tuned for minimum performance (either offlined or set to powersave) depending"},{"line_number":78,"context_line":"on the other CPU tuning configuration option explained below."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"8fc99741_a3f31086","line":77,"range":{"start_line":75,"start_character":61,"end_line":77,"end_character":29},"in_reply_to":"1e1d374c_760147e2","updated":"2022-11-16 16:43:27.000000000","message":"Ack","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a0637a6a640c6689924a690bb5d319649ffdfe73","unresolved":true,"context_lines":[{"line_number":72,"context_line":"              help\u003d\u0027Use libvirt to manage CPU cores performance.\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"If this option is set to True, then at nova-compute startup, all the CPUs that"},{"line_number":76,"context_line":"are defined by the ``[compute]/cpu_dedicated_set`` option as dedicated will be"},{"line_number":77,"context_line":"tuned for minimum performance (either offlined or set to powersave) depending"},{"line_number":78,"context_line":"on the other CPU tuning configuration option explained below."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1d407de5_0203b1cc","line":77,"range":{"start_line":75,"start_character":61,"end_line":77,"end_character":29},"in_reply_to":"a42ff6e4_28773e28","updated":"2022-11-15 16:23:38.000000000","message":"we are not supporting this for the cpu_shared_set and the allocated ones should not be set to min performance if the VM is running.\n\nwe have two choices for a stopped VM either we can disable/set min performance\nwhen the VM is pinned but stopped. the alternative is to be more conservative and\nonly turn off the core when the VM is deleted/moved to another host.\n\nI think implementing this in spawn and power off makes a lot of sense.\nit would generally say let\u0027s save as much power as we can when you opt into this.\n\ntwo special cases to consider in that regard are pause and suspend\n\npause just stops the qemu process CPUs, qemu does not exit and I don\u0027t think we should do the hardware change on pause. It\u0027s ment to be fast to unpause.\n\nsuspend calls libvirts managed save and it\u0027s basically like stop but also saves the guess ram to a file.\n\nsuspend should have the same behaviour as stop and we should stop/throttle the CPUs.","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"90c305346b2b48fe3c348d33972b3e88a2dbee4e","unresolved":true,"context_lines":[{"line_number":99,"context_line":".. note:: This is the operator\u0027s responsibility to verify that the OS kernel is"},{"line_number":100,"context_line":"          recent enough to support CPU core tuning and that those CPU cores"},{"line_number":101,"context_line":"          have their governors supporting both the ``performance`` and the"},{"line_number":102,"context_line":"          ``powersave`` profiles."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"A configuration option will accordingly be defined for choosing between those"},{"line_number":105,"context_line":"two strategies :"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5e3267ba_bb8eeff7","line":102,"updated":"2022-11-15 16:05:59.000000000","message":"While it seems easy to say that it is the operator\u0027s responsibility, we still need to be aware and probably document what will happen if nova encounters an error when applying the strategy.\n\nWhat will be a the failure mode of nova when nova fails to online the CPU or the kernel does not support the performance governor? Will nova simply log an error / warning and move forward booting the instance or will nova stop booting the instance?\n\nIn case of online/offline strategy can we formally create an instance on an offlined CPU or it will fail in libvirt/qemu anyhow?","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a95f5077819ab7867a72608c8bd41b9c8b2c2138","unresolved":false,"context_lines":[{"line_number":99,"context_line":".. note:: This is the operator\u0027s responsibility to verify that the OS kernel is"},{"line_number":100,"context_line":"          recent enough to support CPU core tuning and that those CPU cores"},{"line_number":101,"context_line":"          have their governors supporting both the ``performance`` and the"},{"line_number":102,"context_line":"          ``powersave`` profiles."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"A configuration option will accordingly be defined for choosing between those"},{"line_number":105,"context_line":"two strategies :"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1c8ec587_ed3cdd49","line":102,"in_reply_to":"03874666_af444e30","updated":"2022-11-16 16:43:27.000000000","message":"Ack","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a0637a6a640c6689924a690bb5d319649ffdfe73","unresolved":true,"context_lines":[{"line_number":99,"context_line":".. note:: This is the operator\u0027s responsibility to verify that the OS kernel is"},{"line_number":100,"context_line":"          recent enough to support CPU core tuning and that those CPU cores"},{"line_number":101,"context_line":"          have their governors supporting both the ``performance`` and the"},{"line_number":102,"context_line":"          ``powersave`` profiles."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"A configuration option will accordingly be defined for choosing between those"},{"line_number":105,"context_line":"two strategies :"}],"source_content_type":"text/x-rst","patch_set":4,"id":"918c8cf4_9f9e729f","line":102,"in_reply_to":"5e3267ba_bb8eeff7","updated":"2022-11-15 16:23:38.000000000","message":"no we should not be able to ever have an instnace in the ACTIVE state with the cpus offline.","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"56cbcac3f5c1c779b7787776f037ebf690484332","unresolved":true,"context_lines":[{"line_number":99,"context_line":".. note:: This is the operator\u0027s responsibility to verify that the OS kernel is"},{"line_number":100,"context_line":"          recent enough to support CPU core tuning and that those CPU cores"},{"line_number":101,"context_line":"          have their governors supporting both the ``performance`` and the"},{"line_number":102,"context_line":"          ``powersave`` profiles."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"A configuration option will accordingly be defined for choosing between those"},{"line_number":105,"context_line":"two strategies :"}],"source_content_type":"text/x-rst","patch_set":4,"id":"03874666_af444e30","line":102,"in_reply_to":"918c8cf4_9f9e729f","updated":"2022-11-15 16:35:13.000000000","message":"OK. That feels like nova should put the Instance in ERROR state if nova fails to apply the CPU power management strategy during boot.\n\nFailing to apply the startegy during delete or power off should only result in WARNING log I guess.","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"90c305346b2b48fe3c348d33972b3e88a2dbee4e","unresolved":true,"context_lines":[{"line_number":107,"context_line":".. code::"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  # registered in group [libvirt]"},{"line_number":110,"context_line":"  cfg.StrOpt(\u0027cpu_tuning_strategy\u0027,"},{"line_number":111,"context_line":"             choices\u003d[\u0027offline\u0027, \u0027powersave\u0027]"},{"line_number":112,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":113,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU core performance when unused\u0027)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ec07698d_0eb62203","line":110,"range":{"start_line":110,"start_character":14,"end_line":110,"end_character":33},"updated":"2022-11-15 16:05:59.000000000","message":"I would call it `cpu_power_management_strategy`","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a95f5077819ab7867a72608c8bd41b9c8b2c2138","unresolved":false,"context_lines":[{"line_number":107,"context_line":".. code::"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  # registered in group [libvirt]"},{"line_number":110,"context_line":"  cfg.StrOpt(\u0027cpu_tuning_strategy\u0027,"},{"line_number":111,"context_line":"             choices\u003d[\u0027offline\u0027, \u0027powersave\u0027]"},{"line_number":112,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":113,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU core performance when unused\u0027)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0dc5abb3_d68bbf6a","line":110,"range":{"start_line":110,"start_character":14,"end_line":110,"end_character":33},"in_reply_to":"ec07698d_0eb62203","updated":"2022-11-16 16:43:27.000000000","message":"Done","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"90c305346b2b48fe3c348d33972b3e88a2dbee4e","unresolved":true,"context_lines":[{"line_number":110,"context_line":"  cfg.StrOpt(\u0027cpu_tuning_strategy\u0027,"},{"line_number":111,"context_line":"             choices\u003d[\u0027offline\u0027, \u0027powersave\u0027]"},{"line_number":112,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":113,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU core performance when unused\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Alternatives"},{"line_number":116,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"034118bc_80204a4d","line":113,"range":{"start_line":113,"start_character":38,"end_line":113,"end_character":65},"updated":"2022-11-15 16:05:59.000000000","message":"nit: I probably say: reduce CPU power consumption","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a95f5077819ab7867a72608c8bd41b9c8b2c2138","unresolved":false,"context_lines":[{"line_number":110,"context_line":"  cfg.StrOpt(\u0027cpu_tuning_strategy\u0027,"},{"line_number":111,"context_line":"             choices\u003d[\u0027offline\u0027, \u0027powersave\u0027]"},{"line_number":112,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":113,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU core performance when unused\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Alternatives"},{"line_number":116,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"167bbe97_949b34ae","line":113,"range":{"start_line":113,"start_character":38,"end_line":113,"end_character":65},"in_reply_to":"034118bc_80204a4d","updated":"2022-11-16 16:43:27.000000000","message":"Done","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"90c305346b2b48fe3c348d33972b3e88a2dbee4e","unresolved":true,"context_lines":[{"line_number":111,"context_line":"             choices\u003d[\u0027offline\u0027, \u0027powersave\u0027]"},{"line_number":112,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":113,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU core performance when unused\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Alternatives"},{"line_number":116,"context_line":"------------"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da135952_59b59a57","line":114,"updated":"2022-11-15 16:05:59.000000000","message":"Could you please describe when nova will change the CPU state / governor? In the current spec only nova-compute startup case is described.","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71ee025c9c3e590e824eeef8bee2564bb14fb610","unresolved":true,"context_lines":[{"line_number":111,"context_line":"             choices\u003d[\u0027offline\u0027, \u0027powersave\u0027]"},{"line_number":112,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":113,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU core performance when unused\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Alternatives"},{"line_number":116,"context_line":"------------"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"6a5d4488_55cda4bd","line":114,"updated":"2022-11-15 16:13:44.000000000","message":"ack the cpu onlien infra in the kernel is pretty quick to turn on/off cores but \n\npowersave/perfromace would also work faster.\n\nif we go witht his approch i would suggest\n\nchoices\u003d[\u0027cpu_state\u0027, \u0027governor\u0027]\n\nand also make the lower power and high power govnonr configurabel\n\ncpu_governors\u003d[\u0027powersave\u0027,\u0027perfroamce\u0027]\n\ni would personally use\n\ncpu_governors\u003d[\u0027powersave\u0027,\u0027schedutil\u0027]\n\nperfromance pins the core at the max non turbo frequency and might actully\nreduce perfomcne vs schedutil and it will use more power vs schedutil or ondemand\n\ni dont really care about the low performace governor as much as the high perfromace one.\n\n\ni also would not limti the content of the cpu_governors filed\nany govoner avaiable on the sytem shoudl be useabel and we jsut delecate gettign that correct to the admin.\n\n\nsean@cloud:~$ cat /sys/bus/cpu/devices/cpu0/cpufreq/scaling_available_governors \nconservative ondemand userspace powersave performance schedutil","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2636209bd7988571357561730c5f845e67523d31","unresolved":false,"context_lines":[{"line_number":111,"context_line":"             choices\u003d[\u0027offline\u0027, \u0027powersave\u0027]"},{"line_number":112,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":113,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU core performance when unused\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Alternatives"},{"line_number":116,"context_line":"------------"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"cbbc6492_373c68fc","line":114,"in_reply_to":"2cc7034c_36af9ed9","updated":"2022-11-25 15:12:13.000000000","message":"Done","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"56cbcac3f5c1c779b7787776f037ebf690484332","unresolved":true,"context_lines":[{"line_number":111,"context_line":"             choices\u003d[\u0027offline\u0027, \u0027powersave\u0027]"},{"line_number":112,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":113,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU core performance when unused\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Alternatives"},{"line_number":116,"context_line":"------------"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ed3cd8d7_074daa74","line":114,"in_reply_to":"40042ac6_4fe870f2","updated":"2022-11-15 16:35:13.000000000","message":"\u003e it should offline all unused cores on startup\non the dedicated set.\n\n\u003e it shoudl  start them in spawn/resume\n\nand if fails to start them then put the instance to ERROR\n\n\u003e it shoudl stop them in power off/suspend/shelve_offload/confirm-resize.\n\nand if fails to stop them log a WARNING but do not fail the instance operation.","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a95f5077819ab7867a72608c8bd41b9c8b2c2138","unresolved":true,"context_lines":[{"line_number":111,"context_line":"             choices\u003d[\u0027offline\u0027, \u0027powersave\u0027]"},{"line_number":112,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":113,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU core performance when unused\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Alternatives"},{"line_number":116,"context_line":"------------"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"2cc7034c_36af9ed9","line":114,"in_reply_to":"6a5d4488_55cda4bd","updated":"2022-11-16 16:43:27.000000000","message":"As I told on IRC, I\u0027m not opposed to let the operator decide which governors to use, I just wonder how we could express this thru config options.\n\nI\u0027m about to upload a new rev of this spec that will propose two distinct options, each defining the governor to use for both cases (powersave and performance), I\u0027ll let people chime on it.","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a0637a6a640c6689924a690bb5d319649ffdfe73","unresolved":true,"context_lines":[{"line_number":111,"context_line":"             choices\u003d[\u0027offline\u0027, \u0027powersave\u0027]"},{"line_number":112,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":113,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU core performance when unused\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Alternatives"},{"line_number":116,"context_line":"------------"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"40042ac6_4fe870f2","line":114,"in_reply_to":"da135952_59b59a57","updated":"2022-11-15 16:23:38.000000000","message":"it should offline all unused cores on startup\nit shoudl  start them in spawn/resume\nit shoudl stop them in power off/suspend/shelve_offload/confirm-resize.","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a95f5077819ab7867a72608c8bd41b9c8b2c2138","unresolved":false,"context_lines":[{"line_number":111,"context_line":"             choices\u003d[\u0027offline\u0027, \u0027powersave\u0027]"},{"line_number":112,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":113,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU core performance when unused\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Alternatives"},{"line_number":116,"context_line":"------------"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1be489ab_4ea01685","line":114,"in_reply_to":"ed3cd8d7_074daa74","updated":"2022-11-16 16:43:27.000000000","message":"Done","commit_id":"4edf34adcc30edf1f8d95ea237f930a76f3b8e8c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3a55b8e33e215cffd532bccd32cb0eff30735418","unresolved":true,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"There are two parts to this proposal :"},{"line_number":57,"context_line":" - add a config option for declaring that CPUs are managed"},{"line_number":58,"context_line":" - add a config option for telling the performance strategy to use"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Declaring CPUs as managed"}],"source_content_type":"text/x-rst","patch_set":5,"id":"74e68dee_6d87df13","line":58,"range":{"start_line":58,"start_character":27,"end_line":58,"end_character":34},"updated":"2022-11-16 17:41:47.000000000","message":"selecting","commit_id":"4d8daf7db868af8e3c9d8e8e6a20c4c869f492a5"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0ad706c0240c8a3ca3724a4b43f15584bbf4c2da","unresolved":true,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"There are two parts to this proposal :"},{"line_number":57,"context_line":" - add a config option for declaring that CPUs are managed"},{"line_number":58,"context_line":" - add a config option for telling the performance strategy to use"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Declaring CPUs as managed"}],"source_content_type":"text/x-rst","patch_set":5,"id":"d54dad26_c1e7d369","line":58,"range":{"start_line":58,"start_character":27,"end_line":58,"end_character":34},"in_reply_to":"74e68dee_6d87df13","updated":"2022-11-28 11:17:53.000000000","message":"this is still relevant but its fine","commit_id":"4d8daf7db868af8e3c9d8e8e6a20c4c869f492a5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c6776a4762eeec4d6f92da914cf4df913c0a0ce9","unresolved":true,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"  # registered in group [libvirt]"},{"line_number":117,"context_line":"  cfg.StrOpt(\u0027cpu_power_management_strategy\u0027,"},{"line_number":118,"context_line":"             choices\u003d[\u0027cpu_state\u0027, \u0027governor\u0027]"},{"line_number":119,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":120,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU power consumption when \u0027"},{"line_number":121,"context_line":"                  \u0027unused\u0027)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"575baa8e_2dbeeaae","line":119,"range":{"start_line":118,"start_character":0,"end_line":119,"end_character":31},"updated":"2022-11-16 17:19:59.000000000","message":"default is not in the possible choices","commit_id":"4d8daf7db868af8e3c9d8e8e6a20c4c869f492a5"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3a55b8e33e215cffd532bccd32cb0eff30735418","unresolved":true,"context_lines":[{"line_number":116,"context_line":"  # registered in group [libvirt]"},{"line_number":117,"context_line":"  cfg.StrOpt(\u0027cpu_power_management_strategy\u0027,"},{"line_number":118,"context_line":"             choices\u003d[\u0027cpu_state\u0027, \u0027governor\u0027]"},{"line_number":119,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":120,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU power consumption when \u0027"},{"line_number":121,"context_line":"                  \u0027unused\u0027)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"165bfbca_b74a3487","line":119,"updated":"2022-11-16 17:41:47.000000000","message":"nit: you forgot update this to cpu_state","commit_id":"4d8daf7db868af8e3c9d8e8e6a20c4c869f492a5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2636209bd7988571357561730c5f845e67523d31","unresolved":false,"context_lines":[{"line_number":116,"context_line":"  # registered in group [libvirt]"},{"line_number":117,"context_line":"  cfg.StrOpt(\u0027cpu_power_management_strategy\u0027,"},{"line_number":118,"context_line":"             choices\u003d[\u0027cpu_state\u0027, \u0027governor\u0027]"},{"line_number":119,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":120,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU power consumption when \u0027"},{"line_number":121,"context_line":"                  \u0027unused\u0027)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5561297c_cb09cf0a","line":119,"in_reply_to":"165bfbca_b74a3487","updated":"2022-11-25 15:12:13.000000000","message":"Ack","commit_id":"4d8daf7db868af8e3c9d8e8e6a20c4c869f492a5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2636209bd7988571357561730c5f845e67523d31","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"  # registered in group [libvirt]"},{"line_number":117,"context_line":"  cfg.StrOpt(\u0027cpu_power_management_strategy\u0027,"},{"line_number":118,"context_line":"             choices\u003d[\u0027cpu_state\u0027, \u0027governor\u0027]"},{"line_number":119,"context_line":"             default\u003d\u0027offline\u0027,"},{"line_number":120,"context_line":"             help\u003d\u0027Tuning strategy to reduce CPU power consumption when \u0027"},{"line_number":121,"context_line":"                  \u0027unused\u0027)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"d1519991_8ce1771e","line":119,"range":{"start_line":118,"start_character":0,"end_line":119,"end_character":31},"in_reply_to":"575baa8e_2dbeeaae","updated":"2022-11-25 15:12:13.000000000","message":"Ack","commit_id":"4d8daf7db868af8e3c9d8e8e6a20c4c869f492a5"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3a55b8e33e215cffd532bccd32cb0eff30735418","unresolved":true,"context_lines":[{"line_number":126,"context_line":".. code::"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  # registered in group [libvirt]"},{"line_number":129,"context_line":"  cfg.StrOpt(\u0027cpu_power_management_strategy_governor_low\u0027,"},{"line_number":130,"context_line":"             default\u003d\u0027powersave\u0027,"},{"line_number":131,"context_line":"             help\u003d\u0027Governor to use in order to reduce CPU power consumption\u0027)"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"258bdca1_ee000031","line":129,"range":{"start_line":129,"start_character":14,"end_line":129,"end_character":56},"updated":"2022-11-16 17:41:47.000000000","message":"nit: this is clear but long\ni would prefer  cpu_power_governor_low or similar but \nim fine with this too","commit_id":"4d8daf7db868af8e3c9d8e8e6a20c4c869f492a5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2636209bd7988571357561730c5f845e67523d31","unresolved":false,"context_lines":[{"line_number":126,"context_line":".. code::"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"  # registered in group [libvirt]"},{"line_number":129,"context_line":"  cfg.StrOpt(\u0027cpu_power_management_strategy_governor_low\u0027,"},{"line_number":130,"context_line":"             default\u003d\u0027powersave\u0027,"},{"line_number":131,"context_line":"             help\u003d\u0027Governor to use in order to reduce CPU power consumption\u0027)"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"dd342111_5f984ed7","line":129,"range":{"start_line":129,"start_character":14,"end_line":129,"end_character":56},"in_reply_to":"258bdca1_ee000031","updated":"2022-11-25 15:12:13.000000000","message":"Ack","commit_id":"4d8daf7db868af8e3c9d8e8e6a20c4c869f492a5"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3a55b8e33e215cffd532bccd32cb0eff30735418","unresolved":true,"context_lines":[{"line_number":141,"context_line":"When an instance is spawned (or migrated or resumed), we will use the"},{"line_number":142,"context_line":"performance strategy to either online the core or use the best governor."},{"line_number":143,"context_line":"When an instance is stopped (or powered off or suspended or shelved offload or"},{"line_number":144,"context_line":"in confirm-resize state), then we would either offline the core or use the"},{"line_number":145,"context_line":"powersaving governor."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Note that even if we say that this is the operator responsibility to verify"}],"source_content_type":"text/x-rst","patch_set":5,"id":"c9c2e434_6febe2ad","line":144,"range":{"start_line":144,"start_character":3,"end_line":144,"end_character":17},"updated":"2022-11-16 17:41:47.000000000","message":"this might be a littel unclear but when i said confirm-resize we would offline/slow the cores on teh souce node that are nolonger used but the cores on the destination would already be start/high performace at this point as they were started as part of spwaning the vm and entering resize_verify.\n\nso we could add a note to this effect but ill just comment here for others to capture that intent.","commit_id":"4d8daf7db868af8e3c9d8e8e6a20c4c869f492a5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2636209bd7988571357561730c5f845e67523d31","unresolved":false,"context_lines":[{"line_number":141,"context_line":"When an instance is spawned (or migrated or resumed), we will use the"},{"line_number":142,"context_line":"performance strategy to either online the core or use the best governor."},{"line_number":143,"context_line":"When an instance is stopped (or powered off or suspended or shelved offload or"},{"line_number":144,"context_line":"in confirm-resize state), then we would either offline the core or use the"},{"line_number":145,"context_line":"powersaving governor."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Note that even if we say that this is the operator responsibility to verify"}],"source_content_type":"text/x-rst","patch_set":5,"id":"f6f5853d_29b21eb9","line":144,"range":{"start_line":144,"start_character":3,"end_line":144,"end_character":17},"in_reply_to":"c9c2e434_6febe2ad","updated":"2022-11-25 15:12:13.000000000","message":"Ack","commit_id":"4d8daf7db868af8e3c9d8e8e6a20c4c869f492a5"}]}
