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: Marcelo Tosatti
Subject: Re: [Qemu-devel] Re: LSI: avoid infinite loops
Date: Thu, 19 Jun 2008 18:53:40 -0300
User-agent: Mutt/1.5.18 (2008-05-17)

On Thu, May 08, 2008 at 12:13:15AM -0300, Marcelo Tosatti wrote:
> On Thu, May 08, 2008 at 01:52:11AM +0100, Paul Brook wrote:
> > 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.
> 
> So what do you suggest as a proper fix?

Paul, 

What do you suggest as a proper fix to this problem?






reply via email to

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