Find the answer to your Linux question:
Results 1 to 2 of 2

Thread: kernel threads

Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1

    kernel threads


    I have some newbie questions about kernel threads in kernel 2.6 created with "kernel_thread" function.

    1. Let's say user program "hello_world" called some system function "do_it". Then kernel function "sys_do_it" creates thread using "kernel_thread". Is the new thread child of the process "hello_world"?

    2. Does kernel threads have same semantics as pthreads?

    3. I read that kernel threads have initially blocked signals. I know that i have to unblock signals in kernel thread, but how do i receive them?

    4. In my example if kernel thread is child of "hello_world" then what happens when i unblock signal SIGTERM (in what context signal handler function will be executed and who will receive it (process "hello_world" or my kernel thread))? Can kernel thread steal signal before process "hello_world" handle it?

    5. How do i wait for kernel thread to finish? Can kernel thread's be zombies?

    6. How do i gracefully finish execution of kernel thread (what do i have to call in kernel thread function)?

    Thank very much

  2. #2

    Question terminating kernel thread

    I have searched over the net but could not find a good explanation of how to terminate a kernel thread.

    For an academic project, I have created several kernel thread during system boot, and then try to kill them.

    I use do_exit() in thread function to let thread to terminate itself bu I got this error
    "unable to handle kernel paging request at virtual address 6f635f6f
    printing eip:

    I used kill_proc(...) but got the same kind of error.

    what is the true way to terminate a kernel thread?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts