Earlier  
Posted Nick Remark
#openstack-nova - 2020-03-13
16:37:55 sean-k-mooney stephenfin: whats the other option
16:38:05 stephenfin there are a few
16:38:34 stephenfin in this scenario that I'm following, you'll be able to use hw:cpu_dedicated_mask *or* hw:cpu_realtime_mask
16:38:59 sean-k-mooney stephenfin: no you would use both
16:39:01 stephenfin I see no reason to say these cores are shared, these are dedicated but non-realtime, and these are dedicated and realtime
16:39:04 sean-k-mooney well optinally
16:39:16 sean-k-mooney e.g. not an exclucive or
16:39:41 sean-k-mooney i dont see a reason to block it
16:39:41 stephenfin why? What real-world user is going to use all three types of core in an instance?
16:39:49 stephenfin Because it's less complicated
16:39:55 sean-k-mooney its more complicated
16:40:20 sean-k-mooney the validation logic to prevent all 3 is extra logic we dont need if we allow it
16:40:45 stephenfin A|B is easier grok than A.issubset(B)
16:40:56 stephenfin and the it makes my XML generation easier
16:41:02 stephenfin s/the //
16:41:04 sean-k-mooney stephenfin: you are over loading hw:cpu_realtime_mask
16:41:18 sean-k-mooney its behavior would change based on the hw:cpu_policy
16:41:29 sean-k-mooney so that gets harder to reason about
16:41:36 stephenfin nope, it stays the same: these are cores that are real-time
16:41:39 sean-k-mooney if we allow both it does not
16:41:41 stephenfin what changes is what happens to the other cores
16:41:53 stephenfin and that's purely based on hw:cpu_policy
16:42:10 sean-k-mooney no it chacnge form tehse are realtime to these are realtime and dedicated and the rest flaot
16:42:17 kashyap sean-k-mooney: Not entirely; there's also a quirk of making sure to specify the interrupt controller (as the default is less featureful) -- `-machine gic-version=max`
16:42:29 kashyap melwitt: For later, added my notes in the change.
16:42:32 stephenfin they're always realtime and dedicated
16:42:39 stephenfin you can't have realtime floating cores
16:42:45 melwitt kashyap: thanks
16:43:05 sean-k-mooney well libvirt allows you to but that is a seperate thign
16:43:14 stephenfin ...in nova
16:43:14 kashyap Yep
16:43:20 sean-k-mooney stephenfin: my perference would be to allow both to be set
16:43:38 stephenfin I could allow it, but I don't want to force it
16:43:46 sean-k-mooney and always require hw:dedicated_cpu_mask for mixed
16:43:58 stephenfin and because I don't want to force it, I'd rather say there's only one way to do this
16:44:14 sean-k-mooney which one do you not want to force
16:44:32 sean-k-mooney the realtime mask or the dedicated mask
16:44:33 stephenfin having to set both hw:cpu_dedicated_mask and hw:cpu_realtime_mask
16:44:46 sean-k-mooney right so i would make the cpu_realtime_mask optional
16:44:50 stephenfin if you want a real-time instance with the non-realtime cores floating
16:44:55 sean-k-mooney and always require the cpu_dedicated_mask
16:45:18 stephenfin but then you have a difference of behavior elsewhere
16:45:28 sean-k-mooney and make it so that if you dont set cpu_realtime_mask but do set hw:cpu_realtime=true then we use the hw:dedciated_cpu_mask
16:45:41 stephenfin now you have to use 'hw:cpu_realtime_mask' when using dedicated
16:45:52 stephenfin but use 'hw:cpu_dedicated_mask' when using mixed
16:46:48 stephenfin anyway, we'll invariably debate this in the patch so back to my original question
16:46:52 sean-k-mooney i think its a much simpler rule to say if you want realtime always use realtime_mask and if you want mixed always use the dedicated_mask
16:47:18 sean-k-mooney if you want both use both and require the realtime mask must be a subset of the dedicated mask
16:47:32 stephenfin if we're doing this, do we want to fix that annoying thing where hw:cpu_realtime_mask has to be preceded by carat?
16:47:43 stephenfin because I don't want to force that 'hw:cpu_dedicated_mask'
16:47:54 stephenfin and it would be nice for them to behave similarly
16:48:05 sean-k-mooney stephenfin: ya i would not mind doing that
16:48:23 sean-k-mooney stephenfin: we said the dedicated mask should follow the rules for the config opntion
16:48:30 sean-k-mooney not the rules for the realtime mask
16:48:33 stephenfin the only reason I see to not do that is jaypipes wanted us to kill 'hw:cpu_realtime_mask' in favor of 'hw:cpu_realtime_set'
16:48:42 stephenfin but tbh, I don't think it's worth the effort
16:48:55 stephenfin we haven't deprecated flavor extra specs before. I don't even want to get into that
16:49:06 sean-k-mooney i would be ok with that i guess but yat that ^
16:49:10 stephenfin ditto for image metadata props, for that matter
16:49:33 stephenfin okay, sweet
16:49:40 stephenfin I can revive those patches so
16:49:43 stephenfin whoo, rebase fun!
16:50:31 sean-k-mooney stephenfin: cool. i prefer each option to do one thing and one thing only. but do what you think is best
16:50:42 sean-k-mooney its a preference not a blocker for me
16:51:10 sean-k-mooney and sice we cant do cross extra spec validation in your validation propsoeal i also prefer that form the avlidation point of view
16:51:36 sean-k-mooney let me know when you want me to review and or play around with it
16:51:47 sean-k-mooney im going to drop soon just an fyi
16:51:47 stephenfin will do
16:51:58 stephenfin ah yeah, it'll be next week anyway
17:16:39 openstackgerrit Elod Illes proposed openstack/nova stable/rocky: Enhance service restart in functional env https://review.opendev.org/713033
17:19:16 openstackgerrit Lee Yarwood proposed openstack/nova master: WIP nova-live-migration: Wait for n-cpu services to come up after configuring Ceph https://review.opendev.org/713035
17:21:15 openstackgerrit Lee Yarwood proposed openstack/nova stable/pike: WIP nova-live-migration: Wait for n-cpu services to come up after configuring Ceph https://review.opendev.org/713036
17:29:09 openstackgerrit Merged openstack/nova stable/rocky: Remove global state from the FakeDriver https://review.opendev.org/712751
17:29:16 melwitt lyarwood: yay, thanks for looking at that. is the same thing happening with the intermittent failures on master?
17:29:56 melwitt *intermittent nova-live-migration failures
17:30:39 lyarwood melwitt: I don't recall seeing this on master but let me have a quick look in logstash
17:31:25 melwitt lyarwood: ok, was just wondering if you knew off the top of your head. I've seen occasional failures of nova-live-migration on master and just curious if it's the same thing. I hope so, cause that would mean your fix would fix that too
17:37:12 lyarwood melwitt: yeah, I can't see anything on master but my elasticsearch foo is awful
17:37:35 melwitt ok np
17:39:38 lyarwood melwitt: FWIW your https://review.opendev.org/#/c/712226/ change failed because of http://status.openstack.org/elastic-recheck/#1813789
17:39:51 lyarwood melwitt: I've not had time to look into that but I have been seeing that across master
17:40:30 melwitt lyarwood: ah thanks. I've been looking at http://status.openstack.org/elastic-recheck/#1844929 again yesterday and today
17:41:06 melwitt so far, no dice
17:42:52 lyarwood melwitt: kk, these all appear rather tricky
17:43:14 melwitt yeah :(
18:28:10 melwitt zzzeek: could you pls sanity check me on this -- this logging is done after getting a response back from the database server right? it's not a client side logging before making the query https://github.com/zzzeek/sqlalchemy/blob/master/lib/sqlalchemy/engine/result.py#L1579
18:28:54 zzzeek melwitt: row logging is after we've executed the statement and we've received rows back from the DBAPI cursor, that line logs the row itself
18:29:08 zzzeek there's no "row" that we would have before invoking a statement
18:29:12 melwitt thanks zzzeek++
18:29:18 melwitt haha yeah. makes sense
18:32:26 melwitt zzzeek: I'm investigating a gate bug (and we enabled connection_debug=100) and noticing that in the failure cases, we get no rows logged for our query for compute nodes. the gate environment on the nodes where it fails is known to be running on nodes with restricted disk iops. do you have any idea what could be happening or how we could tune to handle this environment better?
18:33:05 melwitt like, in what scenarios could we make a query to the db server and then get no response within 60 seconds?
18:33:26 zzzeek melwitt: well eventlet can do that, if you're using eventlet in some case
18:33:43 zzzeek melwitt: another is, the query has a huge cartesian product and is taking too long to ORDER BY
18:33:52 melwitt and if there's any rule of thumb way to deal with that, assuming that the disks cannot be made faster or allow more iops
18:34:14 melwitt we are using eventlet to manage the 60 second client side timeout waiting for the result
18:35:04 zzzeek the eventlet issue is that if some other greenlets are hogging the CPU then the greenlet in question might not be able to get a result back, but this has never been observed at the scale of 60 seconds
18:35:33 zzzeek if the "restricted disk iops" is making MySQL chug to a halt, that would be a thing
18:36:25 zzzeek is that both read and write ops?
18:37:33 melwitt hm, not sure. I'm referencing this ML thread http://lists.openstack.org/pipermail/openstack-discuss/2019-November/010505.html

Earlier   Later