lkml.org 
[lkml]   [2005]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: kernel stack size
    From
    Date
    On Sat, 2005-04-02 at 20:37 +0100, Al Viro wrote:
    > On Sat, Apr 02, 2005 at 02:04:11PM -0500, Steven Rostedt wrote:
    > > You can also use globally static variables too. But this makes for
    > > non-reentry code.
    > >
    > > Sometimes I don't feel that a kmalloc is worth it, and if the function
    > > in question for the driver would seldom have problems with reentry, I
    > > use a statically defined global, and protect it with spin_locks. If
    > > these can also be used in interrupt context, you need to use the
    > > spin_lock_irqsave variants. But don't do this if the critical section
    > > has long latencies.
    >
    > ... and the first time copy_from_user() blocks under your spinlock
    > you will get a nice shiny deadlock.

    I forgot that he mentioned that this was for ioctls. I then use
    semaphores if I need to access userspace. But if it just needs to modify
    data around areas that only the kernel uses, without access to
    userspace, than I use spinlocks.

    I admit you really need to know what you're doing to use this method. If
    I believe that a kmalloc would be too expensive, then I use the locking
    of static variables. But each situation is different and I try to use
    the best method for the occasion.

    -- Steve


    -
    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-04-06 13:31    [W:0.027 / U:0.388 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site