mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Martin Frey" <frey@scs.ch>
To: "'Benjamin Herrenschmidt'" <benh@kernel.crashing.org>
Cc: <linux-kernel@vger.kernel.org>
Subject: RE: kernel_thread vs. zombie
Date: Thu, 22 Mar 2001 09:21:45 -0800	[thread overview]
Message-ID: <007001c0b2f4$a4630110$90600410@SCHLEPPDOWN> (raw)
In-Reply-To: <20010322150752.27184@mailhost.mipsys.com>

Hi,
>> http://www.scs.ch/~frey/linux/kernelthreads.html

>Could you explain me a bit why you need the lock_kernel ? My probe
>thread is already protected by some atomic ops, but I'm considering
>changing them to semaphores. Is there any need for the bkl to be taken
>when calling daemonize or is this just for your own 
>syncronisation needs ?
>
The stuff done in daemonize() and the exit_files could need
the kernel lock. At least on some 2.2.x version it does,
I did not check whether it is still needed on 2.4.

On stop of the thread I need the big kernel lock to make
sure the kernel thread exited (everything really done
from my up() till the thread is in zombie state) before
I unload the module. The comment in the code should explain 
in.

Note that the threads itself do not run with the kernel lock
held. After setting everything up the make an unlock.

>I don't think you do more than what I currently do to prevent the
>zombie (except for the daemonize call, I don't see you 
>changing anything
>about the parent thread or whatever). 
>
No, changing the parent thread is done by daemonize().

>At first I though daemonize() would do the trick, but I still see
>zombies on my tests. I'm running UP now so I don't since my lack
>of lock_kernel() could explain it.
>
I needed the exit_files() on 2.2.x to prevent the zombies. On 2.4
daemonize() does that as well.

In the kill_thread() call I actually wait till the thread has
terminated. This is assured with the semaphore and the big kernel
lock. I did have problems when I just sent the termination signal
and unloaded the module, but since I really block there I did not
see zombies. I stress-tested the module for several days in a loop
- no zombies at all.

Regards,

Martin

  reply	other threads:[~2001-03-22 17:23 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-03-22 11:49 Benjamin Herrenschmidt
2001-03-22 14:32 ` Martin Frey
2001-03-22 15:07   ` Benjamin Herrenschmidt
2001-03-22 17:21     ` Martin Frey [this message]
2001-03-22 18:47       ` Benjamin Herrenschmidt
2001-03-22 19:50         ` Martin Frey
2001-03-22 23:33           ` Benjamin Herrenschmidt
2001-03-23  0:04             ` Andrew Morton
2001-03-23  1:57               ` Martin Frey
2001-03-23  2:13                 ` Andrew Morton
2001-03-23  8:06                   ` Martin Frey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='007001c0b2f4$a4630110$90600410@SCHLEPPDOWN' \
    --to=frey@scs.ch \
    --cc=benh@kernel.crashing.org \
    --cc=frey@cxau.zko.dec.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®