atom feed76 messages in org.freebsd.freebsd-archRe: Threads
FromSent OnAttachments
Daniel M. EischenNov 20, 1999 8:12 pm 
Julian ElischerNov 20, 1999 8:30 pm 
Julian ElischerNov 20, 1999 8:37 pm 
Daniel M. EischenNov 20, 1999 9:02 pm 
Nate WilliamsNov 20, 1999 9:14 pm 
Daniel M. EischenNov 20, 1999 9:21 pm 
Julian ElischerNov 20, 1999 9:25 pm 
Nate WilliamsNov 20, 1999 9:27 pm 
Daniel M. EischenNov 20, 1999 9:40 pm 
Julian ElischerNov 20, 1999 10:58 pm 
Daniel M. EischenNov 21, 1999 5:40 am 
Chuck RobeyNov 22, 1999 4:30 pm 
Julian ElischerNov 22, 1999 7:57 pm 
Chuck RobeyNov 22, 1999 8:11 pm 
Julian ElischerNov 22, 1999 8:38 pm 
Chuck RobeyNov 22, 1999 9:40 pm 
Daniel EischenNov 23, 1999 4:19 am 
Jason EvansNov 23, 1999 11:30 am 
Daniel M. EischenNov 23, 1999 1:22 pm 
Chuck RobeyNov 23, 1999 9:06 pm 
Daniel EischenNov 23, 1999 9:49 pm 
Julian ElischerNov 23, 1999 10:47 pm 
Julian ElischerNov 23, 1999 11:33 pm 
Julian ElischerNov 23, 1999 11:46 pm 
Julian ElischerNov 24, 1999 2:03 am 
Daniel C. SobralNov 24, 1999 3:19 am 
Daniel C. SobralNov 24, 1999 3:51 am 
Daniel M. EischenNov 24, 1999 6:03 am 
Richard Seaman, Jr.Nov 24, 1999 6:33 am 
Matthew DillonNov 24, 1999 10:35 am 
Daniel EischenNov 24, 1999 11:02 am 
Matthew DillonNov 24, 1999 11:05 am 
Anthony KimballNov 24, 1999 11:25 am 
Daniel EischenNov 24, 1999 11:28 am 
Matthew DillonNov 24, 1999 11:41 am 
Matthew DillonNov 24, 1999 11:47 am 
Julian ElischerNov 24, 1999 11:54 am 
Louis A. MamakosNov 24, 1999 11:57 am 
Matthew DillonNov 24, 1999 12:00 pm 
Julian ElischerNov 24, 1999 12:20 pm 
Anthony KimballNov 24, 1999 12:47 pm 
Doug RabsonNov 24, 1999 2:05 pm 
Jason EvansNov 24, 1999 2:16 pm 
Julian ElischerNov 24, 1999 2:28 pm 
Julian ElischerNov 24, 1999 2:40 pm 
Richard Seaman, Jr.Nov 24, 1999 3:39 pm 
Jason EvansNov 24, 1999 9:24 pm 
Jason EvansNov 24, 1999 10:03 pm 
Julian ElischerNov 25, 1999 1:08 am 
Julian ElischerNov 25, 1999 1:33 am 
Daniel M. EischenNov 25, 1999 3:08 am 
Doug RabsonNov 26, 1999 3:01 am 
Jordan K. HubbardNov 26, 1999 10:33 am 
Doug RabsonNov 26, 1999 12:15 pm 
Matthew DillonNov 27, 1999 7:38 pm 
Arun SharmaNov 27, 1999 8:57 pm 
Matthew DillonNov 28, 1999 8:41 am 
Arun SharmaNov 28, 1999 10:25 am 
Matthew DillonNov 28, 1999 5:06 pm 
Nate WilliamsNov 29, 1999 8:10 am 
Matthew DillonNov 29, 1999 8:21 am 
Nate WilliamsNov 29, 1999 8:29 am 
Matthew DillonNov 29, 1999 9:05 am 
Matthew DillonNov 29, 1999 9:19 am 
Daniel M. EischenNov 29, 1999 9:28 am 
Nate WilliamsNov 29, 1999 10:29 am 
Julian ElischerNov 29, 1999 11:23 am 
Nate WilliamsNov 29, 1999 1:39 pm 
Chuck RobeyNov 29, 1999 6:06 pm 
Daniel M. EischenNov 29, 1999 7:46 pm 
Chuck RobeyNov 29, 1999 9:01 pm 
Julian ElischerNov 29, 1999 9:34 pm 
Chuck RobeyNov 29, 1999 10:09 pm 
Daniel M. EischenNov 30, 1999 4:02 am 
Jason EvansNov 30, 1999 2:25 pm 
Julian ElischerNov 30, 1999 2:42 pm 
Subject:Re: Threads
From:Matthew Dillon (dil@apollo.backplane.com)
Date:Nov 29, 1999 9:19:17 am
List:org.freebsd.freebsd-arch

: As you might have gathered, in the case where the thread being : switched in by the kernel has no KSE, the kernel simply resumes : the user thread with an iret. The previous state that was pushed : onto the user thread's stack is restored by a restore vector that : was also pushed onto the user thread's stack. The kernel can use : the per-cpu supervisor stack to temporarily hold the interrupt return : stack to properly restore the user ring.

Let me amend this. I got this wrong. The kernel will have a KSE available to it when switching in a thread that has no KSE of its own. This KSE will either be transfered from the previous thread, or allocated. What I was trying to say here was that this KSE is 'idle' in regards to resuming the thread, because all the register state and restore vector is on the user stack and can be restored after we return to user mode.

There is no per-cpu supervisor stack per-say, the supervisor stack the kernel uses is the one provided by the KSE. In the case where the kernel is resuming a thread that was in userland, the kernel simply pushes the interrupt restoration vector and ring change as appropriate onto the stack provided by the KSE and issues an IRET, or RETI, or whatever the instruction is. The instruction pops the information (the KSE is thus idle again) and resumes the usermode thread and the restore vector pushed onto the usermode thread.

-Matt

To Unsubscribe: send mail to majo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message