linux/include/linux/threads.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _LINUX_THREADS_H
   3#define _LINUX_THREADS_H
   4
   5
   6/*
   7 * The default limit for the nr of threads is now in
   8 * /proc/sys/kernel/threads-max.
   9 */
  10
  11/*
  12 * Maximum supported processors.  Setting this smaller saves quite a
  13 * bit of memory.  Use nr_cpu_ids instead of this except for static bitmaps.
  14 */
  15#ifndef CONFIG_NR_CPUS
  16/* FIXME: This should be fixed in the arch's Kconfig */
  17#define CONFIG_NR_CPUS  1
  18#endif
  19
  20/* Places which use this should consider cpumask_var_t. */
  21#define NR_CPUS         CONFIG_NR_CPUS
  22
  23#define MIN_THREADS_LEFT_FOR_ROOT 4
  24
  25/*
  26 * This controls the default maximum pid allocated to a process
  27 */
  28#define PID_MAX_DEFAULT (CONFIG_BASE_SMALL ? 0x1000 : 0x8000)
  29
  30/*
  31 * A maximum of 4 million PIDs should be enough for a while.
  32 * [NOTE: PID/TIDs are limited to 2^30 ~= 1 billion, see FUTEX_TID_MASK.]
  33 */
  34#define PID_MAX_LIMIT (CONFIG_BASE_SMALL ? PAGE_SIZE * 8 : \
  35        (sizeof(long) > 4 ? 4 * 1024 * 1024 : PID_MAX_DEFAULT))
  36
  37/*
  38 * Define a minimum number of pids per cpu.  Heuristically based
  39 * on original pid max of 32k for 32 cpus.  Also, increase the
  40 * minimum settable value for pid_max on the running system based
  41 * on similar defaults.  See kernel/pid.c:pidmap_init() for details.
  42 */
  43#define PIDS_PER_CPU_DEFAULT    1024
  44#define PIDS_PER_CPU_MIN        8
  45
  46#endif
  47