boot time scheduling hile atomic

Benjamin Herrenschmidt benh at
Wed Mar 16 11:18:05 EST 2005

On Fri, 2005-03-11 at 15:19 +0900, Takeharu KATO wrote:
> Hi Joerg:
> First of all, I am sorry to making mistake on my stack analysis.
> After all, I found what is wrong.
> The syscall_exit_work is called(jumped) by fork, strictly speaking,
> this is caused by kernel_thead for init process.
> At this point, kernel set a need_resched flag in thread_info struct
> (flags member).
> So, the system executes syscall_exit_work when
> the swapper thread exited from syscall.
> However, the syscall_exit_work routine does not check
> preempt counts when it calls schedule function.
> FYI, I post the patch which fix this problem.
> I've confirmed the problem has been removed by this patch,
> but I can not figure out whether it is truely
> correct or not.

I think the problem is more why are we calling a syscall while the
preempt count is up ?


More information about the Linuxppc-dev mailing list