lkml.org 
[lkml]   [2010]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: workqueue destruction BUG_ON
    From
    Date
    On Tue, 2010-08-24 at 15:07 +0200, Tejun Heo wrote:

    > > [ 500.874185] ------------[ cut here ]------------
    > > [ 500.875212] kernel BUG at kernel/workqueue.c:2849!
    >
    > Are you sure you're running the patched kernel? With the patch
    > applied, the BUG_ON() wouldn't be on line 2849 (on both rc1 and 2).

    Yes:

    void destroy_workqueue(struct workqueue_struct *wq)
    {
    unsigned int cpu;

    wq->flags |= WQ_DYING;
    flush_workqueue(wq);

    /*
    * wq list is used to freeze wq, remove from list after
    * flushing is complete in case freeze races us.
    */
    spin_lock(&workqueue_lock);
    list_del(&wq->list);
    spin_unlock(&workqueue_lock);

    /* sanity check */
    for_each_cwq_cpu(cpu, wq) {
    struct cpu_workqueue_struct *cwq = get_cwq(cpu, wq);
    int i;

    for (i = 0; i < WORK_NR_COLORS; i++)
    BUG_ON(cwq->nr_in_flight[i]);
    2849: BUG_ON(cwq->nr_active);
    BUG_ON(!list_empty(&cwq->delayed_works));


    Applying the patch reported some offset, but the kernel is just rc1 +
    wireless stuff.

    johannes



    \
     
     \ /
      Last update: 2010-08-24 15:19    [W:0.022 / U:0.868 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site