[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-ia64-devel] [IPF-ia64] with Cset 10690, creating aVTImakexen0 hang
Hi SAKAI. You misunderstood. There are two issues. - one issues is related to stop_timer() stop_timer() prevents the message. "Ooops, pending guest timer before its due" This isn't very serious. - another issues is related to TIMER_SLOP. This issue is that non-VTi domain hangs. This isn't fixed by stop_timer(). As Anthony pointed out, adding TIMER_SLOP isn't complete fix. This issue is serious. It seems to take a while for you to fix them. Then, please back out your change at first. Thanks. On Tue, Jul 18, 2006 at 10:56:53PM +0900, Atsushi SAKAI wrote: > Hi, Anthony and Yamahata > > Thank you for your comments. and sorry for late. > I know Anthony modification(stop_timer) fix the problem in empirically. > But, I am investigating the reason. > > The problem is two timer function exists after defining the hlt_timer_fn. > Two timer function confliction exists within the vcpu_timer_expired => > vcpu_pend_timer => DomU => vcpu_set_itm or hyper_set_itm > Because domain_itm keeps old value until vcpu_set_itm or hyper_set_itm is > called. > For this reason, it has possibility that another VIRQ_ITC interrupt can call > during this window. > To fix this problem, it should exclude VIRQ_ITC interrupt duing that time > window. > > > and this problem is reproduced by using lmbench.(Thanks) > > > Thanks > Atsushi SAKAI > > > > >Hi, Yamahata, > > > >If this domain depends on hlt_timer to wake it up, > >The scenario you described can appear, > >TIMER_SLOP can reduce this situation, but can't eliminate this situation. > >Maybe we need another mechanism to wake up VCPU, when this VCPU > >has been blocked for a certain time. > > > >Thanks, > >Anthony > > > > > > > >>From: Isaku Yamahata > >>Hi SAKAI. > >> > >>The Anthony's modification is required. > >>Without the modification, all physical CPUs end up in the idle loop and > >>can't get out of it in spite of runnable vcpus existance because > >>of TIMER_SLOP. This issue isn't related to VT-i domain. > >> > >>Thanks. > >> > >>On Wed, Jul 12, 2006 at 10:30:47PM +0800, Xu, Anthony wrote: > >>> Hi, SAKAI > >>> Forget wrong analysis in early email, > >>> > >>> In the phase of EFI boot, there are many IO operations, so dom0 is woken > >>> up > >>by > >>> VTIdomain in most time, while hlt_timer is still registered, this may > >>> cause > >>more > >>> timer interrupts injected to dom0 than before. > >>> > >>> Hope following modification help > >>> #define TIMER_SLOP (50*1000) /* ns */ > >>> set_timer(&v->arch.hlt_timer, > >>vcpu_get_next_timer_ns(v)+TIMER_SLOP ); > >>> do_sched_op_compat(SCHEDOP_block, 0); > >>> stop_timer(&v->arch.hlt_timer); > >>> > >>> Thanks, > >>> Anthony > >>> > >>> > >>> >-----Original Message----- > >>> >From: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx > >>> >[mailto:xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Xu, > >>Anthony > >>> >Sent: 2006?7?12? 21:13 > >>> >To: Atsushi SAKAI; Alex Williamson; Zhang, Xiantao > >>> >Cc: Isaku Yamahata; xen-ia64-devel@xxxxxxxxxxxxxxxxxxx > >>> >Subject: RE: [Xen-ia64-devel] [IPF-ia64] with Cset 10690,creating > >>aVTImakexen0 > >>> >hang > >>> > > >>> >>From: Atsushi SAKAI > >>> >>Sent: 2006?7?12? 19:05 > >>> >>My primary motivation is correct display of xenmon.py and xentop in > >>BVT/CREDIT. > >>> >>(N.B. SEDF displayed as same as x86, but BVT/CREDIT are not) > >>> >>If only domU emulation is applied, it is a half way from my motivation. > >>> >>Is dom0 dispatch another home work? > >>> >> > >>> > > >>> >I suspect the slowness is not due to dom0 being scheduled out, but due to > >>> >hlt_timer > >>> >didn't work as expected. > >>> > set_timer(&v->arch.hlt_timer, vcpu_get_next_timer_ns(v)); > >>> > do_sched_op_compat(SCHEDOP_block, 0); > >>> >There is a time window between set_timer and dom0 being scheduled out, > >>> >and > >>psr.i > >>> >is 1. So if hlt_timer fires before do_sched_op_compat being called, dom0 > >>> >will > >>> >not be woken up by hlt_timer, and there is no timer interrupt for dom0 > >>> >until > >>> >domo > >>> >is woken up ,yes, dom0 can be woken up by other external interrupts, but > >>> >not > >>> >by > >>> >timer interrupt. And since dom0 is involved in VTIdomain bootup, this may > >>lead > >>> >to slowness of VTIdomain bootup. > >>> > > >>> >Above is my analysis, there isn't any evidence. > >>> > > >>> >You can do experiment to check it. > >>> >Change above code sequence as following, this may reduce the impact of > >>> >time > >>> >window. > >>> > > >>> >set_timer(&v->arch.hlt_timer, > >>> >cycle_to_ns(local_cpu_data->itm_delta)+NOW()); > >>> >do_sched_op_compat(SCHEDOP_block, 0); > >>> > > >>> >_______________________________________________ > >>> >Xen-ia64-devel mailing list > >>> >Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx > >>> >http://lists.xensource.com/xen-ia64-devel > >>> > >>> _______________________________________________ > >>> Xen-ia64-devel mailing list > >>> Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx > >>> http://lists.xensource.com/xen-ia64-devel > >> > >>-- > >>yamahata > > > > > > > > > > _______________________________________________ > Xen-ia64-devel mailing list > Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-ia64-devel -- yamahata _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |