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>
index | next in thread | raw e-mail
>>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
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705210933.TAA16022>
