Re: [osol-code] A question about x86's user preemption code

2006-03-27 Thread Oliver Yang
Gavin Maltby wrote: [cut]. A quick note, if you have the option available, is that this low-level fiddly stuff can sometimes be nicely observed through running Solaris as a guest on some form of simulator - you use the simulators debugger to follow the code flow in Solaris. Can you recommend

Re: [osol-code] A question about x86's user preemption code

2006-03-27 Thread Gavin Maltby
Hi On 03/27/06 07:45, Oliver Yang wrote: Gavin Maltby wrote: The call to preempt from sparc interrupt.s is to avoid interrupts running endlessly on a cpu while pinning an interrupted thread (which could run on another cpu if only we'd unpin it). In sparc new interrupts can be queued at the p

Re: [osol-code] A question about x86's user preemption code

2006-03-26 Thread Oliver Yang
Gavin Maltby wrote: The call to preempt from sparc interrupt.s is to avoid interrupts running endlessly on a cpu while pinning an interrupted thread (which could run on another cpu if only we'd unpin it). In sparc new interrupts can be queued at the pil we're servicing even while we are serviv

Re: [osol-code] A question about x86's user preemption code

2006-03-22 Thread Eric Lowe
Great stuff, keep those questions coming! [..] That flag is t_astflag in the thread structure - you'll see it checked in user_rtt for sparc and in lwp_rtt for x86. Exactly how you get there is left as an exercise (ie it is convoluted). The rtt code and t_astflag is convoluted but is a really i

Re: [osol-code] A question about x86's user preemption code

2006-03-22 Thread Gavin Maltby
Hi, The call to preempt from sparc interrupt.s is to avoid interrupts running endlessly on a cpu while pinning an interrupted thread (which could run on another cpu if only we'd unpin it). In sparc new interrupts can be queued at the pil we're servicing even while we are serviving preexisting re

[osol-code] A question about x86's user preemption code

2006-03-22 Thread Oliver Yang
Hi , I have a question about user preemption in Solaris. As I known, user preemptions are happened when the kernel returns from a trap, a interrupt handler or a system call. Checking with openSolaris code, I can find preempt is called by post_syscall as below: http://cvs.opensolaris.org/s