Re: init's children list is long and slows reaping children.

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Jeff Garzik
Date: Tuesday, April 10, 2007 - 12:05 am

Andrew Morton wrote:

I would think this would run into the keventd "problem", where $N 
processes can lock out another?

IMO a lot of these could potentially be simply started as brand new 
threads, when an exception arises.



No, it does not.

It is used for PIO data transfer, so it merely has to respond quickly, 
which rules out keventd.  You also don't want PIO data xfer for port A 
blocked, sitting around waiting for PIO data xfer to complete on port C.

So, we merely need fast-reacting threads that keventd will not block. 
We do not need per-CPU threads.

Again, I think a model where threads are created on demand, and reaped 
after inactivity, would fit here.  As I feel it would fit with many 
other non-libata drivers.



That is used by libata exception handler, for hotpug and such.  My main 
worry with keventd is that we might get stuck behind an unrelated 
process for an undefined length of time.

IMO the best model would be to create ata_aux thread on demand, and kill 
it if it hasn't been used recently.




Nod.  I've never thought we needed this many threads.  At least it 
doesn't scale out of control for $BigNum-CPU boxen.

As the name implies, this is SCSI exception handling thread.  Although 
some synchronization is required, this could probably work with an 
on-demand thread creation model too.



This kernel thread is used as a "bottom half" handler for the PS2 mouse 
interrupt.  This one is a bit more justifiable.



Agreed.

	Jeff


-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Thu Apr 5, 7:15 pm)
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Fri Apr 6, 8:38 am)
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Fri Apr 6, 11:02 am)
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Fri Apr 6, 11:04 am)
Re: init's children list is long and slows reaping children., Christoph Hellwig, (Fri Apr 6, 11:05 am)
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Fri Apr 6, 11:30 am)
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Fri Apr 6, 11:56 am)
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Fri Apr 6, 12:39 pm)
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Mon Apr 9, 1:00 pm)
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Mon Apr 9, 5:48 pm)
Re: init's children list is long and slows reaping children., Alexey Dobriyan, (Mon Apr 9, 10:07 pm)
Re: init's children list is long and slows reaping children., Jeff Garzik, (Tue Apr 10, 12:05 am)
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Tue Apr 10, 7:51 am)
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Tue Apr 10, 8:00 am)
[PATCH] Only send pdeath_signal when getppid changes., Eric W. Biederman, (Tue Apr 10, 8:16 am)
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Tue Apr 10, 8:22 am)
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Tue Apr 10, 9:17 am)
Re: [PATCH] Only send pdeath_signal when getppid changes., Oleg Nesterov, (Tue Apr 10, 9:37 am)
Re: [PATCH] Only send pdeath_signal when getppid changes., Eric W. Biederman, (Tue Apr 10, 10:41 am)
Re: [PATCH] Only send pdeath_signal when getppid changes., Roland McGrath, (Tue Apr 10, 10:48 am)
Re: init's children list is long and slows reaping children., Davide Libenzi, (Tue Apr 10, 12:17 pm)
Re: [PATCH] Only send pdeath_signal when getppid changes., Albert Cahalan, (Tue Apr 10, 8:17 pm)
[patch] uninline remove/add_parent() APIs, Ingo Molnar, (Tue Apr 10, 11:20 pm)
Re: [patch] uninline remove/add_parent() APIs, Eric W. Biederman, (Wed Apr 11, 12:00 am)
Re: init's children list is long and slows reaping children., Eric W. Biederman, (Wed Apr 11, 1:17 pm)
Re: [patch] uninline remove/add_parent() APIs, Andrew Morton, (Wed Apr 11, 3:06 pm)
Re: [patch] uninline remove/add_parent() APIs, Eric W. Biederman, (Thu Apr 12, 3:45 am)
Re: [patch] uninline remove/add_parent() APIs, Roland McGrath, (Thu Apr 12, 3:50 pm)