14:00:43 <edleafe> #startmeeting nova_scheduler
14:00:44 <openstack> Meeting started Mon Mar 26 14:00:43 2018 UTC and is due to finish in 60 minutes.  The chair is edleafe. Information about MeetBot at http://wiki.debian.org/MeetBot.
14:00:45 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
14:00:47 <openstack> The meeting name has been set to 'nova_scheduler'
14:00:50 <mriedem> o/
14:00:52 <tssurya> o/
14:00:52 <bauzas> \o
14:00:52 <efried> @/
14:00:53 <gibi> o/
14:01:03 <edleafe> geez, everyone's in a rush today!
14:01:16 * bauzas notes that he'll be only available for the next 20 mins
14:01:19 <efried> actually more like รถ/ today (new haircut)
14:01:40 * bauzas greets daylight saving
14:01:49 <cdent> oh hai
14:01:50 <efried> eff dst
14:02:20 <edleafe> #link Agenda: https://wiki.openstack.org/wiki/Meetings/NovaScheduler
14:02:47 <edleafe> I like DST - I hate having to go back to standard time in the winter
14:03:12 <efried> Fine, then let's stick to that one.  But this switching back and forth is for the birds.
14:03:19 <jaypipes> o/
14:03:21 * bauzas likes DST because for 6 months, my oven has the right time
14:03:44 <edleafe> #topic Specs
14:04:21 <bauzas> I have a big question on NUMA thingy
14:04:23 <edleafe> Here's the current list from the agenda:
14:04:25 <edleafe> #link VMware: place instances on resource pool (using update_provider_tree) https://review.openstack.org/#/c/549067/
14:04:28 <edleafe> #link Provide error codes for placement API https://review.openstack.org/#/c/418393/
14:04:31 <edleafe> #link Mirror nova host aggregates to placement API https://review.openstack.org/#/c/545057/
14:04:34 <edleafe> #link Network bandwidth resource provider https://review.openstack.org/#/c/502306/
14:04:37 <edleafe> #link Default Allocation Ratios https://review.openstack.org/#/c/552105/
14:04:40 <edleafe> #link Proposes NUMA topology with RPs https://review.openstack.org/#/c/552924/
14:04:43 <edleafe> #link Spec for isolating configuration of placement database https://review.openstack.org/#/c/552927/
14:04:46 <edleafe> #link Account for host agg allocation ratio in placement https://review.openstack.org/#/c/544683/
14:04:49 <edleafe> #link Spec on preemptible servers https://review.openstack.org/#/c/438640/
14:04:52 <edleafe> go for it bauzas
14:05:13 <jaypipes> bauzas: we only accept small questions on NUMA things. big questions are right out.
14:05:25 <bauzas> looks like we have an agreement on providing resources like CPU and RAM on NUMA nodes directly if the operator wants to
14:05:37 <jaypipes> bauzas: Also, I request that you split your question into granular request groups.
14:05:49 <efried> appropriately namespaced
14:05:53 <jaypipes> ++
14:06:12 <bauzas> crazy question : could the operator want to tell which specific resource classes it wants NUMA-based ?
14:06:30 <bauzas> like, could I as an operator care about VCPU but not MEMORY_MB ?
14:06:30 <jaypipes> bauzas: not following you... could you elaborate?
14:06:43 <jaypipes> bauzas: sure, I see no reason why not.
14:06:57 <bauzas> okay, so it would be defined per class, roger.
14:07:08 <edleafe> jaypipes: wouldn't that be done in libvirt?
14:07:21 <jaypipes> bauzas: you mean have the dedicated CPU and shared CPU (VCPU) tracked as inventory on each NUMA node and have MEMORY_MB tracked as inventory on the root compute node provider, yes?
14:07:21 <edleafe> IOW, either account for NUMA, or don't
14:07:28 <bauzas> jaypipes: exactly
14:07:33 <bauzas> jaypipes: or the contrary
14:07:52 <efried> seems reasonable to me.
14:07:56 <bauzas> like, memory-bound applications could care about MEMORY allocations
14:08:09 <bauzas> but wouldn't care about CPUs
14:08:10 <jaypipes> well, let's keep in mind that memory pages != MEMORY_MB...
14:08:13 <efried> I mean, doable.  I won't speak to reasonable.
14:08:39 <bauzas> jaypipes: memory pages are a different feature, I just wrote an example for it in my to-be-uploaded spec
14:08:45 <jaypipes> bauzas: memory pages are not the same thing as MEMORY_MB... memory pages are atomic units of a thing. MEMORY_MB's atomic "unit" is just a MB of RAM somewhere.
14:08:48 <efried> bauzas: IMO, we haven't yet landed on a workable way for the op to represent a desire for NUMA affinity.
14:08:56 <jaypipes> bauzas: ok, cool. just wanted to clarify that
14:08:58 <efried> So at this point, sky's the limit.
14:09:17 <bauzas> efried: yup, that's in my spec
14:09:25 <efried> ack
14:09:36 * efried has a pretty big backlog of spec reviews to catch up on.
14:09:46 <bauzas> okay, so I'll provide a revision  foir https://review.openstack.org/#/c/552924/ about optionally-NUMA-able resource classes
14:09:53 <edleafe> s/efried/everyone
14:10:02 <bauzas> yeah I'm under the water too
14:10:10 <bauzas> anyway, I'm done with questions
14:10:19 <bauzas> thanks
14:10:30 <edleafe> Any other questions / discussion about specs?
14:10:31 <jaypipes> I want to make sure edleafe gets his question answerted.
14:10:48 <jaypipes> about libvirt being responsible for tracking NUMA
14:11:18 <edleafe> well, libvirt "owns" resources on the hypervisor, no?
14:11:24 <jaypipes> edleafe: currently, the "tracking" of NUMA resources isn't really done in libvirt, but rather it's done in the nova/virt/hardware.py module looking at CONF options like vcpu_pin_set.
14:12:06 <edleafe> jaypipes: yeah, but with the move to placement, I thought libvirt would be authoritative on all resources for a compute node
14:12:16 <jaypipes> edleafe: as well as flavor/image properties to do "allocations" of virtual NUMA topologies on top of host NUMA topology.
14:12:17 <bauzas> jaypipes: edleafe: what I'd like is to get a consensus on a model for NUMA resources that virt drivers would implement
14:12:22 <cdent> s/thought/hoped/ ?
14:12:43 <edleafe> cdent: no, it was what I've gleaned from the various discussions
14:12:47 <bauzas> if Xen starts to implement NUMA topologies, all cool with me provided they model things the same way
14:13:04 <jaypipes> edleafe: the virt driver will be, yes, but there will still need to be a way for the ops to signal to libvirt how (or even if) to utilize NUMA-related topology on the host.
14:13:11 <bauzas> the virt driver is responsible for generating the tree, but ideally trees wouldn't be virt-specific
14:13:16 <edleafe> jaypipes: zactly
14:13:34 <bauzas> jaypipes: that has to be addressed in https://review.openstack.org/#/c/552924/
14:13:41 <bauzas> hence my question about tunability
14:13:46 <jaypipes> right, no disagreement from me :)
14:13:47 <edleafe> jaypipes: it was the "do some NUMA, but not all" that seemed to not align
14:13:58 <bauzas> let's be clear
14:14:22 <bauzas> if we go for a config-managed way to provide resources thru the virt driver, that doesn't mean that conf opt will be in the libvirt namespace
14:14:55 <jaypipes> bauzas: agreed.
14:14:57 <bauzas> actually, I was thinking on a way for libvirt to pass the NUMA topology to a non-virt specific module that would translate into placement RPs
14:15:21 <bauzas> after all, a NUMA topology is just an architecture
14:16:04 <bauzas> but I'm overengineering the implementation
14:16:24 <bauzas> keep in mind a specific module out of virt.libvirt that libvirt would consume for generating the tree
14:16:44 <edleafe> bauzas: my concern is just that: making the solution overly complex in order to solve a 2% edge case
14:16:45 <bauzas> and that specific module would have config options related to it
14:17:00 <bauzas> edleafe: configability is 2% I agree
14:17:01 <edleafe> Assuming that this is an edge case, and not what most deployments would need
14:17:27 <bauzas> edleafe: having an ubiquitous interface for describing NUMA resources across all drivers isn't a 2% concern
14:17:58 <efried> But trying to make it ubiquitous might be a 98% effort.
14:18:04 <jaypipes> edleafe: hahahahah you said "edge"
14:18:12 <edleafe> bauzas: ok, it just felt like we started going down the rabbit hole on this
14:18:30 <edleafe> jaypipes: edge case, not edge computing  :)
14:18:30 <bauzas> edleafe: my biggest fear is that we go down too-libvirt specific
14:18:59 <efried> +++
14:19:00 <bauzas> edleafe: keeping the code responsible for generating the tree out of libvirt is crucial to me, if we want that to be non-virt specifci
14:19:09 <edleafe> Oh, I see mriedem has added another spec:
14:19:10 <edleafe> #link Complex (Anti)-Affinity Policies https://review.openstack.org/#/c/546925/
14:19:12 <jaypipes> bauzas: there's no disagreement with you.
14:19:23 <mriedem> edleafe: you can ignore for now, it needs an update
14:19:38 <edleafe> mriedem: sure, just including for completeness
14:19:47 <jaypipes> #action everyone ignore mriedem
14:20:25 <bauzas> jaypipes: thanks, I don't feel I had an argument, just wanted to clarify the 2%-concern
14:21:25 <bauzas> I'll have to leave soon-ish
14:21:29 <cdent> So, I actually think we should move all the numa stuff into the virt drivers and not try to genericize
14:21:30 <bauzas> moving on ?
14:21:37 <bauzas> hah
14:21:51 <cdent> because there's not very much overlap
14:21:52 <bauzas> cdent: any reasons why the contrary, mr. vmware ? :p
14:22:14 <cdent> I take offense at being slapped with mr vmware. They pay me, but that's about it.
14:22:25 <bauzas> cdent: the problem is that as of now, only libvirt provided NUMA features, right?
14:22:38 <bauzas> cdent: oh sorry, I apologize if you feel offended
14:22:51 <cdent> If we want ProviderTrees to be "true", then that needs to happen in driver
14:23:05 <bauzas> it wasn't the intent, rather an explicit way of considering your opinion as good because you have other virt driver in mind
14:23:26 <cdent> I tend to leave the employer at the door to IRC
14:23:43 <edleafe> You have a door on your IRC?
14:23:44 <cdent> but understand where you were coming from, so offense untaken.
14:24:10 <efried> If I can paraphrase what I think cdent is saying (or at least convey my own opinion couched in terms of agreeing with cdent :)
14:24:29 <bauzas> sorry folks, I'll have to drop in a very few and don't want to drop mic
14:24:29 <edleafe> efried: paraphrase away!
14:24:35 <efried> We want the virt driver to be responsible for modeling, and the operator can do *something* in the flavor that represents the NUMA topology in a generic way (i.e. designating affinities, not specific NUMA nodes).  But beyond that, there's no involvement of the scheduler, conductor, etc. other than the usual translating flavor-ness to placement-ness etc.
14:24:55 <bauzas> cdent: so, could you please explain why you consider the definition of the tree to be virt-specific ?
14:25:41 <efried> but on the other hand - and here's where I think I'm entering bauzas-land - we'd like to be able to "advise" the modeling such that the op experience is as similar as possible for whatever virt driver.
14:25:51 <bauzas> my main worries are coming from the fact that there could be high chances that a tree could differ between a libvirt implementation and a, let's say, hyper-v
14:26:13 <cdent> Is that a bad thing? We want the tree to represent the truth, yes?
14:26:13 <efried> bauzas: Perhaps cdent is saying that's going to be unavoidable, and we should butt out and let it happen.
14:26:35 <mriedem> is it unavoidable?
14:26:44 <bauzas> cdent: from a placement perspective, I feel it could be a pain if the trees differ for explaining the same architecture
14:26:44 <jaypipes> cdent: ++
14:26:47 <mriedem> we try to have a consistent compute REST API across various virt drivers right?
14:27:02 <cdent> If the architectures are different, then what is represented should be different.
14:27:05 <mriedem> i.e. we don't want to add more things like 'agent builds' that are only implemented by one virt driver anymore
14:27:08 <jaypipes> bauzas: from a placement perspective, placement doesn't really care :)
14:27:21 <bauzas> cdent: I don't disagree with that
14:27:29 <bauzas> cdent: if architectures are differnt
14:27:41 <cdent> So if hyperv "sees" something different from libvirt, it should be different in the provider tree(s)
14:27:43 <bauzas> cdent: but if the same architecture, then placement should see the same thing
14:27:52 <bauzas> cdent: again, I don't disagree with that
14:28:13 <efried> It's the op experience we'd like to try to smooth.  But yeah, not at the cost of wedging e.g. a square libvirt peg into a round hyperv hole.
14:28:14 <jaypipes> bauzas: placement is charged with determining the allocation requests against resource providers that meet the required resource and trait constraints. It's not in charge of determining whether the structure of the resource providers being created by its clients are "correct" or not.
14:28:27 <bauzas> anyway, I need to leave
14:28:38 <bauzas> I'll pound that concern
14:28:56 <bauzas> actually, generating a new module and describing an interface is a bit of work for me
14:29:25 <bauzas> so, if consensus is, "meh, let's wait other virt drivers to implement their own NUMA features"', I'm fine keeping the description in libvirt for the moment
14:29:30 <bauzas> less work, yeepeee
14:29:43 * bauzas rushes ou(t
14:29:47 <edleafe> ok, bauzas is gone, so let's start gossiping about him
14:29:51 <edleafe> :)
14:30:34 <edleafe> Anything else on specs?
14:30:38 <jaypipes> ok, next topic?
14:30:43 <gibi> regarding #link Network bandwidth resource provider https://review.openstack.org/#/c/502306/
14:30:50 <gibi> Starting this Friday I will dissapear for two weeks (honeymoon) so I'd like to settle all the remaining crazyness in the spec this week if possible.
14:30:59 <gibi> The related neturon spec work will continue without interruption.
14:31:01 <cdent> woot, congrats
14:31:02 <jaypipes> WAIT! WHAT!?
14:31:22 <gibi> cdent: thanks :)
14:31:28 <jaypipes> indeed, congrats giblet! :)
14:31:34 * edleafe likes the way gibi snuck that in
14:31:50 <gibi> so I will bug you guys this week for review
14:31:55 <jaypipes> gibi: agreed, then on finalizing the spec.
14:31:59 <jaypipes> gibi: np
14:32:43 <edleafe> reviews will be your wedding present
14:32:48 <jaypipes> hahah
14:32:53 <gibi> edleafe: :)
14:33:03 <gibi> I think we can move to the next topic :)
14:33:21 <edleafe> #topic Reviews
14:33:44 <edleafe> Here's a dump of what is on the agenda:
14:33:46 <edleafe> #link Update Provider Tree https://review.openstack.org/#/q/topic:bp/update-provider-tree
14:33:49 <edleafe> #link Request Filters https://review.openstack.org/#/q/topic:bp/placement-req-filter
14:33:52 <edleafe> #link Nested providers in allocation candidates https://review.openstack.org/#/q/topic:bp/nested-resource-providers https://review.openstack.org/#/q/topic:bp/nested-resource-providers-allocation-candidates
14:33:56 <edleafe> #link Mirror nova host aggregates to placement https://review.openstack.org/#/q/topic:bp/placement-mirror-host-aggregates
14:33:59 <edleafe> #link Forbidden Traits https://review.openstack.org/#/q/topic:bp/placement-forbidden-traits
14:34:02 <edleafe> #link Consumer Generations Just started; no patches posted yet.
14:34:05 <edleafe> #link Extraction https://review.openstack.org/#/q/topic:bp/placement-extract
14:34:21 <edleafe> Anyone have a question/concern about any of these?
14:34:56 <jaypipes> nope.
14:35:27 <cdent> I have a query about reviewing in general in a world of runways: Is _all_ of placement non runway oriented? How are we wanting that to work?
14:35:52 <jaypipes> cdent: good question. no idea.
14:35:58 <edleafe> My understanding was that runways were for non-priority things
14:36:08 <efried> It was originally
14:36:11 <edleafe> Y'know, to give them some attention
14:36:27 <edleafe> efried: ...and it changed?
14:36:33 <efried> but I think we're shifting from that to making it more of a generalized queue for "this is ready, let's get focus on it"
14:36:36 <cdent> What I'm trying to figure out is which of the placement stuff needs to go in the queue, and which doesn't
14:36:59 <cdent> If it's all, that's cool (and I think I'd actually prefer that for sake of one rule to bind them)
14:37:01 <efried> right; IMO, KISS and queue stuff up for a runway when it meets the other criteria.
14:37:34 <efried> There seemed to be some agreement on that, though we never like voted or anything.
14:37:36 <dansmith> everything goes into runways
14:37:47 <dansmith> blueprints go into runways, so a placement blueprint would get a slot for a while
14:37:49 <jaypipes> are we doing the runways stuff already or were we waiting for the spec review day (tomorrow) to be done?
14:37:50 <dansmith> like anything else
14:37:59 <cdent> starts day after spec day
14:38:00 <dansmith> jaypipes: starting after tomorrow
14:38:03 <jaypipes> k
14:38:24 <jaypipes> I have no issues with dealing with placement like anything else.
14:39:28 <cdent> cool
14:39:51 <edleafe> So... nothing more regarding reviews?
14:40:10 <mriedem> i guess i have something
14:40:20 <mriedem> remember the ironic flavor / trait migration?
14:40:26 <edleafe> yeah
14:40:39 <mriedem> https://review.openstack.org/#/c/527541/ i've been pushing that since queens, and meant to backport to pike
14:40:45 <mriedem> kind of want to know if i should just abandon that
14:41:13 <mriedem> i don't think we should do a hard drop of that migratoin code in the driver until nova-status supports it,
14:41:19 <mriedem> but there doesn't seem to be much interest
14:42:00 <jaypipes> mriedem: I just wasn't aware of that. I can review today. seems important to me.
14:42:02 <edleafe> huh, I thought that merged a while ago
14:42:06 <cdent> suspect it just fell off radar
14:42:19 <edleafe> put it on a runway!
14:42:37 <mriedem> it's not a bp
14:42:39 <mriedem> but thanks
14:43:55 <edleafe> Any other reviews to discuss?
14:45:07 <edleafe> Guess not
14:45:08 <edleafe> #topic Bugs
14:45:12 <edleafe> #link Placement bugs  https://bugs.launchpad.net/nova/+bugs?field.tag=placement&orderby=-id
14:45:38 <mriedem> there is a bug re placement we've talked about in gibi's bw provider spec,
14:45:45 <mriedem> but not sure we actually opened a bug to track it,
14:45:59 <mriedem> has to do with cleaning up allocations when deleting an instance but the compute service it's running on is down
14:46:19 <mriedem> if no one remembers opening a bug for that i can circle back
14:46:24 <gibi> mriedem: I haven't opened it
14:46:50 <cdent> that's something different from 'local delete'?
14:47:01 <gibi> cdent: local delete + decomission compute host
14:47:06 <cdent> https://bugs.launchpad.net/nova/+bug/1679750
14:47:07 <openstack> Launchpad bug 1679750 in OpenStack Compute (nova) pike "Allocations are not cleaned up in placement for instance 'local delete' case" [Medium,Confirmed]
14:47:20 <mriedem> that's the one
14:47:25 * mriedem thanks his past self
14:47:31 <cdent> your past self is clever
14:49:28 <cdent> we done with bugs?
14:49:31 <edleafe> Anything more on bugs?
14:49:36 * cdent blinks
14:50:03 <edleafe> #topic Open discussion
14:50:24 <edleafe> So... what's on your collective minds?
14:50:30 <cdent> This is not a priority, but I'd like to get some feedback on https://review.openstack.org/#/c/552927/ , which is the spec for optional db setting in placement.
14:50:53 <cdent> It allows ... options ... when working with placement that are handy
14:51:11 <cdent> But if you don't do anything different, it all works the same as it does now
14:51:56 <edleafe> If it makes the eventual separation of placement from nova go more smoothly for operators, ++
14:52:29 <cdent> there's some discussion in the spec about how it is but one of several options
14:52:42 <cdent> but also some of why I think it is the better one
14:54:32 * bauzas is back for 6 mins, yay
14:55:34 <edleafe> cdent: ok, I'll re-review
14:55:43 <cdent> thanks
14:55:50 <edleafe> Anything else for today?
14:56:23 <edleafe> OK, thanks everyone!
14:56:25 <edleafe> #endmeeting