From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Mw2Im-0007Bs-W1 for qemu-devel@nongnu.org; Thu, 08 Oct 2009 19:21:41 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Mw2Ih-0007Az-7v for qemu-devel@nongnu.org; Thu, 08 Oct 2009 19:21:39 -0400 Received: from [199.232.76.173] (port=42270 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Mw2Ih-0007Av-48 for qemu-devel@nongnu.org; Thu, 08 Oct 2009 19:21:35 -0400 Received: from mx1.redhat.com ([209.132.183.28]:14246) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Mw2Ig-0001o9-Me for qemu-devel@nongnu.org; Thu, 08 Oct 2009 19:21:34 -0400 Date: Fri, 9 Oct 2009 01:19:18 +0200 From: "Michael S. Tsirkin" Subject: Re: [Qemu-devel] Re: [PATCH] qemu: work around for "posix-aio-compat" Message-ID: <20091008231918.GA8607@redhat.com> References: <20091008203740.GA20727@redhat.com> <20091008214606.GA8580@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: malc Cc: qemu-devel@nongnu.org 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:av1474@comtv.ru