qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Re: [PATCH] qemu: work around for "posix-aio-compat"


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] Re: [PATCH] qemu: work around for "posix-aio-compat"
Date: Fri, 9 Oct 2009 01:19:18 +0200
User-agent: Mutt/1.5.19 (2009-01-05)

On Fri, Oct 09, 2009 at 02:17:13AM +0400, malc wrote:
> On Thu, 8 Oct 2009, Michael S. Tsirkin wrote:
> 
> > On Fri, Oct 09, 2009 at 01:13:12AM +0400, malc wrote:
> > > On Fri, 9 Oct 2009, malc wrote:
> > > 
> > > > On Thu, 8 Oct 2009, Michael S. Tsirkin wrote:
> > > >
> > > > > With commit ee3993069ff55fa6f1c64daf1e09963e340db8e4,
> > > > > "posix-aio-compat: avoid signal race when spawning a thread"
> > > > > winxp installation on a raw format file fails
> > > > > during disk format, with a message "your
> > > > > disk may be damaged".
> > > > >
> > > > > This commit moved signal mask from aio thread to creating thread.
> > > > > It turns out if we keep the mask in aio thread as well, the problem
> > > > > disappears. It should not be needed, but since this is harmless, let's
> > > > > keep it around until someone inclined to debug pthread library 
> > > > > internals
> > > > > can check this issue.
> > > > >
> > > > > While we are at it, convert sigprocmask to pthread_sigmask
> > > > > as per posix.
> > > >
> > > > Thanks for the work you've put into it, i'll try to see how all of this
> > > > works on my x86 machine.
> > > >
> > > > [..snip..]
> > > 
> > > Nope, still can not reproduce... So indeed it appears someone is needed,
> > > who:
> > > 
> > > a. Can reproduce
> > > b. Cares
> 
> [..snip..]
> 
> > > 
> > > So the thing that works for you can be replaced with some dummy loop
> > > or something,
> > 
> > Exactly. I just did this:
> > 
> > sigset_t xset;
> > 
> > static void *aio_thread(void *unused)
> > {
> >     pid_t pid;
> >     sigset_t set;
> > 
> >     /* block all signals */
> >     /* Should not be necessary as we should inherit mask
> >      * from creating thread. However, without this,
> >      * on FC11, WinXP installation fails during disk format
> >      * saying disk was damaged. pthread library bug?
> >      * */
> >     memset(&set, 0, sizeof set);
> >     memcpy(&xset, &set, sizeof set);
> > 
> > and it also helps.
> 
> Now question of the week is - why does pausing the work that aio_thread
> does helps things? Come to think of it - your machine (judging by -j 8)
> is a lot faster than anything i have in my vicinity, and that might be
> why i can not reproduce it...

No, I think it's just memory layout.
We have some memory corruption, using some stack space
moves it about to a non-critical place.

> -- 
> mailto:address@hidden




reply via email to

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