linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Issue with max_threads (and other resources) and highmem
@ 2001-10-23 20:19 Dave McCracken
  2001-10-23 20:36 ` Andi Kleen
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Dave McCracken @ 2001-10-23 20:19 UTC (permalink / raw)
  To: Linux Kernel


I recently had pointed out to me that the default value for max_threads (ie
the max number of tasks per system) doesn't work right on machines with
lots of memory.

A quick examination of fork_init() shows that max_threads is supposed to be
limited so its stack/task_struct takes no more than half of physical
memory.  This calculation ignores the fact that task_structs must be
allocated from the normal pool and not the highmem pool, which is a clear
bug.  On a machine with enough physical memory it's possible for all of
normal memory to be allocated to task_structs, which tends to make the
machine die.  

fork_init() gets its knowledge of physical memory passed in from
start_kernel(), which sets it from mum_physpages.  This parameter is also
passed to several other init functions.

My question boils down to this...  Should we change start_kernel() to limit
the physical memory size it passes to the init functions to not include
high memory, or should we only do it for fork_init()?  What is the best way
to do calculate this number?  I don't see any simple way in
architecture-independent code to get the size of high memory vs normal
memory.

What's the best approach here?

Thanks,
Dave McCracken

======================================================================
Dave McCracken          IBM Linux Base Kernel Team      1-512-838-3059
dmccr@us.ibm.com                                        T/L   678-3059


^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: Issue with max_threads (and other resources) and highmem
@ 2001-10-23 23:30 Dan Kegel
  2001-10-23 23:35 ` Rik van Riel
  0 siblings, 1 reply; 9+ messages in thread
From: Dan Kegel @ 2001-10-23 23:30 UTC (permalink / raw)
  To: linux-kernel, riel

Rik wrote:
> ... A sane upper limit for
> max_threads would be 10000, this also keeps in mind the
> fact that we only have 32000 possible PIDs, some of which
> could be taken by task groups, etc...

?  I thought the 2.4 kernel had switched to 32 bit pid's long ago.
Where does the limit of 32000 possible PIDs come from?
- Dan

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

end of thread, other threads:[~2001-10-23 23:59 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-10-23 20:19 Issue with max_threads (and other resources) and highmem Dave McCracken
2001-10-23 20:36 ` Andi Kleen
2001-10-23 20:46 ` Dave McCracken
2001-10-23 20:52 ` Rik van Riel
2001-10-23 21:05   ` Dave McCracken
2001-10-23 21:59     ` Rik van Riel
2001-10-23 23:30 Dan Kegel
2001-10-23 23:35 ` Rik van Riel
2001-10-24  0:00   ` Dan Kegel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).