)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b0bfcbc237252738b71b13cf426400f021ac99a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"70e6b21f_b166da7b","updated":"2025-06-30 19:36:13.000000000","message":"tl;dr i want you to specify where you will do the trasnlation form the flavor extra spec to the placement query, there are two choice and both are fine.\n\nfor rest i want you to say if hw_memory_backend\u003danonymous will have any effect on the placement query. i see 2 optiosn 1 no effect 2 forbid filebacked memory and conditionally forbid host with COMPUTE_HUGE_PAGES based on if hw:mem_page_size request a small page or not there is a fucntion that will fiture that out for you that you can use in hardware.py\n\nyou can jsut look at the requested pagsize form _get_numa_pagesize_constraint\n\nhttps://github.com/openstack/nova/blob/43d57ae63d1ecda24d8707b4750d404daadc980f/nova/virt/hardware.py#L1314C5-L1367\n\nthe public interface that you can reuse is numa_get_constraints \nhttps://github.com/openstack/nova/blob/43d57ae63d1ecda24d8707b4750d404daadc980f/nova/virt/hardware.py#L2117C5-L2117C25\n\nthat takd the flavor and image metadta and give you back all the numa constreatis including the pagesize if there is a constrati on that.\n\nif the pagezise is anythin other then None you do not need to forbid hosts with COMPUTE_HUGE_PAGES\n\nif it is none you shoudl consdeir doign that.","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1eb59dd58f40bb66944ce0c67a1d675878c8a61e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ab430c7e_d20360b0","in_reply_to":"70e6b21f_b166da7b","updated":"2025-06-30 19:39:36.000000000","message":"i say consider doing that because mixing numa and non numa vms has never been supported.\n\nThis would enforce that properly but its possible that admins have misconfigured their OpenStack adn have vms in an unsupported state.\n\n\ni am also only suggesting adding COMPUTE_HUGE_PAGES as a condtional forbiden trait if you have  hw_memory_backend\u003danonymous\n\nif its not set at all then you shoudl not add any traits.\n\nIf you have explicitly opted in via the extra spec or image property, i think we should enforce the strict separation of numa and non-NUMA instances by default.\n\nbut i would like to see what others think on that topic.","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d30e251405820288d1eb17809de5fa496e939477","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1e60fd62_6f0988a2","updated":"2025-07-02 18:50:40.000000000","message":"i think this is mostly correct","commit_id":"2a2a07397c792e574849a82663a31b0eb4659652"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"dffcc5e2_28c30f5f","updated":"2025-12-03 15:44:28.000000000","message":"I have some design concerns, I wonder why we need a trait and I\u0027m afraid we could chnaging default behaviour for instances if we go on a wrong way.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"503f457c_456471db","updated":"2025-12-03 19:18:30.000000000","message":"im generally ok with this proposal.\n\ni have treid to anse most of sylvians question in line","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"}],"specs/2025.2/approved/memfd.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e8e76535e23f1b490ead73f1990a0ff45647a461","unresolved":true,"context_lines":[{"line_number":17,"context_line":"efficient memory sharing between processes to achieve optimal performance."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The primary objective of this specification is to introduce support for the"},{"line_number":20,"context_line":"`memfd` source type for file-backed memory for instances using shared memory."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Problem Description"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5d4c86c4_a6a30391","line":20,"range":{"start_line":20,"start_character":24,"end_line":20,"end_character":42},"updated":"2025-06-03 20:31:00.000000000","message":"so you shoudl avoid saying file-backed\n\nits technicall file descriptor backed which is technially not the same thing.\n\nwhen you use mem-fd the guest memory is not actuly backed by a file on a host filesystem.\n\nfile-bakced memroy in nova does use a real file on the host file system.\n(that can be ext4 or tempfs or other file systems but its diffent form mem-fd)","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"590d575cf8c80b0c5476d2f2a2b7e808193ede6c","unresolved":false,"context_lines":[{"line_number":17,"context_line":"efficient memory sharing between processes to achieve optimal performance."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The primary objective of this specification is to introduce support for the"},{"line_number":20,"context_line":"`memfd` source type for file-backed memory for instances using shared memory."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Problem Description"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"50dd139c_937f4054","line":20,"range":{"start_line":20,"start_character":24,"end_line":20,"end_character":42},"in_reply_to":"5d4c86c4_a6a30391","updated":"2025-06-30 14:09:12.000000000","message":"I use memory backing term which is also what is used by the libvirt doc.","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e8e76535e23f1b490ead73f1990a0ff45647a461","unresolved":true,"context_lines":[{"line_number":34,"context_line":"With the introduction of QEMU 5.0.0 and libvirt 6.9.0, file-backed memory can"},{"line_number":35,"context_line":"now be configured via file descriptors using Linux\u0027s `memfd` mechanism. This"},{"line_number":36,"context_line":"approach no longer requires NUMA-specific configuration and can be enabled on"},{"line_number":37,"context_line":"a per-instance basis."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Because `memfd` does not require any special host setup, it offers a simpler"},{"line_number":40,"context_line":"and more flexible alternative, making it an ideal candidate for the default"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9b04256c_8b68f8db","line":37,"updated":"2025-06-03 20:31:00.000000000","message":"so when we configure memfd we generate\n\n  \u003cmemoryBacking\u003e\n    \u003csource type\u003d\"memfd\"/\u003e\n    \u003caccess mode\u003d\"shared\"/\u003e\n  \u003c/memoryBacking\u003e\n  \n  \n  this gets translated to \n  \n  -object \u0027{\"qom-type\":\"memory-backend-memfd\",\"id\":\"pc.ram\",\"share\":true,\"x-use-canonical-path-for-ramblock-id\":false,\"size\":16777216000}\u0027\n  \n\n\nif you are usign hugpages of file backed memory libvirt generates the following qemu agument \n\n-object \u0027{\"qom-type\":\"memory-backend-file\",\"id\":\"pc.ram\",\"mem-path\":\"/dev/hugepages/libvirt/qemu/13-win11\",\"share\":true,\"x-use-canonical-path-for-ramblock-id\":false,\"prealloc\":true,\"size\":34359738368}\u0027\n\nthe diffenrt between what is generated for hugepages and generic file backed memroy is only the file sytem type\n\ni.e. hugetlbfs vs ext4 \n\nform my perspetive tis both confustin and incorrect to refer to memfd as a type of file backed memory since it does nto have a backing file and is not using the `memory-backend-file` type in qemu.\n\ni would perfer if you sued the term `file-descriptor accessible` memory to refer to the set of hugepages, file-backed, and memfd.\n\n\nnote that both `\u003csource type\u003d\"memfd\"/\u003e` and `\u003caccess mode\u003d\"shared\"/\u003e` are required otherwise the memfd file descriptor will nto be mappable by host process like virtio-fs deamon or ovs-dpdk.","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"590d575cf8c80b0c5476d2f2a2b7e808193ede6c","unresolved":false,"context_lines":[{"line_number":34,"context_line":"With the introduction of QEMU 5.0.0 and libvirt 6.9.0, file-backed memory can"},{"line_number":35,"context_line":"now be configured via file descriptors using Linux\u0027s `memfd` mechanism. This"},{"line_number":36,"context_line":"approach no longer requires NUMA-specific configuration and can be enabled on"},{"line_number":37,"context_line":"a per-instance basis."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Because `memfd` does not require any special host setup, it offers a simpler"},{"line_number":40,"context_line":"and more flexible alternative, making it an ideal candidate for the default"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6322ebfd_0469d444","line":37,"in_reply_to":"9b04256c_8b68f8db","updated":"2025-06-30 14:09:12.000000000","message":"I guess this is ok. Please let me know if I miss something.","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e8e76535e23f1b490ead73f1990a0ff45647a461","unresolved":true,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"This spec proposes introducing the following new traits:"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- `COMPUTE_MEMFD`: Indicates that QEMU ≥ 5.0.0 and libvirt ≥ 6.9.0 are"},{"line_number":68,"context_line":"  available, and thus `memfd` is supported."},{"line_number":69,"context_line":"  Note: This is supported by default. The trait is introduced to keep a"},{"line_number":70,"context_line":"  consistent approach for all memory backing settings."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"- `COMPUTE_HUGE_PAGES`: Indicates that huge pages are configured and usable"},{"line_number":73,"context_line":"  on this compute host."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f240ad9_7dbfce56","line":70,"range":{"start_line":67,"start_character":0,"end_line":70,"end_character":54},"updated":"2025-06-03 20:31:00.000000000","message":"normally i like doign this and i dont obejct to havign a new trait for this capablity sepsecially in synergy with the hugpe page trati.\n\ni will note that based on the version all host that meet or min libvirt and qemu version will support this.\n\nthe COMPUTE_HUGE_PAGES trait in particallar may sligtly optimsie placement reponces for guest that requrie that.","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"590d575cf8c80b0c5476d2f2a2b7e808193ede6c","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"This spec proposes introducing the following new traits:"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- `COMPUTE_MEMFD`: Indicates that QEMU ≥ 5.0.0 and libvirt ≥ 6.9.0 are"},{"line_number":68,"context_line":"  available, and thus `memfd` is supported."},{"line_number":69,"context_line":"  Note: This is supported by default. The trait is introduced to keep a"},{"line_number":70,"context_line":"  consistent approach for all memory backing settings."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"- `COMPUTE_HUGE_PAGES`: Indicates that huge pages are configured and usable"},{"line_number":73,"context_line":"  on this compute host."}],"source_content_type":"text/x-rst","patch_set":1,"id":"156b8b0d_6cf5e62f","line":70,"range":{"start_line":67,"start_character":0,"end_line":70,"end_character":54},"in_reply_to":"9f240ad9_7dbfce56","updated":"2025-06-30 14:09:12.000000000","message":"Acknowledged","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e8e76535e23f1b490ead73f1990a0ff45647a461","unresolved":true,"context_lines":[{"line_number":90,"context_line":"  \u003cmemoryBacking\u003e"},{"line_number":91,"context_line":"    \u003csource type\u003d\u0027memfd\u0027/\u003e"},{"line_number":92,"context_line":"    \u003caccess mode\u003d\u0027shared\u0027/\u003e"},{"line_number":93,"context_line":"  \u003c/memoryBacking\u003e"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Support for file-backed memory"},{"line_number":96,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6f3bae18_008bc144","line":93,"updated":"2025-06-03 20:31:00.000000000","message":"i would suggest this should be our default if unset.","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b0bfcbc237252738b71b13cf426400f021ac99a","unresolved":true,"context_lines":[{"line_number":90,"context_line":"  \u003cmemoryBacking\u003e"},{"line_number":91,"context_line":"    \u003csource type\u003d\u0027memfd\u0027/\u003e"},{"line_number":92,"context_line":"    \u003caccess mode\u003d\u0027shared\u0027/\u003e"},{"line_number":93,"context_line":"  \u003c/memoryBacking\u003e"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Support for file-backed memory"},{"line_number":96,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6e11bc36_be49d319","line":93,"in_reply_to":"070ee5c1_db51d41f","updated":"2025-06-30 19:36:13.000000000","message":"ok that works for me. we can make teh change gradual\n\ni woudl prefer to have better default in general but im fine with delayign that for a release or two.","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"590d575cf8c80b0c5476d2f2a2b7e808193ede6c","unresolved":true,"context_lines":[{"line_number":90,"context_line":"  \u003cmemoryBacking\u003e"},{"line_number":91,"context_line":"    \u003csource type\u003d\u0027memfd\u0027/\u003e"},{"line_number":92,"context_line":"    \u003caccess mode\u003d\u0027shared\u0027/\u003e"},{"line_number":93,"context_line":"  \u003c/memoryBacking\u003e"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Support for file-backed memory"},{"line_number":96,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":1,"id":"070ee5c1_db51d41f","line":93,"in_reply_to":"6f3bae18_008bc144","updated":"2025-06-30 14:09:12.000000000","message":"Let\u0027s see what others think about it. But honestly, I would rather take the two steps you proposed below and set it to default in 2026.1 or 2026.2.","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e8e76535e23f1b490ead73f1990a0ff45647a461","unresolved":true,"context_lines":[{"line_number":121,"context_line":"- `hw:memory-backend\u003dnone` (extra spec)"},{"line_number":122,"context_line":"- `hw_memory_backend\u003dnone` (image property)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"This results in no `\u003cmemoryBacking\u003e` section in the domain XML."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"Support for huge pages"},{"line_number":127,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7c0871b3_d8833634","line":124,"updated":"2025-06-03 20:31:00.000000000","message":"however fo upgrades if nto set we coudl record this as the value for exsing isntance that are not using filebacked memory or hugepages.\n\ni would alos prefer if you used `anonymous` rather then `none`\n\nthis avoid the confution betwen litral `none` and python None\nbut also more closely alignes to \nlibvirt source type  \u003csource type\u003d\"file|anonymous|memfd\"/\u003e\n\nhttps://libvirt.org/formatdomain.html#memory-backing","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"590d575cf8c80b0c5476d2f2a2b7e808193ede6c","unresolved":false,"context_lines":[{"line_number":121,"context_line":"- `hw:memory-backend\u003dnone` (extra spec)"},{"line_number":122,"context_line":"- `hw_memory_backend\u003dnone` (image property)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"This results in no `\u003cmemoryBacking\u003e` section in the domain XML."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"Support for huge pages"},{"line_number":127,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ef9101e7_380822f8","line":124,"in_reply_to":"7c0871b3_d8833634","updated":"2025-06-30 14:09:12.000000000","message":"Done","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e8e76535e23f1b490ead73f1990a0ff45647a461","unresolved":true,"context_lines":[{"line_number":135,"context_line":"the `COMPUTE_HUGE_PAGES` trait."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"A validation check will be introduced to warn users if both `hw:mem_page_size`"},{"line_number":138,"context_line":"and `hw:memory-backend` are set simultaneously, as they are incompatible."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Alternatives"},{"line_number":141,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d4041a2d_248c486d","line":138,"updated":"2025-06-03 20:31:00.000000000","message":"-1 this make hugepages sepcial in away that i woudl prefer to aovid.\n\nwe shoudl have \n\n`hw:memory-backend\u003dhugepage`\n\nthat shoudl translate to `hw:mem_page_size\u003dlarge`","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"85827284097b0a339656c497b02958af51e0dda6","unresolved":false,"context_lines":[{"line_number":135,"context_line":"the `COMPUTE_HUGE_PAGES` trait."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"A validation check will be introduced to warn users if both `hw:mem_page_size`"},{"line_number":138,"context_line":"and `hw:memory-backend` are set simultaneously, as they are incompatible."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Alternatives"},{"line_number":141,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"94a4b9d8_031d1050","line":138,"in_reply_to":"d4041a2d_248c486d","updated":"2025-06-30 14:09:33.000000000","message":"Done","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e8e76535e23f1b490ead73f1990a0ff45647a461","unresolved":true,"context_lines":[{"line_number":150,"context_line":"    \u003caccess mode\u003d\u0027shared\u0027/\u003e"},{"line_number":151,"context_line":"  \u003c/memoryBacking\u003e"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Users can opt out by setting `hw:memory-backend\u003dnone`."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Data Model Impact"},{"line_number":156,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d6d68230_084d859c","line":153,"updated":"2025-06-03 20:31:00.000000000","message":"this would be my preferted option with the opt out value beign anonymous\n\nlong term i think we shoudl defualt to memfd so if we dont do it this cycle i would liek to do it in 2026.1 or 2026.2.\n\nif the concern is the upgrade impact on existing instnace we can jsut have the comptue agent record hw_memory_backend\u003danonymous for existing isntnaces.\n\n\nyou will have to do that anyway for all instance when this is intoduced so that shoudl eb sufficent to allow use to move all new isntances to useing memfd and maintianing the legacy bevhior for existing isntance if that is desired.","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"590d575cf8c80b0c5476d2f2a2b7e808193ede6c","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    \u003caccess mode\u003d\u0027shared\u0027/\u003e"},{"line_number":151,"context_line":"  \u003c/memoryBacking\u003e"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Users can opt out by setting `hw:memory-backend\u003dnone`."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Data Model Impact"},{"line_number":156,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3579c9bf_f8b7aec0","line":153,"in_reply_to":"d6d68230_084d859c","updated":"2025-06-30 14:09:12.000000000","message":"Acknowledged","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e8e76535e23f1b490ead73f1990a0ff45647a461","unresolved":true,"context_lines":[{"line_number":196,"context_line":"--------------"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"There may be an upgrade impact if `memfd` becomes the default memory backend."},{"line_number":199,"context_line":"Users may need to explicitly opt out if this is not desired."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Implementation"},{"line_number":202,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bd6cc254_0bde6fd1","line":199,"updated":"2025-06-03 20:31:00.000000000","message":"we can mitigate that by making it the defautl only for new isntances and recording the equvlent verison for exsiting isntnace\n\ni.e.hw_memory_backign\u003d\"file|anonymous|hugepagees\" in the instance_system_metadta tables\n\nwe shoudl do that by default to allow use to change the default to memfd in teh future, i would prefer to do that now even fi we keep the default as anonymous","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"590d575cf8c80b0c5476d2f2a2b7e808193ede6c","unresolved":false,"context_lines":[{"line_number":196,"context_line":"--------------"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"There may be an upgrade impact if `memfd` becomes the default memory backend."},{"line_number":199,"context_line":"Users may need to explicitly opt out if this is not desired."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Implementation"},{"line_number":202,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"75a9f1e1_191cf11e","line":199,"in_reply_to":"bd6cc254_0bde6fd1","updated":"2025-06-30 14:09:12.000000000","message":"Acknowledged","commit_id":"0d500750d8e09b5b03a156866a9e3f4d2db46fe7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b0bfcbc237252738b71b13cf426400f021ac99a","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Because `memfd` does not require any special host setup, it offers a simpler"},{"line_number":40,"context_line":"and more flexible alternative, making it an ideal candidate for the default"},{"line_number":41,"context_line":"memory backing configuration."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Use Cases"},{"line_number":44,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"942561f3_22bbd4c9","line":41,"updated":"2025-06-30 19:36:13.000000000","message":"+1\n\nthis is lightly more of the `why` then the `what` then i woudl typically expect but it motivates the problem statement well.\n\ni woudl have focused a littel more on what is wrong with the existign alternivie\nnotable the lack of memory over subsctipiton and numa complexities with hugepages\n\nand the operational cost of file back memory since you need to use host aggreate ectra to properly partion your file backed node form you non file backed ones sicne it all or nothing in term fo all vms must use it on none of them can.\n\nthere is also a perfrmance improvment for not haveign a file backin with memfd vs file.","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"d423eec286594d7e0e0cdc7cb958d38e245874f4","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Because `memfd` does not require any special host setup, it offers a simpler"},{"line_number":40,"context_line":"and more flexible alternative, making it an ideal candidate for the default"},{"line_number":41,"context_line":"memory backing configuration."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Use Cases"},{"line_number":44,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"42400e5d_48544f41","line":41,"in_reply_to":"942561f3_22bbd4c9","updated":"2025-07-02 15:31:49.000000000","message":"What added these arguments. Thanks","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b0bfcbc237252738b71b13cf426400f021ac99a","unresolved":true,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"- As an operator, I want the flexibility to choose between different types of"},{"line_number":50,"context_line":"  memory backing (e.g., regular files or memfd)."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Proposed change"},{"line_number":53,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"4472a110_4051498d","line":51,"updated":"2025-06-30 19:36:13.000000000","message":"+1, you have captured the pain point here.","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"d423eec286594d7e0e0cdc7cb958d38e245874f4","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"- As an operator, I want the flexibility to choose between different types of"},{"line_number":50,"context_line":"  memory backing (e.g., regular files or memfd)."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Proposed change"},{"line_number":53,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"8349ff62_8866eee4","line":51,"in_reply_to":"4472a110_4051498d","updated":"2025-07-02 15:31:49.000000000","message":"Done","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b0bfcbc237252738b71b13cf426400f021ac99a","unresolved":true,"context_lines":[{"line_number":49,"context_line":"- As an operator, I want the flexibility to choose between different types of"},{"line_number":50,"context_line":"  memory backing (e.g., regular files or memfd)."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Proposed change"},{"line_number":53,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Description:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"03fd9a95_690b19c0","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":2},"updated":"2025-06-30 19:36:13.000000000","message":"Can you specify if you plan to use a placement request filter\n\nhttps://github.com/openstack/nova/blob/master/nova/scheduler/request_filter.py\nor are you going to exted the scudler utisl with a translate function\n\nhttps://github.com/openstack/nova/blob/43d57ae63d1ecda24d8707b4750d404daadc980f/nova/scheduler/utils.py#L300-L318\n\nwhich is called by ResourceRequest.from_request_spec\n\nthe orginally diffent between the two location was ResourceRequest was prefered when the translation shoudl not be configurable otherwise we prefered making it a request fileter in nova/scheduler/request_filter.py\n\nbut we kind of stopped makeign that distinction a long time ago so either is fine aslong as you way which one your going to use.\n\n\ni woudl suggest a new _translate_* method in from_request_groups is more correct but i alwasy have to find that every tiem it comes up\n\n\nrequqest filters are less correct in this case but perforamcne wise itt basicly the same and either localtion is valid.","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"d423eec286594d7e0e0cdc7cb958d38e245874f4","unresolved":false,"context_lines":[{"line_number":49,"context_line":"- As an operator, I want the flexibility to choose between different types of"},{"line_number":50,"context_line":"  memory backing (e.g., regular files or memfd)."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Proposed change"},{"line_number":53,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Description:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"cd308a89_702b2138","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":2},"in_reply_to":"03fd9a95_690b19c0","updated":"2025-07-02 15:31:49.000000000","message":"Done","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b0bfcbc237252738b71b13cf426400f021ac99a","unresolved":true,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"The `COMPUTE_MEM_BACKING_FILE` trait was introduced by:"},{"line_number":62,"context_line":"`libvirt-virtiofs-attach-manila-shares.html`__"},{"line_number":63,"context_line":"It indicates that the compute node is configured with `file_backed_memory`."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"This spec proposes introducing the following new traits:"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"51b5f078_5fae2237","line":63,"updated":"2025-06-30 19:36:13.000000000","message":"do we already recored this in the instance_system_metadta as a requried trait for instance currently on host with file backed memory.\n\nif we dont it might be nice to do that and also popuplate the instance system metadtaa with `hw_memory_backend\u003dfile.","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"d423eec286594d7e0e0cdc7cb958d38e245874f4","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"The `COMPUTE_MEM_BACKING_FILE` trait was introduced by:"},{"line_number":62,"context_line":"`libvirt-virtiofs-attach-manila-shares.html`__"},{"line_number":63,"context_line":"It indicates that the compute node is configured with `file_backed_memory`."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"This spec proposes introducing the following new traits:"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f00ed46_16dc64f1","line":63,"in_reply_to":"51b5f078_5fae2237","updated":"2025-07-02 15:31:49.000000000","message":"No, I did not do that.\nIt is a good idea to provide the hw_memory_backing in the metadata.\nAdding that in the spec.","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b0bfcbc237252738b71b13cf426400f021ac99a","unresolved":true,"context_lines":[{"line_number":67,"context_line":"- `COMPUTE_MEMFD`: Indicates that QEMU ≥ 5.0.0 and libvirt ≥ 6.9.0 are"},{"line_number":68,"context_line":"  available, and thus `memfd` is supported."},{"line_number":69,"context_line":"  Note: This is supported by default. The trait is introduced to keep a"},{"line_number":70,"context_line":"  consistent approach for all memory backing settings."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"- `COMPUTE_HUGE_PAGES`: Indicates that huge pages are configured and usable"},{"line_number":73,"context_line":"  on this compute host."}],"source_content_type":"text/x-rst","patch_set":2,"id":"b2a2856a_000e06fa","line":70,"updated":"2025-06-30 19:36:13.000000000","message":"+1 for COMPUTE_MEMFD\nit is an atirupte of the emulation capablites fo the hypervior so it should be COMPUTE_","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b0bfcbc237252738b71b13cf426400f021ac99a","unresolved":true,"context_lines":[{"line_number":69,"context_line":"  Note: This is supported by default. The trait is introduced to keep a"},{"line_number":70,"context_line":"  consistent approach for all memory backing settings."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"- `COMPUTE_HUGE_PAGES`: Indicates that huge pages are configured and usable"},{"line_number":73,"context_line":"  on this compute host."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":".. __: https://specs.openstack.org/openstack/nova-specs/specs/2023.2/approved/libvirt-virtiofs-attach-manila-shares.html"}],"source_content_type":"text/x-rst","patch_set":2,"id":"93540793_49f0d265","line":72,"updated":"2025-06-30 19:36:13.000000000","message":"Hugepages however, have a hardware requirement.\n\nso i woudl have expect HW_NUMA_HUGEPAGES or even per page size version HW_NUMA_HUGEPAGES_2MB or HW_NUMA_HUGEPAGES_1GB\n\nbut i guess if we look at https://specs.openstack.org/openstack/nova-specs/specs/victoria/approved/numa-topology-with-rps.html#numa-nodes-being-nested-resource-providers\n\nwe had planned to use MEMORY_PAGE_SIZE_SMALL and MEMORY_PAGE_SIZE_LARGE traits,\nwith \nCUSTOM_MEMORY_PAGE_SIZE_\u003csize\u003e traits\n\nim conflicted fi we shoudl use those traits instead.\n\nif we keep COMPUTE_HUGE_PAGES to indeicate that a host supprot hugpages \n\nwe can still implement https://specs.openstack.org/openstack/nova-specs/specs/victoria/approved/numa-topology-with-rps.htm\nin teh futre without needign to change anythign as the COMPUTE_HUGE_PAGES woudl only ever be used for the root provider.\n\nso with that context think I\u0027m okay with COMPUTE_HUGE_PAGES and only reporting it if the host has hugepages configured.","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"d423eec286594d7e0e0cdc7cb958d38e245874f4","unresolved":false,"context_lines":[{"line_number":69,"context_line":"  Note: This is supported by default. The trait is introduced to keep a"},{"line_number":70,"context_line":"  consistent approach for all memory backing settings."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"- `COMPUTE_HUGE_PAGES`: Indicates that huge pages are configured and usable"},{"line_number":73,"context_line":"  on this compute host."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":".. __: https://specs.openstack.org/openstack/nova-specs/specs/2023.2/approved/libvirt-virtiofs-attach-manila-shares.html"}],"source_content_type":"text/x-rst","patch_set":2,"id":"d42071c0_644aa5a2","line":72,"in_reply_to":"93540793_49f0d265","updated":"2025-07-02 15:31:49.000000000","message":"Done","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b0bfcbc237252738b71b13cf426400f021ac99a","unresolved":true,"context_lines":[{"line_number":122,"context_line":"- `hw:memory_backend\u003danonymous` (extra spec)"},{"line_number":123,"context_line":"- `hw_memory_backend\u003danonymous` (image property)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"This results in no `\u003cmemoryBacking\u003e` section in the domain XML."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Support for huge pages"},{"line_number":128,"context_line":"**********************"}],"source_content_type":"text/x-rst","patch_set":2,"id":"86709b06_ed47f890","line":125,"updated":"2025-06-30 19:36:13.000000000","message":"will an explcit use of hw_memory_backend\u003danonymous generate forbdine traits\ni assume no hw_memory_backend\u003danonymous will result in no required or forbidn triats being added.\n\ni ask becasue it could generate a forbidn triat for file backed memroy and maybe hugepages although i would not do that for hugepages.\n\n\nas specified COMPUTE_HUGE_PAGES means has huagepages aviabel and can supprot them\nbut it valid to have hugepage and non hugepage guest on the same host\nprovided the non hugepage vms explcity has hw:mem_page_size\u003dsmall.\n\nperhaps the correct behavior is hw_memory_backend\u003danonymous imples \n\ntraits:COMPUTE_MEM_BACKING_FILE\u003dforbdiden in all casues but\nit only imples traits:COMPUTE_HUGE_PAGES\u003dforbdinen if no page size is set.\n\nthat woudl be the correct behior i think but i would like to see what others thing.\n\nwe do not supprot mixing numa and non numa vms on the same host so you cannot have annoums backign guest on teh same host as a hugepage guest unless you expclity enable numa aware small pages with hw:mem_page_size\u003dsmall or hw:mem_page_size\u003d4(k) assuming the default small page size is 4k.\n\n\nWe cannot make  hw_memory_backend\u003danonymous imply hw:mem_page_size\u003dsmall because NUMA-affined, small pages cannot be oversubscribed where as non-NUMA anonymous pages can be.\n\nif we wanted to have an analagus value for  hw:mem_page_size\u003dsmall\nit would be somethign like hw:memory_backend\u003dnuma_node` but i dont really want to add that now and if we did in the futrue i woudl want ti to bascilly be\n\nhw:memory_backend\u003dmemfd + hw:mem-page-size\u003dsmall.\n\nfor now we can jsut add both if we want that.","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"d423eec286594d7e0e0cdc7cb958d38e245874f4","unresolved":false,"context_lines":[{"line_number":122,"context_line":"- `hw:memory_backend\u003danonymous` (extra spec)"},{"line_number":123,"context_line":"- `hw_memory_backend\u003danonymous` (image property)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"This results in no `\u003cmemoryBacking\u003e` section in the domain XML."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Support for huge pages"},{"line_number":128,"context_line":"**********************"}],"source_content_type":"text/x-rst","patch_set":2,"id":"2fdedd01_9155b9c8","line":125,"in_reply_to":"86709b06_ed47f890","updated":"2025-07-02 15:31:49.000000000","message":"Done","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b0bfcbc237252738b71b13cf426400f021ac99a","unresolved":true,"context_lines":[{"line_number":197,"context_line":"--------------"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"There may be an upgrade impact if `memfd` becomes the default memory backend."},{"line_number":200,"context_line":"Users may need to explicitly opt out if this is not desired."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Implementation"},{"line_number":203,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7953a69e_21fb6832","line":200,"updated":"2025-06-30 19:36:13.000000000","message":"Here\u0027s a corrected version of your text, made more concise and clear, suitable for a Gerrit review comment:\n\nI think I\u0027m generally okay with the spec, but it needs more work.\n\nCan you specify how the upgrade will work?\n\nWith the libvirt driver, should we unconditionally report the new traits if hugepages are available or memfd is supported?\n\nIf the reporting is configurable, we need to make the query configurable. However, if we don\u0027t make the reporting conditional, we can avoid that.\n\nWe would need a config option for this, like:\n[https://docs.openstack.org/nova/latest/configuration/config.html#filter_scheduler.pci_in_placement](https://docs.openstack.org/nova/latest/configuration/config.html#filter_scheduler.pci_in_placement)\nor\n[https://docs.openstack.org/nova/latest/configuration/config.html#scheduler.query_placement_for_image_type_support](https://docs.openstack.org/nova/latest/configuration/config.html#scheduler.query_placement_for_image_type_support)\n\nWe also need to consider how this works in a mixed virt driver environment.\n\nSince the default is anonymous, any instance without anything set will not result in anything being added to the query. So, I think it would be okay to have the translation enabled by default.\n\nThe question is, do we need to allow opting out? I think in this case, we do not.\n\nthat means to avoid upgrade impact the trait reporting in the libvir driver should not be configurable.\n\nif you agree with that then you can resolve this comment.\n\nthere is no upgrade impacat for exsiting instance and you would opt into this feature by using the new extra spec. in a rooling upgrade envionment the use of the new flavor extra spec will atuomaoticly target the upgraded hosts.\n\n\nexisting flaovr using traits:COMPUTE_MEM_BACKING_FILE\u003drequired can continue to do so.\n\n\nwithout changign the default it does mean any existign instance using manilla shares wont benifit but i think that ok.","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"d423eec286594d7e0e0cdc7cb958d38e245874f4","unresolved":false,"context_lines":[{"line_number":197,"context_line":"--------------"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"There may be an upgrade impact if `memfd` becomes the default memory backend."},{"line_number":200,"context_line":"Users may need to explicitly opt out if this is not desired."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"Implementation"},{"line_number":203,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"47c730e1_89b80285","line":200,"in_reply_to":"7953a69e_21fb6832","updated":"2025-07-02 15:31:49.000000000","message":"Done","commit_id":"d213df3c24c300a1738c3b3338815fdbdcf8e03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d30e251405820288d1eb17809de5fa496e939477","unresolved":true,"context_lines":[{"line_number":49,"context_line":"  nodes—since it\u0027s an all-or-nothing setup at the host level."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Additionally, memfd offers better performance than traditional file-backed"},{"line_number":52,"context_line":"memory due to the absence of filesystem overhead."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Use Cases"},{"line_number":55,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"eb96470f_12df65c6","line":52,"updated":"2025-07-02 18:50:40.000000000","message":"+1","commit_id":"2a2a07397c792e574849a82663a31b0eb4659652"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d30e251405820288d1eb17809de5fa496e939477","unresolved":false,"context_lines":[{"line_number":91,"context_line":"trait filters, ensuring that instances are placed only on compatible hosts."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"See the sections below for details on which hosts will be considered or"},{"line_number":94,"context_line":"rejected based on the selected memory backing configuration."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Support for memfd-backed memory"},{"line_number":97,"context_line":"*******************************"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7cb6bb62_67ee2204","line":94,"updated":"2025-07-02 18:50:40.000000000","message":"+1","commit_id":"2a2a07397c792e574849a82663a31b0eb4659652"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d30e251405820288d1eb17809de5fa496e939477","unresolved":true,"context_lines":[{"line_number":115,"context_line":"- Hosts with the `COMPUTE_MEMFD` trait will be selected."},{"line_number":116,"context_line":"- Hosts with the `COMPUTE_MEM_BACKING_FILE` trait will be rejected."},{"line_number":117,"context_line":"- Hosts with the `COMPUTE_HUGE_PAGES` trait will be selected only if the"},{"line_number":118,"context_line":"  instance explicitly requests a hugepage-based memory configuration (e.g.,"},{"line_number":119,"context_line":"  hw:mem_page_size\u003d1GB or 2MB)."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Support for file-backed memory"},{"line_number":122,"context_line":"******************************"}],"source_content_type":"text/x-rst","patch_set":3,"id":"023efe22_1d28f06f","line":119,"range":{"start_line":118,"start_character":2,"end_line":119,"end_character":31},"updated":"2025-07-02 18:50:40.000000000","message":"```suggestion\n  instance explicitly requests a small pages (e.g.,\n  hw:mem_page_size\u003dsmall or 4k).\n```","commit_id":"2a2a07397c792e574849a82663a31b0eb4659652"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"67643cff9d5a49c66608e8c1a99ec00fe9bc09d8","unresolved":true,"context_lines":[{"line_number":115,"context_line":"- Hosts with the `COMPUTE_MEMFD` trait will be selected."},{"line_number":116,"context_line":"- Hosts with the `COMPUTE_MEM_BACKING_FILE` trait will be rejected."},{"line_number":117,"context_line":"- Hosts with the `COMPUTE_HUGE_PAGES` trait will be selected only if the"},{"line_number":118,"context_line":"  instance explicitly requests a hugepage-based memory configuration (e.g.,"},{"line_number":119,"context_line":"  hw:mem_page_size\u003d1GB or 2MB)."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Support for file-backed memory"},{"line_number":122,"context_line":"******************************"}],"source_content_type":"text/x-rst","patch_set":3,"id":"d9588fee_ecd29fff","line":119,"range":{"start_line":118,"start_character":2,"end_line":119,"end_character":31},"in_reply_to":"023efe22_1d28f06f","updated":"2025-07-02 18:52:19.000000000","message":"context you cant do memfd and hugepags as far as im aware.\n\nbut result in a file descriptor to the memory but hugepages need to create a\nfile on a hugetlbfs filesystem.","commit_id":"2a2a07397c792e574849a82663a31b0eb4659652"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d30e251405820288d1eb17809de5fa496e939477","unresolved":true,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"- Only hosts with the `COMPUTE_MEMFD` trait will be selected."},{"line_number":187,"context_line":"- Hosts with `COMPUTE_HUGE_PAGES` or `COMPUTE_MEM_BACKING_FILE` will be"},{"line_number":188,"context_line":"  excluded"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Metadata"}],"source_content_type":"text/x-rst","patch_set":3,"id":"0e616ef6_98bcefa0","line":188,"updated":"2025-07-02 18:50:40.000000000","message":"I think that is ok.\n\nalthough  COMPUTE_HUGE_PAGES host are ok to allow if hw:mem_page_size\u003dsmall\n\nthat is true for anonymous and memfd","commit_id":"2a2a07397c792e574849a82663a31b0eb4659652"}],"specs/2026.1/approved/memfd.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Enabling memfd Support in OpenStack Nova"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Spec for blueprint: memfd-support"},{"line_number":12,"context_line":"https://blueprints.launchpad.net/nova/+spec/memfd-support"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c4bc189c_97ac2887","line":9,"range":{"start_line":9,"start_character":40,"end_line":9,"end_character":42},"updated":"2025-12-03 15:44:28.000000000","message":"femtonit: not needed.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":8,"context_line":"Enabling memfd Support in OpenStack Nova"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Spec for blueprint: memfd-support"},{"line_number":12,"context_line":"https://blueprints.launchpad.net/nova/+spec/memfd-support"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"cb8eebe8_5010c3a2","line":11,"updated":"2025-12-03 15:44:28.000000000","message":"not needed line, but meh.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":17,"context_line":"efficient memory sharing between processes to achieve optimal performance."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The primary objective of this specification is to introduce support for the"},{"line_number":20,"context_line":"`memfd` source type for memory backing for instances using shared memory."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Problem description"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"528f8b2a_1eea3993","line":20,"updated":"2025-12-03 15:44:28.000000000","message":"you should say this would only be supported by the libvirt driver.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":25,"context_line":"Currently, Nova supports two mechanisms for configuring shared memory:"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"- Huge pages"},{"line_number":28,"context_line":"- File-backed memory"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"File-backed memory involves using a regular file on the compute node, and this"},{"line_number":31,"context_line":"feature is configured at the compute service level (i.e., it applies to all"}],"source_content_type":"text/x-rst","patch_set":4,"id":"240d8158_268e39d3","line":28,"updated":"2025-12-03 15:44:28.000000000","message":"AFAIK, this is only supported by the libvirt driver hence why I\u0027m asking the above","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":true,"context_lines":[{"line_number":25,"context_line":"Currently, Nova supports two mechanisms for configuring shared memory:"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"- Huge pages"},{"line_number":28,"context_line":"- File-backed memory"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"File-backed memory involves using a regular file on the compute node, and this"},{"line_number":31,"context_line":"feature is configured at the compute service level (i.e., it applies to all"}],"source_content_type":"text/x-rst","patch_set":4,"id":"18c3a5c7_64a544db","line":28,"in_reply_to":"240d8158_268e39d3","updated":"2025-12-03 19:18:30.000000000","message":"am VMware has there own form of file backed memory and hyperv supported hugepages i think in an inderict way but we deleted that driver.\n\nso today i think your correct this only applies to the libvirt driver.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":32,"context_line":"instances on the host)."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"With the introduction of QEMU 5.0.0 and libvirt 6.9.0, memory backing can"},{"line_number":35,"context_line":"now be configured via file descriptors using Linux\u0027s `memfd` mechanism. This"},{"line_number":36,"context_line":"approach no longer requires NUMA-specific configuration and can be enabled on"},{"line_number":37,"context_line":"a per-instance basis."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Because `memfd` does not require any special host setup, it offers a simpler"}],"source_content_type":"text/x-rst","patch_set":4,"id":"351479c5_32ddf664","line":36,"range":{"start_line":35,"start_character":72,"end_line":36,"end_character":56},"updated":"2025-12-03 15:44:28.000000000","message":"but file-backed memory wasn\u0027t also requiring NUMA config, right?","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":true,"context_lines":[{"line_number":32,"context_line":"instances on the host)."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"With the introduction of QEMU 5.0.0 and libvirt 6.9.0, memory backing can"},{"line_number":35,"context_line":"now be configured via file descriptors using Linux\u0027s `memfd` mechanism. This"},{"line_number":36,"context_line":"approach no longer requires NUMA-specific configuration and can be enabled on"},{"line_number":37,"context_line":"a per-instance basis."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Because `memfd` does not require any special host setup, it offers a simpler"}],"source_content_type":"text/x-rst","patch_set":4,"id":"abb7873f_8d4df8ee","line":36,"range":{"start_line":35,"start_character":72,"end_line":36,"end_character":56},"in_reply_to":"351479c5_32ddf664","updated":"2025-12-03 19:18:30.000000000","message":"correct but memfd does not require creatign a file on disk for the qemu guest memroy\n\nmemfd just allocate a shared file descriptor pointing to the guest memory in ram\n\nits much less overhead performance wise.\n\n\nwhen memfd was first intoduced in qemu and as a result libvifrt it required the vm to have a explict numa toploty. that requiremetn was later remvoed\n\nthat what this is trying to convay using memfd nolonger require numa so you can freely use it for all vm without the perfroamce it of file backed memroy or the numa requirement of hugepages.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":78,"context_line":"- `COMPUTE_MEMFD`: Indicates that QEMU ≥ 5.0.0 and libvirt ≥ 6.9.0 are"},{"line_number":79,"context_line":"  available, and thus `memfd` is supported."},{"line_number":80,"context_line":"  Note: This is supported by default. The trait is introduced to keep a"},{"line_number":81,"context_line":"  consistent approach for all memory backing settings."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"- `COMPUTE_HUGE_PAGES`: Indicates that huge pages are configured and usable"},{"line_number":84,"context_line":"  on this compute host."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5bccdd1b_4938d86f","line":81,"updated":"2025-12-03 15:44:28.000000000","message":"not sure we need this as you say we already support libvirt-6.9.0 from Bobcat : https://docs.openstack.org/nova/latest/reference/libvirt-distro-support-matrix.html#min-libvirt-qemu-version-and-next-min-libvirt-qemu-version-table","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":true,"context_lines":[{"line_number":78,"context_line":"- `COMPUTE_MEMFD`: Indicates that QEMU ≥ 5.0.0 and libvirt ≥ 6.9.0 are"},{"line_number":79,"context_line":"  available, and thus `memfd` is supported."},{"line_number":80,"context_line":"  Note: This is supported by default. The trait is introduced to keep a"},{"line_number":81,"context_line":"  consistent approach for all memory backing settings."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"- `COMPUTE_HUGE_PAGES`: Indicates that huge pages are configured and usable"},{"line_number":84,"context_line":"  on this compute host."}],"source_content_type":"text/x-rst","patch_set":4,"id":"395d5c8f_fd183366","line":81,"in_reply_to":"5bccdd1b_4938d86f","updated":"2025-12-03 19:18:30.000000000","message":"it was required when this was orginally propsoed but your correct its not strictly required anymore.\n\nalthough ti does help during upgrades.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":99,"context_line":"To explicitly select `memfd` as the memory backend, users can specify either:"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"- `hw:memory_backend\u003dmemfd` as a flavor extra spec"},{"line_number":102,"context_line":"- `hw_memory_backend\u003dmemfd` as an image property"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"This will result in the following being added to the instance\u0027s domain XML:"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"a440d270_b98dea4c","line":102,"updated":"2025-12-03 15:44:28.000000000","message":"so they would need to modify their flavors in order to support memfd while all the supported hosts could be able to use it ?","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":true,"context_lines":[{"line_number":99,"context_line":"To explicitly select `memfd` as the memory backend, users can specify either:"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"- `hw:memory_backend\u003dmemfd` as a flavor extra spec"},{"line_number":102,"context_line":"- `hw_memory_backend\u003dmemfd` as an image property"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"This will result in the following being added to the instance\u0027s domain XML:"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"71281145_97f8cd1e","line":102,"in_reply_to":"a440d270_b98dea4c","updated":"2025-12-03 19:18:30.000000000","message":"i proposed making this the new default last cycle\n\nrene was reluctatnt to minimise any upgrade impact that could arise but personly\ni woudl add the new value btu treat hw:memory_backend\u003dmemfd as the default for new vms.\n\nfor existing vm we coudl use hw:memory_backend\u003dannon","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":113,"context_line":"Host selection:"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"- Hosts with the `COMPUTE_MEMFD` trait will be selected."},{"line_number":116,"context_line":"- Hosts with the `COMPUTE_MEM_BACKING_FILE` trait will be rejected."},{"line_number":117,"context_line":"- Hosts with the `COMPUTE_HUGE_PAGES` trait will be selected only if the"},{"line_number":118,"context_line":"  instance explicitly requests a hugepage-based memory configuration (e.g.,"},{"line_number":119,"context_line":"  hw:mem_page_size\u003d1GB or 2MB)."}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa91f953_07986ae3","line":116,"updated":"2025-12-03 15:44:28.000000000","message":"so they will need to resize their instances, right ? ough.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":116,"context_line":"- Hosts with the `COMPUTE_MEM_BACKING_FILE` trait will be rejected."},{"line_number":117,"context_line":"- Hosts with the `COMPUTE_HUGE_PAGES` trait will be selected only if the"},{"line_number":118,"context_line":"  instance explicitly requests a hugepage-based memory configuration (e.g.,"},{"line_number":119,"context_line":"  hw:mem_page_size\u003d1GB or 2MB)."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Support for file-backed memory"},{"line_number":122,"context_line":"******************************"}],"source_content_type":"text/x-rst","patch_set":4,"id":"49da44f5_505f7a1a","line":119,"updated":"2025-12-03 15:44:28.000000000","message":"I have a huge concern with that, see below L160","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Host selection:"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"- Only hosts with the `COMPUTE_MEM_BACKING_FILE` trait will be selected."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Support for huge pages"},{"line_number":145,"context_line":"**********************"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0ef68fa8_c3ad9d4b","line":142,"updated":"2025-12-03 15:44:28.000000000","message":"well, support for file-backed memory wouldn\u0027t be changed, right?","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":true,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Host selection:"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"- Only hosts with the `COMPUTE_MEM_BACKING_FILE` trait will be selected."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Support for huge pages"},{"line_number":145,"context_line":"**********************"}],"source_content_type":"text/x-rst","patch_set":4,"id":"05efe230_b70ea6e3","line":142,"in_reply_to":"0ef68fa8_c3ad9d4b","updated":"2025-12-03 19:18:30.000000000","message":"no change correct.\n\ntoday there isnt a simple way to schdule to a host with file backed memory.\n\nin fact before the manilla shared feature there was not way to knwo if a host has file backed memory or not\n\nnow we report a tarit when its enabled so tyou could use requried or forbidine traits but this is clean IMO\n\nwe are creatign a common way to request different memory backend via\n\nhw:memory_backend regardless of the type which is a nice UX impovemnet but it does not focue anyoen to use it.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Host selection:"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"- Only hosts with the `COMPUTE_HUGE_PAGES` trait will be selected."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9266aedd_102cb969","line":160,"updated":"2025-12-03 15:44:28.000000000","message":"that\u0027s a bit confusing, please would need to modify their flavors if they would continue to use hugepages, that\u0027s an upgrade concern to me.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":true,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Host selection:"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"- Only hosts with the `COMPUTE_HUGE_PAGES` trait will be selected."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"44b80f55_6cef0f6e","line":160,"in_reply_to":"9266aedd_102cb969","updated":"2025-12-03 19:18:30.000000000","message":"no they wont\n\nthis is just an alternitve to using hw:mem_page_size\u003dlarge to keep all memory backend mode constent.\n\n\nthere is no requirement ot modfy there flavor or to requst the trait\n\nit just allow placment to prefilter all teh host that dont have hugepages so that the numa toploty filter has less work to do if you update your flavor or include the required triat","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  The `MEMORY_PAGE_SIZE_SMALL` and `MEMORY_PAGE_SIZE_LARGE` traits, as"},{"line_number":166,"context_line":"  described in this `specification`__, could be introduced later as child"},{"line_number":167,"context_line":"  traits of `COMPUTE_HUGE_PAGES`."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":".. __: https://specs.openstack.org/openstack/nova-specs/specs/victoria/approved/numa-topology-with-rps.html#numa-nodes-being-nested-resource-providers"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c1cf7c37_ceb182f9","line":167,"updated":"2025-12-03 19:18:30.000000000","message":"right to COMPUTE_HUGE_PAGES will be reproted on the root provider\n\nand if we ever model numa in placement the child providers will have the other traits for the diffent page size inventories.\n\nso there is no conflcit here","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":179,"context_line":"- `hw:memory_backend\u003danonymous` (extra spec)"},{"line_number":180,"context_line":"- `hw_memory_backend\u003danonymous` (image property)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"This results in no `\u003cmemoryBacking\u003e` section in the domain XML."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Host selection:"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"51144063_e78ec7a2","line":182,"updated":"2025-12-03 15:44:28.000000000","message":"are you saying that all default instances that don\u0027t care about shared memory will need to be defined as anonymous in their extraspec or image prop ?","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":true,"context_lines":[{"line_number":179,"context_line":"- `hw:memory_backend\u003danonymous` (extra spec)"},{"line_number":180,"context_line":"- `hw_memory_backend\u003danonymous` (image property)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"This results in no `\u003cmemoryBacking\u003e` section in the domain XML."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Host selection:"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"c5e59530_d4acb954","line":182,"in_reply_to":"51144063_e78ec7a2","updated":"2025-12-03 19:18:30.000000000","message":"no this is providing an explict way to request the current behavior hw:memory_backend\u003danonymous\n\ni woudl like to eventually chagne the default form anonymous to memfd\nwhen a memory_backend is not reqeusted in the flavor or image.\n\nwhat this is saying is the default behvior will remain the same as it is today\nto elimiate upgrade impact of this propoal.\n\nthe only reaso to ever use hw:memory_backend\u003danonymous is if you never want to use a diffent backend if we change the default in the future.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Host selection:"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"- Only hosts with the `COMPUTE_MEMFD` trait will be selected."},{"line_number":187,"context_line":"- Hosts with `COMPUTE_HUGE_PAGES` or `COMPUTE_MEM_BACKING_FILE` will be"},{"line_number":188,"context_line":"  excluded"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"a36c204e_2f6e1b80","line":186,"updated":"2025-12-03 15:44:28.000000000","message":"this is confusing : if I don\u0027t want to have memory-backed storage, why should I only used memfd supported hosts ?","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":true,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Host selection:"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"- Only hosts with the `COMPUTE_MEMFD` trait will be selected."},{"line_number":187,"context_line":"- Hosts with `COMPUTE_HUGE_PAGES` or `COMPUTE_MEM_BACKING_FILE` will be"},{"line_number":188,"context_line":"  excluded"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"05caf122_0771e002","line":186,"in_reply_to":"a36c204e_2f6e1b80","updated":"2025-12-03 19:18:30.000000000","message":"the spec currently say we will always report COMPUTE_MEMFD for upgraded compute because our min libvirt will support it.\n\nthis section only applies if you explicit opt into the new functionality by modifying your flavors.\n\nwhat the constraints fo require COMPUTE_MEMFD and forbid COMPUTE_MEM_BACKING_FILE\n\nexpress is i cannot schedule a vm that request annomous pages to a host that only supprot file backed memroy. that checks out an iss correc\n\n\nforbiding COMPUTE_HUGE_PAGES is only corect if the vm does not have an implict or explcit numa toplogy.\n\nwe do not supprot and never have supprot mixing numa and non numa vms\n\nso if you ask for hw_memory_backend\u003danonymous\n\nthat vm shoudl not be scdhued to a host with hugepages unless you also have hw:mem_page_size\u003dsmall to enabel numa aware memory tracking.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":194,"context_line":"The hw_memory_backend option and its configured value will be exposed in"},{"line_number":195,"context_line":"the instance metadata. This allows users to understand how the guest memory"},{"line_number":196,"context_line":"is backed on the host, which can help with performance analysis, debugging,"},{"line_number":197,"context_line":"and adapting application behavior based on the memory characteristics."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"edef5bec_77a0f50f","line":197,"updated":"2025-12-03 15:44:28.000000000","message":"this is security-debatable and I\u0027d like to know the new metadata key and its values you would propose for endusers.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":true,"context_lines":[{"line_number":194,"context_line":"The hw_memory_backend option and its configured value will be exposed in"},{"line_number":195,"context_line":"the instance metadata. This allows users to understand how the guest memory"},{"line_number":196,"context_line":"is backed on the host, which can help with performance analysis, debugging,"},{"line_number":197,"context_line":"and adapting application behavior based on the memory characteristics."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"44dd1467_54daf00a","line":197,"in_reply_to":"edef5bec_77a0f50f","updated":"2025-12-03 19:18:30.000000000","message":"ya i woudl not do this if im being honst\n\ni coud see recording a value for existing instance in the instance_system_metadata\nif we are changing the default in the future and don\u0027t want to do that for existing instance but i would not expose it in the metadata API\n\nuser can jsut look at the flavor extra spec in the server show response or image proprieties.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":false,"context_lines":[{"line_number":210,"context_line":"    \u003caccess mode\u003d\u0027shared\u0027/\u003e"},{"line_number":211,"context_line":"  \u003c/memoryBacking\u003e"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Users can opt out by setting `hw:memory_backend\u003danonymous`."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"Data model impact"},{"line_number":216,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fc328be1_59d454a0","line":213,"updated":"2025-12-03 19:18:30.000000000","message":"this was my preference the last few cycles\n\nbut i also said im Ok to change this in a future release after we have the initial feature complete.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":240,"context_line":"Performance Impact"},{"line_number":241,"context_line":"------------------"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"None."},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Other deployer impact"},{"line_number":246,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7e9470ed_61bc751d","line":243,"updated":"2025-12-03 15:44:28.000000000","message":"I thought you said memfd performance was better than file-backed memory","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":true,"context_lines":[{"line_number":240,"context_line":"Performance Impact"},{"line_number":241,"context_line":"------------------"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"None."},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Other deployer impact"},{"line_number":246,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"8cbd882d_cf2f5823","line":243,"in_reply_to":"7e9470ed_61bc751d","updated":"2025-12-03 19:18:30.000000000","message":"it is but we dont use file backed by default, its infact very rarely used as far as i am aware so in general there will be no performace impact.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":245,"context_line":"Other deployer impact"},{"line_number":246,"context_line":"---------------------"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"None."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"Developer impact"},{"line_number":251,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f0d04f20_b0b1216e","line":248,"updated":"2025-12-03 15:44:28.000000000","message":"well, you\u0027re telling about flavors and images, maybe deployers would need to know they need to resize or rebuild their instances...","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":true,"context_lines":[{"line_number":245,"context_line":"Other deployer impact"},{"line_number":246,"context_line":"---------------------"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"None."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"Developer impact"},{"line_number":251,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a17fc7d_2ce503e8","line":248,"in_reply_to":"f0d04f20_b0b1216e","updated":"2025-12-03 19:18:30.000000000","message":"given those are optional if you want to opt into the new feature None is not incorrect but we could enhacne this with guidnace on that if you think its requried.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":266,"context_line":"- No upgrade impact: Only flavors that explicitly use the new hw_memory_backend"},{"line_number":267,"context_line":"  extra spec will trigger the new trait-based scheduling logic."},{"line_number":268,"context_line":"- Opt-in behavior: The feature is activated via extra specs. During rolling"},{"line_number":269,"context_line":"  upgrades, only upgraded hosts will be considered for instances using it."},{"line_number":270,"context_line":"- No need to opt out: Because the default remains anonymous, there’s no"},{"line_number":271,"context_line":"  changed behavior unless explicitly requested."},{"line_number":272,"context_line":"- Compatibility preserved: Existing configurations that use"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b5eb760c_175f0e2b","line":269,"range":{"start_line":269,"start_character":12,"end_line":269,"end_character":31},"updated":"2025-12-03 15:44:28.000000000","message":"I don\u0027t see the need of a trait if we can just check that we need to use upgraded hosts...","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":268,"context_line":"- Opt-in behavior: The feature is activated via extra specs. During rolling"},{"line_number":269,"context_line":"  upgrades, only upgraded hosts will be considered for instances using it."},{"line_number":270,"context_line":"- No need to opt out: Because the default remains anonymous, there’s no"},{"line_number":271,"context_line":"  changed behavior unless explicitly requested."},{"line_number":272,"context_line":"- Compatibility preserved: Existing configurations that use"},{"line_number":273,"context_line":"  traits:COMPUTE_MEM_BACKING_FILE\u003drequired will continue to function without"},{"line_number":274,"context_line":"  changes."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a7e9996_e7c8c627","line":271,"updated":"2025-12-03 15:44:28.000000000","message":"Well, maybe I misunderstood but it appears to me that you have to opt into anonymous memory by setting a flavor extraspec. Am I wrong?","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":true,"context_lines":[{"line_number":268,"context_line":"- Opt-in behavior: The feature is activated via extra specs. During rolling"},{"line_number":269,"context_line":"  upgrades, only upgraded hosts will be considered for instances using it."},{"line_number":270,"context_line":"- No need to opt out: Because the default remains anonymous, there’s no"},{"line_number":271,"context_line":"  changed behavior unless explicitly requested."},{"line_number":272,"context_line":"- Compatibility preserved: Existing configurations that use"},{"line_number":273,"context_line":"  traits:COMPUTE_MEM_BACKING_FILE\u003drequired will continue to function without"},{"line_number":274,"context_line":"  changes."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5af6603b_722569fe","line":271,"in_reply_to":"5a7e9996_e7c8c627","updated":"2025-12-03 19:18:30.000000000","message":"you are mistaken it will continue to be the default at least in this cycle\n\ni want ot change that eventualy as i siad above as i belie memfd is a better default but im fine with waiting till 2027.1 or whenever to do that after this is supproted.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":273,"context_line":"  traits:COMPUTE_MEM_BACKING_FILE\u003drequired will continue to function without"},{"line_number":274,"context_line":"  changes."},{"line_number":275,"context_line":"- Manila users: Manila share-based workloads will not automatically benefit"},{"line_number":276,"context_line":"  from this change, which is acceptable given their distinct requirements."},{"line_number":277,"context_line":""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":4,"id":"14a29f51_aca0c1be","line":276,"updated":"2025-12-03 15:44:28.000000000","message":"well, manila currently uses file-backed memory so that\u0027s related to the previous point, right?","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ad7b65c720f71740d02fa568a822a73420374ae1","unresolved":true,"context_lines":[{"line_number":273,"context_line":"  traits:COMPUTE_MEM_BACKING_FILE\u003drequired will continue to function without"},{"line_number":274,"context_line":"  changes."},{"line_number":275,"context_line":"- Manila users: Manila share-based workloads will not automatically benefit"},{"line_number":276,"context_line":"  from this change, which is acceptable given their distinct requirements."},{"line_number":277,"context_line":""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":4,"id":"17961f58_fbc24d73","line":276,"in_reply_to":"14a29f51_aca0c1be","updated":"2025-12-03 19:18:30.000000000","message":"no it doesnt manila can use hugepage memory or file backed\n\ni severly dought there are any real deployment useing the manilla share feature with file backed memory.\n\nfile backed memory is a very very neich feature which is effectivly superceeded in most case by memfd.","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"- Add logic to generate the appropriate libvirt domain XML"},{"line_number":302,"context_line":"- Ensure compatibility with migration and rebuild workflows (if memfd is used"},{"line_number":303,"context_line":"  as default)"},{"line_number":304,"context_line":"- Add validation for conflicting memory backend settings"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7908ef6e_473b6cbe","line":303,"updated":"2025-12-03 15:44:28.000000000","message":"there is a serious upgrade case that I\u0027d like to understand more","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa5fe73b3ba0c3dd3e7a790007c7c0b3a4398b65","unresolved":true,"context_lines":[{"line_number":306,"context_line":"Dependencies"},{"line_number":307,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"Current minimum QEMU and libvirt versions support this feature."},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"Testing"},{"line_number":312,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e8c3ec96_c435c9c4","line":309,"updated":"2025-12-03 15:44:28.000000000","message":"*this* is exactly why I don\u0027t understand why we need to go on that trait route","commit_id":"1180741cd6209ee2a0e55830ce88cf29b8d46c48"}]}
