lkml.org 
[lkml]   [2001]   [Jun]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectI hit the BUG() in schedule() ...

    I am running a MIPS machine and hit the following BUG() in
    kernel/sched.c:650:

    prepare_to_switch();
    {
    struct mm_struct *mm = next->mm;
    struct mm_struct *oldmm = prev->active_mm;
    if (!mm) {
    if (next->active_mm) BUG(); <======
    next->active_mm = oldmm;
    atomic_inc(&oldmm->mm_count);
    enter_lazy_tlb(oldmm, next, this_cpu);
    } else {
    if (next->active_mm != mm) BUG();
    switch_mm(oldmm, mm, next, this_cpu);
    }


    The "next" processor is swapper.

    I have not looked at it hard enough, but an initial investigation seems
    to reveal the cause trivially.

    In include/linux/sched.h, the "swapper" task is set such that 'mm' is
    NULL and 'active_mm' is &init_mm. So obviously when we switch back to
    "swapper" task, we will hit the BUG().

    That sounds little too obvious to be true. What am I missing here?

    Thanks in advance. Please cc your reply to this email account. I
    appreciate that.

    Jun

    __________________________________________________
    Do You Yahoo!?
    Get personalized email addresses from Yahoo! Mail
    http://personal.mail.yahoo.com/
    -
    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 12:55    [W:0.022 / U:155.672 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site