Hyperthreading crashes

Mikulas Patocka mikulas at artax.karlin.mff.cuni.cz
Sat Dec 13 13:56:29 PST 2003


> Hi
>
> I use FreeBSD-4.9-RC1 on a machine with hyperthreading (it seems that
> hyperthreading support was ripped out of final 4.9 release --- why?)
>
> I get random SIGBUSes when compiling (once I got SIGSEGV too). When I
> compile only with make -j 1, I get no errors. Is it known problem with
> FreeBSD? Or does it mean that the machine is bad?
>
> How can I find what's the reason for particular SIGBUS signal --- what did
> the program wrong?

I found that it is caused by bogus aligment exceptions, when i modified
the kernel this way, it works (and programs don't crash):

Does anybody have a clue why this happens?

--- ../sys-49/i386/i386/trap.c  Thu Feb 27 19:09:59 2003
+++ i386/i386/trap.c    Sat Dec 13 22:33:48 2003
@@ -290,6 +290,11 @@
        type = frame.tf_trapno;
        code = frame.tf_err;

+       if (type == T_ALIGNFLT) {
+               printf("Bogus alignment check exception!\n");
+               return;
+       }
+
        if (in_vm86call) {
                if (frame.tf_eflags & PSL_VM &&
                    (type == T_PROTFLT || type == T_STKFLT)) {

Mikulas


More information about the freebsd-hackers mailing list