lkml.org 
[lkml]   [2003]   [Mar]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: WARN_ON noise in 2.5.63's kernel/sched.c:context_switch
From
Date
William Lee Irwin III <wli@holomorphy.com> writes:
> On Tue, Feb 25, 2003 at 03:35:22PM +0900, Miles Bader wrote:
> > I'm getting a bunch of stack dumps from the WARN_ON newly added to
> > kernel/sched.c:context_switch:
> > if (unlikely(!prev->mm)) {
> > prev->active_mm = NULL;
> > WARN_ON(rq->prev_mm);
> > rq->prev_mm = oldmm;
> > }
>
> This means there's some kind of trouble happening, i.e. the rq->prev_mm
> pointer is not NULL when it should be.
>
> Tracking down the root cause would better serve you.

Ok, I think I found the reason; sched.c cleans up some stuff in
schedule_tail, and in this code (arch/v850/kernel/entry.S):

C_ENTRY(ret_from_fork):
#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT)
mov r10, r6 // switch_thread returns the prev task.
jarl CSYM(schedule_tail), lp // ...which is schedule_tail's arg
#endif
mov r0, r10 // Child's fork call should return 0.
br ret_from_trap // Do normal trap return.

... it only calls that if CONFIG_PREEMPT is turned on. If I remove the
#ifdef, then I get no warnings.

I take it that the call to schedule_tail should now be unconditional?
[some other archs have the same #ifdef]

Thanks,

-Miles
--
97% of everything is grunge
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:33    [W:0.048 / U:11.628 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site