[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <4E4C2B6F.7000800@nod.at>
Date: Wed, 17 Aug 2011 22:58:23 +0200
From: Richard Weinberger <richard@....at>
To: linux-kernel@...r.kernel.org
CC: user-mode-linux-devel@...ts.sourceforge.net,
gunnarlindroth@...mail.com
Subject: Floating point problems on UML - help needed
Hi,
Gunnar reported that some Java program does not work proper within
UserModeLinux.
After looking closer at the problem I was able to reduce it to a small C
program. (Program is attached.)
It looks like FPU registers get sometimes lost after switching between
two or more threads.
It also happens not always, that's why my test program contains a
infinite loop. After a few million iterations the program abort()s.
I can reproduce the issue on both x86 and x86_64, the host's or UML's
kernel version does not matter.
I've tested 2.6.18 to 3.1-rc2.
Interestingly the problem occurs not on my old Pentium 4 machines.
One P4 has HT the other not.
Only "newer" CPUs are affected.
First I thought it's a race in _switch_to(), but adding
unblock/block_signals() did not help.
Currently I'm running out of ideas.
I'm not an expert in this area of UML. :-(
Any idea what goes wrong here?
Thanks,
//richard
View attachment "fpu-test.c" of type "text/x-csrc" (448 bytes)
Powered by blists - more mailing lists