)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"e7fdb01d775dba6d4452e5ce59b9f81afdc18be0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4d9da304_e09b4b34","updated":"2022-11-25 03:48:02.000000000","message":"Hi gibi,\n\nI have reconsidered mainly from scheduling and sent it as a new patch.\nCould you please review again when you have time?","commit_id":"915d46ef5e47eadc222cc2cead8a2e2b6e45d813"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ba5a986b97cb7a59e29eb7b526e1f2416c0d4ed4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"55fd67f5_046d0a1d","updated":"2022-12-14 12:20:14.000000000","message":"I have couple of things inline but I think we are getting closer.","commit_id":"915d46ef5e47eadc222cc2cead8a2e2b6e45d813"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"6191174ba35f849ddc1e88b9f4ad74f0c8c75d78","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"02c17016_760eab50","in_reply_to":"55fd67f5_046d0a1d","updated":"2022-12-15 08:04:29.000000000","message":"\u003e I have couple of things inline but I think we are getting closer.\n\nThank you for your kind cooperation.\nI added lines for your comments and think it is taking shape.","commit_id":"915d46ef5e47eadc222cc2cead8a2e2b6e45d813"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"0e90957f3787552514e6eb85aa43599c98148787","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d170f888_e13a8a68","updated":"2022-12-19 08:51:51.000000000","message":"Hi sean,\n\nThanks for your review.\nI\u0027ve fixed to add two traits and use these traits automatically if necessary.\nAs for scheduling based on the bit size, since trait does not support numerical comparisons, I reluctantly proposed this approach.","commit_id":"117240450bb9a34d41d335a98505dc9058269403"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"76ac24db25b2f3446120cbe22dbec8dce2f53aaa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fff8f376_1d8321c3","updated":"2023-01-11 11:03:41.000000000","message":"Looks good to me ","commit_id":"117240450bb9a34d41d335a98505dc9058269403"}],"specs/2023.1/approved/libvirt-maxphysaddr-support.rst":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"05bbc4a87e2d7f09e7ea3805e9a02c6ecb9fa668","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"When booting a guest with 1TB+ RAM, the default physical address bits are"},{"line_number":20,"context_line":"too small and the boot fails [1]_. So a knob is needed to specify the"},{"line_number":21,"context_line":"appropriate physical address bits."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Use Cases"},{"line_number":24,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f86b6f7a_f8144bf3","line":21,"updated":"2022-11-15 10:03:41.000000000","message":"From the libvit doc[1]:\n\u003e  the maxphysaddr element describes the virtual CPU address size in bits. The hypervisor default is used if the element is missing.\n[...]\n\u003e The number of bits cannot exceed the number of physical address bits supported by the hypervisor.\n\nSo I believe that if we set nothing here then the guest will get the maximum number of bits the hypervisor supports. And even if the tag is set it cannot be bigger to the number of bits the hypervisor supports. So I don\u0027t think the proposed change can fix the problem you are describing here.\n\n[1] https://libvirt.org/formatdomain.html#cpu-model-and-topology","commit_id":"5ace62ef2c5fceea2e28161ed0a2c2d8104fd8cb"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"6191174ba35f849ddc1e88b9f4ad74f0c8c75d78","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"When booting a guest with 1TB+ RAM, the default physical address bits are"},{"line_number":20,"context_line":"too small and the boot fails [1]_. So a knob is needed to specify the"},{"line_number":21,"context_line":"appropriate physical address bits."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Use Cases"},{"line_number":24,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c58fcc97_d7be2e03","line":21,"in_reply_to":"099e9101_dbc72f4e","updated":"2022-12-15 08:04:29.000000000","message":"Done","commit_id":"5ace62ef2c5fceea2e28161ed0a2c2d8104fd8cb"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"4d3b11d33c2f51a425cd020980ec66d3fd407d85","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"When booting a guest with 1TB+ RAM, the default physical address bits are"},{"line_number":20,"context_line":"too small and the boot fails [1]_. So a knob is needed to specify the"},{"line_number":21,"context_line":"appropriate physical address bits."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Use Cases"},{"line_number":24,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"099e9101_dbc72f4e","line":21,"in_reply_to":"57c3546d_8c2c2ab4","updated":"2022-11-18 03:02:52.000000000","message":"I think there are two issues regarding this alternative as follows:\n\n* Ubuntu package maintainers are applying a patch to qemu [1]. It is not included in vanilla qemu and is not available in other distributions.\n\n* This is only the case for hw_maxphysaddr_mode\u003dpassthrough and does not include hw_maxphysaddr_mode\u003demulate. Since hw_maxphysaddr_mode\u003dpassthrough requires cpu_mode\u003dhost-passthrough to be used [2], this alternative cannot be used in environments that use other cpu_modes.\n\n[1] https://git.launchpad.net/~paelzer/ubuntu/+source/qemu/commit/?id\u003d6ba8b5c843d405e1b067dc8b98ecb8545af78a2b\n[2] https://github.com/libvirt/libvirt/blob/v8.7.0/src/qemu/qemu_validate.c#L346-L351","commit_id":"5ace62ef2c5fceea2e28161ed0a2c2d8104fd8cb"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"40b07c41184b4804d8402f727f8d0542da55a5a3","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"When booting a guest with 1TB+ RAM, the default physical address bits are"},{"line_number":20,"context_line":"too small and the boot fails [1]_. So a knob is needed to specify the"},{"line_number":21,"context_line":"appropriate physical address bits."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Use Cases"},{"line_number":24,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"57c3546d_8c2c2ab4","line":21,"in_reply_to":"c9825be4_ad3c7175","updated":"2022-11-16 12:57:21.000000000","message":"I see. Then my assumption was incorrect about the default behavior. Thanks for correcting me.\n\nI agree that the use case (booting guests with \u003e 1TB ram) is valid and according to you experiment it is not possible today as KVM by default expose only 40bit addressing to the guest.\n\nI found one alternative described in [1] where the author uses a specific machine type that defines more than 40bit address space. I\u0027m not sure how viable this is for you but this seems to be possible today without any nova change.\n\n[1] https://cpaelzer.github.io/blogs/005-guests-bigger-than-1tb/","commit_id":"5ace62ef2c5fceea2e28161ed0a2c2d8104fd8cb"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"47ded5cab64d96ea998c9acbf00d8d083312b1f6","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"When booting a guest with 1TB+ RAM, the default physical address bits are"},{"line_number":20,"context_line":"too small and the boot fails [1]_. So a knob is needed to specify the"},{"line_number":21,"context_line":"appropriate physical address bits."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Use Cases"},{"line_number":24,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c9825be4_ad3c7175","line":21,"in_reply_to":"f86b6f7a_f8144bf3","updated":"2022-11-16 10:12:46.000000000","message":"\u003e The hypervisor default is used if the element is missing.\n\nI experimented with an Intel Xeon (x86-64) and found that the default value is 40bits when using Libvirt/QEMU/KVM. This value is defined as the default for TCG (Tiny Code Generator), and it appears that this value is used as the default even when using KVM [1]. So if we want to set the same value for hypervisor and guest, or any value, we need to explicitly specify maxphysaddr mode.\n \nThe following is a brief log of the experiment:\n \n# my hypervisor has 46bits physical address size.\nstack@osdev13:~$ lscpu\nAddress sizes:                   46 bits physical, 48 bits virtual\n \n# In default, the instance has 40bits physical address size.\nstack@osdev13:~$ nova boot ...\nstack@osdev13:~$ sudo virsh dumpxml 4 | grep maxphysaddr # no output\nstack@osdev13:~$ sudo virsh console 4\n$ lscpu\nAddress sizes:       40 bits physical, 48 bits virtual\n \n# After adding the setting, the instance has 41bits physical address size.\nstack@osdev13:~$ openstack image  set --property hw_maxphysaddr_mode\u003d\"emulate\" --property hw_maxphysaddr_bits\u003d\"41\" cirros-0.5.2-x86_64-disk\nstack@osdev13:~$ nova boot ...\n \nstack@osdev13:~$ sudo virsh dumpxml 3 | grep maxphysaddr\n    \u003cmaxphysaddr mode\u003d\u0027emulate\u0027 bits\u003d\u002741\u0027/\u003e\nstack@osdev13:~$ sudo virsh console 3\n$ lscpu\nAddress sizes:       41 bits physical, 48 bits virtual\n \n[1] https://github.com/qemu/qemu/blob/2c83112/target/i386/tcg/helper-tcg.h#L28-L32","commit_id":"5ace62ef2c5fceea2e28161ed0a2c2d8104fd8cb"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"40b07c41184b4804d8402f727f8d0542da55a5a3","unresolved":true,"context_lines":[{"line_number":28,"context_line":"Proposed change"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"In Libvirt v8.7.0 and later, physical address bits can be specified with"},{"line_number":32,"context_line":"following XML elements [2]_ [3]_. The former means to adopt any physical"},{"line_number":33,"context_line":"address bits, the latter means to adopt the physical address bits of the"},{"line_number":34,"context_line":"host CPU."}],"source_content_type":"text/x-rst","patch_set":1,"id":"cabf720f_ece73c41","line":31,"range":{"start_line":31,"start_character":3,"end_line":31,"end_character":17},"updated":"2022-11-16 12:57:21.000000000","message":"nova current min libvirt version is 6.0.0 so the address space feature cannot be use by default, it needs to be implemented as an optional feature (and therefore a compute node capability trait) that is only enabled if the host has a new enough libvirt version.\n\nWhat is the minimum qemu version needed for this? Nova\u0027s minimum today is 4.2.0.","commit_id":"5ace62ef2c5fceea2e28161ed0a2c2d8104fd8cb"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"6191174ba35f849ddc1e88b9f4ad74f0c8c75d78","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Proposed change"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"In Libvirt v8.7.0 and later, physical address bits can be specified with"},{"line_number":32,"context_line":"following XML elements [2]_ [3]_. The former means to adopt any physical"},{"line_number":33,"context_line":"address bits, the latter means to adopt the physical address bits of the"},{"line_number":34,"context_line":"host CPU."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f56d504_8140c9d1","line":31,"range":{"start_line":31,"start_character":3,"end_line":31,"end_character":17},"in_reply_to":"6beb065b_61c12324","updated":"2022-12-15 08:04:29.000000000","message":"Done","commit_id":"5ace62ef2c5fceea2e28161ed0a2c2d8104fd8cb"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"4d3b11d33c2f51a425cd020980ec66d3fd407d85","unresolved":true,"context_lines":[{"line_number":28,"context_line":"Proposed change"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"In Libvirt v8.7.0 and later, physical address bits can be specified with"},{"line_number":32,"context_line":"following XML elements [2]_ [3]_. The former means to adopt any physical"},{"line_number":33,"context_line":"address bits, the latter means to adopt the physical address bits of the"},{"line_number":34,"context_line":"host CPU."}],"source_content_type":"text/x-rst","patch_set":1,"id":"6beb065b_61c12324","line":31,"range":{"start_line":31,"start_character":3,"end_line":31,"end_character":17},"in_reply_to":"cabf720f_ece73c41","updated":"2022-11-18 03:02:52.000000000","message":"Minimum qemu version is 2.7.0 [1]. So, no problem.\n\n[1] https://github.com/libvirt/libvirt/commit/1c1a7cdd4096c59fb0c374529e1e5aea8d43ee9c","commit_id":"5ace62ef2c5fceea2e28161ed0a2c2d8104fd8cb"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"40b07c41184b4804d8402f727f8d0542da55a5a3","unresolved":true,"context_lines":[{"line_number":47,"context_line":"below:"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"- ``hw_maxphysaddr_mode``"},{"line_number":50,"context_line":"- ``hw_maxphysaddr_bits``"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Alternatives"},{"line_number":53,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fecd148c_cf59c0d4","line":50,"updated":"2022-11-16 12:57:21.000000000","message":"In general I\u0027m a bit reluctant to expose such deep hardware details via Nova. I hope other cores can chime in about this.\n\nI see couple of complications though:\n\n1) passthrough mode makes live migration problematic as I imagine different host can have different amount of bits and therefore the amount of bits could change during live migration. I guess changing the number of bits during live migration is not possible from the guest perspective so nova would need to schedule according to the number of bits the host support via passthrough mode.\n\n2) if we allow requesting the number of bits via flavor and image then nova scheduler need to be able to select a host that can provide at least that amount of bits. So we need to model a complex capability logic for this. It won\u0027t be just a flag but also a number of bits per host. Placement does not support numeric traits today and these bits are non-consumables so we should not model them as resource class. Therefore the scheduling of this probably needs a new scheduler filter.","commit_id":"5ace62ef2c5fceea2e28161ed0a2c2d8104fd8cb"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"6191174ba35f849ddc1e88b9f4ad74f0c8c75d78","unresolved":false,"context_lines":[{"line_number":47,"context_line":"below:"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"- ``hw_maxphysaddr_mode``"},{"line_number":50,"context_line":"- ``hw_maxphysaddr_bits``"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Alternatives"},{"line_number":53,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a2136537_ef74985a","line":50,"in_reply_to":"4a71c789_faf6533d","updated":"2022-12-15 08:04:29.000000000","message":"Done","commit_id":"5ace62ef2c5fceea2e28161ed0a2c2d8104fd8cb"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"4d3b11d33c2f51a425cd020980ec66d3fd407d85","unresolved":true,"context_lines":[{"line_number":47,"context_line":"below:"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"- ``hw_maxphysaddr_mode``"},{"line_number":50,"context_line":"- ``hw_maxphysaddr_bits``"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Alternatives"},{"line_number":53,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4a71c789_faf6533d","line":50,"in_reply_to":"fecd148c_cf59c0d4","updated":"2022-11-18 03:02:52.000000000","message":"I was not thoughtful enough about live migration. Thanks for pointing that out.\n\n\u003e 1) passthrough mode makes live migration problematic as I imagine different host can have different amount of bits and therefore the amount of bits could change during live migration. \n\nIt is not possible to change the number of bits during a live migration. As mentioned above, scheduling that takes into account cpu_mode\u003dhost-passthrough has already been realized, so I think that live migration can be done simply by taking advantage of this existing mechanism.\n\n\n\u003e 2) if we allow requesting the number of bits via flavor and image then nova scheduler need to be able to select a host that can provide at least that amount of bits.\n\nAs for numerical comparisons, I feel that the ComputeCapabilitiesFilter can handle this. However, I have no knowledge of filter design, so any advice on creating a new filter or incorporating it into an existing filter would be appreciated. The maximum number of bits allowed by the host can be obtained as libvirt capabilities feature [1], so I think it would be possible to incorporate this into this filter.\n\n[1] https://github.com/libvirt/libvirt/commit/231af0a08ca6c021a8d5daa8a4a9d804b9224ea8","commit_id":"5ace62ef2c5fceea2e28161ed0a2c2d8104fd8cb"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ba5a986b97cb7a59e29eb7b526e1f2416c0d4ed4","unresolved":true,"context_lines":[{"line_number":56,"context_line":"``cpu_mode\u003dhost-passthrough`` is a requirement, which is already taken"},{"line_number":57,"context_line":"into account in nova scheduling, and no additional modifications are"},{"line_number":58,"context_line":"required in this proposal. In addition to instance creation, cold"},{"line_number":59,"context_line":"migration and live migration can be accomplished as well."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"The case of ``hw:maxphysaddr_mode\u003demulate``. In nova scheduling,"},{"line_number":62,"context_line":"it is necessary to check that the hypervisor supports at least"}],"source_content_type":"text/x-rst","patch_set":2,"id":"68bcf523_6064cce9","line":59,"updated":"2022-12-14 12:20:14.000000000","message":"https://docs.openstack.org/nova/latest/admin/cpu-models.html#host-passthrough\n\n\u003e In host-passthrough mode, the guest can only be live-migrated to a target host that matches the source host extremely closely. This includes the physical CPU model and running microcode, and may even include the running kernel. Use this mode only if your compute nodes have a very large degree of homogeneity (i.e. substantially all of your compute nodes use the exact same CPU generation and model), and you make sure to only live-migrate between hosts with exactly matching kernel versions. Failure to do so will result in an inability to support any form of live migration.\n\nBasically we say if you use host-passthrough then nova will not guarantee that the VM can be live migrated. The admin needs to make sure that the live migration is restricted to targets with very similar HW and SW. \nSo a similar restriction will be applied to VMs with `hw:maxphysaddr_mode\u003dpassthrough`","commit_id":"915d46ef5e47eadc222cc2cead8a2e2b6e45d813"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"6191174ba35f849ddc1e88b9f4ad74f0c8c75d78","unresolved":false,"context_lines":[{"line_number":56,"context_line":"``cpu_mode\u003dhost-passthrough`` is a requirement, which is already taken"},{"line_number":57,"context_line":"into account in nova scheduling, and no additional modifications are"},{"line_number":58,"context_line":"required in this proposal. In addition to instance creation, cold"},{"line_number":59,"context_line":"migration and live migration can be accomplished as well."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"The case of ``hw:maxphysaddr_mode\u003demulate``. In nova scheduling,"},{"line_number":62,"context_line":"it is necessary to check that the hypervisor supports at least"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ab6a2d6f_beeb9558","line":59,"in_reply_to":"68bcf523_6064cce9","updated":"2022-12-15 08:04:29.000000000","message":"Done","commit_id":"915d46ef5e47eadc222cc2cead8a2e2b6e45d813"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ba5a986b97cb7a59e29eb7b526e1f2416c0d4ed4","unresolved":true,"context_lines":[{"line_number":170,"context_line":"Upgrade impact"},{"line_number":171,"context_line":"--------------"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"None"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Implementation"},{"line_number":176,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"34831218_510c2c55","line":173,"updated":"2022-12-14 12:20:14.000000000","message":"There will be a compute capability trait to signal if a compute is upgraded and has new enough libvirt and qemu to support this feauture","commit_id":"915d46ef5e47eadc222cc2cead8a2e2b6e45d813"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"6191174ba35f849ddc1e88b9f4ad74f0c8c75d78","unresolved":false,"context_lines":[{"line_number":170,"context_line":"Upgrade impact"},{"line_number":171,"context_line":"--------------"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"None"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Implementation"},{"line_number":176,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"80a21cab_f7e259e8","line":173,"in_reply_to":"34831218_510c2c55","updated":"2022-12-15 08:04:29.000000000","message":"Done","commit_id":"915d46ef5e47eadc222cc2cead8a2e2b6e45d813"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ba5a986b97cb7a59e29eb7b526e1f2416c0d4ed4","unresolved":true,"context_lines":[{"line_number":197,"context_line":"* Add new fileds in nova/api/validation/extra_specs/hw.py"},{"line_number":198,"context_line":"* Add new fields in LibvirtConfigCPU in nova/virt/livbirt/config.py"},{"line_number":199,"context_line":"* Add new trait to check libvirt version"},{"line_number":200,"context_line":"* Add docs and release notes for new flavor extra_specs"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Dependencies"},{"line_number":203,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"c259f928_3a2b5074","line":200,"updated":"2022-12-14 12:20:14.000000000","message":"I guess you need to extend the HostState.cpu_info to include the `maxphysaddr` data required by the ComputeCapabilityFilter to match against the falvor extra_spec","commit_id":"915d46ef5e47eadc222cc2cead8a2e2b6e45d813"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"6191174ba35f849ddc1e88b9f4ad74f0c8c75d78","unresolved":false,"context_lines":[{"line_number":197,"context_line":"* Add new fileds in nova/api/validation/extra_specs/hw.py"},{"line_number":198,"context_line":"* Add new fields in LibvirtConfigCPU in nova/virt/livbirt/config.py"},{"line_number":199,"context_line":"* Add new trait to check libvirt version"},{"line_number":200,"context_line":"* Add docs and release notes for new flavor extra_specs"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Dependencies"},{"line_number":203,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"11e189b7_2744aa58","line":200,"in_reply_to":"c259f928_3a2b5074","updated":"2022-12-15 08:04:29.000000000","message":"Done","commit_id":"915d46ef5e47eadc222cc2cead8a2e2b6e45d813"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"22007ab45fbbbed52d32a49220e656b956ecd249","unresolved":true,"context_lines":[{"line_number":74,"context_line":"  openstack flavor set \u003cflavor\u003e \\"},{"line_number":75,"context_line":"    --property hw:maxphysaddr_mode\u003demulate \\"},{"line_number":76,"context_line":"    --property hw:maxphysaddr_bits\u003d42 \\"},{"line_number":77,"context_line":"    --property capabilities:cpu_info:maxphysaddr:mode\u003d\u003demulate \\"},{"line_number":78,"context_line":"    --property capabilities:cpu_info:maxphysaddr:bits\u003e\u003d42"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":".. note:: Since ComputeCapabilitiesFilter only supports flavor extra_specs"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9c2f1294_47d43ab5","line":77,"range":{"start_line":77,"start_character":4,"end_line":77,"end_character":64},"updated":"2022-12-15 09:47:37.000000000","message":"this would be better done via a trait\n\nCOMPUTE_ADDRESS_SPACE_EMULATED and COMPUTE_ADDRESS_SPACE_PASSTHROUGH\n\nThat shoudl automatically be added if  hw:maxphysaddr_mode is defined.","commit_id":"46dba1705632795b209954a48518b18082154ac1"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"0e90957f3787552514e6eb85aa43599c98148787","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  openstack flavor set \u003cflavor\u003e \\"},{"line_number":75,"context_line":"    --property hw:maxphysaddr_mode\u003demulate \\"},{"line_number":76,"context_line":"    --property hw:maxphysaddr_bits\u003d42 \\"},{"line_number":77,"context_line":"    --property capabilities:cpu_info:maxphysaddr:mode\u003d\u003demulate \\"},{"line_number":78,"context_line":"    --property capabilities:cpu_info:maxphysaddr:bits\u003e\u003d42"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":".. note:: Since ComputeCapabilitiesFilter only supports flavor extra_specs"}],"source_content_type":"text/x-rst","patch_set":3,"id":"0bcb6968_62358d93","line":77,"range":{"start_line":77,"start_character":4,"end_line":77,"end_character":64},"in_reply_to":"9c2f1294_47d43ab5","updated":"2022-12-19 08:51:51.000000000","message":"Done","commit_id":"46dba1705632795b209954a48518b18082154ac1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"22007ab45fbbbed52d32a49220e656b956ecd249","unresolved":true,"context_lines":[{"line_number":75,"context_line":"    --property hw:maxphysaddr_mode\u003demulate \\"},{"line_number":76,"context_line":"    --property hw:maxphysaddr_bits\u003d42 \\"},{"line_number":77,"context_line":"    --property capabilities:cpu_info:maxphysaddr:mode\u003d\u003demulate \\"},{"line_number":78,"context_line":"    --property capabilities:cpu_info:maxphysaddr:bits\u003e\u003d42"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":".. note:: Since ComputeCapabilitiesFilter only supports flavor extra_specs"},{"line_number":81,"context_line":"          and not image properties [5]_, this proposal is out of scope for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"2f2d4022_9da4640c","line":78,"range":{"start_line":78,"start_character":4,"end_line":78,"end_character":57},"updated":"2022-12-15 09:47:37.000000000","message":"as much as we dislike the capablities filter i agree that that is the better\nway to schdule based on the bit size.\n\nin general we try not to add new usage of the capabilities filter.\nits not deprecated yet but its also not something we encourage people to use.","commit_id":"46dba1705632795b209954a48518b18082154ac1"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"0e90957f3787552514e6eb85aa43599c98148787","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    --property hw:maxphysaddr_mode\u003demulate \\"},{"line_number":76,"context_line":"    --property hw:maxphysaddr_bits\u003d42 \\"},{"line_number":77,"context_line":"    --property capabilities:cpu_info:maxphysaddr:mode\u003d\u003demulate \\"},{"line_number":78,"context_line":"    --property capabilities:cpu_info:maxphysaddr:bits\u003e\u003d42"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":".. note:: Since ComputeCapabilitiesFilter only supports flavor extra_specs"},{"line_number":81,"context_line":"          and not image properties [5]_, this proposal is out of scope for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c58c22a0_2c5c71c2","line":78,"range":{"start_line":78,"start_character":4,"end_line":78,"end_character":57},"in_reply_to":"2f2d4022_9da4640c","updated":"2022-12-19 08:51:51.000000000","message":"Done","commit_id":"46dba1705632795b209954a48518b18082154ac1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"22007ab45fbbbed52d32a49220e656b956ecd249","unresolved":true,"context_lines":[{"line_number":85,"context_line":"------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"There can be a mix of supported and unsupported hosts depending"},{"line_number":88,"context_line":"on Libvirt and QEMU versions. So add a new trait ``COMPUTE_MAXPHYSADDR``"},{"line_number":89,"context_line":"to distinguish them. If ``hw:maxphysaddr_mode`` is specified in flavor"},{"line_number":90,"context_line":"extra_specs, schedule only hosts that satisfy"},{"line_number":91,"context_line":"``trait:COMPUTE_MAXPHYSADDR\u003drequired``."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7eb045a1_0c0d74bb","line":88,"range":{"start_line":88,"start_character":51,"end_line":88,"end_character":70},"updated":"2022-12-15 09:47:37.000000000","message":"i would prefer \nCOMPUTE_ADDRESS_SPACE_EMULATED and COMPUTE_ADDRESS_SPACE_PASSTHROUGH\n\nand i would prefer if we automatically added this with a prefilter based on the\nhw:maxphysaddr_mode extra spec","commit_id":"46dba1705632795b209954a48518b18082154ac1"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"0e90957f3787552514e6eb85aa43599c98148787","unresolved":false,"context_lines":[{"line_number":85,"context_line":"------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"There can be a mix of supported and unsupported hosts depending"},{"line_number":88,"context_line":"on Libvirt and QEMU versions. So add a new trait ``COMPUTE_MAXPHYSADDR``"},{"line_number":89,"context_line":"to distinguish them. If ``hw:maxphysaddr_mode`` is specified in flavor"},{"line_number":90,"context_line":"extra_specs, schedule only hosts that satisfy"},{"line_number":91,"context_line":"``trait:COMPUTE_MAXPHYSADDR\u003drequired``."}],"source_content_type":"text/x-rst","patch_set":3,"id":"4bf66cae_f8687d02","line":88,"range":{"start_line":88,"start_character":51,"end_line":88,"end_character":70},"in_reply_to":"7eb045a1_0c0d74bb","updated":"2022-12-19 08:51:51.000000000","message":"Done","commit_id":"46dba1705632795b209954a48518b18082154ac1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"22007ab45fbbbed52d32a49220e656b956ecd249","unresolved":true,"context_lines":[{"line_number":97,"context_line":"as a workaround with the QEMU comanndline parameter. There is no particular"},{"line_number":98,"context_line":"reason to use this method currently."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"For adopting any value for physical address bits::"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  \u003cqemu:commandline\u003e"},{"line_number":103,"context_line":"    \u003cqemu:arg value\u003d\u0027-cpu\u0027/\u003e"},{"line_number":104,"context_line":"    \u003cqemu:arg value\u003d\u0027qemu64,phys-bits\u003d42\u0027/\u003e"},{"line_number":105,"context_line":"  \u003c/qemu:commandline\u003e"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"For adopting physical address bits of host CPU::"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  \u003cqemu:commandline\u003e"},{"line_number":110,"context_line":"    \u003cqemu:arg value\u003d\u0027-cpu\u0027/\u003e"},{"line_number":111,"context_line":"    \u003cqemu:arg value\u003d\u0027host,host-phys-bits\u003don\u0027/\u003e"},{"line_number":112,"context_line":"  \u003c/qemu:commandline\u003e"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Also, some Linux distributions may have machine types with"},{"line_number":115,"context_line":"``host-phys-bits\u003dtrue`` [6]_. For example, ``pc-i440fx-bionic-hpb`` and"},{"line_number":116,"context_line":"``pc-q35-bionic-hpb``. However, this alternative has following two issues and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"e659273d_e190b324","line":113,"range":{"start_line":100,"start_character":0,"end_line":113,"end_character":0},"updated":"2022-12-15 09:47:37.000000000","message":"nova does not allow the \u003cqemu:commandline\u003e element to be used in the libvirt xml.\nso this is not an alternative can you remove this.","commit_id":"46dba1705632795b209954a48518b18082154ac1"},{"author":{"_account_id":31652,"name":"Nobuhiro MIKI","email":"nmiki@lycorp.co.jp","username":"nmiki"},"change_message_id":"0e90957f3787552514e6eb85aa43599c98148787","unresolved":false,"context_lines":[{"line_number":97,"context_line":"as a workaround with the QEMU comanndline parameter. There is no particular"},{"line_number":98,"context_line":"reason to use this method currently."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"For adopting any value for physical address bits::"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  \u003cqemu:commandline\u003e"},{"line_number":103,"context_line":"    \u003cqemu:arg value\u003d\u0027-cpu\u0027/\u003e"},{"line_number":104,"context_line":"    \u003cqemu:arg value\u003d\u0027qemu64,phys-bits\u003d42\u0027/\u003e"},{"line_number":105,"context_line":"  \u003c/qemu:commandline\u003e"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"For adopting physical address bits of host CPU::"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  \u003cqemu:commandline\u003e"},{"line_number":110,"context_line":"    \u003cqemu:arg value\u003d\u0027-cpu\u0027/\u003e"},{"line_number":111,"context_line":"    \u003cqemu:arg value\u003d\u0027host,host-phys-bits\u003don\u0027/\u003e"},{"line_number":112,"context_line":"  \u003c/qemu:commandline\u003e"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Also, some Linux distributions may have machine types with"},{"line_number":115,"context_line":"``host-phys-bits\u003dtrue`` [6]_. For example, ``pc-i440fx-bionic-hpb`` and"},{"line_number":116,"context_line":"``pc-q35-bionic-hpb``. However, this alternative has following two issues and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"869c9c5f_08aabdd7","line":113,"range":{"start_line":100,"start_character":0,"end_line":113,"end_character":0},"in_reply_to":"e659273d_e190b324","updated":"2022-12-19 08:51:51.000000000","message":"Done","commit_id":"46dba1705632795b209954a48518b18082154ac1"}]}
