Date: Thu, 14 Nov 2002 19:51:41 +0000 From: Doug Rabson <dfr@nlsystems.com> To: Marcel Moolenaar <marcel@xcllnt.net> Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/lib/libc/ia64/gen _setjmp.S Message-ID: <200211141951.41202.dfr@nlsystems.com> In-Reply-To: <20021114194057.GA856@dhcp01.pn.xcllnt.net> References: <200211140640.gAE6eNq9016231@repoman.freebsd.org> <1037298535.19149.8.camel@builder02.qubesoft.com> <20021114194057.GA856@dhcp01.pn.xcllnt.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 14 November 2002 7:40 pm, Marcel Moolenaar wrote: > On Thu, Nov 14, 2002 at 06:28:55PM +0000, Doug Rabson wrote: > > > Why do you need a flushrs in longjmp() anyway? > > > All you really need to achieve is that ar.bsp equals ar.bspstore > > > before you set ar.bspstore, right? > > > (note that the loadrs is missing a cover or an alloc) > > > > You would need a flushrs if you really wanted to use longjmp for > > thread switching, otherwise you would lose the stacked registers of > > the thread you were switching away from. > > But you need a setjmp to save that context, right? How would you > otherwise return to the thread? I've managed to reload my memory from magtape :-). To use setjmp/longjmp for thread switching, you would need to call flushrs from setjmp. That would simplify longjmp at the cost of severely pessimising setjmp. > > > > It's good to eventually optimize setjmp/longjmp for the common > > > case, but at this time it's all we have and I think we'd better > > > focus on being functionally complete. > > > > I don't think thread switching is (should be) part of the > > functional specification of setjmp/longjmp. > > I don't disagree, but deischen's swapcontext stuff is not here yet > and not having libc_r is hurting now. I would rather do this right than break setjmp. Intel wrote the code that way for a good reason. Dan is close to being able to commit the syscall version of swapcontext, and we should be able to implement that for ia64 easily. FWIW, linux doesn't support setjmp/longjmp style thread switching. -- 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?200211141951.41202.dfr>
