All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takeharu KATO <kato.takeharu@jp.fujitsu.com>
To: Takeharu KATO <takeharu1219@ybb.ne.jp>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: boot time scheduling hile atomic
Date: Fri, 11 Mar 2005 15:19:41 +0900	[thread overview]
Message-ID: <4231387D.6030204@jp.fujitsu.com> (raw)
In-Reply-To: <423073A9.70404@ybb.ne.jp>

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.

Please review this.

Signed-off-by: Takeharu KATO <kato.takeharu@jp.fujitsu.com>
--- linux-2.6.11/arch/ppc/kernel/entry.S        2005-03-09 12:57:32.000000000 +0900
+++ linux-2.6.11-wdt/arch/ppc/kernel/entry.S    2005-03-11 14:39:16.345490784 +0900
@@ -314,10 +314,16 @@ syscall_exit_work:
         SYNC
         MTMSRD(r10)             /* disable interrupts again */
         rlwinm  r12,r1,0,0,18   /* current_thread_info() */
-       lwz     r9,TI_FLAGS(r12)
  5:
+#ifdef CONFIG_PREEMPT
+       lwz     r0,TI_PREEMPT(r12)
+       cmpwi   0,r0,0          /* if non-zero, we can not reschedule here */
+       bne     6f
+#endif
+       lwz     r9,TI_FLAGS(r12)
         andi.   r0,r9,_TIF_NEED_RESCHED
         bne     1f
+6:
         lwz     r5,_MSR(r1)
         andi.   r5,r5,MSR_PR
         beq     syscall_exit_cont

-- 
Takeharu KATO
Fujitsu Limited
Email:kato.takeharu at jp.fujitsu.com

  reply	other threads:[~2005-03-11  6:21 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-03 12:44 GCC4 fun Joerg Dorchain
2005-03-03 13:13 ` Marc Leeman
2005-03-03 13:46 ` evilninja
2005-03-03 14:18   ` boot time scheduling hile atomic (was: GCC4 fun.) Joerg Dorchain
2005-03-04  7:57     ` Joerg Dorchain
2005-03-04 15:06       ` boot time scheduling hile atomic _evil
2005-03-10  4:51       ` Takeharu KATO
2005-03-10  7:28         ` Joerg Dorchain
2005-03-10 16:19           ` Takeharu KATO
2005-03-11  6:19             ` Takeharu KATO [this message]
2005-03-16  0:18               ` Benjamin Herrenschmidt
2005-03-16  5:24                 ` Takeharu KATO
2005-03-16  5:49                   ` Takeharu KATO
2005-03-16  6:28                     ` Benjamin Herrenschmidt
2005-03-16 14:07                       ` Takeharu KATO
2005-03-16 22:28                         ` Benjamin Herrenschmidt
2005-03-17  0:46                           ` Takeharu KATO
2005-03-11 22:21           ` boot time scheduling while atomic Takeharu KATO
  -- strict thread matches above, loose matches on Subject: below --
2005-06-10 14:23 boot time scheduling hile atomic Rune Torgersen
2005-06-14 12:41 ` Takeharu KATO

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4231387D.6030204@jp.fujitsu.com \
    --to=kato.takeharu@jp.fujitsu.com \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=takeharu1219@ybb.ne.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.