Re: Question about uninterruptible system call?

From: Marco (marco.bacchetta@darts.it)
Date: Mon Oct 23 2000 - 09:06:32 EST


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/



This archive was generated by hypermail 2b29 : Mon Oct 23 2000 - 21:00:20 EST