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=20 for thread switching, you would need to call flushrs from setjmp. That=20 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=20 that way for a good reason. Dan is close to being able to commit the=20 syscall version of swapcontext, and we should be able to implement that=20 for ia64 easily. FWIW, linux doesn't support setjmp/longjmp style=20 thread switching. --=20 Doug Rabson=09=09=09=09Mail: dfr@nlsystems.com =09=09=09=09=09Phone: +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>