)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f2ec6240_8b2b3422","updated":"2024-01-23 14:53:33.000000000","message":"I need to look again to complete.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"09a1667a818ef2aef4b3a78e3a7daaf588c57d60","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a5549c6e_346d9fb9","updated":"2024-01-24 18:42:44.000000000","message":"this spec is primary intended to serve as a discussion point.\n\nwe likely wont merge this as is or if we do ill refactor it to capture the use-cases and requirement without the proposed implementation \n\nfeedback is welcome and i can adjust the proposed changes section fi we want to develop this further but this proposal is not intended to preempt the discussion of \n\n\"is this something that is in the scope of nova to do as a project\"\n\ni just want to set expectations for reviewers that if we were to accept this we would need a separate spec for a specific release with details of how to do this.\n\ni shoudl also note that i was proposing this against backlog as i intentionally don\u0027t believe this shoudl be done in the Dalmation 2024.2 cycle.\n\nwe have alot of other work in flight in nova and this in my view would be an E (2025.1) or later cycle feature","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"}],"specs/backlog/nova-dynamic-cpus.rst":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"83f65bb9d4230b713521e0de5dd0e2468b8a0bd0","unresolved":true,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Currently its possible to device the cpu resocues on a host into shared and"},{"line_number":23,"context_line":"dedicated cpus. The shared cpus are available to all instances on the host"},{"line_number":24,"context_line":"(either for vcpus or emulator threads) and the dedicated cpus are available only to"},{"line_number":25,"context_line":"instances with the dedicated cpu policy. shared cpus are declared via the cpu_shared_set"}],"source_content_type":"text/x-rst","patch_set":1,"id":"68584b6c_ec5fabc9","line":22,"range":{"start_line":22,"start_character":26,"end_line":22,"end_character":32},"updated":"2024-01-24 16:32:54.000000000","message":"divide","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":true,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Currently its possible to device the cpu resocues on a host into shared and"},{"line_number":23,"context_line":"dedicated cpus. The shared cpus are available to all instances on the host"},{"line_number":24,"context_line":"(either for vcpus or emulator threads) and the dedicated cpus are available only to"},{"line_number":25,"context_line":"instances with the dedicated cpu policy. shared cpus are declared via the cpu_shared_set"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a05c6d2e_cc6caa07","line":22,"range":{"start_line":22,"start_character":41,"end_line":22,"end_character":49},"updated":"2024-01-23 14:53:33.000000000","message":"resources","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"88f26a065b652f23b538f52270f1785bbac29878","unresolved":true,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Currently its possible to device the cpu resocues on a host into shared and"},{"line_number":23,"context_line":"dedicated cpus. The shared cpus are available to all instances on the host"},{"line_number":24,"context_line":"(either for vcpus or emulator threads) and the dedicated cpus are available only to"},{"line_number":25,"context_line":"instances with the dedicated cpu policy. shared cpus are declared via the cpu_shared_set"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ea8a6a02_ce611e54","line":22,"range":{"start_line":22,"start_character":26,"end_line":22,"end_character":32},"in_reply_to":"68584b6c_ec5fabc9","updated":"2024-01-24 18:44:22.000000000","message":"yep this is what happens when i try to spellcheck as i am writing\ni can always determine what the correct suggestion is and end up using a valid word which is incorrect in context","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":true,"context_lines":[{"line_number":22,"context_line":"Currently its possible to device the cpu resocues on a host into shared and"},{"line_number":23,"context_line":"dedicated cpus. The shared cpus are available to all instances on the host"},{"line_number":24,"context_line":"(either for vcpus or emulator threads) and the dedicated cpus are available only to"},{"line_number":25,"context_line":"instances with the dedicated cpu policy. shared cpus are declared via the cpu_shared_set"},{"line_number":26,"context_line":"config option and dedicated cpus are declared via the cpu_dedicated_set config option."},{"line_number":27,"context_line":"while this work well for static partitioning of cpus, it does not work well for"},{"line_number":28,"context_line":"dynamic partitioning of cpus. For example, if a host has 8 cpus and 4 of them are"}],"source_content_type":"text/x-rst","patch_set":1,"id":"75c1c5b4_19d7127c","line":25,"range":{"start_line":25,"start_character":39,"end_line":25,"end_character":48},"updated":"2024-01-23 14:53:33.000000000","message":". Shared","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Currently its possible to device the cpu resocues on a host into shared and"},{"line_number":23,"context_line":"dedicated cpus. The shared cpus are available to all instances on the host"},{"line_number":24,"context_line":"(either for vcpus or emulator threads) and the dedicated cpus are available only to"},{"line_number":25,"context_line":"instances with the dedicated cpu policy. shared cpus are declared via the cpu_shared_set"},{"line_number":26,"context_line":"config option and dedicated cpus are declared via the cpu_dedicated_set config option."},{"line_number":27,"context_line":"while this work well for static partitioning of cpus, it does not work well for"},{"line_number":28,"context_line":"dynamic partitioning of cpus. For example, if a host has 8 cpus and 4 of them are"}],"source_content_type":"text/x-rst","patch_set":1,"id":"24c73649_32e70477","line":25,"range":{"start_line":25,"start_character":74,"end_line":25,"end_character":88},"updated":"2024-01-23 14:53:33.000000000","message":"this is confgured in nova.conf and not as flavor property.\n\n`[compute]\ncpu_dedicated_set\u003d2-17\ncpu_shared_set\u003d18-47`","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":true,"context_lines":[{"line_number":24,"context_line":"(either for vcpus or emulator threads) and the dedicated cpus are available only to"},{"line_number":25,"context_line":"instances with the dedicated cpu policy. shared cpus are declared via the cpu_shared_set"},{"line_number":26,"context_line":"config option and dedicated cpus are declared via the cpu_dedicated_set config option."},{"line_number":27,"context_line":"while this work well for static partitioning of cpus, it does not work well for"},{"line_number":28,"context_line":"dynamic partitioning of cpus. For example, if a host has 8 cpus and 4 of them are"},{"line_number":29,"context_line":"dedicated to instances with the dedicated cpu policy, and the remaining 4 cpus"},{"line_number":30,"context_line":"are available to all instances with the shared cpu policy we can have underutilisation"}],"source_content_type":"text/x-rst","patch_set":1,"id":"eff59a98_97fa637d","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":5},"updated":"2024-01-23 14:53:33.000000000","message":"While","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":true,"context_lines":[{"line_number":25,"context_line":"instances with the dedicated cpu policy. shared cpus are declared via the cpu_shared_set"},{"line_number":26,"context_line":"config option and dedicated cpus are declared via the cpu_dedicated_set config option."},{"line_number":27,"context_line":"while this work well for static partitioning of cpus, it does not work well for"},{"line_number":28,"context_line":"dynamic partitioning of cpus. For example, if a host has 8 cpus and 4 of them are"},{"line_number":29,"context_line":"dedicated to instances with the dedicated cpu policy, and the remaining 4 cpus"},{"line_number":30,"context_line":"are available to all instances with the shared cpu policy we can have underutilisation"},{"line_number":31,"context_line":"of the platform. For example, if there are 4 instances with the dedicated cpu policy"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4aae7c7e_876aa8a3","line":28,"range":{"start_line":28,"start_character":30,"end_line":28,"end_character":41},"updated":"2024-01-23 14:53:33.000000000","message":"can we put a new line here, to separate it from above para.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":true,"context_lines":[{"line_number":34,"context_line":"instance has 1 vcpu, the the dedicated cpus are idle and not available to the instances"},{"line_number":35,"context_line":"with the shared cpu policy. This can lead to a bin packing problem where we have"},{"line_number":36,"context_line":"underutilisation of the platform."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Use Cases"},{"line_number":39,"context_line":"---------"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ce995e8e_e5c4cdbf","line":37,"updated":"2024-01-23 14:53:33.000000000","message":"but, from user perspective, the dedicated cpus are might be exclusive ones for vm1 and user may not want to share them with others (for any reason) even they are idle.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":false,"context_lines":[{"line_number":34,"context_line":"instance has 1 vcpu, the the dedicated cpus are idle and not available to the instances"},{"line_number":35,"context_line":"with the shared cpu policy. This can lead to a bin packing problem where we have"},{"line_number":36,"context_line":"underutilisation of the platform."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Use Cases"},{"line_number":39,"context_line":"---------"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bdf2ab8d_2c28ed46","line":37,"updated":"2024-01-23 14:53:33.000000000","message":"from given example:\n\ncompute host has 8 cpus, \n1 instance i.e vm1 has 4 dedicated cpus.\nother 4 instances has shared cpus 4 cpus.\n\nnow, in case when vm1 is idle (or not using its 4 dedicated cpus fully), other instances can not use them either.\n\nand this is problem, we have more resource but we may not able to use them when required.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":true,"context_lines":[{"line_number":42,"context_line":"into shared and dedicated cpus so that I can maximise the utilisation of the"},{"line_number":43,"context_line":"platform based on the workload requirements."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"As an operator i want to be able to use dynamic cpu partioning without having to"},{"line_number":46,"context_line":"modify my existing flavor definitions. I want to be able to use the existing"},{"line_number":47,"context_line":"flavor definitions and have the system partition the cpus based on the workload"},{"line_number":48,"context_line":"so that existing workloads can benefit from dynamic cpu partioning if moved to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f336163f_5fd42b01","line":45,"range":{"start_line":45,"start_character":15,"end_line":45,"end_character":17},"updated":"2024-01-23 14:53:33.000000000","message":"I","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":true,"context_lines":[{"line_number":48,"context_line":"so that existing workloads can benefit from dynamic cpu partioning if moved to"},{"line_number":49,"context_line":"a host with dynamic cpu partioning enabled."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"As an operator, when using dynamic cpu partioning, i want unused cpus to be able"},{"line_number":52,"context_line":"to use the recently added cpu_state power management feature so that idle cpus"},{"line_number":53,"context_line":"will be put into a low power state."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bda6b583_beae311d","line":51,"range":{"start_line":51,"start_character":51,"end_line":51,"end_character":52},"updated":"2024-01-23 14:53:33.000000000","message":"I","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":false,"context_lines":[{"line_number":59,"context_line":"* No new Resouces classes will be added for dynamic cpu partioning. The existing"},{"line_number":60,"context_line":"  VCPU and PCPU resources classes will be used for dynamic cpu partioning."},{"line_number":61,"context_line":"* The existing cpu_shared_set and cpu_dedicated_set config options will not be used"},{"line_number":62,"context_line":"  for dynamic cpu partioning. Instead, a new config option called cpu_dynamic_set"},{"line_number":63,"context_line":"  will be used for dynamic cpu partioning. This will enable coeistence of static"},{"line_number":64,"context_line":"  and dynamic cpu partioning on the same or diffent host in the future. coeistence"},{"line_number":65,"context_line":"  on the same host will be out of scope of this blueprint."}],"source_content_type":"text/x-rst","patch_set":1,"id":"a3c46911_cdd97589","line":62,"range":{"start_line":62,"start_character":66,"end_line":62,"end_character":81},"updated":"2024-01-23 14:53:33.000000000","message":"okay, this answers my above question/doubt.\nconfigure those hosts only, where we can have non exclusive vms, which is mostly.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":true,"context_lines":[{"line_number":59,"context_line":"* No new Resouces classes will be added for dynamic cpu partioning. The existing"},{"line_number":60,"context_line":"  VCPU and PCPU resources classes will be used for dynamic cpu partioning."},{"line_number":61,"context_line":"* The existing cpu_shared_set and cpu_dedicated_set config options will not be used"},{"line_number":62,"context_line":"  for dynamic cpu partioning. Instead, a new config option called cpu_dynamic_set"},{"line_number":63,"context_line":"  will be used for dynamic cpu partioning. This will enable coeistence of static"},{"line_number":64,"context_line":"  and dynamic cpu partioning on the same or diffent host in the future. coeistence"},{"line_number":65,"context_line":"  on the same host will be out of scope of this blueprint."}],"source_content_type":"text/x-rst","patch_set":1,"id":"08674c67_12999c23","line":62,"range":{"start_line":62,"start_character":66,"end_line":62,"end_character":81},"updated":"2024-01-23 14:53:33.000000000","message":"will cpu_dedicated_set be subset of cpu_dynamic_set, how operator will mention  in nova.conf ?","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":true,"context_lines":[{"line_number":60,"context_line":"  VCPU and PCPU resources classes will be used for dynamic cpu partioning."},{"line_number":61,"context_line":"* The existing cpu_shared_set and cpu_dedicated_set config options will not be used"},{"line_number":62,"context_line":"  for dynamic cpu partioning. Instead, a new config option called cpu_dynamic_set"},{"line_number":63,"context_line":"  will be used for dynamic cpu partioning. This will enable coeistence of static"},{"line_number":64,"context_line":"  and dynamic cpu partioning on the same or diffent host in the future. coeistence"},{"line_number":65,"context_line":"  on the same host will be out of scope of this blueprint."},{"line_number":66,"context_line":"* The current roles of placement, the resouce tracker and the scheduler will not"}],"source_content_type":"text/x-rst","patch_set":1,"id":"63942788_1703c9c5","line":63,"range":{"start_line":63,"start_character":60,"end_line":63,"end_character":70},"updated":"2024-01-23 14:53:33.000000000","message":"coexistence","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":true,"context_lines":[{"line_number":61,"context_line":"* The existing cpu_shared_set and cpu_dedicated_set config options will not be used"},{"line_number":62,"context_line":"  for dynamic cpu partioning. Instead, a new config option called cpu_dynamic_set"},{"line_number":63,"context_line":"  will be used for dynamic cpu partioning. This will enable coeistence of static"},{"line_number":64,"context_line":"  and dynamic cpu partioning on the same or diffent host in the future. coeistence"},{"line_number":65,"context_line":"  on the same host will be out of scope of this blueprint."},{"line_number":66,"context_line":"* The current roles of placement, the resouce tracker and the scheduler will not"},{"line_number":67,"context_line":"  change. The resource trakcer will continue to be the source of truth for the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"31f2315e_65e2b8d0","line":64,"updated":"2024-01-23 14:53:33.000000000","message":"coexistence","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":true,"context_lines":[{"line_number":66,"context_line":"* The current roles of placement, the resouce tracker and the scheduler will not"},{"line_number":67,"context_line":"  change. The resource trakcer will continue to be the source of truth for the"},{"line_number":68,"context_line":"  cpu resources on a host. The placement service will continue to track the cpu"},{"line_number":69,"context_line":"  capsity on a host using the VCPU and PCPU resouce classes. "},{"line_number":70,"context_line":"  The scheduler will continue to select a host for an instance based on the"},{"line_number":71,"context_line":"  cpu resources on the host but the assignment of cpus to an instance will be"},{"line_number":72,"context_line":"  done by the resource tracker."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dea31614_0539c957","line":69,"range":{"start_line":69,"start_character":2,"end_line":69,"end_character":9},"updated":"2024-01-23 14:53:33.000000000","message":"capacity","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"65f10be1c1bf07d12cbac917f3829b05195dab20","unresolved":true,"context_lines":[{"line_number":169,"context_line":"to preserve backwards compatibility. This spec will deprecate that fallback and we"},{"line_number":170,"context_line":"can remove it in a future release."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"the cpu_overhead_set cpus will not be reported to placement and may not overlap with"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"vcpu_pin_set"},{"line_number":175,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d3a4f5db_27ac96bc","line":172,"updated":"2024-01-23 17:09:16.000000000","message":"This means that with cpu_overhead_set some of the hypervisor cpus needs to be dedicated to the overhead and therefore cannot be used for vcpus. This will decreased the vcpu capacity of the hypervisor at least from scheduling perspective. I\u0027m not sure deployers will be happy with this capacity reduction.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"623f975add679a631ce1ad3a310f25416f947b11","unresolved":true,"context_lines":[{"line_number":169,"context_line":"to preserve backwards compatibility. This spec will deprecate that fallback and we"},{"line_number":170,"context_line":"can remove it in a future release."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"the cpu_overhead_set cpus will not be reported to placement and may not overlap with"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"vcpu_pin_set"},{"line_number":175,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4da83910_6d28effc","line":172,"in_reply_to":"d3a4f5db_27ac96bc","updated":"2024-01-24 16:16:58.000000000","message":"i will reword this\n\nthe specific thing i want to prevent is overlap bettween cpu_overhead_set\nand cpu_dedicated_set or cpu_dynmaic_set\n\noverlap with cpu_shared_set is actully fine since cpu_overhead_set shoudl default to cpu_shared_set if not defiend.\n\nwhat i would like to be able to express more simpley is i have a host which only has dedicated cpu and the emulatort thread shoudl not run on those cores\n\ntoday you have to use cpu_shared_set to express that and then reserve all cores in it.\n\nmy expecation is that cpu_overhead_set woudl actully just be the cores you reserve for the host os when you are using cpu_dynmaic_set so it shoudl not require extra capstity\n\ni just want a clean way to enable the emulator threads to be pined to cores outside of cpu_dynmaic_set when the instance requst cpu_policy\u003ddedicated with threads_policy\u003dshared.\n\nwe coudl get the same effect by supproting cpu_shared_set and cpu_dynmaic_set and ensuring they do not overlap. that could be supproted its just more complicated but that is a viald alternitive.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"65f10be1c1bf07d12cbac917f3829b05195dab20","unresolved":true,"context_lines":[{"line_number":184,"context_line":"The proposed solution is to add a new config option called cpu_dynamic_set. This"},{"line_number":185,"context_line":"config option will be used to define the cpus that are available to instance vcpus."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"All cpus in the cpu_dynamic_set will be reported to placement as both vcpus and pcpus."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"e.g. if cpu_dynamic_set\u003d0-7 then placement will report 8 vcpus and 8 pcpus."},{"line_number":190,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b4e587d2_4351a44a","line":187,"updated":"2024-01-23 17:09:16.000000000","message":"I think this is the main change. And there are dragons here. Any time we tried to represent the same physical resource as two, independently consumable logical resources in placement we ended up introducing bugs. I don\u0027t say we cannot do this correctly but I do say that this is a dangerous move.\n\nE.g. \n* we deprecated support for configuring both the PF and its VFs via device_spec.\n* we are fixing bugs where a PGPU can provide different but mutually exclusive VGPU types.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"65f10be1c1bf07d12cbac917f3829b05195dab20","unresolved":true,"context_lines":[{"line_number":258,"context_line":"If we boot a second instance with the same flavor on the same host then the second"},{"line_number":259,"context_line":"will be pinned to the same host core as the first instance. This is because the first"},{"line_number":260,"context_line":"instance has already reserved the host core for shared use and we have not reached"},{"line_number":261,"context_line":"the cpu_allocation_ratio."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"```"},{"line_number":264,"context_line":"resouce_provider"}],"source_content_type":"text/x-rst","patch_set":1,"id":"582c0eaa_fd2194e9","line":261,"updated":"2024-01-23 17:09:16.000000000","message":"While you try to limit the fragmentation of the pin-able cpu cores via packing floating cores such fragmentation will manifest eventually via the creation and deletion of VMs with different flavors.\n\nE.g.:\n3 physical cores, allocation ratio 2.0. pcore_id : available_vcore_count \u003d {0:2, 1:2, 2:2}\n1. boot a VM with 2 vcpus -\u003e mapped to 0, 1, {0:1, 1:1, 2:2}\n2. boot a VM with 1 vcpu -\u003e mapped to 0 (0 is full now), {0:0, 1:1, 2:2}\n3. boot a VM with 2 vcpus -\u003e mapped to 1, 2 (as 0 is full but 1 still have a vcpu), {0:0, 1:0, 2:1} \n4. delete the VM with the 1 vcpu allocation. {0:1, 1:0, 2:1}\nAt this point we have a total allocation of 4 vcpus but it is spread to all 3 pcores. So logically we have space for a pinned core, but due to fragmentation we don\u0027t have the ability to allocate it. \n\nI don\u0027t think there is a fragmentation free algorithm. So either we live with the fact of fragmentation, or do some dynamic re-packing of the floating vcpus.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"623f975add679a631ce1ad3a310f25416f947b11","unresolved":true,"context_lines":[{"line_number":258,"context_line":"If we boot a second instance with the same flavor on the same host then the second"},{"line_number":259,"context_line":"will be pinned to the same host core as the first instance. This is because the first"},{"line_number":260,"context_line":"instance has already reserved the host core for shared use and we have not reached"},{"line_number":261,"context_line":"the cpu_allocation_ratio."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"```"},{"line_number":264,"context_line":"resouce_provider"}],"source_content_type":"text/x-rst","patch_set":1,"id":"10cca819_1a6f08b4","line":261,"in_reply_to":"582c0eaa_fd2194e9","updated":"2024-01-24 16:16:58.000000000","message":"you are correct that the packing behavior was an attempt to minimise fragmentation and also a correctness requireemtn to ensure that dedicated and shared cores dont overlap.\n\ni have some tought on how to adress fragmentation but i woudl prefer to do that as a followup.\n\nbascially there are two relitivly simple things we coudl do with pros and cons.\nfirst we coudl make hard reboot repin the cores of just that vm and compact them whne an instance is hard rebooted. that woudl invovle doing an RP update in palcement and a db update on hard reboot but that not terrible.\n\nsecond on a host reboot we can effectivly use teh defrag on hardreboot to ensure\nthat as each instnace is started again it will lazally or egerly defrag the allocations.\n\ni could add this as a note in the spec for future work or we could bring it into scope proper. there may be other aprpoches to this but this is the lest problematic in the context of action on one instance not impacting others.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"42ccae57ab05ecc8738ab61ee72ad86a7c1feedc","unresolved":true,"context_lines":[{"line_number":316,"context_line":"            ---- vcpu"},{"line_number":317,"context_line":"            |       |"},{"line_number":318,"context_line":"            |       ---- total: 8"},{"line_number":319,"context_line":"            |       ---- reserved: 4"},{"line_number":320,"context_line":"            |       ---- min_unit: 1"},{"line_number":321,"context_line":"            |       ---- max_unit: 7"},{"line_number":322,"context_line":"            |       ---- step_size: 1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ecc28e0a_05b68e17","line":319,"updated":"2024-01-24 15:50:34.000000000","message":"How did this jump from 0 to 4 here?","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"623f975add679a631ce1ad3a310f25416f947b11","unresolved":true,"context_lines":[{"line_number":316,"context_line":"            ---- vcpu"},{"line_number":317,"context_line":"            |       |"},{"line_number":318,"context_line":"            |       ---- total: 8"},{"line_number":319,"context_line":"            |       ---- reserved: 4"},{"line_number":320,"context_line":"            |       ---- min_unit: 1"},{"line_number":321,"context_line":"            |       ---- max_unit: 7"},{"line_number":322,"context_line":"            |       ---- step_size: 1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"49a55dfa_dd2af664","line":319,"in_reply_to":"ecc28e0a_05b68e17","updated":"2024-01-24 16:16:58.000000000","message":"we claimed on phsical core form the dynamic set for use as a dedicated core\n\nsince the allcoation ratio is 4.0 we need to increase by 4\n\n\"\"\"\ngiven share cpus allow over subscription\nwhen a host core is reserved for dedicated use, the vcpu reserved is increased by\n(1 * allocation_ratio) instead of 1.\n\"\"\"\n\ni noted this in the explaint after on line 359","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"65f10be1c1bf07d12cbac917f3829b05195dab20","unresolved":true,"context_lines":[{"line_number":442,"context_line":"is no allocation against the vcpu inventory. since each host core utilized as a shared core"},{"line_number":443,"context_line":"allowed up to allocation_ratio vcpus to be allocated, when a host core is reserved for"},{"line_number":444,"context_line":"dedicated use, the vcpu reserved is increased by (1 * allocation_ratio) instead of 1."},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"resouce provider updates and concurrent allocation creations"},{"line_number":447,"context_line":"------------------------------------------------------------"},{"line_number":448,"context_line":"As mentioned above, the placement service is not the source of truth for the cpu"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4b138557_1a3d4474","line":445,"updated":"2024-01-23 17:09:16.000000000","message":"This is probably not relevant but I noticed that in the proposed change if a host has available PCPUs then it will always have available VCPUs as a PCPU can be used as one or more VCPUs. However not vice versa. So there might be hosts with available VCPUs but no available PCPUs any more.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"623f975add679a631ce1ad3a310f25416f947b11","unresolved":true,"context_lines":[{"line_number":442,"context_line":"is no allocation against the vcpu inventory. since each host core utilized as a shared core"},{"line_number":443,"context_line":"allowed up to allocation_ratio vcpus to be allocated, when a host core is reserved for"},{"line_number":444,"context_line":"dedicated use, the vcpu reserved is increased by (1 * allocation_ratio) instead of 1."},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"resouce provider updates and concurrent allocation creations"},{"line_number":447,"context_line":"------------------------------------------------------------"},{"line_number":448,"context_line":"As mentioned above, the placement service is not the source of truth for the cpu"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6eb7958f_9fd6c905","line":445,"in_reply_to":"4b138557_1a3d4474","updated":"2024-01-24 16:16:58.000000000","message":"yes its true thats a side effect of teh fact all cores not used as dedicated cpus currenlty can be used as shared cpus. \n\nin a future release i coudl see us supproting\n\ncpu_dedicated_set and cpu_dynmic_set provided they did not overlap to allow you to have a pool of dedeicated cpus and some that coudl be shared or dedicated.\n\nit may also make sense to supprot cpu_dynmic_set with cpu_shared_set or even all 3\nprovided they do not overlap with each other.\n\nfor simplictiy of reasoning i wanted to start without condiering how we could make those 3 sets fo cpu resouce interact but your observation is correct.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"42ccae57ab05ecc8738ab61ee72ad86a7c1feedc","unresolved":true,"context_lines":[{"line_number":452,"context_line":""},{"line_number":453,"context_line":"That means that its possible for two instances to atomically create an allocation"},{"line_number":454,"context_line":"in placement, and then both be scheduled to the same host where the assignment of cpus"},{"line_number":455,"context_line":"may only be valid for one of the vms.  Today when this happens because of the locking"},{"line_number":456,"context_line":"we have in the resource tracker, the second instance will fail to build because the"},{"line_number":457,"context_line":"numa topology requsted will not be fitable to the host."},{"line_number":458,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"580557b4_df01d708","line":455,"updated":"2024-01-24 15:50:34.000000000","message":"I think the ghost of jaypipes would say that this means you\u0027re using it wrong (i.e. because you\u0027re representing one set of hardware with twice the inventory). Personally I think any plan that goes down that road is a regression from where we\u0027ve been trying to get to with placement and our usage of it.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"623f975add679a631ce1ad3a310f25416f947b11","unresolved":true,"context_lines":[{"line_number":452,"context_line":""},{"line_number":453,"context_line":"That means that its possible for two instances to atomically create an allocation"},{"line_number":454,"context_line":"in placement, and then both be scheduled to the same host where the assignment of cpus"},{"line_number":455,"context_line":"may only be valid for one of the vms.  Today when this happens because of the locking"},{"line_number":456,"context_line":"we have in the resource tracker, the second instance will fail to build because the"},{"line_number":457,"context_line":"numa topology requsted will not be fitable to the host."},{"line_number":458,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"8c3bad9f_462624ad","line":455,"in_reply_to":"580557b4_df01d708","updated":"2024-01-24 16:16:58.000000000","message":"you are correct and he would be too however that is the main tension of this spec.\n\neither you can have static partioning of resouce on the host and in palcment or both can be dynmci\n\nif we go the dynmaic route and we do not have a new resocue class then there must be reporting of both.\n\nwe need to deicied if we are ok with that or not and that will inform if this feature can be supported in nova or not.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"65f10be1c1bf07d12cbac917f3829b05195dab20","unresolved":true,"context_lines":[{"line_number":462,"context_line":"the over subscription when the instance is created and we will reject the build request."},{"line_number":463,"context_line":"The conductor will then free the allocation in placement for the rejected instance"},{"line_number":464,"context_line":"and an alternative host will be selected."},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"Atomicity of allocation creation and resource provider updates"},{"line_number":467,"context_line":"--------------------------------------------------------------"},{"line_number":468,"context_line":"As mentioned above, the placement service is not the source of truth for the cpu resources"}],"source_content_type":"text/x-rst","patch_set":1,"id":"68f5599a_86df508f","line":465,"updated":"2024-01-23 17:09:16.000000000","message":"I don\u0027t see a way that placement would return a wrong allocation candidate due to the proposed change as the inventory of both logical resources are correctly tracked via changing the reserved value.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"623f975add679a631ce1ad3a310f25416f947b11","unresolved":true,"context_lines":[{"line_number":462,"context_line":"the over subscription when the instance is created and we will reject the build request."},{"line_number":463,"context_line":"The conductor will then free the allocation in placement for the rejected instance"},{"line_number":464,"context_line":"and an alternative host will be selected."},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"Atomicity of allocation creation and resource provider updates"},{"line_number":467,"context_line":"--------------------------------------------------------------"},{"line_number":468,"context_line":"As mentioned above, the placement service is not the source of truth for the cpu resources"}],"source_content_type":"text/x-rst","patch_set":1,"id":"0e7e25ad_eda9110d","line":465,"in_reply_to":"026952c2_325f54dc","updated":"2024-01-24 16:16:58.000000000","message":"that woudl be no diffent then today. today the numa toplogy filter can accpet the host but it can be invlaid by the time the instance reaches it becasue in the intervening time another instance has booted on it.\n\nso yes but its not a regression form how it works today.\n\nthis race exist cor pCPUs and hugepages today.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e9af7e64b5e47a9cec50f3d0675309f6cd24a32c","unresolved":true,"context_lines":[{"line_number":462,"context_line":"the over subscription when the instance is created and we will reject the build request."},{"line_number":463,"context_line":"The conductor will then free the allocation in placement for the rejected instance"},{"line_number":464,"context_line":"and an alternative host will be selected."},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"Atomicity of allocation creation and resource provider updates"},{"line_number":467,"context_line":"--------------------------------------------------------------"},{"line_number":468,"context_line":"As mentioned above, the placement service is not the source of truth for the cpu resources"}],"source_content_type":"text/x-rst","patch_set":1,"id":"254e47ea_25dcb9e7","line":465,"in_reply_to":"0e7e25ad_eda9110d","updated":"2024-01-24 16:28:18.000000000","message":"There\u0027s a race today, yes, but it\u0027s present because placement has *correctly* identified a host with capacity, but without an appropriate topology, right? Expanding the race to include not only the potential for a topology mis-fit, but also a fundamental oversubscription of a set of resources that can\u0027t actually be oversubscribed.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"42ccae57ab05ecc8738ab61ee72ad86a7c1feedc","unresolved":true,"context_lines":[{"line_number":462,"context_line":"the over subscription when the instance is created and we will reject the build request."},{"line_number":463,"context_line":"The conductor will then free the allocation in placement for the rejected instance"},{"line_number":464,"context_line":"and an alternative host will be selected."},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"Atomicity of allocation creation and resource provider updates"},{"line_number":467,"context_line":"--------------------------------------------------------------"},{"line_number":468,"context_line":"As mentioned above, the placement service is not the source of truth for the cpu resources"}],"source_content_type":"text/x-rst","patch_set":1,"id":"026952c2_325f54dc","line":465,"in_reply_to":"68f5599a_86df508f","updated":"2024-01-24 15:50:34.000000000","message":"Maybe I\u0027m missing something, but this seems like it\u0027s representing the same resources with double the inventory. Won\u0027t conductor/scheduler be over-allocating instances for the compute, especially if there\u0027s a flood of boot requests? Put another way, before the compute has a chance to twiddle the inventory to reflect reality after each boot, anything looking at only the placement inventory will not give an accurate picture.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"42ccae57ab05ecc8738ab61ee72ad86a7c1feedc","unresolved":true,"context_lines":[{"line_number":474,"context_line":"can definitvly say that a host does not have capasity to host an instance it cannot definitvly"},{"line_number":475,"context_line":"say that a host has capasity to host an instance. Like a bloom filter, placement can only say"},{"line_number":476,"context_line":"there is a high probability that a host has capasity to host an instance based on the information"},{"line_number":477,"context_line":"it has."},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"This spec does not attemept to adress the problem of atomicity of allocation creation and resource"},{"line_number":480,"context_line":"provider updates. But it does attempet to ensure that it can be addressed in the future."}],"source_content_type":"text/x-rst","patch_set":1,"id":"43e628af_21e5f5f2","line":477,"updated":"2024-01-24 15:50:34.000000000","message":"I think this paragraph is really saying \"well, we can\u0027t be positive that an instance will fit, making it less accurate (or more lossy) isn\u0027t bad.\" I don\u0027t think I agree.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"623f975add679a631ce1ad3a310f25416f947b11","unresolved":true,"context_lines":[{"line_number":474,"context_line":"can definitvly say that a host does not have capasity to host an instance it cannot definitvly"},{"line_number":475,"context_line":"say that a host has capasity to host an instance. Like a bloom filter, placement can only say"},{"line_number":476,"context_line":"there is a high probability that a host has capasity to host an instance based on the information"},{"line_number":477,"context_line":"it has."},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"This spec does not attemept to adress the problem of atomicity of allocation creation and resource"},{"line_number":480,"context_line":"provider updates. But it does attempet to ensure that it can be addressed in the future."}],"source_content_type":"text/x-rst","patch_set":1,"id":"66712783_15d0671f","line":477,"in_reply_to":"43e628af_21e5f5f2","updated":"2024-01-24 16:16:58.000000000","message":"not just that. im also calling out that today \"we can\u0027t be positive that an instance will fit\" and this is not makign that worse just different.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e9af7e64b5e47a9cec50f3d0675309f6cd24a32c","unresolved":true,"context_lines":[{"line_number":474,"context_line":"can definitvly say that a host does not have capasity to host an instance it cannot definitvly"},{"line_number":475,"context_line":"say that a host has capasity to host an instance. Like a bloom filter, placement can only say"},{"line_number":476,"context_line":"there is a high probability that a host has capasity to host an instance based on the information"},{"line_number":477,"context_line":"it has."},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"This spec does not attemept to adress the problem of atomicity of allocation creation and resource"},{"line_number":480,"context_line":"provider updates. But it does attempet to ensure that it can be addressed in the future."}],"source_content_type":"text/x-rst","patch_set":1,"id":"e363e7d7_a7c0eb0b","line":477,"in_reply_to":"66712783_15d0671f","updated":"2024-01-24 16:28:18.000000000","message":"Okay, I think it makes it worse ;)","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"42ccae57ab05ecc8738ab61ee72ad86a7c1feedc","unresolved":true,"context_lines":[{"line_number":484,"context_line":"in a single atomic call. by delegating the creation of the allocation to the compute node we can"},{"line_number":485,"context_line":"ensure that the allocation is only created if the resource tracker is able to assign cpus to the instance."},{"line_number":486,"context_line":"This has the the disadvantage that it requires a new rpc to the compute node and a new placement rest api"},{"line_number":487,"context_line":"request could be delayed while we wait for the compute node to respond."},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"another possible way to address this in the future for the asignment of the cpus to be"},{"line_number":490,"context_line":"done by the conductor instead. Today the numa topology filter genreate a possible assignment using"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fd191732_8cc85566","line":487,"updated":"2024-01-24 15:50:34.000000000","message":"It also means the compute can get hammered by multiple scheduler/conductor processes asking \"does this fit?\" during a massive boot request storm.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e9af7e64b5e47a9cec50f3d0675309f6cd24a32c","unresolved":true,"context_lines":[{"line_number":484,"context_line":"in a single atomic call. by delegating the creation of the allocation to the compute node we can"},{"line_number":485,"context_line":"ensure that the allocation is only created if the resource tracker is able to assign cpus to the instance."},{"line_number":486,"context_line":"This has the the disadvantage that it requires a new rpc to the compute node and a new placement rest api"},{"line_number":487,"context_line":"request could be delayed while we wait for the compute node to respond."},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"another possible way to address this in the future for the asignment of the cpus to be"},{"line_number":490,"context_line":"done by the conductor instead. Today the numa topology filter genreate a possible assignment using"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b41154b7_116bc906","line":487,"in_reply_to":"56b6f216_e1180280","updated":"2024-01-24 16:28:18.000000000","message":"Perhaps I\u0027m forgetting something, but where does the scheduling operation in conductor call to the compute to see if something will fit before it has been assigned/allocated? My reading of this paragraph is that we would move the actual allocation step to the compute and have conductor call to compute to have _it_ do the allocation step synchronously before conductor considers an instance schedule complete.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"623f975add679a631ce1ad3a310f25416f947b11","unresolved":true,"context_lines":[{"line_number":484,"context_line":"in a single atomic call. by delegating the creation of the allocation to the compute node we can"},{"line_number":485,"context_line":"ensure that the allocation is only created if the resource tracker is able to assign cpus to the instance."},{"line_number":486,"context_line":"This has the the disadvantage that it requires a new rpc to the compute node and a new placement rest api"},{"line_number":487,"context_line":"request could be delayed while we wait for the compute node to respond."},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"another possible way to address this in the future for the asignment of the cpus to be"},{"line_number":490,"context_line":"done by the conductor instead. Today the numa topology filter genreate a possible assignment using"}],"source_content_type":"text/x-rst","patch_set":1,"id":"56b6f216_e1180280","line":487,"in_reply_to":"fd191732_8cc85566","updated":"2024-01-24 16:16:58.000000000","message":"yep again that is a probelm with the current implemation we have to day so this wont make that any worse","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"42ccae57ab05ecc8738ab61ee72ad86a7c1feedc","unresolved":true,"context_lines":[{"line_number":496,"context_line":"on the conductor or compute node as this is now a shared resouce which must be updated atomically."},{"line_number":497,"context_line":"this has the advantage that it does not require a new rpc to the compute node and the placement rest api"},{"line_number":498,"context_line":"call can continue to be done in the conductor reducing the latency."},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"cpu_pinning, numa topology, and numa aware memory allocation"},{"line_number":501,"context_line":"------------------------------------------------------------"},{"line_number":502,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"16428a35_fe33b75d","line":499,"updated":"2024-01-24 15:50:34.000000000","message":"I think this approach would require fully exposing all the compute details so that a conductor can make that decision right?","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"623f975add679a631ce1ad3a310f25416f947b11","unresolved":true,"context_lines":[{"line_number":496,"context_line":"on the conductor or compute node as this is now a shared resouce which must be updated atomically."},{"line_number":497,"context_line":"this has the advantage that it does not require a new rpc to the compute node and the placement rest api"},{"line_number":498,"context_line":"call can continue to be done in the conductor reducing the latency."},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"cpu_pinning, numa topology, and numa aware memory allocation"},{"line_number":501,"context_line":"------------------------------------------------------------"},{"line_number":502,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"e4cb2608_a89154d3","line":499,"in_reply_to":"16428a35_fe33b75d","updated":"2024-01-24 16:16:58.000000000","message":"we have this code extracted into the hardware.py module and its already run in the schduler via the numa toplogy filter and on teh comptue so we have all the info we need in the cell db curerntly.\n\nso i think we have the abstraction in place to do this in the context of cpus hugepages, numa aware vswtichs and pci devices","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"42ccae57ab05ecc8738ab61ee72ad86a7c1feedc","unresolved":true,"context_lines":[{"line_number":508,"context_line":""},{"line_number":509,"context_line":"with the introduction of https://specs.openstack.org/openstack/nova-specs/specs/train/implemented/cpu-resources.html"},{"line_number":510,"context_line":"nova gained the ablity to have vms with cpu_policy\u003dshared and cpu_policy\u003ddedicated on the same host"},{"line_number":511,"context_line":"That capablity was later extended to allow mixing shared and dedicated instances in the same instance"},{"line_number":512,"context_line":"https://specs.openstack.org/openstack/nova-specs/specs/victoria/implemented/use-pcpu-vcpu-in-one-instance.html"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"nova however has never and still does not support mixing numa instance and non numa instaces on the same host."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a92441b_b1330e9a","line":511,"range":{"start_line":511,"start_character":71,"end_line":511,"end_character":80},"updated":"2024-01-24 15:50:34.000000000","message":"\"cpus\" ?","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"623f975add679a631ce1ad3a310f25416f947b11","unresolved":true,"context_lines":[{"line_number":508,"context_line":""},{"line_number":509,"context_line":"with the introduction of https://specs.openstack.org/openstack/nova-specs/specs/train/implemented/cpu-resources.html"},{"line_number":510,"context_line":"nova gained the ablity to have vms with cpu_policy\u003dshared and cpu_policy\u003ddedicated on the same host"},{"line_number":511,"context_line":"That capablity was later extended to allow mixing shared and dedicated instances in the same instance"},{"line_number":512,"context_line":"https://specs.openstack.org/openstack/nova-specs/specs/victoria/implemented/use-pcpu-vcpu-in-one-instance.html"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"nova however has never and still does not support mixing numa instance and non numa instaces on the same host."}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf600b3e_a1d2b306","line":511,"range":{"start_line":511,"start_character":71,"end_line":511,"end_character":80},"in_reply_to":"3a92441b_b1330e9a","updated":"2024-01-24 16:16:58.000000000","message":"yep that shoudl be cpus","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"42ccae57ab05ecc8738ab61ee72ad86a7c1feedc","unresolved":true,"context_lines":[{"line_number":567,"context_line":"today and when a instance is booted with the dedicated cpu policy we could updated the"},{"line_number":568,"context_line":"pinning of the shared cpu instance to ensure that the dedicated cpu instance has the"},{"line_number":569,"context_line":"cpus it requires. This would violate our multi tenant design constraints and is not"},{"line_number":570,"context_line":"an option."},{"line_number":571,"context_line":""},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9971e461_543ce7cf","line":570,"updated":"2024-01-24 15:50:34.000000000","message":"I\u0027m not sure how I feel about changing this. For a single-vendor cloud, Nova is just IaaS and multi-tenancy constraints like this are just \"limitations\" to the operator. I agree that we don\u0027t do this sort of thing today, and that doing in the future is a fundamental change in how nova behaves (both from the multitenancy concern _and_ the PoV that we \"don\u0027t do orchestration.\").","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2579d925e94156bc77bcd81ce5084b7edc9f30c2","unresolved":true,"context_lines":[{"line_number":914,"context_line":""},{"line_number":915,"context_line":"   * - Release Name"},{"line_number":916,"context_line":"     - Description"},{"line_number":917,"context_line":"   * - 2024.1 Caracal"},{"line_number":918,"context_line":"     - Introduced"}],"source_content_type":"text/x-rst","patch_set":1,"id":"571b1904_b7580d35","line":917,"range":{"start_line":917,"start_character":7,"end_line":917,"end_character":21},"updated":"2024-01-23 14:53:33.000000000","message":"did you meant it for 2024.2 - D ?\n\nit says specs/backlog and  I can\u0027t find it in here.\nhttps://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_16e/906205/1/check/openstack-tox-docs/16e6b35/docs/specs/backlog/index.html","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"52057d3650af3084c2c2fc83286fd910440fea61","unresolved":true,"context_lines":[{"line_number":914,"context_line":""},{"line_number":915,"context_line":"   * - Release Name"},{"line_number":916,"context_line":"     - Description"},{"line_number":917,"context_line":"   * - 2024.1 Caracal"},{"line_number":918,"context_line":"     - Introduced"}],"source_content_type":"text/x-rst","patch_set":1,"id":"def5972d_e6a2e5ee","line":917,"range":{"start_line":917,"start_character":7,"end_line":917,"end_character":21},"in_reply_to":"571b1904_b7580d35","updated":"2024-01-24 18:48:07.000000000","message":"no im proposing this to the backlog because i belive this would be an 2025.1+ feature and should not be done in D\n\nwe are past the spec freeze for 2024.1 however so in effect it would be D when its intoduced but not when we would plan to do the work.\n\n\nthe reason this is not rendeing in the preview site is becasue i have it in the wrong folder. \n\nit shoudl be specs/backlog/appoved/nova-dynamic-cpus.rst not specs/backlog/nova-dynamic-cpus.rst\n\nso its not being built properly.","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"cc98162ab5512cb9370ce647457eeda28c63f84e","unresolved":false,"context_lines":[{"line_number":914,"context_line":""},{"line_number":915,"context_line":"   * - Release Name"},{"line_number":916,"context_line":"     - Description"},{"line_number":917,"context_line":"   * - 2024.1 Caracal"},{"line_number":918,"context_line":"     - Introduced"}],"source_content_type":"text/x-rst","patch_set":1,"id":"20c0602d_db5be60f","line":917,"range":{"start_line":917,"start_character":7,"end_line":917,"end_character":21},"in_reply_to":"def5972d_e6a2e5ee","updated":"2024-01-25 05:37:17.000000000","message":"Acknowledged","commit_id":"8487cb0bd57caf9f881457b38a5e77a6e88733cd"}]}
