threads.h 1.3 KB

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