lkml.org 
[lkml]   [2004]   [Oct]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [patch] Real-Time Preemption, -RT-2.6.9-mm1-U10.2
    From
    Ingo Molnar wrote:
    >
    > Rui Nuno Capela wrote:
    >
    >> > does the patch below help?
    >
    >> Nope. Same result:
    >
    >> SysRq : <3>BUG: sleeping function called from invalid context IRQ 1(776)
    >> at kernel/mutex.c:37
    >> in_atomic():0 [00000000], irqs_disabled():1
    >
    > interrupts are disabled. You used a -RT-U10.2/3 kernel, and have
    > CONFIG_REALTIME enabled, right? Do you have this in
    > drivers/net/netconsole.c, line 77:
    >
    > #ifdef PREEMPT_REALTIME
    > /*
    > * A bit hairy. Netconsole uses mutexes (indirectly) and
    > * thus must have interrupts enabled:
    > */
    > local_irq_enable();
    > #endif
    >
    > correct? Could you do this a few lines below:
    >
    > WARN_ON_RT(irqs_disabled());
    > netpoll_send_udp(&np, msg, frag);
    > WARN_ON_RT(irqs_disabled());
    >
    > to figure out who disables interrupts. Also, could you add the same two
    > lines to net/core/netpoll.c, line 83:
    >
    > WARN_ON_RT(irqs_disabled());
    > np->dev->poll_controller(np->dev);
    > WARN_ON_RT(irqs_disabled());
    >
    > and send me either the full bootlog, or the _first_ such BUG message
    > you'll be getting. Which network controller is this?
    >

    OK. All affirmative. NIC is natsemi.

    Here it is:

    SysRq : IRQ 1/776: BUG in write_msg at drivers/net/netconsole.c:87
    [<c0104ee4>] dump_stack+0x1e/0x20 (20)
    [<e00ef0ab>] write_msg+0xab/0xf4 [netconsole] (52)
    [<c0117804>] __call_console_drivers+0x51/0x60 (32)
    [<c0117910>] call_console_drivers+0x6d/0x147 (40)
    [<c0117caf>] release_console_sem+0x48/0x100 (36)
    [<c0117bd5>] vprintk+0x127/0x174 (36)
    [<c0117aac>] printk+0x18/0x1a (16)
    [<c01f4835>] __handle_sysrq+0x38/0xed (40)
    [<c01ee426>] kbd_event+0xeb/0xfa (40)
    [<c025f694>] input_event+0x160/0x3d4 (44)
    [<c02620a2>] atkbd_report_key+0x3b/0x95 (32)
    [<c0262358>] atkbd_interrupt+0x25c/0x590 (60)
    [<c01f6fbe>] serio_interrupt+0x4f/0xa5 (44)
    [<c01f78b7>] i8042_interrupt+0xb8/0x1b8 (40)
    [<c0131dbc>] handle_IRQ_event+0x48/0x79 (32)
    [<c01325dd>] do_hardirq+0x86/0x123 (40)
    [<c0132712>] do_irqd+0x98/0xc9 (36)
    [<c012b7d7>] kthread+0x9c/0xc9 (48)
    [<c0102305>] kernel_thread_helper+0x5/0xb (548454420)
    preempt count: 00000001
    . 1-level deep critical section nesting:
    .. entry 1: print_traces+0x16/0x48 [<c0104ee4>] / (dump_stack+0x1e/0x20
    [<c0104ee4>])

    BUG: sleeping function called from invalid context IRQ 1(776) at
    kernel/mutex.c:37
    in_atomic():0 [00000000], irqs_disabled():1
    [<c0104ee4>] dump_stack+0x1e/0x20 (20)
    [<c0114a23>] __might_sleep+0xb2/0xc7 (36)
    [<c012c0f2>] _mutex_lock+0x39/0x5e (28)
    [<c012c13a>] _mutex_lock_irqsave+0x11/0x15 (12)
    [<c027f9bc>] refill_skbs+0x13/0x6d (20)
    [<c027fae1>] find_skb+0x5d/0x9d (24)
    [<c027fc09>] netpoll_send_udp+0x3b/0x298 (48)
    [<e00ef050>] write_msg+0x50/0xf4 [netconsole] (52)
    [<c0117804>] __call_console_drivers+0x51/0x60 (32)
    [<c0117910>] call_console_drivers+0x6d/0x147 (40)
    [<c0117caf>] release_console_sem+0x48/0x100 (36)
    [<c0117bd5>] vprintk+0x127/0x174 (36)
    [<c0117aac>] printk+0x18/0x1a (16)
    [<c01f4835>] __handle_sysrq+0x38/0xed (40)
    [<c01ee426>] kbd_event+0xeb/0xfa (40)
    [<c025f694>] input_event+0x160/0x3d4 (44)
    [<c02620a2>] atkbd_report_key+0x3b/0x95 (32)
    [<c0262358>] atkbd_interrupt+0x25c/0x590 (60)
    [<c01f6fbe>] serio_interrupt+0x4f/0xa5 (44)
    [<c01f78b7>] i8042_interrupt+0xb8/0x1b8 (40)
    [<c0131dbc>] handle_IRQ_event+0x48/0x79 (32)
    [<c01325dd>] do_hardirq+0x86/0x123 (40)
    [<c0132712>] do_irqd+0x98/0xc9 (36)
    [<c012b7d7>] kthread+0x9c/0xc9 (48)
    [<c0102305>] kernel_thread_helper+0x5/0xb (548454420)
    preempt count: 00000001
    . 1-level deep critical section nesting:
    .. entry 1: print_traces+0x16/0x48 [<c0104ee4>] / (dump_stack+0x1e/0x20
    [<c0104ee4>])


    Bye.
    --
    rncbc aka Rui Nuno Capela
    rncbc@rncbc.org

    -
    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 14:07    [W:4.357 / U:0.196 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site