public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Kernel threads resource leakage
@ 2003-08-14 20:36 Richard B. Johnson
  2003-08-14 21:29 ` Vladimir Kondratiev
  0 siblings, 1 reply; 2+ messages in thread
From: Richard B. Johnson @ 2003-08-14 20:36 UTC (permalink / raw)
  To: vladimir.kondratiev; +Cc: Linux kernel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 813 bytes --]


I am using a 2.4.20 kernel. I tried your program.
First, it didn't compile. So I would guess that you
never tested your test program. I fixed it and I
made a more readily useful Makefile, etc., so others
can try it, too. It is attached.

It works. It doesn't eat any resources. I guess that
the stuff that actually does 'work' in your actual
driver module is what is consuming resources.

Although making and deleting a number of kernel threads
is an interesting exercise, I sure hope that you don't
really do this in a real application. It is very expensive
to do this. If you need a kernel thread, you should have
one (or several) that do the work and never exit.

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

[-- Attachment #2: Type: APPLICATION/octet-stream, Size: 5460 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Kernel threads resource leakage
  2003-08-14 20:36 Kernel threads resource leakage Richard B. Johnson
@ 2003-08-14 21:29 ` Vladimir Kondratiev
  0 siblings, 0 replies; 2+ messages in thread
From: Vladimir Kondratiev @ 2003-08-14 21:29 UTC (permalink / raw)
  To: root; +Cc: Linux kernel

Richard,

I forgot to mention that I use gcc 3.3; it _do_ compile the code I 
submitted since it support declarations after statements.
I did actually run tests with the code included in my posting.

About Makefile, it made this way to ensure you use the same flags as for 
kernel. It is kind of style that proposed in 2.6 kernel, adopted for 2.4.

All,

I am sorry for submitting problem before doing complete analysis. It 
reveals that I used to have improperly compiled kernel. I tried on 
another host (2.4.20 with kdb patch, have no plain 2.4.20 handy right 
now), and it works fine without resource leakage.

Regarding need to create lots of kernel threads. Of course, it is 
useless to do it very often, but consider, for example, wireless network 
card, that need to create kernel thread to manage BSS  MAC.  I would not 
get too deeply into details, but it may be situation when you need to 
create new kernel thread, for example, each laptop suspend-resume cycle.

Sure, thousands of cycles may seems too much, but it is a good way to 
check that you have no leakage. For example, in my driver testing, I do 
thousands of insmod/rmmod cycles and stuff like this. This helps to find 
bugs like 100 bytes leakage per 'insmod'.

Anyway, original example is the right way to create and terminate thread 
and may be used as example.

Sorry again for misleading posting.

Vladimir.

Richard B. Johnson wrote:

>I am using a 2.4.20 kernel. I tried your program.
>First, it didn't compile. So I would guess that you
>never tested your test program. I fixed it and I
>made a more readily useful Makefile, etc., so others
>can try it, too. It is attached.
>
>It works. It doesn't eat any resources. I guess that
>the stuff that actually does 'work' in your actual
>driver module is what is consuming resources.
>
>Although making and deleting a number of kernel threads
>is an interesting exercise, I sure hope that you don't
>really do this in a real application. It is very expensive
>to do this. If you need a kernel thread, you should have
>one (or several) that do the work and never exit.
>
>Cheers,
>Dick Johnson
>Penguin : Linux version 2.4.20 on an i686 machine (797.90 BogoMips).
>            Note 96.31% of all statistics are fiction.
>  
>



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-08-14 21:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-08-14 20:36 Kernel threads resource leakage Richard B. Johnson
2003-08-14 21:29 ` Vladimir Kondratiev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox