kqemu+amd64: fpudna in kernel mode

Jung-uk Kim jkim at FreeBSD.org
Wed Apr 11 17:22:15 UTC 2007


On Wednesday 11 April 2007 11:22 am, Andriy Gapon wrote:
> I get swarms of messages "fpudna in kernel mode" in system log when
> I run qemu with kqemu on FreeBSD 6.2 amd64 host with Windows XP
> 32-bit guest. I noticed that someone reported this problem a while
> ago:
> http://lists.freebsd.org/pipermail/freebsd-emulation/2006-February/
>001800.html

This happens because we do not allow FP instructions in kernel mode as 
the error message suggested.  Executing FP instructions in kernel 
mode requires expensive save/restore cycles for FP states.

> There is no harm done, but the messages are annoying and they might
> be indicative of some bigger issue.
> Note that I am running qemu like follows:
> $ qemu-system-x86_64 ... -m 512 -net tap -net nic -localtime
>
> there is no -kernel-kqemu option and "info kqemu" in qemu monitor
> says that it is enabled for user code.

-kernel-kqemu option does not work for FreeBSD and it is very 
experimental feature for Linux x86-64.  Since KQEMU is release under 
GPL recently, it can be fixed if someone's motivated enough, 
though. ;-)

> As I understand "fpudna" means "FPU device not available" and the
> message comes from here:
> http://fxr.watson.org/fxr/source/amd64/amd64/trap.c
>
> on T_DNA ("device not avaialble") _kernel_ fault.

You can ignore the complaints for now until we come up with better FP 
handling in kernel.

> BTW, not complaining about the following, but I think I should
> report it. When I use -kernel-kqemu option I get random crashes of
> the guest XP (BSOD) with diagnostics like the following (they
> vary):
>
> IRQL_NOT_GREATER_OR_EQUAL
> PFN_LIST_CORRUPT
> PAGE_FAULT_IN_NONPAGED_AREA
>
> Looks like all three are caused by some sort of memory corruption
> or driver misbehavior according to the following:
> http://aumha.org/a/stop.htm

Windows guest is not supported by full virtualization mode, AFAIK.

http://www.qemu.net/kqemu-doc.html

BTW, it doesn't give you much performance gain as you may think:

'Best performances are achieved with Linux 2.4 kernels. Linux 2.6 
works but the performance gains are small.'

Even if we make it work with FreeBSD, I would expect similar results.

Jung-uk Kim


More information about the freebsd-ports mailing list