lkml.org 
[lkml]   [2005]   [Jun]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [patch] Real-Time Preemption, -RT-2.6.12-rc6-V0.7.48-00
    From
    Date
    Hi Ingo,

    I'm having some difficulty with your latest patches; more specifically
    linux-2.6.12-rc6-git4-RT-V0.7.48-10 floods me with BUGs like these:

    BUG: sleeping function called from invalid context ksoftirqd/1(7) at kernel/rt.c:1657
    in_atomic():0 [20000000], irqs_disabled():536870912
    [<c01041c3>] dump_stack+0x23/0x30 (20)
    [<c011c981>] __might_sleep+0xe1/0x100 (36)
    [<c013dbe8>] __spin_lock+0x38/0x60 (24)
    [<c013dc2d>] _spin_lock+0x1d/0x20 (16)
    [<c02c627f>] rh_report_status+0x2f/0x110 (36)
    [<c012a754>] run_timer_softirq+0x1e4/0x3f0 (64)
    [<c0125c7f>] ___do_softirq+0x7f/0x140 (48)
    [<c0125df7>] _do_softirq+0x27/0x30 (8)
    [<c0126431>] ksoftirqd+0xb1/0x150 (28)
    [<c0137426>] kthread+0xb6/0xf0 (48)
    [<c0101149>] kernel_thread_helper+0x5/0xc (268648476)
    ---------------------------
    | preempt count: 20000001 ]
    | 1-level deep critical section nesting:
    ----------------------------------------
    .. [<c0141bdb>] .... print_traces+0x1b/0x60
    .....[<c01041c3>] .. ( <= dump_stack+0x23/0x30)

    I gather these are because of:

    drivers/usb/code/hcd.c:rh_report_status

    static void rh_report_status (unsigned long ptr)
    {
    struct urb *urb;
    struct usb_hcd *hcd;
    int length = 0;
    unsigned long flags;

    urb = (struct urb *) ptr;
    local_irq_save (flags);
    spin_lock (&urb->lock);


    ...
    }

    where local_irq_save() would disable pre-emption while spin_lock(); the
    urb->lock is not a raw lock; can sleep.

    I'm not well versed in that code; do you have a suggestion?

    On another note; X seems to have trouble getting up. It consumes a full
    CPU right after mode switching (afaict) without getting any progress.
    I'll try and get a nice trace of X using sysrq-t.

    --
    Peter Zijlstra <a.p.zijlstra@chello.nl>


    -
    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-06-11 18:40    [W:0.039 / U:0.128 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site