| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2020-04-06 | |||
| 11:42:56 | sean-k-mooney | using isolcpus? is so you should really avoid that | |
| 11:43:07 | kplant | my only complaint with *_sets is you can't have open ended ranges | |
| 11:43:13 | kplant | like "3-" | |
| 11:43:24 | kplant | makes it easier to deal with hosts with, not vastly, different configs | |
| 11:43:40 | sean-k-mooney | you can do negations | |
| 11:43:51 | sean-k-mooney | "^0-2" | |
| 11:43:59 | kplant | ooo | |
| 11:44:10 | sean-k-mooney | i think negated ranges works | |
| 11:44:18 | sean-k-mooney | you can negate indivcual cores | |
| 11:45:01 | sean-k-mooney | we prably could add open ended ranges too you could always file a bug/blueprint | |
| 11:45:27 | kplant | i think negated ranges provide the same result | |
| 11:45:38 | kplant | nice | |
| 11:46:03 | sean-k-mooney | ill triple check the code to make sure that works | |
| 11:46:16 | sean-k-mooney | we support it for cpu_realtime_mask | |
| 11:46:27 | sean-k-mooney | but i think its supported in teh *_sets too | |
| 11:47:59 | sean-k-mooney | kplant: this is the code and it inclde the negation example for 1 core | |
| 11:48:20 | openstackgerrit | Balazs Gibizer proposed openstack/nova-specs master: template: consider openstack client besides novaclient https://review.opendev.org/717722 | |
| 11:48:46 | sean-k-mooney | kplant: yep negated ranges should work https://github.com/openstack/nova/blob/31aa4a6d7f0b8c301b093ad176ee2b44b5d3cec8/nova/virt/hardware.py#L134-L140 | |
| 11:50:05 | sean-k-mooney | sorry miss read that | |
| 11:50:53 | sean-k-mooney | the negation only works with 1 cpu | |
| 11:51:20 | kplant | looking at 113 -> 116 | |
| 11:51:26 | kplant | i think you might have been right originally | |
| 11:51:36 | kplant | it tests for ^str == '^' | |
| 11:51:39 | kplant | then proceeds as normal | |
| 11:51:47 | kplant | the next try/catch is for a range | |
| 11:52:38 | kplant | oof, that's ignoring what you highlighted though | |
| 11:53:32 | sean-k-mooney | https://github.com/openstack/nova/blob/824bc358c25564ed6603d8f94587abd8902fe5af/nova/tests/unit/virt/test_hardware.py#L132-L133 | |
| 11:53:38 | openstackgerrit | Balazs Gibizer proposed openstack/nova master: doc: require openstack client change for every new API microversion https://review.opendev.org/717727 | |
| 11:53:41 | kplant | that's still not a show stopper | |
| 11:53:41 | sean-k-mooney | unit tests are awsome :) | |
| 11:53:48 | sean-k-mooney | although docs would also help | |
| 11:54:01 | kplant | as long as the _set string is _only_ negations, every other vcpu should implicitly be available for scheduling, no? | |
| 11:54:52 | sean-k-mooney | that is the behavior i would want as an enduser | |
| 11:56:26 | sean-k-mooney | but no unfortunetly that is not what the behvior is today | |
| 11:56:30 | kplant | i probably just over thought it and gave myself a reason to be lazy and use reserved_host_cpus instead of cpu_dedicated_set | |
| 11:56:41 | kplant | oh, really? | |
| 11:57:00 | openstackgerrit | Merged openstack/nova master: Add info about affinity requests to the troubleshooting doc https://review.opendev.org/715092 | |
| 11:57:01 | sean-k-mooney | it starts with an empty set cpuset_ids = set() | |
| 11:57:08 | openstackgerrit | Merged openstack/nova master: Stabilize functional tests https://review.opendev.org/717070 | |
| 11:57:09 | kplant | eek | |
| 11:57:15 | openstackgerrit | Merged openstack/nova master: Introduce scope_types in security groups policy https://review.opendev.org/716786 | |
| 11:57:16 | sean-k-mooney | and after we loop over every thing cpuset_ids -= cpuset_reject_ids | |
| 11:57:39 | sean-k-mooney | it would not be hard to add that behavior. | |
| 11:58:02 | kplant | i would expect assuming all cpus to actually be faster code | |
| 11:58:13 | kplant | that's more likely in line with what the result will be | |
| 11:58:37 | sean-k-mooney | kplant: that code does not know how many cpus you have | |
| 11:59:44 | kplant | fair, it would come from sql | |
| 12:00:45 | sean-k-mooney | not quite where this is used is on the comptue node before we store the info in the db but anyway if you do have a propoasl for improving this feel free to write it up | |
| 12:02:09 | kplant | is this the better behavior? the current behavior forces the user to be explicit | |
| 12:02:39 | kplant | i guess i can always submit it and get input that way | |
| 12:06:40 | sean-k-mooney | kplant: if you dont set the config options all cores are assumed to be usable | |
| 12:06:59 | sean-k-mooney | kplant: so the idea was of you opt in you should say what you want | |
| 12:08:35 | kplant | i think that mindset still applies, just change the behavior from cpu_*_set to a merge behavior instead of replace | |
| 12:08:43 | kplant | i think that's reasonable | |
| 12:08:47 | sean-k-mooney | kplant: that said i have wanted to remove the reserved_host_cpus options since we first added vcpu_pin_set so makeing it nicer to use the reserved_host_cpus will help with that goal | |
| 12:08:49 | kplant | just want to make sure before i waste time with a bp | |
| 12:10:26 | kplant | waste other people's time* | |
| 12:10:33 | sean-k-mooney | kplant: well we would need to keep backwards compatbliy so we could not make it merge by defaul but we could change the behavior so that if you only specify negation then we woud assume all cpus were valid and apply the negation | |
| 12:11:23 | kplant | very fair point | |
| 12:11:37 | kplant | that would make cpu_dedicated_set = "4" == all cpus | |
| 12:12:26 | sean-k-mooney | kplant: ill file a bug | |
| 12:12:58 | kplant | appreciate that | |
| 12:16:05 | sean-k-mooney | kplant: the only issue really is that now that we have two ranges cpu_share_set and cpu_dedicated_set | |
| 12:16:18 | sean-k-mooney | it become less uesful but its still useful | |
| 12:17:13 | kplant | i guess the winner between the two would be the more explicit option? | |
| 12:17:21 | kplant | share_set: "1-5" | |
| 12:17:25 | kplant | dedicate_set: "3" | |
| 12:17:34 | sean-k-mooney | no you get an error if you do that | |
| 12:17:50 | sean-k-mooney | and i dont think we want that much magic in the config option parsing | |
| 12:18:33 | kplant | that works | |
| 12:19:14 | kplant | so i guess here's a difficult question | |
| 12:19:27 | kplant | if you do mix shared and dedicated on the same host, and leave N cpus unspecified | |
| 12:19:34 | kplant | are they shared? are they dedicated? | |
| 12:19:49 | kplant | with the current implementation they're neither | |
| 12:21:57 | sean-k-mooney | https://bugs.launchpad.net/nova/+bug/1871096 | |
| 12:21:58 | openstack | Launchpad bug 1871096 in OpenStack Compute (nova) "when only a negation is specified for cpu_*_sets we should assume all cpus are vaild and subtract the negated cpus" [Wishlist,Triaged] | |
| 12:22:51 | sean-k-mooney | kplant: if you dont set the config options all cpus will be reported as VCPU resouce class which is used for shared cpus | |
| 12:23:18 | sean-k-mooney | and then we have fallback logic in the scheulder currently to allow pinned guest to land there | |
| 12:23:53 | sean-k-mooney | if you use cpu pinning however we woudl stonly prefer if you used cpu_dedicated_set | |
| 12:24:35 | sean-k-mooney | eventually we might remove the fallback and required it | |
| 12:25:11 | johnthetubaguy | stephenfin: did you update the api-ref for those extra params? | |
| 12:31:51 | kplant | sean-k-mooney: thanks! | |
| 12:43:07 | stephenfin | johnthetubaguy: Oh, probably not. Will respin now | |
| 12:43:48 | johnthetubaguy | stephenfin: I am struggling with this validation mode stuff... should have been a discussion on the spec I know, but didn't see this one go by | |
| 12:44:25 | johnthetubaguy | not going to block it or anything, just can't see how it works for users | |
| 12:47:44 | stephenfin | The discussion for that was mostly done on IRC, unfortunately :( Earlier versions of the spec didn't have the concept. It was all or nothing | |
| 12:47:48 | johnthetubaguy | stephenfin: that "disabled" mode I think is what worries me, I think the "permissive" isn't so bad, although I would prefer some namespacing of keys, as its easier to understand | |
| 12:48:34 | stephenfin | wdym namespacing of keys? | |
| 12:48:46 | johnthetubaguy | well placement traits is the example | |
| 12:48:54 | johnthetubaguy | if as a user you list the traits | |
| 12:49:07 | johnthetubaguy | you can see which ones are standard, and which ones your deployer has probably made up | |
| 12:49:25 | johnthetubaguy | i.e. can you go read the openstack docs to find out what it is, or otherwise | |
| 12:50:14 | johnthetubaguy | ... I had a lot of pushback in Rackspace on not allowing vendor extensions, which is what extra specs is right. Namespacing the crazy seems the least we could do for our users | |
| 12:51:10 | stephenfin | So insist on a namespace for any custom extra specs? | |
| 12:51:33 | johnthetubaguy | think of the user listing extra specs on the flavors | |
| 12:51:43 | johnthetubaguy | they want to workout what they mean, where do they look | |
| 12:52:01 | johnthetubaguy | you could just see its missing in openstack docs, but that doesn't mean too much | |
| 12:52:08 | johnthetubaguy | then you grep the source code... nothing | |
| 12:52:38 | johnthetubaguy | then you ask the group running your cloud, and they forgot, the person who added the flavor left last week | |
| 12:53:10 | johnthetubaguy | ... I got carried away there, but really its that problem I am thinking of fixing | |