qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Native MinGW build crashes when partitioning hard disk


From: Legorol
Subject: Re: [Qemu-devel] Native MinGW build crashes when partitioning hard disk in guest
Date: Sat, 1 Feb 2014 17:50:40 +0100

On 1 February 2014 12:51, Stefan Weil <address@hidden> wrote:
> Am 01.02.2014 11:47, schrieb Legorol:
>> (I am reposting this as my first post seems to have fallen through the
>> cracks.)
>>
>> I am building the official Qemu 1.7.0 release from source natively under
>> MinGW for myself. I execute the i386 target. Qemu starts fine, but it
>> crashes when I try to partition a 2G hard disk under an MS-DOS 6.22
>> guest. Details of the build and reproducing the crash are below.
>>
>> The problem also occurs for me with the 1.6.2 release. The problem does
>> not occur with these binaries from other people:
>> Eric Lassauge's Qemu-1.6.0-windows.zip
>> Prashant Satish's qemu-1.6.0-win32-sdl.tar.lzma
>> Stefan Weil's qemu-w32-setup-20131128, qemu-w32-setup-20140118.exe
>>
>> The problem does not occur when I add the --enable-debug flag to
>> configure! Whatever optimisation is removed as a result seems to avoid
>> the crash.
>>
>> How can I troubleshoot what the problem is? What should I change about
>> my build to solve the problem?
>>
>
> Hi,
>
> I assume that this is caused by a known problem with coroutines (which
> are used by QEMU's block operations) for Windows. Any file operation can
> cause that crash. See this discussion for details:
>
> http://lists.nongnu.org/archive/html/qemu-devel/2013-09/msg04197.html

Thanks for the pointer. I have actually already seen that discussion
and read every related post in that thread.

>
> The problem is caused by buggy code produced by the MinGW compilers when
> optimisation is enabled. There exist several workarounds which fix the
> problem:
>
> * disable optimisation for coroutine-win32.c (that's what --enable-debug
> does)
>
> * disable the coroutine pool

As per the discussion you linked, I've already been compiling with
the --disable-coroutine-pool flag, as indicated in my description.

>
> * modify the code of function qemu_coroutine_switch in coroutine-win32.c
>   (that's what I use for my binaries)
>
> Try this patch:
>
> http://repo.or.cz/w/qemu/ar7.git/commitdiff/c777d5d62a729fd8b19847aaa0aad3d7a1f73f47
>
> Regards
> Stefan
>

I tried the patch (in addition to disabling the coroutine pool), and
it worked! I no longer get the crash.

There is something still amiss though, if you say that disabling the
coroutine pool OR applying the patch should do the trick. Just
disabling the coroutine pool wasn't enough for me.

Thanks,
Legorol



reply via email to

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