| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-05-29 | |||
| 18:12:56 | jmlowe | http://paste.openstack.org/show/722283/ | |
| 18:13:55 | mriedem | do you have any ocata compute services running? | |
| 18:14:02 | jmlowe | no | |
| 18:14:38 | jmlowe | I get the warnings about only have pike won't update allocation in the nova compute logs | |
| 18:14:54 | mriedem | ok yeah that's what i was thinking of | |
| 18:17:04 | efried | jaypipes: Finally finished https://review.openstack.org/#/c/553597/ -- thanks for your patience | |
| 18:19:01 | mriedem | wonder if we have a bug here https://github.com/openstack/nova/blob/stable/pike/nova/compute/manager.py#L5823 | |
| 18:19:47 | mriedem | that should only remove the instance's allocations against the source node after a successful live migration, | |
| 18:19:53 | mriedem | the dest host allocations are created during scheduling | |
| 18:59:37 | jmlowe | mriedem: not exactly the same thing, but along those lines http://paste.openstack.org/show/722290/ | |
| 19:00:35 | jmlowe | something doesn't add up | |
| 19:04:03 | mriedem | is instance 6c4e5035-8a42-4e37-8e90-3ba142ecd5aa running on r06c2b03? | |
| 19:06:05 | openstackgerrit | Merged openstack/nova master: Remove unused function https://review.openstack.org/570865 | |
| 19:07:17 | mriedem | jmlowe: what does "openstack resource provider inventory list b0f5d569-687f-43a2-9bdb-309a29597125" show? | |
| 19:08:29 | mriedem | looking at that allocation output, you have 3 instances running on that host with a total of 126976 memory mb consumed | |
| 19:08:52 | jmlowe | http://paste.openstack.org/show/722293/ | |
| 19:09:46 | mriedem | ok and that says there is 130850 mb total of memory | |
| 19:11:19 | mriedem | jaypipes: efried: should max_unit ever be > total - reserved? | |
| 19:11:41 | dansmith | mriedem: I would think it could be | |
| 19:11:42 | efried | mriedem: I think it should be allowed. | |
| 19:11:59 | dansmith | mriedem: consider the case of ironic | |
| 19:12:03 | dansmith | well, that'd be equal I guess | |
| 19:12:07 | efried | Because you should be able to change total and/or reserved without having to worry about also "fixing" max_unit at the same time. | |
| 19:12:12 | dansmith | yeah | |
| 19:12:18 | mriedem | fine fine | |
| 19:12:35 | dansmith | well, yeah, ironic would be total=1, reserved=1, max_unit=1, total-reserved=0 | |
| 19:12:48 | dansmith | for the cleaning state | |
| 19:14:22 | jmlowe | there are 3 instances running on that host, 158726ec-f09d-443c-a700-cce79cd065e0, 5053ebcc-9145-4297-b60f-f2c74ce95aef, 950be30e-a275-4533-9d42-53df6145545b | |
| 19:14:32 | mriedem | jmlowe: how many servers show up on that host if you do "nova hypervisor-servers r06c2b03"? | |
| 19:14:33 | mriedem | same 3? | |
| 19:14:50 | jmlowe | yep, check nova and virsh | |
| 19:15:13 | mriedem | ok, i'm not sure why free_ram_mb shows up as -122863 | |
| 19:15:13 | jaypipes | efried: np | |
| 19:16:18 | jmlowe | this host did once have a allocation for an instance that wasn't present | |
| 19:16:30 | mriedem | based on my calculations you should have 17mb of free ram on that host | |
| 19:16:50 | mriedem | 130850 total - 3857 reserved - 126976 (sum memory mb of allocations of the 3 instances on that host) | |
| 19:17:24 | jmlowe | Is there some cache somewhere that needs updated? | |
| 19:18:26 | mriedem | don't think so, i'm probably missing something in the free ram calculation in the resource tracker, like what the virt driver computes for overhead | |
| 19:19:03 | mriedem | although the libvirt driver doesn't do anything wrt memory_mb overhead | |
| 19:19:21 | esberglu | melwitt: Not sure if you saw my message last week with the summit | |
| 19:19:32 | esberglu | PowerVM vSCSI CI is enabled | |
| 19:19:46 | esberglu | So you should be able to remove the procedural -2 from https://review.openstack.org/#/c/526094/ | |
| 19:21:59 | mriedem | jmlowe: i see this comment but i'm not sure what it means about policy https://github.com/openstack/nova/blob/stable/pike/nova/compute/resource_tracker.py#L913 | |
| 19:22:16 | mriedem | i assume oversubscription? | |
| 19:22:22 | cfriesen | mriedem: jmlowe: is anything else on that compute node consuming ram outside of openstack/qemu/etc? | |
| 19:22:55 | jmlowe | free shows 82G free | |
| 19:28:36 | cfriesen | jmlowe: I think that's largely irrelevent for 4KB pages since they're only allocated on demand. | |
| 19:29:07 | dansmith | cfriesen: other stuff on the box consuming memory shouldn't be represented in placement in any way | |
| 19:29:13 | dansmith | other than reserved if configured in nova | |
| 19:32:05 | melwitt | esberglu: yep, just need to take a look through and will remove the -2 | |
| 19:32:24 | esberglu | Sounds good thanks | |
| 19:33:00 | cfriesen | libvirt.host.Host.get_memory_mb_used() looks at actual memory usage on the host | |
| 19:33:06 | cfriesen | dansmith: ^ | |
| 19:34:03 | dansmith | cfriesen: right but that shouldn't be what we're reporting as reserved | |
| 19:34:15 | mriedem | what we report as reserved comes from config | |
| 19:34:26 | dansmith | right ^ | |
| 19:34:32 | mriedem | what we report as total comes from nova.virt.libvirt.host.Host.get_memory_mb_total | |
| 19:35:00 | mriedem | what we report as used is based on the instances running on the host via the nova db, not what the driver tells us | |
| 21:00:45 | openstackgerrit | Jay Pipes proposed openstack/nova-specs master: Standardize CPU resource tracking https://review.openstack.org/555081 | |
| 21:03:38 | mriedem | melwitt: not sure if you've thought about it, but we have two things in runway slots that either expire today or tomorrow; was wondering if you wanted to do a 'grace period' extension for those given the summit last week | |
| 21:05:40 | melwitt | mriedem: yeah, I was thinking about something like that. I think it makes sense given the summit week | |
| 21:07:29 | melwitt | maybe just extend all 3 by a week from today? they all have similar original end dates | |
| 21:16:23 | mriedem | sure | |
| 21:25:10 | efried | ++ | |
| 21:27:37 | melwitt | cool, will update | |
| 21:34:44 | openstackgerrit | Zack Cornelius proposed openstack/nova master: Implement file backed memory for instances in libvirt https://review.openstack.org/567876 | |
| 21:34:45 | openstackgerrit | Zack Cornelius proposed openstack/nova master: Refactor libvirt get_memory_used_mb() https://review.openstack.org/571030 | |
| 22:06:12 | mriedem | efried: jaypipes: is it your understanding that if i have a pci request with some entry that's not found in the pci whitelist for a given compute host, the scheduler will filter out that host? | |
| 22:06:26 | mriedem | and that entry can be something totally random, like just foo=bar | |
| 22:06:53 | efried | mriedem: Been a while since I looked at that travesty^W code, but yes, that's my understanding. | |
| 22:06:58 | mriedem | ok | |
| 22:07:18 | mriedem | hard for me to reason by digging through the spaghetti | |
| 22:07:25 | mriedem | i could write a functional test to make sure, but... | |
| 22:07:37 | efried | wait, maybe I misunderstood. You're asking about a *whitelist* entry of foo=bar+ | |
| 22:07:38 | efried | ? | |
| 22:09:25 | efried | mriedem: The super simplified version, IIRC, is that we take whitelist, intersect it with what's reported by get_available_resource, and then look for the requested dev in that intersection. If not found, that host is filtered out. | |
| 22:09:56 | efried | And it's pretty easy for that first intersection to wind up empty | |
| 22:11:07 | mriedem | yeah, for context, i'm reviewing sahid's trusted VF series, which links up a port whose binding profile can have a "trusted" key in it, and that goes into the InstancePCIRequest if trusted is truthy | |
| 22:11:22 | mriedem | now if we have all non-libvirt, or all queens computes, | |
| 22:11:37 | mriedem | there are not going to be any hosts that understand what that trusted tag is in in the pci request via the port binding profile, | |
| 22:11:45 | mriedem | and i wanted to know if the scheduler will kick that request out | |
| 22:11:58 | mriedem | since none of the computes would have the matching 'trusted' tag in their pci whitelist yet | |
| 22:17:30 | efried | mriedem: Oh, okay. I'm pretty sure we ignore keys we don't recognize. | |
| 22:18:15 | efried | mriedem: So adding a random key on an old compute wouldn't cause things to be kicked out where they were previously accepted. | |
| 22:18:20 | efried | I *think*. | |
| 22:18:33 | mriedem | i don't think so, looking at https://review.openstack.org/#/c/565808/4/nova/pci/utils.py | |
| 22:18:53 | mriedem | pci_dev comes from the pci whitelist right? | |
| 22:19:00 | mriedem | and specs is from the InstancePCIRequest.specs | |
| 22:19:11 | efried | you're going to make me look at this code, aren't you | |
| 22:19:25 | mriedem | so if the key was in specs but not the pci whitelist, i think we'd reject it because | |
| 22:19:25 | mriedem | pci_dev_v != v | |
| 22:20:08 | mriedem | also | |
| 22:20:08 | mriedem | pci_dev_v != v | |
| 22:20:10 | mriedem | oops | |
| 22:20:17 | mriedem | 'spec': fields.ListOfDictOfNullableStringsField(), | |
| 22:20:20 | mriedem | NICE! | |
| 22:20:33 | mriedem | ListOfSchmorgazboard | |
| 22:27:02 | efried | mriedem: Okay, so the stuff on L53-6 does what I said, I think. That is, if you ask for k=v in the spec, the dev in the (intersected whitelist + virt-reported) dev list must have that k=v. But any k in the dev list that's not present in the spec is ignored. | |
| 22:28:02 | efried | ...and I believe pci_dev is the (intersected) thingy. | |
| 22:33:38 | mriedem | oh yeah, extra garbage in the pci passthrough_whitelist is ignored, | |