2.4.0-test13-pre1 lockup: run_task_queue or tty_io are wrong

From: Petr Vandrovec (vandrove@vc.cvut.cz)
Date: Sat Dec 16 2000 - 21:49:28 EST

  • Next message: ferret@phonewave.net: "Re: [OT] Re: Linus's include file strategy redux"

    Hi,
      my 2.4.0-test13-pre1 just stopped answering to my keystrokes.
    I've found that it is looping in tqueue_bh and flush_to_ldisc
    still again and again.

      To my surprise I found that flush_to_ldisc() does

    if (test_bit(TTY_DONT_FLIP, &tty_flags)) {
       queue_task(&tty->filp.tqueue, &tq_timer);
       return;
    }

    Looks ok. But only until you'll look at run_task_queue().
    It now contains

      while (!list_empty(list)) {
          ...
      }

    So postponing event to next timer tick does not work anymore.
    It will stop cycling in run_task_queue and machine is dead
    (unless you have some spare CPU).

    Is current run_task_queue() behavior intentional, or is it
    only bug introduced by changing task queue to list based
    implementation?
                                            Thanks,
                                                    Petr Vandrovec
                                                    vandrove@vc.cvut.cz

    P.S.: Yes, I know that I should bought faster computer so that
    ldisc buffer does not overflow, but...
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Sat Dec 16 2000 - 22:21:11 EST