)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bf6ef0e49fbf1e9211b8d587448011b3029eeecc","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Detect maximum number of SEV(-ES) guests automatically"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Libvirt has implemented the capability to expose maximum number of"},{"line_number":10,"context_line":"SEV guests and SEV-ES guests in 8.0.0[1][2]. This allows nova to detect"},{"line_number":11,"context_line":"maximum number of memory encrypted guests using that feature."},{"line_number":12,"context_line":"The detection is not used if the [libvirt] num_memory_encrypted_guests"},{"line_number":13,"context_line":"option is set to preserve the current behavior."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa19a122_6906b55c","line":10,"updated":"2023-11-20 11:53:42.000000000","message":"nova does not support SEV-ES at all as far as i am aware\nour sev supprot predates the intoduction of SEV-ES and i dont recall us updating nova to intentionally support it.\nso this would be new functionality.\n\nif we can detect the capasity we likely shoudl be schduling based on it via resouce classes too so this \n\nwe have an sev trait today https://github.com/openstack/os-traits/blob/master/os_traits/hw/cpu/amd.py#L30\nbut not one for sev-es\n\nwe also only have one resouce class for mem encrption\nhttps://github.com/openstack/os-resource-classes/blob/master/os_resource_classes/__init__.py#L70\n\nso if we wantted to allow independent inventoies of \nsev and sev-es we would need to have  a nested RP for the sev-es resouce classes or a new resouces class so that we can properly support that.","commit_id":"0c2f3c920d83ecc6751ed21470805f3cf0b07299"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e3828093760e15bd73215d7faf979cb28e757a50","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Detect maximum number of SEV(-ES) guests automatically"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Libvirt has implemented the capability to expose maximum number of"},{"line_number":10,"context_line":"SEV guests and SEV-ES guests in 8.0.0[1][2]. This allows nova to detect"},{"line_number":11,"context_line":"maximum number of memory encrypted guests using that feature."},{"line_number":12,"context_line":"The detection is not used if the [libvirt] num_memory_encrypted_guests"},{"line_number":13,"context_line":"option is set to preserve the current behavior."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"61b4416d_efbe9536","line":10,"in_reply_to":"e6d9ebd1_225ee399","updated":"2023-11-20 12:42:18.000000000","message":"Done","commit_id":"0c2f3c920d83ecc6751ed21470805f3cf0b07299"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b8cde5dc42c747923f86b2d6ae263b3c3ac612e1","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Detect maximum number of SEV(-ES) guests automatically"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Libvirt has implemented the capability to expose maximum number of"},{"line_number":10,"context_line":"SEV guests and SEV-ES guests in 8.0.0[1][2]. This allows nova to detect"},{"line_number":11,"context_line":"maximum number of memory encrypted guests using that feature."},{"line_number":12,"context_line":"The detection is not used if the [libvirt] num_memory_encrypted_guests"},{"line_number":13,"context_line":"option is set to preserve the current behavior."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"e6d9ebd1_225ee399","line":10,"in_reply_to":"fa19a122_6906b55c","updated":"2023-11-20 12:12:33.000000000","message":"Hmm... OK It seems I was confused by the spec published by AMD[1] which says the ES bit in policy indicates \"SEV-ES is required\" but the actual implementations in qemu does not look like a guest without this flag can launch with SEV-ES.\n\nI\u0027ll exclude the number of SEV-ES for now and add a release note.\n\n\nMy ultimate goal is to add support for SEV-ES (and SEV-SNP once it\u0027s supported by kernel/qemu/libvirt) but I agree that needs a spec.\n\n\n[1] https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/programmer-references/55766_SEV-KM_API_Specification.pdf\nP31. ES: SEV-ES is required when set","commit_id":"0c2f3c920d83ecc6751ed21470805f3cf0b07299"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"341d20dd0335d7ddd98c9840d845ee22f28ff1a7","unresolved":true,"context_lines":[{"line_number":15,"context_line":"Because currently nova can launch memory encrypted guests using either"},{"line_number":16,"context_line":"SEV or SEV-ES, this implementation uses sum of max SEV guests and max"},{"line_number":17,"context_line":"SEV-ES guests to determine the limit. This needs to be updated in case"},{"line_number":18,"context_line":"we implement the logic to allow users to strictly require SEV-ES."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[1] https://gitlab.com/libvirt/libvirt/-/commit/34cb8f6fcd6a56a7bbcef2f7402def1682509e16"},{"line_number":21,"context_line":"[2] https://gitlab.com/libvirt/libvirt/-/commit/7826148a72c97367fc6aaa76397fe92d32169723"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"8bf99afa_e7dacf91","line":18,"updated":"2023-11-20 11:55:19.000000000","message":"given we dont offcially supprot SEV-ES today i think we either need a spec for that or you need to rework this to only detect and report the sev but not the sev-es capsity.","commit_id":"0c2f3c920d83ecc6751ed21470805f3cf0b07299"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e3828093760e15bd73215d7faf979cb28e757a50","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Because currently nova can launch memory encrypted guests using either"},{"line_number":16,"context_line":"SEV or SEV-ES, this implementation uses sum of max SEV guests and max"},{"line_number":17,"context_line":"SEV-ES guests to determine the limit. This needs to be updated in case"},{"line_number":18,"context_line":"we implement the logic to allow users to strictly require SEV-ES."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[1] https://gitlab.com/libvirt/libvirt/-/commit/34cb8f6fcd6a56a7bbcef2f7402def1682509e16"},{"line_number":21,"context_line":"[2] https://gitlab.com/libvirt/libvirt/-/commit/7826148a72c97367fc6aaa76397fe92d32169723"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"e70d1167_d2aa8f4d","line":18,"in_reply_to":"7a157841_daf816ea","updated":"2023-11-20 12:42:18.000000000","message":"Done","commit_id":"0c2f3c920d83ecc6751ed21470805f3cf0b07299"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"b8cde5dc42c747923f86b2d6ae263b3c3ac612e1","unresolved":true,"context_lines":[{"line_number":15,"context_line":"Because currently nova can launch memory encrypted guests using either"},{"line_number":16,"context_line":"SEV or SEV-ES, this implementation uses sum of max SEV guests and max"},{"line_number":17,"context_line":"SEV-ES guests to determine the limit. This needs to be updated in case"},{"line_number":18,"context_line":"we implement the logic to allow users to strictly require SEV-ES."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"[1] https://gitlab.com/libvirt/libvirt/-/commit/34cb8f6fcd6a56a7bbcef2f7402def1682509e16"},{"line_number":21,"context_line":"[2] https://gitlab.com/libvirt/libvirt/-/commit/7826148a72c97367fc6aaa76397fe92d32169723"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a157841_daf816ea","line":18,"in_reply_to":"8bf99afa_e7dacf91","updated":"2023-11-20 12:12:33.000000000","message":"I agree. Let me remove the SEV-ES part.","commit_id":"0c2f3c920d83ecc6751ed21470805f3cf0b07299"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1fe1fbdf678f06f69b2b4bcb5f31106602a3bd74","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d41a2738_c144df03","updated":"2023-10-26 13:41:31.000000000","message":"recheck failures are unrelated","commit_id":"c36c264b51f7bda9e8723283bb97f92a29041a91"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"512fd75e41a55ec8849454fd32955014e1cd5495","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bce15b3e_3390b851","updated":"2023-11-20 12:13:54.000000000","message":"Noticed I also have to update the description of num_memory_encrypted_guests . Will fix it in the next version.","commit_id":"0c2f3c920d83ecc6751ed21470805f3cf0b07299"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bf6ef0e49fbf1e9211b8d587448011b3029eeecc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"edc0c369_55f1a88c","updated":"2023-11-20 11:53:42.000000000","message":"i actully think supporting sev-es is a larger feature then i orginaly tought so this likely needs a spec to cover the upgrade impact and schduler aspects","commit_id":"0c2f3c920d83ecc6751ed21470805f3cf0b07299"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2e8e75cd5541ee99f08d6580e44c06aeac7b9220","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ddcd6ee7_4b19157d","updated":"2023-11-20 11:47:02.000000000","message":"this is technically a feature not a bug so it need a release note and\neither it should be appoved as a specless blueprint or we should agree to proceed with this without paper work in the next team meeting","commit_id":"0c2f3c920d83ecc6751ed21470805f3cf0b07299"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e3828093760e15bd73215d7faf979cb28e757a50","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c5428ed5_ba1e8b6d","in_reply_to":"bce15b3e_3390b851","updated":"2023-11-20 12:42:18.000000000","message":"Done","commit_id":"0c2f3c920d83ecc6751ed21470805f3cf0b07299"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0267bfab7aa206608a1f166446580905890aea5e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a8d2a921_0782520f","updated":"2023-11-20 13:23:10.000000000","message":"i want to get your opipion on the alternitive approch inline but over all im generally ok with this version","commit_id":"149385bbdbcecb5e8a5583cf8e4bf0d068a4d4b8"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d4b2aabf36f508ba7bdafd0ceabb8a51cf06d343","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"d3750629_58afe047","updated":"2023-11-23 09:20:26.000000000","message":"A well written patch. Thanks! Looks good to me.","commit_id":"03055de176c61cd41ec2488bf8ef5eb7abc9dff8"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c9f53709d2f87d9e3239801a4733508cc91176fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"2f049f8e_6f17df7a","updated":"2023-11-23 13:49:38.000000000","message":"recheck nova-lvm job passed once","commit_id":"03055de176c61cd41ec2488bf8ef5eb7abc9dff8"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"667e2b45400a366ae25b18bd5ebf4073eb83935e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ea8aa611_44469575","updated":"2023-11-23 10:46:51.000000000","message":"recheck nova-next job failure looks unrelated","commit_id":"03055de176c61cd41ec2488bf8ef5eb7abc9dff8"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0267bfab7aa206608a1f166446580905890aea5e","unresolved":true,"context_lines":[{"line_number":9023,"context_line":"                slots \u003d self._host.max_sev_guests"},{"line_number":9024,"context_line":"            else:"},{"line_number":9025,"context_line":"                slots \u003d db_const.MAX_INT"},{"line_number":9026,"context_line":""},{"line_number":9027,"context_line":"        return slots"},{"line_number":9028,"context_line":""},{"line_number":9029,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":6,"id":"27f149f9_f33994d0","line":9026,"updated":"2023-11-20 13:23:10.000000000","message":"we could log a warning or raise an error here in the case that the config option i higher then the hardware supports\nthat woudl require us to reorder this a bit.\n\n```\n     slots \u003d CONF.libvirt.num_memory_encrypted_guests\n        if not self._host.supports_amd_sev:\n            if slots and slots \u003e 0:\n                LOG.warning(\"Host is configured with \"\n                            \"libvirt.num_memory_encrypted_guests set to \"\n                            \"%d, but is not SEV-capable.\", slots)\n            return 0\n        # NOTE(tkajinam): Current nova supports SEV only so we ignore SEV-ES\n        if slots is None:\n            if self._host.max_sev_guests is not None:\n                slots \u003d self._host.max_sev_guests\n            else:\n                slots \u003d db_const.MAX_INT\n```\n\nto\n\n```\n  slots \u003d db_const.MAX_INT\n  if self._host.max_sev_guests is not None:\n      slots \u003d self._host.max_sev_guests\n  if CONF.libvirt.num_memory_encrypted_guests \u003e slots\n      LOG.warning(\"Host is configured with \"\n                  \"libvirt.num_memory_encrypted_guests set to \"\n                  \"%d, but the host only supports %d.\", \n                  CONF.libvirt.num_memory_encrypted_guests, slots)\n  slots \u003d min(slots, CONF.libvirt.num_memory_encrypted_guests)\n  LOG.debug(f\"sev slots enabeld {slots}\")\n  return slots\n          \n```","commit_id":"149385bbdbcecb5e8a5583cf8e4bf0d068a4d4b8"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d686dbd2bc6e59ec57cd0268489a76c7dd5a4214","unresolved":false,"context_lines":[{"line_number":9023,"context_line":"                slots \u003d self._host.max_sev_guests"},{"line_number":9024,"context_line":"            else:"},{"line_number":9025,"context_line":"                slots \u003d db_const.MAX_INT"},{"line_number":9026,"context_line":""},{"line_number":9027,"context_line":"        return slots"},{"line_number":9028,"context_line":""},{"line_number":9029,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":6,"id":"ae56ad8a_095aebc3","line":9026,"in_reply_to":"27f149f9_f33994d0","updated":"2023-11-20 14:33:45.000000000","message":"sounds good. I\u0027ve updated the implementation (with a few adjustments)","commit_id":"149385bbdbcecb5e8a5583cf8e4bf0d068a4d4b8"}],"nova/virt/libvirt/host.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"80a880b62ba7279a1bcb10ed80d63e04068687e0","unresolved":true,"context_lines":[{"line_number":163,"context_line":"        # memoized by various properties below"},{"line_number":164,"context_line":"        self._supports_amd_sev: ty.Optional[bool] \u003d None"},{"line_number":165,"context_line":"        self._max_sev_guests: ty.Optional[int] \u003d None"},{"line_number":166,"context_line":"        self._max_sev_es_guests: ty.Optional[int] \u003d None"},{"line_number":167,"context_line":"        self._supports_uefi: ty.Optional[bool] \u003d None"},{"line_number":168,"context_line":"        self._supports_secure_boot: ty.Optional[bool] \u003d None"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"608cd95a_9f89b724","line":166,"updated":"2023-11-23 10:35:59.000000000","message":"we dont actully need any of the max_sev_es code","commit_id":"864e6f4bca738e1bb748db3c1f90c018c389cbfd"}],"releasenotes/notes/max-sev-guests-e3da9adb3f75fbb8.yaml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0267bfab7aa206608a1f166446580905890aea5e","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    memory encrypted which can run concurrently in its compute host using"},{"line_number":6,"context_line":"    the new fields in libvirt API available since version 8.0.0."},{"line_number":7,"context_line":"    If ``[libvirt] num_memory_encrypted_guests`` option is explicitly set,"},{"line_number":8,"context_line":"    then this feature is skipped."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"07612ca5_fbd65129","line":8,"updated":"2023-11-20 13:23:10.000000000","message":"so skiping i think is mostly correct however i think we can do better in terms of ux. see my other comment inline.\n\nthere may be valid reasons to use the config option to set to to less then the avaibel capsity so i dont think we need to deprecate this config option as part of the auto detection.","commit_id":"149385bbdbcecb5e8a5583cf8e4bf0d068a4d4b8"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d686dbd2bc6e59ec57cd0268489a76c7dd5a4214","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    memory encrypted which can run concurrently in its compute host using"},{"line_number":6,"context_line":"    the new fields in libvirt API available since version 8.0.0."},{"line_number":7,"context_line":"    If ``[libvirt] num_memory_encrypted_guests`` option is explicitly set,"},{"line_number":8,"context_line":"    then this feature is skipped."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7f2b18e6_a85b93ec","line":8,"in_reply_to":"07612ca5_fbd65129","updated":"2023-11-20 14:33:45.000000000","message":"I thought leaving override with auto-detected values may be redundant but it might be useful as you said. I\u0027ve updated the change to address it.","commit_id":"149385bbdbcecb5e8a5583cf8e4bf0d068a4d4b8"}]}
