> > I'm not sure if I'm misunderstanding, but the line
> > that is between context_switch and context_switch_finalize
> > is spin_UNLOCK_irq, which releases the lock, correct?
>
> Sure, but this is not run in the next domain, since a switch has just
> occured!
Sorry, I was not clear enough. This is not true when a domain is started.
Tristan.
> > > Hi,
> > >
> > > while working on SMP, I think I hit a problem which may
> > > require a local
> > > redesign in context switching.
> > >
> > > In common/schedule.c(__enter_scheduler), the last lines are:
> > >
> > > context_switch(prev, next);
> > >
> > > spin_unlock_irq(&schedule_data[cpu].schedule_lock);
> > >
> > > context_switch_finalise(next);
> > > }
> > >
> > > Unfortunatly, on ia64, context_switch does all the work and
> > > context_switch_finalise does nothing. Therefore, the cpu-spin lock is
> > > still taken when the domain runs [even with one cpu].
> > > It is correct ?
> > >
> > > I will try to fix this issue tomorrow, and I will look on x86
> > > code. However,
> > > if anymore has already think about this issue, please share!
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|