[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 02 of 10] arm: implement udelay()



At 19:03 +0000 on 23 Feb (1330023834), David Vrabel wrote:
> On 23/02/12 17:40, Tim Deegan wrote:
> > arm: implement udelay()
> > 
> > Signed-off-by: Tim Deegan <tim@xxxxxxx>
> > 
> [...]
> > diff -r 4a7c14209131 -r ec051056db2b xen/arch/arm/time.c
> > --- a/xen/arch/arm/time.c   Thu Feb 23 17:39:59 2012 +0000
> > +++ b/xen/arch/arm/time.c   Thu Feb 23 17:39:59 2012 +0000
> > @@ -171,6 +171,16 @@ void __cpuinit init_timer_interrupt(void
> >      request_irq(30, timer_interrupt, 0, "phytimer", NULL);
> >  }
> >  
> > +/* Wait a set number of microseconds */
> > +void udelay(unsigned long usecs)
> > +{
> > +    s_time_t deadline = get_s_time() + 1000 * (s_time_t) usecs;
> > +    do {
> > +        dsb();
> > +        isb();
> 
> What are these barriers for?

To make sure the CPU doesn't hoist any instructions past the wait
loop. :)  They don't really have to be inside the loop body; I can
change that if you like.

Tim.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.