Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 May 1997 19:33:59 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, yokota@zodiac.mech.utsunomiya-u.ac.jp
Cc:        dg@root.com, freebsd-bugs@freebsd.org, imp@village.org, peter@spinner.DIALix.COM, thorpej@nas.nasa.gov
Subject:   Re: trap type 29 on P6
Message-ID:  <199705210933.TAA16022@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>>I don't like ignoring unexpected exceptions.  I would only ignore
>>exception 15 on P6's (it's sort of expected there).
>
>How about this then?
>
>Alternatively, should we filter this exception at the lower level in
>exception.s?

There needs to be another exception vector (as in NetBSD).  T_RESERVED
is a bit bucket for all unexpected exceptions (everything in the range
0-31 that isn't used for something).

> #endif /* NISA > 0 */
>+		case T_RESERVED:
>+			if (cpu == CPU_686) {
>+				printf("stray T_RESERVED trap (ignored)\n");
>+				return;
>+			}
>+			break;
> 		}

The cpu test is slightly easier to do in C (it should probabky be
`cpu_class == CPUCLASS_686)', and printfs are much easier to do in C,
so handling it in trap.c is best for a test version, but the printf
is probably wrong for various reasons - it might cause a nested trap,
and it's not clear if there is anything to prevent the trap repeating
too many times to be interesting.

It may be necessary to handle the user case too, so that the X server
doesn't get killed for doing i/o.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705210933.TAA16022>