23 Mar, 2011

1 commit

  • All kthreads being created from a single helper task, they all use memory
    from a single node for their kernel stack and task struct.

    This patch suite creates kthread_create_on_node(), adding a 'cpu' parameter
    to parameters already used by kthread_create().

    This parameter serves in allocating memory for the new kthread on its
    memory node if possible.

    Signed-off-by: Eric Dumazet
    Acked-by: David S. Miller
    Reviewed-by: Andi Kleen
    Acked-by: Rusty Russell
    Cc: Tejun Heo
    Cc: Tony Luck
    Cc: Fenghua Yu
    Cc: David Howells
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Dumazet
     

27 Jan, 2011

1 commit


22 Dec, 2010

1 commit

  • spinlock in kthread_worker and wait_queue_head in kthread_work both
    should be lockdep sensible, so change the interface to make it
    suiltable for CONFIG_LOCKDEP.

    tj: comment update

    Reported-by: Nicolas
    Signed-off-by: Yong Zhang
    Signed-off-by: Andy Walls
    Tested-by: Andy Walls
    Cc: Tejun Heo
    Cc: Andrew Morton
    Signed-off-by: Tejun Heo

    Yong Zhang
     

29 Jun, 2010

2 commits

  • Implement kthread_data() which takes @task pointing to a kthread and
    returns @data specified when creating the kthread. The caller is
    responsible for ensuring the validity of @task when calling this
    function.

    Signed-off-by: Tejun Heo

    Tejun Heo
     
  • Implement simple work processor for kthread. This is to ease using
    kthread. Single thread workqueue used to be used for things like this
    but workqueue won't guarantee fixed kthread association anymore to
    enable worker sharing.

    This can be used in cases where specific kthread association is
    necessary, for example, when it should have RT priority or be assigned
    to certain cgroup.

    Signed-off-by: Tejun Heo
    Cc: Andrew Morton

    Tejun Heo
     

25 Jul, 2008

1 commit


10 May, 2007

1 commit

  • Currently there is a circular reference between work queue initialization
    and kthread initialization. This prevents the kthread infrastructure from
    initializing until after work queues have been initialized.

    We want the properties of tasks created with kthread_create to be as close
    as possible to the init_task and to not be contaminated by user processes.
    The later we start our kthreadd that creates these tasks the harder it is
    to avoid contamination from user processes and the more of a mess we have
    to clean up because the defaults have changed on us.

    So this patch modifies the kthread support to not use work queues but to
    instead use a simple list of structures, and to have kthreadd start from
    init_task immediately after our kernel thread that execs /sbin/init.

    By being a true child of init_task we only have to change those process
    settings that we want to have different from init_task, such as our process
    name, the cpus that are allowed, blocking all signals and setting SIGCHLD
    to SIG_IGN so that all of our children are reaped automatically.

    By being a true child of init_task we also naturally get our ppid set to 0
    and do not wind up as a child of PID == 1. Ensuring that tasks generated
    by kthread_create will not slow down the functioning of the wait family of
    functions.

    [akpm@linux-foundation.org: use interruptible sleeps]
    Signed-off-by: Eric W. Biederman
    Cc: Oleg Nesterov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     

15 Jul, 2006

1 commit


26 Jun, 2006

1 commit


31 Oct, 2005

1 commit

  • Enhance the kthread API by adding kthread_stop_sem, for use in stopping
    threads that spend their idle time waiting on a semaphore.

    Signed-off-by: Alan Stern
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Stern
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds