lkml.org 
[lkml]   [2004]   [Jun]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: calling kthread_create() from interrupt thread
    On Tue, 15 Jun 2004, Dean Nelson wrote:

    > On Tue, Jun 15, 2004 at 07:49:37PM +0200, Arjan van de Ven wrote:
    > > On Tue, 2004-06-15 at 19:42, Dean Nelson wrote:
    > > > I'm working on a driver that needs to create threads that can sleep/block
    > > > for an indefinite period of time.
    > > >
    > > > . Can kthread_create() be called from an interrupt handler?
    > >
    > > no
    > >
    > > >
    > > > . Is the cost of a kthread's creation/demise low enough so that one
    > > > can, as often as needed, create a kthread that performs a simple
    > > > function and exits? Or is the cost too high for this?
    > >
    > > for that we have keventd in 2.4, work queues in 2.6
    >
    > As mentioned above, it is possible for this "simple" function to sleep/block
    > for an indefinite period of time. I was under the impression that one
    > couldn't block a work queue thread for an indefinite period of time. Am
    > I mistaken?
    >
    > Thanks,
    > Dean
    >

    If you make a kernel thread, it can sleep forever if it wants, you
    can wake it up with wake_up_interruptible() from an interrupt after
    you have laid out the work you want it to do. That kernel thread
    has access to all your kernel data space, plus can spin-lock to
    prevent an interrupt from changing things in critical sections,
    etc.

    It's the greatest thing since sliced bread.

    Cheers,
    Dick Johnson
    Penguin : Linux version 2.4.26 on an i686 machine (5570.56 BogoMips).
    Note 96.31% of all statistics are fiction.


    -
    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:03    [W:0.022 / U:89.160 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site