)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b963a2b81e187068ea3c808199d7d2da2df5bc28","unresolved":false,"context_lines":[{"line_number":10,"context_line":"\u003cjack.ding@windriver.com\u003e, here:"},{"line_number":11,"context_line":"https://review.openstack.org/#/c/620959/]"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"A \u0027cometic\u0027 change in this re-proposal: For clarity and sanity, propose"},{"line_number":14,"context_line":"`cpu_model_list` instead of the plural variant, `cpu_models`, of the"},{"line_number":15,"context_line":"pre-existing `cpu_model`.  Otherwise, supporting both the singular and"},{"line_number":16,"context_line":"plural variants at the _same_ time can be hard to distinguish and may"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_fd778a39","line":13,"range":{"start_line":13,"start_character":3,"end_line":13,"end_character":10},"updated":"2019-03-08 14:52:16.000000000","message":"Did you mean \"comedic\"?","commit_id":"8c380c9be9f009171ee991e1e8a9be40ed27b7a2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a27ee55a9ddd2b4d24ad69b40dbaaffceea9699f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"\u003cjack.ding@windriver.com\u003e, here:"},{"line_number":11,"context_line":"https://review.openstack.org/#/c/620959/]"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"A \u0027cometic\u0027 change in this re-proposal: For clarity and sanity, propose"},{"line_number":14,"context_line":"`cpu_model_list` instead of the plural variant, `cpu_models`, of the"},{"line_number":15,"context_line":"pre-existing `cpu_model`.  Otherwise, supporting both the singular and"},{"line_number":16,"context_line":"plural variants at the _same_ time can be hard to distinguish and may"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_87f06ccb","line":13,"range":{"start_line":13,"start_character":3,"end_line":13,"end_character":10},"in_reply_to":"5fc1f717_13a84775","updated":"2019-03-08 19:55:32.000000000","message":"I know, I was being comedic.","commit_id":"8c380c9be9f009171ee991e1e8a9be40ed27b7a2"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"5c802f2c311f546fa664a780417714c3436fc16e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"\u003cjack.ding@windriver.com\u003e, here:"},{"line_number":11,"context_line":"https://review.openstack.org/#/c/620959/]"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"A \u0027cometic\u0027 change in this re-proposal: For clarity and sanity, propose"},{"line_number":14,"context_line":"`cpu_model_list` instead of the plural variant, `cpu_models`, of the"},{"line_number":15,"context_line":"pre-existing `cpu_model`.  Otherwise, supporting both the singular and"},{"line_number":16,"context_line":"plural variants at the _same_ time can be hard to distinguish and may"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_13a84775","line":13,"range":{"start_line":13,"start_character":3,"end_line":13,"end_character":10},"in_reply_to":"5fc1f717_fd778a39","updated":"2019-03-08 16:32:52.000000000","message":"Hehe, I meant: \"cosmetic\"","commit_id":"8c380c9be9f009171ee991e1e8a9be40ed27b7a2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1dbdc67d93e6b8ea91fade84d91449874a96ba0","unresolved":false,"context_lines":[{"line_number":21,"context_line":"consistently; and a grammar fix here and there."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"blueprint: cpu-model-selection"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: I4cf9ebb61bc7613f8b55127b4c6cd13591fe4948"},{"line_number":26,"context_line":"Signed-off-by: Kashyap Chamarthy \u003ckchamart@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_3d8992c9","line":24,"updated":"2019-03-08 15:14:23.000000000","message":"Please add\n\n Previously-approved: stein\n\nper https://specs.openstack.org/openstack/nova-specs/readme.html#previously-approved-specifications\n\nTechnically I suppose this isn\u0027t a rubber-stamp approval since you\u0027ve changed the name of the conf option. But it seems like it should be close enough.","commit_id":"8c380c9be9f009171ee991e1e8a9be40ed27b7a2"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"5c802f2c311f546fa664a780417714c3436fc16e","unresolved":false,"context_lines":[{"line_number":21,"context_line":"consistently; and a grammar fix here and there."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"blueprint: cpu-model-selection"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: I4cf9ebb61bc7613f8b55127b4c6cd13591fe4948"},{"line_number":26,"context_line":"Signed-off-by: Kashyap Chamarthy \u003ckchamart@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_73e74be6","line":24,"in_reply_to":"5fc1f717_3d8992c9","updated":"2019-03-08 16:32:52.000000000","message":"Will add the tag (forgot to do it first time aroud).  \n\nAnd on the other change, point noted.  And FWIW, Alex Xu also was on board with my suggestion of using \u0027cpu_model_list\u0027.  He noted it here:\n\nhttps://review.openstack.org/#/c/637834/4/nova/conf/libvirt.py@548","commit_id":"8c380c9be9f009171ee991e1e8a9be40ed27b7a2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a27ee55a9ddd2b4d24ad69b40dbaaffceea9699f","unresolved":false,"context_lines":[{"line_number":21,"context_line":"consistently; and a grammar fix here and there."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"blueprint: cpu-model-selection"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: I4cf9ebb61bc7613f8b55127b4c6cd13591fe4948"},{"line_number":26,"context_line":"Signed-off-by: Kashyap Chamarthy \u003ckchamart@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fc1f717_67bf80d0","line":24,"in_reply_to":"5fc1f717_73e74be6","updated":"2019-03-08 19:55:32.000000000","message":"ack","commit_id":"8c380c9be9f009171ee991e1e8a9be40ed27b7a2"}],"specs/train/approved/cpu-model-selection.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1dbdc67d93e6b8ea91fade84d91449874a96ba0","unresolved":false,"context_lines":[{"line_number":122,"context_line":"--------------"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"The operator needs to set the config option appropriately after an upgrade."},{"line_number":125,"context_line":"If ``cpu_model_list`` is not set it should default to the value of"},{"line_number":126,"context_line":"``cpu_model``."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_7dd15acd","line":125,"updated":"2019-03-08 15:14:23.000000000","message":"a single item list containing\n\ne.g. avoid the pratfall of\n\n self.flags(group\u003dlibvirt, cpu_model\u003d\u0027Haswell\u0027)\n ...\n self.assertEqual([\u0027H\u0027, \u0027a\u0027, \u0027s\u0027, \u0027w\u0027, \u0027e\u0027, \u0027l\u0027, \u0027l\u0027], cpu_model_list)","commit_id":"8c380c9be9f009171ee991e1e8a9be40ed27b7a2"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b964a3e49cbae08cf741fd87366edae6ede32b87","unresolved":false,"context_lines":[{"line_number":122,"context_line":"--------------"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"The operator needs to set the config option appropriately after an upgrade."},{"line_number":125,"context_line":"If ``cpu_model_list`` is not set it should default to the value of"},{"line_number":126,"context_line":"``cpu_model``."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_695d3c47","line":125,"in_reply_to":"5fc1f717_7dd15acd","updated":"2019-04-02 08:56:31.000000000","message":"Yes, good point.  I\u0027ll reword it in PS-3.","commit_id":"8c380c9be9f009171ee991e1e8a9be40ed27b7a2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e1dbdc67d93e6b8ea91fade84d91449874a96ba0","unresolved":false,"context_lines":[{"line_number":163,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":".. [1] https://specs.openstack.org/openstack/nova-specs/specs/rocky/implemented/report-cpu-features-as-traits.html"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"History"},{"line_number":168,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_f81c786b","line":166,"updated":"2019-03-08 15:14:23.000000000","message":"reference the stein iteration of this spec\n\nhttp://specs.openstack.org/openstack/nova-specs/specs/stein/approved/cpu-model-selection.html","commit_id":"8c380c9be9f009171ee991e1e8a9be40ed27b7a2"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b964a3e49cbae08cf741fd87366edae6ede32b87","unresolved":false,"context_lines":[{"line_number":163,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":".. [1] https://specs.openstack.org/openstack/nova-specs/specs/rocky/implemented/report-cpu-features-as-traits.html"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"History"},{"line_number":168,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_0992784c","line":166,"in_reply_to":"5fc1f717_f81c786b","updated":"2019-04-02 08:56:31.000000000","message":"Fixed in the (upcoming) PS-3.","commit_id":"8c380c9be9f009171ee991e1e8a9be40ed27b7a2"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"2706503fa7be2d80cecabc85e0742ecca9a9eced","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"End users specify CPU features they required through traits [1]_. If the"},{"line_number":40,"context_line":"``cpu_mode`` is set to *custom*, libvirt driver will select the first"},{"line_number":41,"context_line":"CPU model in the ``cpu_model_list`` list (combined with"},{"line_number":42,"context_line":"``cpu_model_extra_flags`` if it is specified) that can provide the"},{"line_number":43,"context_line":"required feature traits. This would make it more likely that the"},{"line_number":44,"context_line":"instance could be live-migrated later on. If no CPU feature traits are"},{"line_number":45,"context_line":"specified then the instance will be configured with the first CPU model"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_63a2cbff","line":42,"range":{"start_line":41,"start_character":42,"end_line":42,"end_character":44},"updated":"2019-03-13 11:27:09.000000000","message":"By the following, we known that cpu_model_extra_flags is compatible with all models. Therefore, this is not needed.","commit_id":"a748a53a9e4f6ca07585cb4a1aa4bb777ca88b52"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b964a3e49cbae08cf741fd87366edae6ede32b87","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"End users specify CPU features they required through traits [1]_. If the"},{"line_number":40,"context_line":"``cpu_mode`` is set to *custom*, libvirt driver will select the first"},{"line_number":41,"context_line":"CPU model in the ``cpu_model_list`` list (combined with"},{"line_number":42,"context_line":"``cpu_model_extra_flags`` if it is specified) that can provide the"},{"line_number":43,"context_line":"required feature traits. This would make it more likely that the"},{"line_number":44,"context_line":"instance could be live-migrated later on. If no CPU feature traits are"},{"line_number":45,"context_line":"specified then the instance will be configured with the first CPU model"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_e425d3af","line":42,"range":{"start_line":41,"start_character":42,"end_line":42,"end_character":44},"in_reply_to":"5fc1f717_63a2cbff","updated":"2019-04-02 08:56:31.000000000","message":"Sorry, what do you mean `cpu_model_extra_flags` is \"compatible with all models\"?\n\nCan you rephrase it, please?\n\nI\u0027m confused by your comment because some of the CPU flags that an operator may provide via `cpu_model_extra_flags` might not be compatible with all CPU models.","commit_id":"a748a53a9e4f6ca07585cb4a1aa4bb777ca88b52"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"2706503fa7be2d80cecabc85e0742ecca9a9eced","unresolved":false,"context_lines":[{"line_number":61,"context_line":"chosen by libvirt."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":64,"context_line":"each cpu model in the ``cpu_model_list`` list using host.compare_cpu()"},{"line_number":65,"context_line":"to make sure it is compatible with *all* models in the"},{"line_number":66,"context_line":"``cpu_model_list`` list. Any incompatibility should prevent compute host"},{"line_number":67,"context_line":"from starting and user needs to correct the configuration."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_4330ef9f","line":64,"range":{"start_line":64,"start_character":52,"end_line":64,"end_character":70},"updated":"2019-03-13 11:27:09.000000000","message":"host.compare_cpu() doesn\u0027t contrast between CPU model and CPU feature, what it doing is compare this with host\u0027s CPU.\n\nFor example:\nUsing CPU model \"qemu64\" and feature \"avx2\", we expected result is raise an error, but the actual result is OK.\n\nTherefore, we have to use baselineCPU() to get CPU model\u0027s features, then compare it with cpu_model_extra_flags.","commit_id":"a748a53a9e4f6ca07585cb4a1aa4bb777ca88b52"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b964a3e49cbae08cf741fd87366edae6ede32b87","unresolved":false,"context_lines":[{"line_number":61,"context_line":"chosen by libvirt."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":64,"context_line":"each cpu model in the ``cpu_model_list`` list using host.compare_cpu()"},{"line_number":65,"context_line":"to make sure it is compatible with *all* models in the"},{"line_number":66,"context_line":"``cpu_model_list`` list. Any incompatibility should prevent compute host"},{"line_number":67,"context_line":"from starting and user needs to correct the configuration."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_6467a3ec","line":64,"range":{"start_line":64,"start_character":52,"end_line":64,"end_character":70},"in_reply_to":"5fc1f717_4330ef9f","updated":"2019-04-02 08:56:31.000000000","message":"Yes, you\u0027re right.  compareCPU() compares a given CPU description with the *host* CPU.  Let me fix the documentation.\n\nAnd baselineCPU() cmputes the most feature-rich CPU which is compatible with all given host CPUs.\n\nFor more discussion on these APIs, refer to this in-progress spec: https://review.openstack.org/#/c/645814/ -- Add \"CPU selection with hypervisor consideration\" spec","commit_id":"a748a53a9e4f6ca07585cb4a1aa4bb777ca88b52"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a27ee55a9ddd2b4d24ad69b40dbaaffceea9699f","unresolved":false,"context_lines":[{"line_number":122,"context_line":"--------------"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"The operator needs to set the config option appropriately after an upgrade."},{"line_number":125,"context_line":"If ``cpu_model_list`` is not set it should default to the value of"},{"line_number":126,"context_line":"``cpu_model``."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_07ab1c89","line":125,"updated":"2019-03-08 19:55:32.000000000","message":"see PS1 comment","commit_id":"a748a53a9e4f6ca07585cb4a1aa4bb777ca88b52"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a27ee55a9ddd2b4d24ad69b40dbaaffceea9699f","unresolved":false,"context_lines":[{"line_number":163,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":".. [1] https://specs.openstack.org/openstack/nova-specs/specs/rocky/implemented/report-cpu-features-as-traits.html"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"History"},{"line_number":168,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_c7943447","line":166,"updated":"2019-03-08 19:55:32.000000000","message":"see PS1 comment","commit_id":"a748a53a9e4f6ca07585cb4a1aa4bb777ca88b52"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"27dc9b012edb8367df45bb168501af57b5750008","unresolved":false,"context_lines":[{"line_number":163,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":".. [1] https://specs.openstack.org/openstack/nova-specs/specs/rocky/implemented/report-cpu-features-as-traits.html"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"History"},{"line_number":168,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_0eb10790","line":166,"in_reply_to":"5fc1f717_c7943447","updated":"2019-04-01 10:24:11.000000000","message":"Oops, missed that; will add the reference to the Stein-approved version.","commit_id":"a748a53a9e4f6ca07585cb4a1aa4bb777ca88b52"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"a936af9ee4be504cde35cae195cc69b59b61dd40","unresolved":false,"context_lines":[{"line_number":60,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":61,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":64,"context_line":"each CPU model in the ``cpu_model_list`` list to make sure it is"},{"line_number":65,"context_line":"compatible with *all* models in the ``cpu_model_list`` list. Any"},{"line_number":66,"context_line":"incompatibility should prevent compute host from starting and user needs"},{"line_number":67,"context_line":"to correct the configuration."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_c5c86c56","line":65,"range":{"start_line":63,"start_character":0,"end_line":65,"end_character":60},"updated":"2019-04-08 02:01:06.000000000","message":"I has a confuse at here: Is it means CPU model should also compatible with extra_flags?\n\nThis is an example I envisioned:\ncpu_model_list \u003d IvyBridge, Haswell\ncpu_model_extra_flags \u003d avx2\nIvyBridge only support avx, Haswell support both avx and avx2. In this scenes, nova compute service shoudn\u0027t start because IvyBridge doesn\u0027t has avx2 flags.","commit_id":"c6d8c1dd4a740fbb461ab8c4ea26370f41db5838"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"78e038b2df3c3c029af43a2be21484c67da6b54a","unresolved":false,"context_lines":[{"line_number":60,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":61,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":64,"context_line":"each CPU model in the ``cpu_model_list`` list to make sure it is"},{"line_number":65,"context_line":"compatible with *all* models in the ``cpu_model_list`` list. Any"},{"line_number":66,"context_line":"incompatibility should prevent compute host from starting and user needs"},{"line_number":67,"context_line":"to correct the configuration."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_a42c3899","line":65,"range":{"start_line":63,"start_character":0,"end_line":65,"end_character":60},"in_reply_to":"5fc1f717_c5c86c56","updated":"2019-04-08 16:05:55.000000000","message":"Yes, it should fail in the above scenario, because: migrating from Haswell + `avx2` to IvyBridge will be impossible, because Ivybridge does not support `avx2`.\n\nThe point being _every_ flag listed in `cpu_model_extra_flags` should be available in all the CPU models listed in `cpu_model_list`.","commit_id":"c6d8c1dd4a740fbb461ab8c4ea26370f41db5838"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"68ba84e9ff6d58a85b1ff29399bebd0e5c991101","unresolved":false,"context_lines":[{"line_number":26,"context_line":"As a user, I would like to boot an instance on a host supporting"},{"line_number":27,"context_line":"specific CPU features and for the instance to be live-migratable to as"},{"line_number":28,"context_line":"many other hosts as possible that also support the instance."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Proposed change"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_38f856c2","line":29,"updated":"2019-04-09 11:12:42.000000000","message":"Does this user accepts the fact that the server gets a cpu models that has the least performance from the possible, and matching cpu models?\n\nOr is the job of the deployer to look at the HW pool and find a common cpu model for each interesting cpu flags in a way that for all of these selected common cpu models there is enough hardware that makes the live migration feasible?\nFor example the deployer knows that there are flavors with avx and avx2 requirements. So a basic Haswell cpu model would work, but the deployer also knows that the deployment\u0027s HW pool has enough Skylake CPU in it to set the cpu_model to Skylake instead of Haswell safely. I.e. there is enough host that are compatible for live migration. And this way the created servers will have better performance (even if the server only requested avx, avx2) than with the basic Haswell model.\n\n// I feel I might over complicate the whole problem.","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"93ff027512e3f6e730ab75b5145d550d45c2d43d","unresolved":false,"context_lines":[{"line_number":26,"context_line":"As a user, I would like to boot an instance on a host supporting"},{"line_number":27,"context_line":"specific CPU features and for the instance to be live-migratable to as"},{"line_number":28,"context_line":"many other hosts as possible that also support the instance."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Proposed change"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_3b55b050","line":29,"in_reply_to":"5fc1f717_38f856c2","updated":"2019-04-09 12:08:09.000000000","message":"I think so; probably we should add\n\nP","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"729c801899f7d9b6ddc2ff7eed5786824c5b60a7","unresolved":false,"context_lines":[{"line_number":26,"context_line":"As a user, I would like to boot an instance on a host supporting"},{"line_number":27,"context_line":"specific CPU features and for the instance to be live-migratable to as"},{"line_number":28,"context_line":"many other hosts as possible that also support the instance."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Proposed change"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_7be578a3","line":29,"in_reply_to":"5fc1f717_3b55b050","updated":"2019-04-09 12:14:47.000000000","message":"\u003e I think so; probably we should add\n\u003e \n\u003e P\n\nErr, hit send too soon, please ignore the above unfinished comment.\n\nAs to your question: yes, if live-migratability across the hosts is of the highest priority, then the user should accept the trade-off, that is \"I may get a guest CPU that is probaby not the most performant\" (but the guest can live-migrate to other hosts).","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"34ce3f4b301b9aa1f5db3e62082e337a5e5374af","unresolved":false,"context_lines":[{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Replace ``cpu_model`` config attribute with ``cpu_model_list``, which is"},{"line_number":34,"context_line":"an ordered list of CPU models the host supports. It is expected that the"},{"line_number":35,"context_line":"list is ordered so that the more common and less advanced CPU models are"},{"line_number":36,"context_line":"listed earlier.  The reported CPU feature traits will be the union of"},{"line_number":37,"context_line":"features of all the CPU models."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_84524611","line":35,"range":{"start_line":34,"start_character":48,"end_line":35,"end_character":68},"updated":"2019-04-09 09:53:11.000000000","message":"how can we avoid fat fingers ? Here it requires some hard thinking about the ordering :(","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b0df8ee81fd76ea973543fd539b68eee74cb6b81","unresolved":false,"context_lines":[{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Replace ``cpu_model`` config attribute with ``cpu_model_list``, which is"},{"line_number":34,"context_line":"an ordered list of CPU models the host supports. It is expected that the"},{"line_number":35,"context_line":"list is ordered so that the more common and less advanced CPU models are"},{"line_number":36,"context_line":"listed earlier.  The reported CPU feature traits will be the union of"},{"line_number":37,"context_line":"features of all the CPU models."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_bbfe8002","line":35,"range":{"start_line":34,"start_character":48,"end_line":35,"end_character":68},"in_reply_to":"5fc1f717_58c8c253","updated":"2019-04-09 11:37:02.000000000","message":"for context the only reason we have cpu_model in the config\nis so that operators can ensure compatiblity for live migration\n\nlisting them in order of oldest to newest is intended to maxiumise the migration potential.\n\nif that was not a concurn we woudl just delete the option entirly and always use host-passthough as that provides the best perfromance but operators like live migration to work and dont build datacenters with idencialy cpus on every host.","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"52c18ebb959bb14a056f027fe9d09c05e7723719","unresolved":false,"context_lines":[{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Replace ``cpu_model`` config attribute with ``cpu_model_list``, which is"},{"line_number":34,"context_line":"an ordered list of CPU models the host supports. It is expected that the"},{"line_number":35,"context_line":"list is ordered so that the more common and less advanced CPU models are"},{"line_number":36,"context_line":"listed earlier.  The reported CPU feature traits will be the union of"},{"line_number":37,"context_line":"features of all the CPU models."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_b82d2647","line":35,"range":{"start_line":34,"start_character":48,"end_line":35,"end_character":68},"in_reply_to":"5fc1f717_84524611","updated":"2019-04-09 11:32:49.000000000","message":"II didn\u0027t propose it.  But if I have to guess the original proposer\u0027s intention (in Stein), the admin knows their enviornment.  (And if they have a single CPU generation, then no hard thinking is required; it\u0027s just a single entry.)\n\nBut I\u0027ve been a bit skeptical of this: \"CPUs must be ordered from least featureful to most\" idea, as it can be flaky.  But Sean Mooney seems (on IRC) more confident than me that it is okay :-)","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f3b00aa7511da7dcac9a6c1274c0c506f1dcd302","unresolved":false,"context_lines":[{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Replace ``cpu_model`` config attribute with ``cpu_model_list``, which is"},{"line_number":34,"context_line":"an ordered list of CPU models the host supports. It is expected that the"},{"line_number":35,"context_line":"list is ordered so that the more common and less advanced CPU models are"},{"line_number":36,"context_line":"listed earlier.  The reported CPU feature traits will be the union of"},{"line_number":37,"context_line":"features of all the CPU models."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_58c8c253","line":35,"range":{"start_line":34,"start_character":48,"end_line":35,"end_character":68},"in_reply_to":"5fc1f717_84524611","updated":"2019-04-09 11:33:16.000000000","message":"well before you would have had to think about what singel value to use and created a bunch of host aggrates for different sets of hosts.\n\na recommend ordering of oldest to newest should be simple enough but i dont think we can do much about people fat fingering it. perhaps deployment tools will be able to help.","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"34ce3f4b301b9aa1f5db3e62082e337a5e5374af","unresolved":false,"context_lines":[{"line_number":34,"context_line":"an ordered list of CPU models the host supports. It is expected that the"},{"line_number":35,"context_line":"list is ordered so that the more common and less advanced CPU models are"},{"line_number":36,"context_line":"listed earlier.  The reported CPU feature traits will be the union of"},{"line_number":37,"context_line":"features of all the CPU models."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"End users specify CPU features they required through traits [1]_. If the"},{"line_number":40,"context_line":"``cpu_mode`` is set to ``custom``, libvirt driver will select the first"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_04189673","line":37,"updated":"2019-04-09 09:53:11.000000000","message":"do you plan to deprecate cpu_model accordingly ?\nIf so, I\u0027m more in favor of a simple \u0027cpu_models\u0027 config naming","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"52c18ebb959bb14a056f027fe9d09c05e7723719","unresolved":false,"context_lines":[{"line_number":34,"context_line":"an ordered list of CPU models the host supports. It is expected that the"},{"line_number":35,"context_line":"list is ordered so that the more common and less advanced CPU models are"},{"line_number":36,"context_line":"listed earlier.  The reported CPU feature traits will be the union of"},{"line_number":37,"context_line":"features of all the CPU models."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"End users specify CPU features they required through traits [1]_. If the"},{"line_number":40,"context_line":"``cpu_mode`` is set to ``custom``, libvirt driver will select the first"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_780a5ed1","line":37,"in_reply_to":"5fc1f717_04189673","updated":"2019-04-09 11:32:49.000000000","message":"Yes, the existing `cpu_model` will be deprecated; it is mentioned in the \"Work Items\" section below.\n\nAnd no, using the plural variant, `cpu_models`, is not correct, it can easily lead to confusion and typos.  We should avoid that and just stick to `cpu_model_list`, *even if* we deprecate the older `cpu_model`.","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f3b00aa7511da7dcac9a6c1274c0c506f1dcd302","unresolved":false,"context_lines":[{"line_number":34,"context_line":"an ordered list of CPU models the host supports. It is expected that the"},{"line_number":35,"context_line":"list is ordered so that the more common and less advanced CPU models are"},{"line_number":36,"context_line":"listed earlier.  The reported CPU feature traits will be the union of"},{"line_number":37,"context_line":"features of all the CPU models."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"End users specify CPU features they required through traits [1]_. If the"},{"line_number":40,"context_line":"``cpu_mode`` is set to ``custom``, libvirt driver will select the first"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_f8d5eee6","line":37,"in_reply_to":"5fc1f717_04189673","updated":"2019-04-09 11:33:16.000000000","message":"so i have read the reasoning behind why this is not the chosen path in the commit messge. i can see the point that was made but im not sure cpu_model_list is actully better the cpu_models.\n\ni think both have there pros and cons.\n\nkashyap my -1 is because while you documented your resoning\nin the commit message that will not be visable in the renderd spec if people read it later so can you move you reasoning for why its cpu_model_list and not cpu_models to this section.","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"23e67ae4a8761eec9085a80d35a3a333d47e3352","unresolved":false,"context_lines":[{"line_number":34,"context_line":"an ordered list of CPU models the host supports. It is expected that the"},{"line_number":35,"context_line":"list is ordered so that the more common and less advanced CPU models are"},{"line_number":36,"context_line":"listed earlier.  The reported CPU feature traits will be the union of"},{"line_number":37,"context_line":"features of all the CPU models."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"End users specify CPU features they required through traits [1]_. If the"},{"line_number":40,"context_line":"``cpu_mode`` is set to ``custom``, libvirt driver will select the first"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_1b8a3463","line":37,"in_reply_to":"5fc1f717_f8d5eee6","updated":"2019-04-09 11:54:34.000000000","message":"Yes, moved the rationale for the config attribute name from commit message to the spec itself in the next iteration.","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f3b00aa7511da7dcac9a6c1274c0c506f1dcd302","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    [libvirt]"},{"line_number":57,"context_line":"    cpu_mode \u003d custom"},{"line_number":58,"context_line":"    cpu_model_list \u003d Conroe,Penryn,Nehalem,Westmere,SandyBridge,IvyBridge,Haswell,Broadwell,Skylake-Client,Skylake-Server"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":61,"context_line":"``avx2`` will be chosen by libvirt."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_18a55a9f","line":58,"range":{"start_line":58,"start_character":4,"end_line":58,"end_character":121},"updated":"2019-04-09 11:33:16.000000000","message":"typically datacenters only have a small handfull of \nserver generatrion deployed at any one time\n\nso this might be more typically \ncpu_model_list \u003d Nehalem,IvyBridge,Broadwell\n\nalso can we make this case insensitive.","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"23e67ae4a8761eec9085a80d35a3a333d47e3352","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    [libvirt]"},{"line_number":57,"context_line":"    cpu_mode \u003d custom"},{"line_number":58,"context_line":"    cpu_model_list \u003d Conroe,Penryn,Nehalem,Westmere,SandyBridge,IvyBridge,Haswell,Broadwell,Skylake-Client,Skylake-Server"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":61,"context_line":"``avx2`` will be chosen by libvirt."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_7beed821","line":58,"range":{"start_line":58,"start_character":4,"end_line":58,"end_character":121},"in_reply_to":"5fc1f717_18a55a9f","updated":"2019-04-09 11:54:34.000000000","message":"Yeah, we should make it case-insensitive.","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"34ce3f4b301b9aa1f5db3e62082e337a5e5374af","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    cpu_model_list \u003d Conroe,Penryn,Nehalem,Westmere,SandyBridge,IvyBridge,Haswell,Broadwell,Skylake-Client,Skylake-Server"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":61,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":64,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_04465651","line":61,"updated":"2019-04-09 09:53:11.000000000","message":"that\u0027s where I think there could be many problems for operators.","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"52c18ebb959bb14a056f027fe9d09c05e7723719","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    cpu_model_list \u003d Conroe,Penryn,Nehalem,Westmere,SandyBridge,IvyBridge,Haswell,Broadwell,Skylake-Client,Skylake-Server"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":61,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":64,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_3821364e","line":61,"in_reply_to":"5fc1f717_04465651","updated":"2019-04-09 11:32:49.000000000","message":"Can you expand more concretely on the problems?","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"68ba84e9ff6d58a85b1ff29399bebd0e5c991101","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    cpu_model_list \u003d Conroe,Penryn,Nehalem,Westmere,SandyBridge,IvyBridge,Haswell,Broadwell,Skylake-Client,Skylake-Server"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":61,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":64,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_b8bbe6e2","line":61,"in_reply_to":"5fc1f717_04465651","updated":"2019-04-09 11:12:42.000000000","message":"How the deployer figure out what are the cpu models that needs to be listed to allow every existing flavor (with different required cpu flags) to boot, but in the same time allow live migration between of the resulting servers?","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f3b00aa7511da7dcac9a6c1274c0c506f1dcd302","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    cpu_model_list \u003d Conroe,Penryn,Nehalem,Westmere,SandyBridge,IvyBridge,Haswell,Broadwell,Skylake-Client,Skylake-Server"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":61,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":64,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_7809fe81","line":61,"in_reply_to":"5fc1f717_04465651","updated":"2019-04-09 11:33:16.000000000","message":"trying to figure out how a cpu model was chosen for a given instance? perhaps we can help with that via a debug or info level log. info might be too verbose.\n\nif your concern is how will they know what cpu models to list in the first place i personally would jsut list all the cpu models of the server in my datacenter form oldest to newest\nand let nova figure it out.","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"23e67ae4a8761eec9085a80d35a3a333d47e3352","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    cpu_model_list \u003d Conroe,Penryn,Nehalem,Westmere,SandyBridge,IvyBridge,Haswell,Broadwell,Skylake-Client,Skylake-Server"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":61,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":64,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_bbd1a059","line":61,"in_reply_to":"5fc1f717_7809fe81","updated":"2019-04-09 11:54:34.000000000","message":"Yeah, it is reasonable to expect from an operator to know the CPU profiles in their environment.","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"34ce3f4b301b9aa1f5db3e62082e337a5e5374af","unresolved":false,"context_lines":[{"line_number":64,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":65,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":66,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":67,"context_line":"configuration."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If both ``cpu_model_list`` and ``cpu_model`` are set, ``cpu_model`` will"},{"line_number":70,"context_line":"be ignored."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_e47a2a86","line":67,"updated":"2019-04-09 09:53:11.000000000","message":"the above is way simplier for operators to configure as it doesn\u0027t need ordering.","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"23e67ae4a8761eec9085a80d35a3a333d47e3352","unresolved":false,"context_lines":[{"line_number":64,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":65,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":66,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":67,"context_line":"configuration."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If both ``cpu_model_list`` and ``cpu_model`` are set, ``cpu_model`` will"},{"line_number":70,"context_line":"be ignored."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_fbeba8d9","line":67,"in_reply_to":"5fc1f717_38037644","updated":"2019-04-09 11:54:34.000000000","message":"I think expanding `cpu_model_extra_flags` to make it more specific will muddy the waters.  And it seems too hacky to be palatable.\n\nBut I agree: I\u0027m still not fully sold on \"Any incompatibiliyt should prevent the compute service from starting and user needs to correct the configuration\".\n\nAnd what do you mean by \"no easy way using qemu or libvirt for an operator to check the cpu model flags\"?  There are two ways:\n\n* `qemu-system-x86_64 -cpu help` and look at the \"Recognized CPUID flags\" section, to see what CPU flags a given QEMU binary supports.\n* More tediously, you can also check libvirt\u0027s `/usr/share/libvirt/cpu_map/*.xml` files.\n\nAlso, please take a look at the hyperivisor-literate CPU APIs that I\u0027m proposing to add to Nova:\n\nhttps://review.openstack.org/#/c/645814/4/specs/train/approved/cpu-selection-with-hypervisor-consideration.rst","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"52c18ebb959bb14a056f027fe9d09c05e7723719","unresolved":false,"context_lines":[{"line_number":64,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":65,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":66,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":67,"context_line":"configuration."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If both ``cpu_model_list`` and ``cpu_model`` are set, ``cpu_model`` will"},{"line_number":70,"context_line":"be ignored."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_588522ac","line":67,"in_reply_to":"5fc1f717_e47a2a86","updated":"2019-04-09 11:32:49.000000000","message":"What do you mean \"the above\"?  You mean the existing, singular variant, `cpu_model`?","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f3b00aa7511da7dcac9a6c1274c0c506f1dcd302","unresolved":false,"context_lines":[{"line_number":64,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":65,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":66,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":67,"context_line":"configuration."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If both ``cpu_model_list`` and ``cpu_model`` are set, ``cpu_model`` will"},{"line_number":70,"context_line":"be ignored."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_38037644","line":67,"in_reply_to":"5fc1f717_e47a2a86","updated":"2019-04-09 11:33:16.000000000","message":"i do not consider this to be a resonable requirement by the way.\n\nwe shoud make a cpu_model_extra_flags model specific.\n\ncpu_model_extra_flags\u003divybridge:PCID,AVX;haswell:AVX2\nif the \"\u003cmodel\u003e:\u003cflags\u003e;\" syntax is not used then it should only\napply to the to the model specified in cpu_model\n\nif cpu_model_list is used and the old syntax is used it should be an error.\n\nthere is no easy way using qemu or libvirt for an operator to check the cpu model flags so its not resonable to reqreire them to check the compatiblity for each cpu model.","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"93ff027512e3f6e730ab75b5145d550d45c2d43d","unresolved":false,"context_lines":[{"line_number":64,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":65,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":66,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":67,"context_line":"configuration."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If both ``cpu_model_list`` and ``cpu_model`` are set, ``cpu_model`` will"},{"line_number":70,"context_line":"be ignored."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_9b5ce47d","line":67,"in_reply_to":"5fc1f717_fbeba8d9","updated":"2019-04-09 12:08:09.000000000","message":"[...]\n \n \u003e Also, please take a look at the hyperivisor-literate CPU APIs that\n \u003e I\u0027m proposing to add to Nova:\n \u003e \n \u003e https://review.openstack.org/#/c/645814/4/specs/train/approved/cpu-selection-with-hypervisor-consideration.rst\n\nThe above will introduce APIs, compareHypervisorCPU() and baselineHypervisorCPU(), that will take into account the host hypervisor\u0027s capabilities (including KVM, QEMU and what libvirt knows about the host).","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"54ebb98283db4b29241b113fa3e123c84e14ea93","unresolved":false,"context_lines":[{"line_number":163,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":".. [1] https://specs.openstack.org/openstack/nova-specs/specs/rocky/implemented/report-cpu-features-as-traits.html"},{"line_number":166,"context_line":".. [2] Stein iteration of this spec:"},{"line_number":167,"context_line":"       http://specs.openstack.org/openstack/nova-specs/specs/stein/approved/cpu-model-selection.html"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"History"},{"line_number":170,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5fc1f717_6f693b23","line":167,"range":{"start_line":166,"start_character":0,"end_line":167,"end_character":100},"updated":"2019-04-09 02:20:55.000000000","message":"Stein iteration of this spec:\n    http://specs.openstack.org/openstack/nova-specs/specs/stein/approved/cpu-model-selection.html","commit_id":"4d49c9b79659ad88d682fba5f94e1c09b351c92b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"eb4841b076387a522db7dc90641eb1373ee86dba","unresolved":false,"context_lines":[{"line_number":36,"context_line":"listed earlier. The reported CPU feature traits will be the union of"},{"line_number":37,"context_line":"features of all the CPU models."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"On the config attribute naming: Note that we chose ``cpu_model_list``,"},{"line_number":40,"context_line":"instead of the plural variant, ``cpu_models``, of the existing"},{"line_number":41,"context_line":"``cpu_model``. Otherwise, supporting both the singular and plural"},{"line_number":42,"context_line":"variants at the *same* time (or even after we deprecate ``cpu_model``)"},{"line_number":43,"context_line":"can lead to confusion and avoidable typos.  Avoid them."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"End users specify CPU features they required through traits [1]_. If the"},{"line_number":46,"context_line":"``cpu_mode`` is set to ``custom``, libvirt driver will select the first"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_c2503935","line":43,"range":{"start_line":39,"start_character":0,"end_line":43,"end_character":55},"updated":"2019-04-09 15:17:32.000000000","message":"Still can\u0027t say I agree with this. If you simply changed the type and renamed the option, including a deprecated alias, \u0027cpu_model\u0027 and \u0027cpu_models\u0027 would both work, with the former raising a deprecated warning until the user changed the value. I\u0027m not going to hold it up but this would be far easier to do (IMO) and I\u0027d _really_ rather not use Hungarian Notation for our configuration options.","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"efce594c41d0805d0d2e5e603c87ce6fade34d95","unresolved":false,"context_lines":[{"line_number":36,"context_line":"listed earlier. The reported CPU feature traits will be the union of"},{"line_number":37,"context_line":"features of all the CPU models."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"On the config attribute naming: Note that we chose ``cpu_model_list``,"},{"line_number":40,"context_line":"instead of the plural variant, ``cpu_models``, of the existing"},{"line_number":41,"context_line":"``cpu_model``. Otherwise, supporting both the singular and plural"},{"line_number":42,"context_line":"variants at the *same* time (or even after we deprecate ``cpu_model``)"},{"line_number":43,"context_line":"can lead to confusion and avoidable typos.  Avoid them."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"End users specify CPU features they required through traits [1]_. If the"},{"line_number":46,"context_line":"``cpu_mode`` is set to ``custom``, libvirt driver will select the first"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_d7bc66dd","line":43,"range":{"start_line":39,"start_character":0,"end_line":43,"end_character":55},"in_reply_to":"5fc1f717_c2503935","updated":"2019-04-10 12:15:43.000000000","message":"(Don\u0027t want to belabor this.)\n\nHmm, I didn\u0027t even think of the \"Hungarian Notation\" until you mentioned it.  But, in general, I accept the good argument that: \"if there is no precedent for Hungarian, don\u0027t do that\".  But I\u0027d be amenable to a longer name that avoids any confusion.\n\nYou said on IRC \"tools will handle config attributes, not humans\", and that oslo_config is \"powerful enough\" to handle upgrades.  That\u0027s partly true; still, it doesn\u0027t sit well with me—the plural variant is just too subtly confusing to be palatable.  I\u0027ve got burnt before from seeing people _and_ tools making such mistakes in production.  IMHO, going with `cpu_model_list` will remove any ambiguity whatsoever.\n\n(Another option, that captures the intended meaning, is: `acceptable_cpu_models`, but ... that breaks the \"symmetry\" of all the existing config options: `cpu_{mode, model, model_extra_flags}` :-))","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"9b09f58370bcfe7700ad10b7cb2c1b6d335636e6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":67,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":70,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":71,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":72,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":73,"context_line":"configuration."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_d12fadf3","line":70,"range":{"start_line":69,"start_character":0,"end_line":70,"end_character":44},"updated":"2019-04-09 13:44:16.000000000","message":"so we can do this check without https://review.openstack.org/#/c/645814?\nIf yes, then I think we should dependence on that spec, or we move adding this check to that spec?","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"cd2fdc8a2b57715d76d008c8ea0c7e023909909b","unresolved":false,"context_lines":[{"line_number":66,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":67,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":70,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":71,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":72,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":73,"context_line":"configuration."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fce034c_c1e07ffd","line":70,"range":{"start_line":69,"start_character":0,"end_line":70,"end_character":44},"in_reply_to":"3fce034c_14ffffaa","updated":"2019-04-17 13:07:59.000000000","message":"[...]\n\n \u003e I\u0027m thinking we are going to validate for any incompatible \n \u003e combination between model and extra flag. Actually there shouldn\u0027t\n \u003e be any incompatible  combination. Is it correct?\n\nI\u0027m not sure what you mean by \"incompatible\u0027 here.\n\nBoth QEMU \u0026 libvirt already ensure a guest can\u0027t be run with a feature that does not exist in the host CPU.\n\nSo not sure what other incompatibility you are concerned about that Nova needs to validate itself.","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"070d813f1e704ad1f91feccb8776c4ae654735a4","unresolved":false,"context_lines":[{"line_number":66,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":67,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":70,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":71,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":72,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":73,"context_line":"configuration."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ffb9cba7_05b88ce2","line":70,"range":{"start_line":69,"start_character":0,"end_line":70,"end_character":44},"in_reply_to":"3fce034c_7202a50d","updated":"2019-05-02 06:00:41.000000000","message":"For what it\u0027s worth, I think the intent was to ensure that nova-compute would fail on startup if we specified \"cpu_model_extra_flags\" that was incompatible with any of the CPU models in \"cpu_model_list\".","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d86578fa1035c4aa5259a8fb02a0e98f4cce21c6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":67,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":70,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":71,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":72,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":73,"context_line":"configuration."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fce034c_e302516f","line":70,"range":{"start_line":69,"start_character":0,"end_line":70,"end_character":44},"in_reply_to":"3fce034c_c1e07ffd","updated":"2019-04-18 03:13:53.000000000","message":"Ok, cool, we are on the same page now. My -1 is for this sentence sounds like we are going to check the combination of model+extra flag compatible or not. Actually, we just want to check all the flags from model and extra_flags are compatible with Qemu or not.\n\nBut correct me, if that is because of my english...","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"256854715ae55d63b937c4554e3c3fc1d8619859","unresolved":false,"context_lines":[{"line_number":66,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":67,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":70,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":71,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":72,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":73,"context_line":"configuration."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fce034c_7202a50d","line":70,"range":{"start_line":69,"start_character":0,"end_line":70,"end_character":44},"in_reply_to":"3fce034c_e302516f","updated":"2019-04-18 10:22:16.000000000","message":"You are right—that sentence *needs* rephrasing.  (I didn\u0027t write it originally, Jack Ding wrote it.)\n\nI will rewrite it based on what I explained earlier.","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"ce4fab58817a02764ea7714f6ce715626189753c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":67,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":70,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":71,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":72,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":73,"context_line":"configuration."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_ec451070","line":70,"range":{"start_line":69,"start_character":0,"end_line":70,"end_character":44},"in_reply_to":"5fc1f717_6c1920cf","updated":"2019-04-10 14:31:06.000000000","message":"I re-read that discussion.  My original comment in the previous version of the spec still stands.\n\nBut I was partly mixed up (because the answer is slightly complex – refer below) in this comment thread earlier, when I said \"not dependent on that [https://review.openstack.org/#/c/645814] spec\".\n\nShort: When validating whether a requested CPU model plus flags are supported by the \"host hypervisor\", Nova needs the capabilities of baselineHypervisorCPU() API that I proposed in the spec, so we are better off with it.\n\nLong:\n\nI double-checked with the libvirt CPU modelling maintainer.  To summarize:\n\n    Question: When calling the \"baseline CPU comparison\" APIs with the \n    flag VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES \u0026 checking if the CPU\n    features are present with policy\u003d\"require\", does it matter if we are\n    using the older baselineCPU() API or its newer variant,\n    baselineHypervisorCPU()?\n    \n    Answer: \n\n    If the QEMU version on the host supports all the CPU models we\u0027re\n    going to check, then there should be no difference (as long as you\n    use just plain CPU models with no extra features) between using the\n    baselineCPU() and baselineHypervisorCPU() APIs.  \n    \n    However, the newer API, baselineHypervisorCPU(), won\u0027t list (i.e.\n    it will filter out), correctly so, features that are unsupported by\n    QEMU on the host.  So in that case the result from\n    baselineHypervisorCPU() will differ from the older baselineCPU().\n\nMy take away is that Nova is better off using the newer API.","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d616cc10d3a90cdcd97b4789aa95b9d6f7b68195","unresolved":false,"context_lines":[{"line_number":66,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":67,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":70,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":71,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":72,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":73,"context_line":"configuration."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_6c1920cf","line":70,"range":{"start_line":69,"start_character":0,"end_line":70,"end_character":44},"in_reply_to":"5fc1f717_98312b5c","updated":"2019-04-10 12:49:18.000000000","message":"I look back the discussion we have before, you said we can\u0027t https://review.openstack.org/#/c/620959/5..9/specs/stein/approved/cpu-model-selection.rst@63, I don\u0027t understand why we can do that now.","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"eb4841b076387a522db7dc90641eb1373ee86dba","unresolved":false,"context_lines":[{"line_number":66,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":67,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":70,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":71,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":72,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":73,"context_line":"configuration."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_8214714e","line":70,"range":{"start_line":69,"start_character":0,"end_line":70,"end_character":44},"in_reply_to":"5fc1f717_d12fadf3","updated":"2019-04-09 15:17:32.000000000","message":"Good point","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"efce594c41d0805d0d2e5e603c87ce6fade34d95","unresolved":false,"context_lines":[{"line_number":66,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":67,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":70,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":71,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":72,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":73,"context_line":"configuration."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_98312b5c","line":70,"range":{"start_line":69,"start_character":0,"end_line":70,"end_character":44},"in_reply_to":"5fc1f717_d12fadf3","updated":"2019-04-10 12:15:43.000000000","message":"No, it is not dependent on that spec.  That can be done in this spec by calling the baselineCPU() with VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES and check if the features are present with policy\u003d\u0027require\u0027.\n\n    - - -\n\nAside: I\u0027m still debating with myself this whole design of validation of CPU models and flags. I\u0027m talking to QEMU and libvirt CPU modelling developers; will report back my findings.","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2fe9caf87e6a92c73756ab686ce739c55f629a40","unresolved":false,"context_lines":[{"line_number":66,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":67,"context_line":"``avx2`` will be chosen by libvirt."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":70,"context_line":"each CPU model specified in``cpu_model_list`` to make sure it is"},{"line_number":71,"context_line":"compatible with *all* the listed CPU models. Any incompatibility should"},{"line_number":72,"context_line":"prevent the compute service from starting and user needs to correct the"},{"line_number":73,"context_line":"configuration."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fce034c_14ffffaa","line":70,"range":{"start_line":69,"start_character":0,"end_line":70,"end_character":44},"in_reply_to":"5fc1f717_ec451070","updated":"2019-04-12 06:00:43.000000000","message":"Thanks\n\nFrom that explain, I see now, what we are going to check is whether the models and extra flags are supported by the current version Qemu or not.\n\nI\u0027m thinking we are going to validate for any incompatible  combination between model and extra flag. Actually there shouldn\u0027t be any incompatible  combination. Is it correct?","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"eb4841b076387a522db7dc90641eb1373ee86dba","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  the ``cpu_model_list`` is expected to contain not as many CPUs as"},{"line_number":82,"context_line":"  shown in the contrived example earlier."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"- The option ``cpu_model_list`` will be made case-insensitive."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Alternatives"},{"line_number":87,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_9dfe1403","line":84,"range":{"start_line":84,"start_character":6,"end_line":84,"end_character":12},"updated":"2019-04-09 15:17:32.000000000","message":"values in the option","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"efce594c41d0805d0d2e5e603c87ce6fade34d95","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  the ``cpu_model_list`` is expected to contain not as many CPUs as"},{"line_number":82,"context_line":"  shown in the contrived example earlier."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"- The option ``cpu_model_list`` will be made case-insensitive."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Alternatives"},{"line_number":87,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5fc1f717_ac65c8e2","line":84,"range":{"start_line":84,"start_character":6,"end_line":84,"end_character":12},"in_reply_to":"5fc1f717_9dfe1403","updated":"2019-04-10 12:15:43.000000000","message":"Yep, will fix.","commit_id":"a12ecb72ccdbdb84f14f9e7c5638c6de000e4d14"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a857c6b947a3c8cc792a7336225b4ae25ae98c05","unresolved":false,"context_lines":[{"line_number":45,"context_line":"listed earlier. The reported CPU feature traits will be the union of"},{"line_number":46,"context_line":"features of all the CPU models."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"On the config attribute naming: Note that we chose ``cpu_model_list``,"},{"line_number":49,"context_line":"instead of the plural variant, ``cpu_models``, of the existing"},{"line_number":50,"context_line":"``cpu_model``. Otherwise, supporting both the singular and plural"},{"line_number":51,"context_line":"variants at the *same* time (or even after we deprecate ``cpu_model``)"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_f5daf175","line":48,"updated":"2019-06-25 21:11:10.000000000","message":"I\u0027m going to agree with Stephen\u0027s comment on PS6 here, now that I\u0027ve reread and (hopefully) understood it. Stephen, please tell me if I\u0027ve gotten this right:\n\n- Rename cpu_model to cpu_models\n- Change it to a ListOpt\n- Add deprecated_name\u003d\u0027cpu_model\u0027\n\nThis would have numerous benefits:\n\nExisting confs, like\n\n cpu_model \u003d Haswell\n\nwill generate a deprecation warning, but continue to work. The code\n\n CONF.libvirt.cpu_models\n\nwould now simply give you\n\n [\u0027Haswell\u0027]\n\ninstead of\n\n \u0027Haswell\u0027\n\nThis way you don\u0027t have to add any code in nova to detect, convert, and log a deprecation warning on the old value - you get that for free. And you don\u0027t have to make a design decision or write code to handle the case when both are specified.","commit_id":"b234ab64c888af8fb32168d2d51ccd5e8e8cad60"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"98bd4c963a245f98be55f8734cc95644c693bfbf","unresolved":false,"context_lines":[{"line_number":45,"context_line":"listed earlier. The reported CPU feature traits will be the union of"},{"line_number":46,"context_line":"features of all the CPU models."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"On the config attribute naming: Note that we chose ``cpu_model_list``,"},{"line_number":49,"context_line":"instead of the plural variant, ``cpu_models``, of the existing"},{"line_number":50,"context_line":"``cpu_model``. Otherwise, supporting both the singular and plural"},{"line_number":51,"context_line":"variants at the *same* time (or even after we deprecate ``cpu_model``)"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_8232fe0e","line":48,"in_reply_to":"9fb8cfa7_f5daf175","updated":"2019-07-02 04:31:36.000000000","message":"Emm...I\u0027m confused. What different about rename cpu_model to cpu_model_list, and change it to ListOpt, and add deprecated_name\u003d\u0027cpu_model\u0027","commit_id":"b234ab64c888af8fb32168d2d51ccd5e8e8cad60"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"27b16d6d1df880d68f6773219d91de573749d429","unresolved":false,"context_lines":[{"line_number":76,"context_line":"``avx2``, will be chosen by libvirt."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":79,"context_line":"each CPU model specified in ``cpu_model_list`` to make sure every"},{"line_number":80,"context_line":"cpu_model_extra_flag is compatible with *all* the listed CPU models. Any"},{"line_number":81,"context_line":"incompatibility should prevent the compute service from starting and force the"},{"line_number":82,"context_line":"user to correct the configuration."}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_3fe7e914","line":79,"updated":"2019-06-27 07:22:26.000000000","message":"looking for this being corrected https://review.opendev.org/#/c/642030/6/specs/train/approved/cpu-model-selection.rst@70","commit_id":"b234ab64c888af8fb32168d2d51ccd5e8e8cad60"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"ace942c5523fe95e79d0bf691da50d16d3eb767d","unresolved":false,"context_lines":[{"line_number":76,"context_line":"``avx2``, will be chosen by libvirt."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"If ``cpu_model_extra_flags`` is specified, it should be checked against"},{"line_number":79,"context_line":"each CPU model specified in ``cpu_model_list`` to make sure every"},{"line_number":80,"context_line":"cpu_model_extra_flag is compatible with *all* the listed CPU models. Any"},{"line_number":81,"context_line":"incompatibility should prevent the compute service from starting and force the"},{"line_number":82,"context_line":"user to correct the configuration."}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_fdf5a651","line":79,"in_reply_to":"9fb8cfa7_3fe7e914","updated":"2019-07-01 13:23:11.000000000","message":"Done","commit_id":"b234ab64c888af8fb32168d2d51ccd5e8e8cad60"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a857c6b947a3c8cc792a7336225b4ae25ae98c05","unresolved":false,"context_lines":[{"line_number":144,"context_line":"Upgrade impact"},{"line_number":145,"context_line":"--------------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"The operator needs to set the config option appropriately after an upgrade."},{"line_number":148,"context_line":"If a single item list containing ``cpu_model_list`` is not set, it"},{"line_number":149,"context_line":"should default to the value of ``cpu_model``."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Implementation"},{"line_number":152,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_95a9357d","line":149,"range":{"start_line":147,"start_character":0,"end_line":149,"end_character":45},"updated":"2019-06-25 21:11:10.000000000","message":"This doesn\u0027t really make sense. But if you take the suggestion above, it becomes:\n\nThe operator will receive a deprecation warning until she renames ``cpu_model`` to ``cpu_models``. In a future release this rename will be mandatory.","commit_id":"b234ab64c888af8fb32168d2d51ccd5e8e8cad60"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"ace942c5523fe95e79d0bf691da50d16d3eb767d","unresolved":false,"context_lines":[{"line_number":144,"context_line":"Upgrade impact"},{"line_number":145,"context_line":"--------------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"The operator needs to set the config option appropriately after an upgrade."},{"line_number":148,"context_line":"If a single item list containing ``cpu_model_list`` is not set, it"},{"line_number":149,"context_line":"should default to the value of ``cpu_model``."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Implementation"},{"line_number":152,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9fb8cfa7_dd9b0270","line":149,"range":{"start_line":147,"start_character":0,"end_line":149,"end_character":45},"in_reply_to":"9fb8cfa7_95a9357d","updated":"2019-07-01 13:23:11.000000000","message":"Yes, oslo will try to resolv ``cpu_model`` if ``cpu_models`` not present.","commit_id":"b234ab64c888af8fb32168d2d51ccd5e8e8cad60"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7d5996a29c366e2b1212f905bd717d6ff9e5c54f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"listed earlier. The reported CPU feature traits will be the union of"},{"line_number":46,"context_line":"features of all the CPU models."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"On the config attribute naming: Note that we chose ``cpu_model_list``,"},{"line_number":49,"context_line":"instead of the plural variant, ``cpu_models``, of the existing"},{"line_number":50,"context_line":"``cpu_model``. Otherwise, supporting both the singular and plural"},{"line_number":51,"context_line":"variants at the *same* time (or even after we deprecate ``cpu_model``)"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_6eda5e4b","line":48,"range":{"start_line":48,"start_character":53,"end_line":48,"end_character":67},"updated":"2019-07-01 15:10:21.000000000","message":"Still want this changed per comments in PS6 (Stephen) and PS8 (me).","commit_id":"f240c550ef2d37f696fdfa484fc59eb949bfd094"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"b90abdf23bdd24ca35678d285c91bfac1a74b981","unresolved":false,"context_lines":[{"line_number":45,"context_line":"listed earlier. The reported CPU feature traits will be the union of"},{"line_number":46,"context_line":"features of all the CPU models."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"On the config attribute naming: Note that we chose ``cpu_model_list``,"},{"line_number":49,"context_line":"instead of the plural variant, ``cpu_models``, of the existing"},{"line_number":50,"context_line":"``cpu_model``. Otherwise, supporting both the singular and plural"},{"line_number":51,"context_line":"variants at the *same* time (or even after we deprecate ``cpu_model``)"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9fb8cfa7_67003c67","line":48,"range":{"start_line":48,"start_character":53,"end_line":48,"end_character":67},"in_reply_to":"9fb8cfa7_6eda5e4b","updated":"2019-07-02 02:10:00.000000000","message":"Done","commit_id":"f240c550ef2d37f696fdfa484fc59eb949bfd094"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d17e0e8fa8b091832a991b88aea4aa7e88974361","unresolved":false,"context_lines":[{"line_number":22,"context_line":"  then it may only live-migrate to a few of the cluster\u0027s compute nodes or fail"},{"line_number":23,"context_line":"  to live-migrate."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* The admin can configure all compute to nodes use the same CPU model. But some"},{"line_number":26,"context_line":"  users may request \"advanced\" CPU flags for some special application (such"},{"line_number":27,"context_line":"  as video edit and scientific compute)."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fb8cfa7_cc2d888f","line":25,"range":{"start_line":25,"start_character":30,"end_line":25,"end_character":46},"updated":"2019-07-02 08:00:02.000000000","message":"nit: compute nodes","commit_id":"02fb02f0bac0e596bfd02cf89f2639adbf5e33d1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a5f559d59ee01ddb95533cb0442695a4cd0fdbd8","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Proposed change"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Replace the ``cpu_model`` config attribute with ``cpu_models``, which is"},{"line_number":43,"context_line":"an ordered list of CPU models the host supports. It is expected that the"},{"line_number":44,"context_line":"list is ordered so that the more common and less advanced CPU models are"},{"line_number":45,"context_line":"listed earlier. The reported CPU feature traits will be the union of"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fb8cfa7_6a855c59","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":7},"updated":"2019-07-02 10:37:15.000000000","message":"Rename... using ``deprecated_name``... so existing confs will continue to work (but log a warning).","commit_id":"02fb02f0bac0e596bfd02cf89f2639adbf5e33d1"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"d6d1da98f66cf7a67eef89bc42fe7e77736aba21","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Proposed change"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Replace the ``cpu_model`` config attribute with ``cpu_models``, which is"},{"line_number":43,"context_line":"an ordered list of CPU models the host supports. It is expected that the"},{"line_number":44,"context_line":"list is ordered so that the more common and less advanced CPU models are"},{"line_number":45,"context_line":"listed earlier. The reported CPU feature traits will be the union of"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fb8cfa7_20cea52c","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":7},"in_reply_to":"9fb8cfa7_6a855c59","updated":"2019-07-02 13:27:46.000000000","message":"Done","commit_id":"02fb02f0bac0e596bfd02cf89f2639adbf5e33d1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d17e0e8fa8b091832a991b88aea4aa7e88974361","unresolved":false,"context_lines":[{"line_number":45,"context_line":"listed earlier. The reported CPU feature traits will be the union of"},{"line_number":46,"context_line":"features of all the CPU models."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"On the config attribute naming: Note that we chose ``cpu_models``,"},{"line_number":49,"context_line":"instead of the plural variant, ``cpu_models``, of the existing"},{"line_number":50,"context_line":"``cpu_model``. Otherwise, supporting both the singular and plural"},{"line_number":51,"context_line":"variants at the *same* time (or even after we deprecate ``cpu_model``)"},{"line_number":52,"context_line":"could lead to confusion and avoidable typos. Avoid them."},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fb8cfa7_cc42683b","line":50,"range":{"start_line":48,"start_character":0,"end_line":50,"end_character":14},"updated":"2019-07-02 08:00:02.000000000","message":"This sentence doesn\u0027t make sense to me. Do you want to say that we choose cpu_models instead of cpu_model_list?","commit_id":"02fb02f0bac0e596bfd02cf89f2639adbf5e33d1"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"50985500bba7b8cfd7397ad59bab80a106ab467a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"listed earlier. The reported CPU feature traits will be the union of"},{"line_number":46,"context_line":"features of all the CPU models."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"On the config attribute naming: Note that we chose ``cpu_models``,"},{"line_number":49,"context_line":"instead of the plural variant, ``cpu_models``, of the existing"},{"line_number":50,"context_line":"``cpu_model``. Otherwise, supporting both the singular and plural"},{"line_number":51,"context_line":"variants at the *same* time (or even after we deprecate ``cpu_model``)"},{"line_number":52,"context_line":"could lead to confusion and avoidable typos. Avoid them."},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fb8cfa7_6ac8fc20","line":50,"range":{"start_line":48,"start_character":0,"end_line":50,"end_character":14},"in_reply_to":"9fb8cfa7_0a3dc0b9","updated":"2019-07-02 11:18:45.000000000","message":"+1 rename. I\u0027m ok with both naming I think.","commit_id":"02fb02f0bac0e596bfd02cf89f2639adbf5e33d1"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"d6d1da98f66cf7a67eef89bc42fe7e77736aba21","unresolved":false,"context_lines":[{"line_number":45,"context_line":"listed earlier. The reported CPU feature traits will be the union of"},{"line_number":46,"context_line":"features of all the CPU models."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"On the config attribute naming: Note that we chose ``cpu_models``,"},{"line_number":49,"context_line":"instead of the plural variant, ``cpu_models``, of the existing"},{"line_number":50,"context_line":"``cpu_model``. Otherwise, supporting both the singular and plural"},{"line_number":51,"context_line":"variants at the *same* time (or even after we deprecate ``cpu_model``)"},{"line_number":52,"context_line":"could lead to confusion and avoidable typos. Avoid them."},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fb8cfa7_40d159cb","line":50,"range":{"start_line":48,"start_character":0,"end_line":50,"end_character":14},"in_reply_to":"9fb8cfa7_0a3dc0b9","updated":"2019-07-02 13:27:46.000000000","message":"Done","commit_id":"02fb02f0bac0e596bfd02cf89f2639adbf5e33d1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a5f559d59ee01ddb95533cb0442695a4cd0fdbd8","unresolved":false,"context_lines":[{"line_number":45,"context_line":"listed earlier. The reported CPU feature traits will be the union of"},{"line_number":46,"context_line":"features of all the CPU models."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"On the config attribute naming: Note that we chose ``cpu_models``,"},{"line_number":49,"context_line":"instead of the plural variant, ``cpu_models``, of the existing"},{"line_number":50,"context_line":"``cpu_model``. Otherwise, supporting both the singular and plural"},{"line_number":51,"context_line":"variants at the *same* time (or even after we deprecate ``cpu_model``)"},{"line_number":52,"context_line":"could lead to confusion and avoidable typos. Avoid them."},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fb8cfa7_0a3dc0b9","line":50,"range":{"start_line":48,"start_character":0,"end_line":50,"end_character":14},"in_reply_to":"9fb8cfa7_4ccc38ba","updated":"2019-07-02 10:37:15.000000000","message":"Honestly at this point I don\u0027t care whether we land on cpu_models or cpu_model_list, though I have a slight preference for the former. The important thing is the mechanics of renaming cpu_model with a deprecation rather than having two separate options in existence at once.\n\n(To bring other reviewers up to speed, there was debate in earlier revs about cpu_models - the original proposal - being too close to cpu_model, and therefore subject to human error. However, this is moot if we use the rename strategy, because either spelling is accepted for the same result.)\n\nAnyway, this paragraph should be reworded to indicate that we\u0027re renaming the existing option and extending its syntax rather than introducing a new option and deprecating the old one, for the reasons described in comments at this location in PS6\u00268.","commit_id":"02fb02f0bac0e596bfd02cf89f2639adbf5e33d1"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"24c19b5d1b77f25d5e3ce3251d91db37298d0da7","unresolved":false,"context_lines":[{"line_number":45,"context_line":"listed earlier. The reported CPU feature traits will be the union of"},{"line_number":46,"context_line":"features of all the CPU models."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"On the config attribute naming: Note that we chose ``cpu_models``,"},{"line_number":49,"context_line":"instead of the plural variant, ``cpu_models``, of the existing"},{"line_number":50,"context_line":"``cpu_model``. Otherwise, supporting both the singular and plural"},{"line_number":51,"context_line":"variants at the *same* time (or even after we deprecate ``cpu_model``)"},{"line_number":52,"context_line":"could lead to confusion and avoidable typos. Avoid them."},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fb8cfa7_4ccc38ba","line":50,"range":{"start_line":48,"start_character":0,"end_line":50,"end_character":14},"in_reply_to":"9fb8cfa7_cc42683b","updated":"2019-07-02 08:09:33.000000000","message":"\u003e This sentence doesn\u0027t make sense to me. Do you want to say that we\n \u003e choose cpu_models instead of cpu_model_list?\n\nMy mistake, the second ``cpu_models`` should be ``cpu_model_list``. But I\u0027m not sure which one is better.","commit_id":"02fb02f0bac0e596bfd02cf89f2639adbf5e33d1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a5f559d59ee01ddb95533cb0442695a4cd0fdbd8","unresolved":false,"context_lines":[{"line_number":83,"context_line":"A few related points:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"- If both ``cpu_models`` and ``cpu_model`` are set, ``cpu_model``"},{"line_number":86,"context_line":"  will be ignored."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"- Typically, data centers only have a handful of CPU generations deployed, so"},{"line_number":89,"context_line":"  the ``cpu_models`` is expected to contain not as many CPUs as shown in"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fb8cfa7_aa8ef475","line":86,"range":{"start_line":86,"start_character":17,"end_line":86,"end_character":18},"updated":"2019-07-02 10:37:15.000000000","message":"This is true, but as an artifact of the behavior you get from oslo.config by using deprecated_name, so I\u0027m not sure it needs to be stated.","commit_id":"02fb02f0bac0e596bfd02cf89f2639adbf5e33d1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a5f559d59ee01ddb95533cb0442695a4cd0fdbd8","unresolved":false,"context_lines":[{"line_number":156,"context_line":"Work Items"},{"line_number":157,"context_line":"----------"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* Conf: Define ``[libvirt]cpu_models``. Deprecate ``[libvirt]cpu_model``."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"* Virt driver changes."},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fb8cfa7_6aea3c0f","line":159,"range":{"start_line":159,"start_character":8,"end_line":159,"end_character":14},"updated":"2019-07-02 10:37:15.000000000","message":"Rename... etc","commit_id":"02fb02f0bac0e596bfd02cf89f2639adbf5e33d1"},{"author":{"_account_id":27614,"name":"ya.wang","email":"me@littleya.com","username":"ya.wang"},"change_message_id":"d6d1da98f66cf7a67eef89bc42fe7e77736aba21","unresolved":false,"context_lines":[{"line_number":156,"context_line":"Work Items"},{"line_number":157,"context_line":"----------"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* Conf: Define ``[libvirt]cpu_models``. Deprecate ``[libvirt]cpu_model``."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"* Virt driver changes."},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fb8cfa7_60c81d21","line":159,"range":{"start_line":159,"start_character":8,"end_line":159,"end_character":14},"in_reply_to":"9fb8cfa7_6aea3c0f","updated":"2019-07-02 13:27:46.000000000","message":"Done","commit_id":"02fb02f0bac0e596bfd02cf89f2639adbf5e33d1"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"e615fb226875e3f9386218302e63e825fd3b03fd","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  to live-migrate."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* The admin can configure all compute nodes use the same CPU model. But some"},{"line_number":26,"context_line":"  users may request \"advanced\" CPU flags for some special application (such"},{"line_number":27,"context_line":"  as video edit and scientific compute)."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Use Cases"},{"line_number":30,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9fb8cfa7_0743766e","line":27,"range":{"start_line":26,"start_character":50,"end_line":27,"end_character":39},"updated":"2019-07-02 14:43:02.000000000","message":"\"special applications (such as video editing or scientific computing)\"","commit_id":"045eec5e460fc062fa4f824543fa1fd5e8b3dc27"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"04672e8f95c71c3617b008c264b8dcb8ad0c2b17","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  to live-migrate."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"* The admin can configure all compute nodes use the same CPU model. But some"},{"line_number":26,"context_line":"  users may request \"advanced\" CPU flags for some special application (such"},{"line_number":27,"context_line":"  as video edit and scientific compute)."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Use Cases"},{"line_number":30,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9fb8cfa7_ad15a9e7","line":27,"range":{"start_line":26,"start_character":50,"end_line":27,"end_character":39},"in_reply_to":"9fb8cfa7_0743766e","updated":"2019-07-02 15:43:19.000000000","message":"haha i didnt expect to see rendering youtube videos and processing cern data to be in the same category but i can see how both might require specific cpu featues like avx or quick sync.","commit_id":"045eec5e460fc062fa4f824543fa1fd5e8b3dc27"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"04672e8f95c71c3617b008c264b8dcb8ad0c2b17","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    cpu_models \u003d SandyBridge,IvyBridge,Haswell,Broadwell"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"then ``Haswell``, the first CPU model supporting both ``avx`` and"},{"line_number":78,"context_line":"``avx2``, will be chosen by libvirt."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"If ``cpu_model_extra_flags`` or ``cpu_models`` specified, it should be checked"},{"line_number":81,"context_line":"against each configured items to make sure they are compatible with host CPU."}],"source_content_type":"text/x-rst","patch_set":13,"id":"9fb8cfa7_0da8758a","line":78,"range":{"start_line":78,"start_character":28,"end_line":78,"end_character":35},"updated":"2019-07-02 15:43:19.000000000","message":"nit: the libvirt virt driver.","commit_id":"045eec5e460fc062fa4f824543fa1fd5e8b3dc27"}]}
