qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Re: LSI: avoid infinite loops


From: Paul Brook
Subject: Re: [Qemu-devel] Re: LSI: avoid infinite loops
Date: Thu, 8 May 2008 01:52:11 +0100
User-agent: KMail/1.9.9

On Thursday 08 May 2008, Paul Brook wrote:
> On Thursday 08 May 2008, Marcelo Tosatti wrote:
> > On Thu, May 08, 2008 at 12:21:54AM +0100, Paul Brook wrote:
> > > On Thursday 08 May 2008, Marcelo Tosatti wrote:
> > > > The Windows driver has SCRIPTS code which busy loops on main memory.
> > > > So give the CPU's a chance to run if that happens.
> > >
> > > I'm kinda surprised this works.  What causes the scripts engine to be
> > > restarted?
> >
> > LSI_ISTAT0_SIGP.
>
> In that case my surprise continues, and this is looking like an
> unbelievably horrid hack.
>
> By my reading you're making LSI_ISTAT0_SIGP effect whatever instruction
> happens to be executing when we stall. You get doubly lucky because (a) the
> guest OS decides to bang on SIGP, even though it doesn't need to. And (b)
> the last instruction executed happens to have set dnad to a value that
> "works". I'm guessing you always happen to stop execution on the
> conditional jump instruction and taking that jump doesn't cause any bad
> effects, right?

Oh, I'd also be worried what happens if an async IO operation completes at 
this point. lsi_command_complete is liable to trample all over your state.

Paul




reply via email to

[Prev in Thread] Current Thread [Next in Thread]