2001-11-21 01:42:03

by mroth

[permalink] [raw]
Subject: Spawning kernel threads from other kernel threads(?)


Question:
Can you spawn a kernel thread from another kernel thread? I want to
have one manager ?entity? which will dynamically create kernel threads as
needed. Right now, when I try to spawn another thread from the manager ?entity?
[as of today, still a kernel thread] it will crash. Is this legal? If not, what
is the alternative?

kernel_thread()
Kernel Version 2.4.3


2001-11-21 01:52:13

by jjs

[permalink] [raw]
Subject: Re: Spawning kernel threads from other kernel threads(?)

[email protected] wrote:

> Question:
> Can you spawn a kernel thread from another kernel thread? I want to
> have one manager ?entity? which will dynamically create kernel threads as
> needed. Right now, when I try to spawn another thread from the manager ?entity?
> [as of today, still a kernel thread] it will crash. Is this legal? If not, what
> is the alternative?
>
> kernel_thread()
> Kernel Version 2.4.3

2.4.3 is awfully stale for starters -

and BTW what is an "?entity?" ?

cu

jjs

2001-11-21 02:37:29

by mroth

[permalink] [raw]
Subject: Re: Spawning kernel threads from other kernel threads(?)

>>and BTW what is an "?entity?" ?

Oops. Excuse my ambiguity. When I said "entity" I was describing the design in
a very general form. Let me phrase it like this; my software in theory looks
like:

- a manager "entity" is responsible for destroying and creating "worker"
threads.
- the worker threads then perform a specific tasks.

That's theory though. The implementation actually looks like:

A linux kernel thread has the responsibility of creating and killing threads
(thus
termed "manager").
The worker threads (also kernel threads) perform specific tasks.

>>2.4.3 is awfully stale for starters -

Yup. This is not by choice :-) The hardware/OS is pretty much fixed at this
point.

Would spawning a kernel thread from a kernel thread work with a recent kernel?

>>cu

>>jjs

> Question:
> Can you spawn a kernel thread from another kernel thread? I want to
> have one manager ?entity? which will dynamically create kernel threads as
> needed. Right now, when I try to spawn another thread from the manager
?entity?
> [as of today, still a kernel thread] it will crash. Is this legal? If not,
what
> is the alternative?
>
> kernel_thread()
> Kernel Version 2.4.3