Date: Fri, 23 Feb 2001 20:02:37 +0000 (GMT) From: Doug Rabson <dfr@nlsystems.com> To: John Baldwin <jhb@FreeBSD.org> Cc: Bruce Evans <bde@zeta.org.au>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/alpha/alpha swtch.s Message-ID: <Pine.BSF.4.21.0102232001420.454-100000@salmon.nlsystems.com> In-Reply-To: <XFMail.010223085951.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 23 Feb 2001, John Baldwin wrote: > > On i386's, it always has the same value (a fixed amount below the top > > of the process's kernel stack). Setting it more than once per process > > is pessimal. Not setting it in ast() usually works because there was > > a previous syscall or trap that set it. Note that there is no bug in > > old versions that multiplexed ast() through() trap(). Interrupt > > handlers were turned into trap handlers before they called ast(), and > > trap() set md_regs. Interrupt handlers still have a slightly different > > frame from trap handlers, so setting md_regs for them doesn't even > > make sense until they become trap handlers and call ast(). > > Well, should he hackishly set it in vm_fork() or cpu_fork() rather than > bothering to set it for traps, syscalls, and ast's? Do you know if the same > would be true (it being a fixed address) on other archs. It would seem that > any arch that used separate stacks for kernel and user would do this.. Not sure about this. Both alpha and ia64 have the kernel-entry trapframe at predictable places FWIW. -- Doug Rabson Mail: dfr@nlsystems.com Phone: +44 20 8348 6160 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0102232001420.454-100000>