[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 2/3] xen: Have schedulers revise initial placement
On Mon, Jul 25, 2016 at 11:28 AM, George Dunlap <george.dunlap@xxxxxxxxxx> wrote: > The generic domain creation logic in > xen/common/domctl.c:default_vcpu0_location() attempts to try to do > initial placement load-balancing by placing vcpu 0 on the least-busy > non-primary hyperthread available. Unfortunately, the logic can end > up picking a pcpu that's not in the online mask. When this is passed > to a scheduler such which assumes that the initial assignment is > valid, it causes a null pointer dereference looking up the runqueue. > > Furthermore, this initial placement doesn't take into account hard or > soft affinity, or any scheduler-specific knowledge (such as historic > runqueue load, as in credit2). > > To solve this, when inserting a vcpu, always call the per-scheduler > "pick" function to revise the initial placement. This will > automatically take all knowledge the scheduler has into account. > > csched2_cpu_pick ASSERTs that the vcpu's pcpu scheduler lock has been > taken. Grab and release the lock to minimize time spend with irqs > disabled. > > Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxx> > --- > v2: > - Actually grab lock before calling vcpu_schedule_lock() to avoid > tripping over a new ASSERT > > CC: Dario Faggioli <dario.faggioli@xxxxxxxxxx> > CC: Anshul Makkar <anshul.makkar@xxxxxxxxxx> > CC: Meng Xu <mengxu@xxxxxxxxxxxxx> > CC: Jan Beulich <jbeulich@xxxxxxxx> > --- > xen/common/sched_credit.c | 3 +++ > xen/common/sched_credit2.c | 11 ++++++++++- > xen/common/sched_rt.c | 3 +++ > 3 files changed, 16 insertions(+), 1 deletion(-) > As to sched_rt.c, Reviewed-by: Meng Xu <mengxu@xxxxxxxxxxxxx> ----------- Meng Xu PhD Student in Computer and Information Science University of Pennsylvania http://www.cis.upenn.edu/~mengxu/ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |