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

[Xen-users] Debian 6.0 + Xen4.0 + FreeBSD hvm amd64 -> fpudna: fpcurthread == curthread XXXX times


I'm working with full virtual FreeBSD 8.2-RELEASE-p1 amd64 domU under debian
squeeze and xen-hypervisor-4.0-amd64.

If I cfg this hvm with cpu >  4 :

 vcpus    = 5

the server is blocked by these messages :

 fpudna: fpcurthread == curthread XXXX times

The machine is pingable but I'm unable to ssh to it.

On single user, freebsd works fine, fsck an so on ok, but when switching to
multiuser these fpudna messages start flooding.

I've googled but haven't found anything; something from 2005 about
fpudna :


and this link, but I don't have the options he mentions enabled on the
kernel :


The machine really seems to detect cpu's available and responds to
keyboard on VNC, but it's impossible to see whats written down because of the
messages flooding the screen.

I've also asked freebsd-xen@xxxxxxxxxxx; I applied a suggestion from Mr. K. 
Belousov :

diff --git a/sys/amd64/amd64/fpu.c b/sys/amd64/amd64/fpu.c
index 08e5e57..a5ee853 100644
--- a/sys/amd64/amd64/fpu.c
+++ b/sys/amd64/amd64/fpu.c
@@ -394,14 +394,8 @@ fpudna(void)
      struct pcb *pcb;

-    if (PCPU_GET(fpcurthread) == curthread) {
-        printf("fpudna: fpcurthread == curthread %d times\n",
-            ++err_count);
-        stop_emulating();
-        critical_exit();
-        return;
-    }
-    if (PCPU_GET(fpcurthread) != NULL) {
+    if (PCPU_GET(fpcurthread) != NULL&&
+        PCPU_GET(fpcurthread) != curthread) {
          printf("fpudna: fpcurthread = %p (%d), curthread = %p (%d)\n",

recompiled the kernel and got a 'kernel trap 22' with > 4 vcpus.

Has anyone stepped on this behavior before?
Is it freebsd related or xen related?
Is there any workaround?

Thanks for your help,

Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.