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>