Aurelien Jarno a écrit :
> Aurelien Jarno a écrit :
>> Aurelien Jarno a écrit :
>>
>>> I have used QEMU CVS with a Debian Sid image. It basically works, I am
>>> even able to login via SSH, but I have noticed two problems:
>>>
>>> - Some process hang, stay into "D" state and become unkillable. It seems
>>>   it can happen to all processes, but it is always reproducible with
>>>   uptime or top. I still don't know if it is a problem of the kernel or
>>>   if it comes from the emulation.
>> This problem arise when using floating point instructions. It can be
>> easily triggered by running the following testcase:
>>
>> #include <stdio.h>
>>
>> int main()
>> {
>>         double a = 1.34;
>>         printf("%.2f", a);
>>         return 0;
>> }
>>
> 
> This is actually not enough to trigger the bug. The testcase works if
> the bug has already been trigger in another process before, for example
> uptime.
> 

I finally found a testcase that trigger the bug in any case:

#include <stdio.h>

int main()
{
        printf("%d %f\n", 7, 0.40);
        return 0;
}

The bug could also be trigger with sprintf(), so this is not directly
related to I/O. It happens when printing an integer followed by a float,
even when the two are printed in two different calls to printf().

-- 
  .''`.  Aurelien Jarno             | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   [EMAIL PROTECTED]         | [EMAIL PROTECTED]
   `-    people.debian.org/~aurel32 | www.aurel32.net


Reply via email to