Messages in this thread |  | | Date | Mon, 23 Oct 2000 16:06:32 +0200 | From | Marco <> | Subject | Re: Question about uninterruptible system call? |
| |
Randolph Bentson wrote:
> On Mon, Oct 23, 2000 at 02:51:46PM +0200, Marco wrote: > > Hi, > > can someone briefly explain me how the kernel code prevent the > > preemption of process executing a system call ? I read several technical > > papers but I haven't found (or perhaps don't understood) a response > > there. Many thanks in advance > > Although interrupts can occur while a process is executing a system call, > the effect of that interrupt is deferred. The interrupt handler does > what it must and the rest is done when the interrupted system call is > about to return to a user process. > > -- > Randolph Bentson > bentson@holmsjoen.com
OK but I haven't understood this: The ret_from_sys_call is called also at the end of a slow interrupt, and the timer handler is a slow interrupt. So if the timer interrupt interrupts a process during a system call it marks its bottom half and if no other interrupt was active the slow interrupt calls ret_from_system_call. At this time the timer bottom half are executed, and if updating the current process do need_resched = 1 what prevent the process to be rescheduled some istruction below ?
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |