[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Mini-OS context switching
On 7/10/07 19:52, "Julian Stecklina" <julian@xxxxxxxxxxxxxx> wrote: > Keir Fraser wrote: >> How is it more difficult than context-switching inside the timer interrupt? >> In both cases you switch pt_regs and re-enable interrupts. Certainly I don't >> think the more complicated way of enabling interrupts makes >> context-switching in minios that much more complicated overall. > > Ok, I see that the problem regarding the race condition between > re-enabling interrupts and restoring registers is already solved in > x86_32.S. The remaining problem is that as far as I read the instruction > set manual correctly IRET will not perform a stack switch, if it returns > to the same privilege level. But this is exactly what I am trying to > accomplish. Any clues, how to do this? You want to switch to a different kernel stack (i.e., you have a kernel stack per thread)? Or are you running the threads in ring 1 and not using ring 3 at all? Well, either way, you just want to load your new stack pointer with a MOV instruction to ESP. If you are wanting to load a new user stack pointer for running in ring 3, then you rely on IRET (which you can do because there will be a privilege transition). -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |