Re: kernel threads

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 







i think you would use kernel threads in driver when you want to do
something in a process context, not in a syscall.

>>>> wanting to do something in process context means that I would like to
do something during which i might sleep ?

regards
Amit




Anupam Kapoor <anupam.kapoor@gmail.com>@nl.linux.org on 06/30/2004 03:52:28
PM

Sent by:    kernelnewbies-bounce@nl.linux.org


To:    Amit Kumar Singh/HSS@HSS
cc:    Jan Hudec <bulb@ucw.cz>, Anandraj <arm@tataelxsi.co.in>,
       kernelnewbies@nl.linux.org

Subject:    Re: kernel threads


On Wed, 30 Jun 2004 15:01:24 +0530, aksingh@hss.hns.com
<aksingh@hss.hns.com> wrote:
>
>
> so what are the differences between a kernel module and kernel threads
they are _very_ different...to paraphrase from an old poem
"a module is a module, a kernel_thread is a kernel_thread and never
shall the twain meet !"
i hope you meant, a 'kernel thread' and a 'userland process'. a kernel
thread has no userspace context in it (as i said earlier, it's mm
pointer is NULL etc.), they operate in kernel space _only_
###### yes i  meant userland process #############


> , as
> you said kernel threads can be scheduled, pre-empted and all.that is one
> Whats the utility of kernel threads, do drivers generally use them or if
I
> put it in a better way, when should someone think of using kernel threads
> in his/her modules?
i think you would use kernel threads in driver when you want to do
something in a process context, not in a syscall. there must be bunch
of kernel threads running on your system. for me, i have things like:

#### wanting to do something in process context means that I would like to
do something during which i might sleep ? ##

pdflushd : responsible for writing dirty pages to disk. earlier this
was done via the bdflush and kupdated.

ksoftirqd: helps processing of softirqs

to name a few.


kind regards
anupam

>
> thanks
> Amit
>
> Anupam Kapoor <anupam.kapoor@gmail.com> on 06/30/2004 02:55:43 PM
>
> To:    Jan Hudec <bulb@ucw.cz>
> cc:    Amit Kumar Singh/HSS@HSS, Anandraj <arm@tataelxsi.co.in>,
>        kernelnewbies@nl.linux.org
>
> Subject:    Re: kernel threads
>
>
>
>
> also, kernel threads have their mm pointer set to NULL. kernel threads
> are schedulable, preemptible etc. just like normal processes.
>
> anupam
>
> On Wed, 30 Jun 2004 10:55:40 +0200, Jan Hudec <bulb@ucw.cz> wrote:
> > On Wed, Jun 30, 2004 at 13:15:23 +0530, aksingh@hss.hns.com wrote:
> > > i read that already, there the programmer has used his own functions
to
> > > create threads and all, i just wanted to know if kernel threads are
> > > standard features and if kernel provides some functions to create,
> destroy
> > > them, because I never came across them in linux till now. I dont
think
> > > drivers create different threads, correct ?
> >
> > Kernel threads are created, surprisingly, with a function
> > kernel_thread(). Then they need to call daemonize() to fully get rid of
> > their userland and reparent to init, because they are created by
cloning
> > whatever process happens to be current.
> >
> >
>
-------------------------------------------------------------------------------

>
> >                                                  Jan 'Bulb' Hudec
> <bulb@ucw.cz>
> >
> >
>  >
>
>

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/




--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux