Skip site navigation (1)Skip section navigation (2)
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>