On Sat, 2007-10-20 at 23:49 +0200, Aurelien Jarno wrote:
> 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().

OK, thanks. I'll do test with this program. It seems that floats are OK
when running 2.4 kernels, it maybe a difference in recent glibc. I'll
try to investigate more about it.

-- 
J. Mayer <[EMAIL PROTECTED]>
Never organized



Reply via email to