Thursday, 2025-11-06

*** mhen_ is now known as mhen02:48
zigogmaan: Thanks ! :)07:44
zigoSaw it, btw.07:44
opendevreviewLajos Katona proposed openstack/nova master: blueprint: iothreads-for-instances  https://review.opendev.org/c/openstack/nova/+/93925407:51
gibisean-k-mooney: thanks for the review on the native thread defaulting. I answered inline09:29
opendevreviewmelanie witt proposed openstack/nova master: TPM: support instances with `user` secret security  https://review.opendev.org/c/openstack/nova/+/94250209:45
opendevreviewmelanie witt proposed openstack/nova master: TPM: support instances with `host` secret security  https://review.opendev.org/c/openstack/nova/+/94179509:45
opendevreviewmelanie witt proposed openstack/nova master: Add vtpm_secret_(uuid|value) to LibvirtLiveMigrateData  https://review.opendev.org/c/openstack/nova/+/95262809:45
opendevreviewmelanie witt proposed openstack/nova master: TPM: support live migration of `host` secret security  https://review.opendev.org/c/openstack/nova/+/94148309:45
opendevreviewmelanie witt proposed openstack/nova master: TPM: bump service version and require it for live migration  https://review.opendev.org/c/openstack/nova/+/96205109:45
opendevreviewmelanie witt proposed openstack/nova master: TPM: support instances with `deployment` secret security  https://review.opendev.org/c/openstack/nova/+/94202109:45
opendevreviewmelanie witt proposed openstack/nova master: TPM: support live migration of `deployment` secret security  https://review.opendev.org/c/openstack/nova/+/92577109:45
opendevreviewmelanie witt proposed openstack/nova master: TPM: test live migration between hosts with different security  https://review.opendev.org/c/openstack/nova/+/95262909:45
opendevreviewmelanie witt proposed openstack/nova master: TPM: add late check for supported TPM secret security  https://review.opendev.org/c/openstack/nova/+/95697509:45
opendevreviewmelanie witt proposed openstack/nova master: TPM: opt-in to new TPM secret security via resize  https://review.opendev.org/c/openstack/nova/+/96205209:45
opendevreviewmelanie witt proposed openstack/nova master: TPM: add documentation and reno for live migration  https://review.opendev.org/c/openstack/nova/+/96288909:45
opendevreviewmelanie witt proposed openstack/nova master: DNM vtpm tempest  https://review.opendev.org/c/openstack/nova/+/95747709:45
opendevreviewBalazs Gibizer proposed openstack/nova master: Run nova-compute in native threading mode  https://review.opendev.org/c/openstack/nova/+/96546709:54
opendevreviewBalazs Gibizer proposed openstack/nova master: [libvirt]Init event handling before connect  https://review.opendev.org/c/openstack/nova/+/96624909:54
opendevreviewBalazs Gibizer proposed openstack/nova master: [libvirt]Init event handling before connect  https://review.opendev.org/c/openstack/nova/+/96624910:01
opendevreviewBalazs Gibizer proposed openstack/nova master: Run nova-compute in native threading mode  https://review.opendev.org/c/openstack/nova/+/96546710:01
opendevreviewStephen Finucane proposed openstack/nova master: pre-commit: Bump versions  https://review.opendev.org/c/openstack/nova/+/96608911:03
opendevreviewNell Jerram proposed openstack/nova master: Add managed='no' flag to libvirt XML definition for VIF type TAP  https://review.opendev.org/c/openstack/nova/+/96028411:43
opendevreviewNell Jerram proposed openstack/nova master: Add managed='no' flag to libvirt XML definition for VIF type TAP  https://review.opendev.org/c/openstack/nova/+/96028412:29
jkulikWhy is `max_unit` for a resource-provider not reduced by `reserved` (in the libvirt driver)? Seems somewhat inconsistent that it reports something that cannot be achieved.13:06
sean-k-mooneyit kind of depends13:20
sean-k-mooneyreserved and max_unit are typeicly not set on most invetories differntly form the defuals of 0 and total size13:20
sean-k-mooneyfor floating cpus for example13:20
jkulikit is set for memory_mb though13:20
sean-k-mooneyor we can take that example13:21
sean-k-mooneyif you have 100G of ram13:21
sean-k-mooneyyou reserve 10G13:21
sean-k-mooneyand you set allcoation ration to 1.513:21
sean-k-mooneythen its valid to allow a max unit of 100G13:21
sean-k-mooneybut not 10113:21
jkulikoh, I see13:21
sean-k-mooneybecasue we do not allow over allcation against yourself13:21
jkulikI thought of reserved more like "No VM may cut into this, because it's provider-reserved"13:22
sean-k-mooneyyes but only if allcation ration is 1.013:22
sean-k-mooneywe treate reseved basically as if there is an allcoation of that size already present13:23
sean-k-mooneybut imporantly we do (total*ratio) - reserved13:23
jkulikbut before allocation_ratio is applied (at least in computing the "free" part), right?13:23
jkulikah. do we?13:23
sean-k-mooneyits not (total - reserved) * ratio13:24
jkulikI always thought it would be ^13:24
sean-k-mooneyno reseved it subtracted form total*ratio for backward compatibality13:24
sean-k-mooneybecaus that how it worked before placment13:24
jkulik> placement/objects/allocation_candidate.py:        cap = int((usage.total - usage.reserved) * allocati13:25
jkulikon_ratio)13:25
sean-k-mooneyso https://docs.openstack.org/nova/latest/configuration/config.html#DEFAULT.reserved_host_memory_mb13:26
sean-k-mooneyis directly translated into the reseved value for memory mb13:26
jkulikyes. it's report as-is to Placement13:27
sean-k-mooneyand the sematic of that are if you have 50G with allcaotion ration 2.0 and resved 10G we will allwo 90G of usage13:27
jkulikhttps://github.com/openstack/placement/blob/master/placement/objects/allocation.py#L25313:27
jkulikso Placement does do (total - reserved) * allocation_ratio13:28
sean-k-mooney that for the allcation size13:28
jkulikthat does mean, I can allocate more than total right? as long as I set `max_unit` to more than total?13:29
jkulikbut you're saying, `max_unit` is capped at `total` anyways. so that's something else, too.13:29
sean-k-mooneyso there is what placement allwos you to model13:30
sean-k-mooneyand what nova allows13:30
jkulikhm ... ok, I think I understand why it's allowed in Placemeent now. thanks13:30
sean-k-mooneynova does not allow a singel vm to over subscript the host resocues13:30
sean-k-mooneythat is part of our contract13:30
sean-k-mooneythat does nto mean its part fo placemetn as that might make sesne to someone. i cant think of a valid reaosn for that but it might be valid13:31
sean-k-mooneyi woudl expdect placement ot reject a invetoy whre max_ujnit exceed total13:31
sean-k-mooneybut i have not checked if ti does13:31
jkulikNova does allow going into reserved resources, though, when the admin requests an allocation_ratio > 1.013:31
sean-k-mooneycorrect because again nova expect capastiy = (total * allction ratio) - reserved13:33
jkulikWhich can make sense for VCPUs, but imho does not make much sense for MEMORY_MB. I wouldn't want my hypervisor to start swapping, because an overcommitted VMs uses all of its RAM.13:33
jkulikand since Placement takes care with the capacity check that things fit, adding a lot of logic in Nova libvirt to report different "max_unit" depending on the allocation_ratio doesn't really make sense13:34
sean-k-mooneyso we have docuemtned in nova in the past tha tyou have to multiply host_reserved_ram by the allcation ratio in the config13:34
sean-k-mooneyalthough its not very clear i guess if you jsut look at the config ref13:35
sean-k-mooneyso we coudl defintly improve that13:35
jkulikI feel like that would break the allocation capacity check in Placement.13:35
sean-k-mooneyi am debating if that is a placement bug13:35
sean-k-mooneythe check looks incorect to me jsut lookign at that capstiy line but13:36
sean-k-mooneyi have not revied the code properly to say13:36
jkulikthe discussion was helpful for me nonetheless. thank you13:37
sean-k-mooneyhttps://github.com/openstack/nova/blob/rocky-eol/nova/scheduler/filters/ram_filter.py#L32-L6513:38
sean-k-mooneythis is what nova used to do before placement13:38
sean-k-mooneyplacement is ment ot be 1:1 compatible with that13:39
jkulikso what*s "total_usable_ram_mb" here?13:40
sean-k-mooneyi was hoping you woudl not ask that :P13:40
sean-k-mooneybut its https://github.com/openstack/nova/blob/master/nova/scheduler/host_manager.py#L21713:40
jkulik`compute.memory_mb` ... one more step13:40
sean-k-mooneyya so that is just the total ram on the host13:41
sean-k-mooneyat least i think it is13:41
jkulikah, yes. We patched that downstream to properly include the reserved_host_memory_mb :D13:42
sean-k-mooneyhttps://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L944513:42
jkulikit indeed used the reserved_host_memory_mb only as "usage", not as real reduction of the available memory.13:42
sean-k-mooneyright13:43
sean-k-mooneyhttps://github.com/openstack/nova/blob/master/nova/virt/libvirt/host.py#L1150-L115813:43
sean-k-mooneyso that is what determisn it upstream13:43
jkulikwhich is inconsitent with what the vmware driver reports to Placement ... at least in our version :D13:43
sean-k-mooneyits either the file backed memory size if your using that or basically the ouput of total memory form free or in thsi cashe virsh capabliteis i belive13:43
jkulikyeah, I read that part. that's fine. just `max_unit` seemed off to me13:44
sean-k-mooneyjkulik: well that is the other thing13:44
sean-k-mooneythis is virt driver defiened13:44
sean-k-mooneyat least to some degree13:44
jkulikwhy we even looked at that was: we use hugepages from a static pool and libvirt reports not that, but the full memory of the host ...13:44
sean-k-mooneyyou can use provider.yaml to overried max unit13:44
jkulikhm!13:45
sean-k-mooneywell for hugepages you confirue the  reservation diffently13:45
sean-k-mooneyhttps://docs.openstack.org/nova/latest/configuration/config.html#DEFAULT.reserved_host_memory_mb13:45
sean-k-mooneyper page size per numa node13:45
sean-k-mooneyif you use hw:mem_page_size=small we also use the values form reserved_huge_pages for the system native size i.e. 413:46
sean-k-mooney for 4k13:46
sean-k-mooneyso if your doing anythign related to numa you are not allowed to oversibcsribe memory13:47
jkulikok. then for NUMA `max_unit` would be wrong :D but nevermind13:47
sean-k-mooneyand you use `reserved_huge_pages = node:0,size:4,count=256` 13:48
sean-k-mooneywell yes but if we implent numa in placment we can define the sematic of the livbirt driver to limit it13:48
sean-k-mooneysince we know that numa memory will always have an allcoaiton ration of 1.013:49
sean-k-mooneythe max_unit shoudl never exceed (total-reserved) in that case13:49
jkulikyes. but that's not there, yet, right?13:49
sean-k-mooneycorrect but we track numa memory diffently in nova already13:49
sean-k-mooneyand do the enfocement diffently13:49
sean-k-mooneyso placement will say this host might be valid13:50
sean-k-mooneyand hten numa toploty filter will then do the enforcement13:50
jkulik... and fail and then we go into retries for spawning in conductor, in case that's configured?13:51
sean-k-mooneybecause numa requireds an allocation ratio of exactly 1 it drops out of the equation and max unit is just total-reserved13:51
jkulikah. no. it's an actual scheduler filter13:51
sean-k-mooneyright its a scheduler filter13:51
sean-k-mooneywe do the check again on the compute in case 2 diffent api request race for the last resouce on a given host13:52
sean-k-mooneybut for the most part that wont hapen in a reasonable size cloud or if you say use a weigher to spread based on ram usage13:52
jkulikhm ... we have bad experience with spreading ... then parts of too many hosts are used, which disallows full-host-sized VMs :/13:53
jkulikthank you again.13:54
sean-k-mooney:) well you can also opt to pack for that use case13:54
sean-k-mooneybut ya its a trade off13:54
sean-k-mooneyand no worries this is one of hte more complex parts of nova13:54
stephenfingmaan: Not necessarily for today, but what are the chances of getting the remainder of the OpenAPI series reviewed in the next few weeks? Happy to trade reviews14:30
opendevreviewTakashi Kajinami proposed openstack/placement master: Make sure [cors] allowed_origin accepts a list value  https://review.opendev.org/c/openstack/placement/+/96627514:30
stephenfinsean-k-mooney: ditto for you: gmaan has hit the bottom 9 patches of the 28 (sorry /o\) outstanding14:32
opendevreviewTakashi Kajinami proposed openstack/nova master: Use common utility to parse Host header  https://review.opendev.org/c/openstack/nova/+/96628014:40
opendevreviewMax proposed openstack/nova master: fix: return cross_az_attach errors directly  https://review.opendev.org/c/openstack/nova/+/96628415:19
sean-k-mooneystephenfin: so apprenly https://review.opendev.org/c/openstack/devstack/+/966239 is the short term fix16:19
sean-k-mooneybut i also think this is likely incorrect16:19
sean-k-mooneybecasue 2025.1 shoudl still be using tempest master not a pin16:20
gmaanstephenfin: sure, not this week but I can see if I can start it again during end of next week. but it is still in my list to continue in this cycle.17:01
gmaansean-k-mooney: we should be using the master on 2025.1 but let me check chat in qa channel and see what is issue17:02
stephenfinsean-k-mooney: I see there's a run-tempest-26 role in the tempest repo. I would imagine we probably want something similar if there are Python issues, but that's one for gmaan et al17:02
stephenfin*new Python version issues17:02
sean-k-mooneyoh i ment to respoend in the ohter channle on the tempst thing lets keep that converstaion in openstack-qa my bad17:21
gmaan++17:21
opendevreviewMerged openstack/nova master: [CI]nova-alt-configurations tests eventlet  https://review.opendev.org/c/openstack/nova/+/96592217:44
opendevreviewBalazs Gibizer proposed openstack/nova master: Default native threading for sch, api and metadata  https://review.opendev.org/c/openstack/nova/+/96592418:50
gibisean-k-mooney: ^^ renamed the parameter as requested18:52
sean-k-mooneygibi: +2 on both18:55
gibisean-k-mooney: thanks!19:01
gibidansmith: when you have time we are ready to close one item off the my eventlet list ^^ :)19:01
dansmithgibi: yeah I was going to do that this morning until I saw the request..I'll circle back in a bit19:02
gibithanks 19:02
opendevreviewMerged openstack/nova master: Move monkey_patch from init to the entrypoints  https://review.opendev.org/c/openstack/nova/+/96592323:48

Generated by irclog2html.py 4.0.0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!