Date: Wed, 6 Aug 2003 14:25:47 -0700 From: Marcel Moolenaar <marcel@xcllnt.net> To: deischen@freebsd.org Cc: threads@freebsd.org Subject: Re: KSE/ia64: a quick update Message-ID: <20030806212547.GC1179@athlon.pn.xcllnt.net> In-Reply-To: <Pine.GSO.4.10.10308061704520.18664-100000@pcnet5.pcnet.com> References: <20030806205308.GA1179@athlon.pn.xcllnt.net> <Pine.GSO.4.10.10308061704520.18664-100000@pcnet5.pcnet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Aug 06, 2003 at 05:12:40PM -0400, Daniel Eischen wrote: > > The thing to realize I guess is that once you trap, > you won't do it again until the FPU has been taken > away again. So you may only trap the first time, > and a few other times following that you may not. > You can have to weigh that against always using a > system call to restore the context. I'm not sure > what the difference would be. I haven't done any performance measurements. What I do know is that lazy switching of the high FP is a definite win, because they are hardly ever used. Once the ia64 port reaches some level of maturity I intend to use 1:1 threading to simulate multiple processes using the high FP registers and analyze how it behaves (including correctness). Based on that I probably want to make changes. > > I think I'll go with the following (for async contexts): > > > > o Use ifa and isr in the context to pass the pointer to the > > mailbox and the value we want to write to it. Both are > > only used by the kernel to pass information about the > > fault or interrupt to the kernel, so they are unused > > fields in contexts. > > o Set a flag in the context to indicate that we want the > > mailbox set (if applicable). > > o Use the break-based syscall path to call setcontext(2). > > o Have the kernel switch the context and set the mailbox. > > > > It's a bit of a hack, but I think other solutions are much > > more painful. Both implementation-wise and kludge-wise. > > If there's anything more we can do, let us know. With the MD bits in libkse revamped I don't have much to wish for. It would have taken us (me) a lot more work and time if we (I) had to do that at some later time. It looks like the async contexts are the only thing left and there's no revamp of KSE that can make that go away, so I guess I just have to solve it :-) I'll let you know when ACE fails to panic the kernel... -- Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030806212547.GC1179>