From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH v2 2/2] sched_credit2.c: runqueue_per_core code Date: Thu, 19 Mar 2015 12:35:33 +0000 Message-ID: <550AC295.2080906@eu.citrix.com> References: <20150313181109.GA3179@gmail.com> <55032C85.6090805@citrix.com> <550336EE.60909@eu.citrix.com> <5506DF40020000780006A407@mail.emea.novell.com> <5506D1E1.8050404@eu.citrix.com> <5506E11F020000780006A426@mail.emea.novell.com> <1426616308.32500.98.camel@citrix.com> <55093DD1020000780006B1F2@mail.emea.novell.com> <1426668836.2560.13.camel@citrix.com> <55099940.7080007@eu.citrix.com> <1426697366.2560.65.camel@citrix.com> <5509B066.5050302@eu.citrix.com> <1426759435.2560.104.camel@citrix.com> <550AB812020000780006B872@mail.emea.novell.com> <550AB5B3.9020308@eu.citrix.com> <1426768160.2560.117.camel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1426768160.2560.117.camel@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Dario Faggioli , George Dunlap Cc: Andrew Cooper , "xen-devel@lists.xen.org" , "JBeulich@suse.com" , "uma.sharma523@gmail.com" List-Id: xen-devel@lists.xenproject.org On 03/19/2015 12:29 PM, Dario Faggioli wrote: > On Thu, 2015-03-19 at 11:40 +0000, George Dunlap wrote: >> On 03/19/2015 10:50 AM, Jan Beulich wrote: >>>>>> On 19.03.15 at 11:03, wrote: > >>>> Nevertheless I see the value of doing so, and hence I think what we >>>> could do would be to introduce a new hook in the scheduler interface, >>>> called .init_pdata or .init_pcpu, and, in sched_*.c, split the >>>> allocation and the initialization parts. The former will be handled >>>> during CPU_UP_PREPARE, when allocation is possible, the latter during >>>> CPU_STARTING, when we have more info available to perform actual >>>> initializations. >>> >>> Another alternative would be a new CPU_ALIVE (name subject to >>> change) notification after interrupts got enabled. That would (as >>> a follow-up cleanup) also allow the MTRR and microcode setup on >>> the CPU to no longer need explicit calls (which look reversed >>> anyway - surely we should update microcode before fiddling with >>> MTRRs). >> >> local_irq_enable() happens after setting the cpu as online in >> cpu_online_map; not having the scheduler ready to actually schedule on >> it at that time seems like it's asking for trouble. >> > Right. > >> /me pokes around and thinks some more... >> > So, if I can ask, how about my idea of splitting alloc_ and init_ parts > of pCPU initialization ? :-) Architecturally, from some points of view it makes sense -- actually having "alloc_pdata" mean "initialize the cpu" is a bit weird; from other points of view, it would be nicer not to multiply callbacks and make the interface more complicated. But from a practical point of view, this path is already more work than I was expecting it to be, so I don't think we should spend *too* much time looking for alternatives. If that seems like the best option at the moment, then I'm fine with it. -George