mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-23 01:13:55 +07:00
95c354fe9f
The break_lock data structure and code for spinlocks is quite nasty. Not only does it double the size of a spinlock but it changes locking to a potentially less optimal trylock. Put all of that under CONFIG_GENERIC_LOCKBREAK, and introduce a __raw_spin_is_contended that uses the lock data itself to determine whether there are waiters on the lock, to be used if CONFIG_GENERIC_LOCKBREAK is not set. Rename need_lockbreak to spin_needbreak, make it use spin_is_contended to decouple it from the spinlock implementation, and make it typesafe (rwlocks do not have any need_lockbreak sites -- why do they even get bloated up with that break_lock then?). Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
479 lines
12 KiB
Plaintext
479 lines
12 KiB
Plaintext
# $Id: config.in,v 1.158 2002/01/24 22:14:44 davem Exp $
|
|
# For a description of the syntax of this configuration file,
|
|
# see the Configure script.
|
|
#
|
|
|
|
mainmenu "Linux/UltraSPARC Kernel Configuration"
|
|
|
|
config SPARC
|
|
bool
|
|
default y
|
|
|
|
config SPARC64
|
|
bool
|
|
default y
|
|
help
|
|
SPARC is a family of RISC microprocessors designed and marketed by
|
|
Sun Microsystems, incorporated. This port covers the newer 64-bit
|
|
UltraSPARC. The UltraLinux project maintains both the SPARC32 and
|
|
SPARC64 ports; its web page is available at
|
|
<http://www.ultralinux.org/>.
|
|
|
|
config GENERIC_TIME
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_CMOS_UPDATE
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_CLOCKEVENTS
|
|
bool
|
|
default y
|
|
|
|
config 64BIT
|
|
def_bool y
|
|
|
|
config MMU
|
|
bool
|
|
default y
|
|
|
|
config QUICKLIST
|
|
bool
|
|
default y
|
|
|
|
config STACKTRACE_SUPPORT
|
|
bool
|
|
default y
|
|
|
|
config LOCKDEP_SUPPORT
|
|
bool
|
|
default y
|
|
|
|
config ARCH_MAY_HAVE_PC_FDC
|
|
bool
|
|
default y
|
|
|
|
config ARCH_HAS_ILOG2_U32
|
|
bool
|
|
default n
|
|
|
|
config ARCH_HAS_ILOG2_U64
|
|
bool
|
|
default n
|
|
|
|
config AUDIT_ARCH
|
|
bool
|
|
default y
|
|
|
|
config ARCH_NO_VIRT_TO_BUS
|
|
def_bool y
|
|
|
|
config OF
|
|
def_bool y
|
|
|
|
config GENERIC_HARDIRQS_NO__DO_IRQ
|
|
bool
|
|
def_bool y
|
|
|
|
choice
|
|
prompt "Kernel page size"
|
|
default SPARC64_PAGE_SIZE_8KB
|
|
|
|
config SPARC64_PAGE_SIZE_8KB
|
|
bool "8KB"
|
|
help
|
|
This lets you select the page size of the kernel.
|
|
|
|
8KB and 64KB work quite well, since Sparc ELF sections
|
|
provide for up to 64KB alignment.
|
|
|
|
Therefore, 512KB and 4MB are for expert hackers only.
|
|
|
|
If you don't know what to do, choose 8KB.
|
|
|
|
config SPARC64_PAGE_SIZE_64KB
|
|
bool "64KB"
|
|
|
|
config SPARC64_PAGE_SIZE_512KB
|
|
bool "512KB"
|
|
|
|
config SPARC64_PAGE_SIZE_4MB
|
|
bool "4MB"
|
|
|
|
endchoice
|
|
|
|
config SECCOMP
|
|
bool "Enable seccomp to safely compute untrusted bytecode"
|
|
depends on PROC_FS
|
|
default y
|
|
help
|
|
This kernel feature is useful for number crunching applications
|
|
that may need to compute untrusted bytecode during their
|
|
execution. By using pipes or other transports made available to
|
|
the process as file descriptors supporting the read/write
|
|
syscalls, it's possible to isolate those applications in
|
|
their own address space using seccomp. Once seccomp is
|
|
enabled via /proc/<pid>/seccomp, it cannot be disabled
|
|
and the task is only allowed to execute a few safe syscalls
|
|
defined by each seccomp mode.
|
|
|
|
If unsure, say Y. Only embedded should say N here.
|
|
|
|
source kernel/Kconfig.hz
|
|
|
|
config HOTPLUG_CPU
|
|
bool "Support for hot-pluggable CPUs"
|
|
depends on SMP
|
|
select HOTPLUG
|
|
---help---
|
|
Say Y here to experiment with turning CPUs off and on. CPUs
|
|
can be controlled through /sys/devices/system/cpu/cpu#.
|
|
Say N if you want to disable CPU hotplug.
|
|
|
|
source "init/Kconfig"
|
|
|
|
config SYSVIPC_COMPAT
|
|
bool
|
|
depends on COMPAT && SYSVIPC
|
|
default y
|
|
|
|
config GENERIC_HARDIRQS
|
|
bool
|
|
default y
|
|
|
|
menu "General machine setup"
|
|
|
|
source "kernel/time/Kconfig"
|
|
|
|
config SMP
|
|
bool "Symmetric multi-processing support"
|
|
---help---
|
|
This enables support for systems with more than one CPU. If you have
|
|
a system with only one CPU, say N. If you have a system with more than
|
|
one CPU, say Y.
|
|
|
|
If you say N here, the kernel will run on single and multiprocessor
|
|
machines, but will use only one CPU of a multiprocessor machine. If
|
|
you say Y here, the kernel will run on many, but not all,
|
|
singleprocessor machines. On a singleprocessor machine, the kernel
|
|
will run faster if you say N here.
|
|
|
|
People using multiprocessor machines who say Y here should also say
|
|
Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
|
|
Management" code will be disabled if you say Y here.
|
|
|
|
See also the <file:Documentation/smp.txt>,
|
|
<file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
|
|
<http://www.tldp.org/docs.html#howto>.
|
|
|
|
If you don't know what to do here, say N.
|
|
|
|
config NR_CPUS
|
|
int "Maximum number of CPUs (2-1024)"
|
|
range 2 1024
|
|
depends on SMP
|
|
default "64"
|
|
|
|
source "drivers/cpufreq/Kconfig"
|
|
|
|
config US3_FREQ
|
|
tristate "UltraSPARC-III CPU Frequency driver"
|
|
depends on CPU_FREQ
|
|
select CPU_FREQ_TABLE
|
|
help
|
|
This adds the CPUFreq driver for UltraSPARC-III processors.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq>.
|
|
|
|
If in doubt, say N.
|
|
|
|
config US2E_FREQ
|
|
tristate "UltraSPARC-IIe CPU Frequency driver"
|
|
depends on CPU_FREQ
|
|
select CPU_FREQ_TABLE
|
|
help
|
|
This adds the CPUFreq driver for UltraSPARC-IIe processors.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq>.
|
|
|
|
If in doubt, say N.
|
|
|
|
# Global things across all Sun machines.
|
|
config GENERIC_LOCKBREAK
|
|
bool
|
|
default y
|
|
depends on SMP && PREEMPT
|
|
|
|
config RWSEM_GENERIC_SPINLOCK
|
|
bool
|
|
|
|
config RWSEM_XCHGADD_ALGORITHM
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_FIND_NEXT_BIT
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_HWEIGHT
|
|
bool
|
|
default y if !ULTRA_HAS_POPULATION_COUNT
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
bool
|
|
default y
|
|
|
|
choice
|
|
prompt "SPARC64 Huge TLB Page Size"
|
|
depends on HUGETLB_PAGE
|
|
default HUGETLB_PAGE_SIZE_4MB
|
|
|
|
config HUGETLB_PAGE_SIZE_4MB
|
|
bool "4MB"
|
|
|
|
config HUGETLB_PAGE_SIZE_512K
|
|
depends on !SPARC64_PAGE_SIZE_4MB && !SPARC64_PAGE_SIZE_512KB
|
|
bool "512K"
|
|
|
|
config HUGETLB_PAGE_SIZE_64K
|
|
depends on !SPARC64_PAGE_SIZE_4MB && !SPARC64_PAGE_SIZE_512KB && !SPARC64_PAGE_SIZE_64KB
|
|
bool "64K"
|
|
|
|
endchoice
|
|
|
|
endmenu
|
|
|
|
config ARCH_SELECT_MEMORY_MODEL
|
|
def_bool y
|
|
|
|
config ARCH_SPARSEMEM_ENABLE
|
|
def_bool y
|
|
select SPARSEMEM_VMEMMAP_ENABLE
|
|
|
|
config ARCH_SPARSEMEM_DEFAULT
|
|
def_bool y
|
|
|
|
source "mm/Kconfig"
|
|
|
|
config ISA
|
|
bool
|
|
help
|
|
Find out whether you have ISA slots on your motherboard. ISA is the
|
|
name of a bus system, i.e. the way the CPU talks to the other stuff
|
|
inside your box. Other bus systems are PCI, EISA, MicroChannel
|
|
(MCA) or VESA. ISA is an older system, now being displaced by PCI;
|
|
newer boards don't support it. If you have ISA, say Y, otherwise N.
|
|
|
|
config ISAPNP
|
|
bool
|
|
help
|
|
Say Y here if you would like support for ISA Plug and Play devices.
|
|
Some information is in <file:Documentation/isapnp.txt>.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called isapnp.
|
|
|
|
If unsure, say Y.
|
|
|
|
config EISA
|
|
bool
|
|
---help---
|
|
The Extended Industry Standard Architecture (EISA) bus was
|
|
developed as an open alternative to the IBM MicroChannel bus.
|
|
|
|
The EISA bus provided some of the features of the IBM MicroChannel
|
|
bus while maintaining backward compatibility with cards made for
|
|
the older ISA bus. The EISA bus saw limited use between 1988 and
|
|
1995 when it was made obsolete by the PCI bus.
|
|
|
|
Say Y here if you are building a kernel for an EISA-based machine.
|
|
|
|
Otherwise, say N.
|
|
|
|
config MCA
|
|
bool
|
|
help
|
|
MicroChannel Architecture is found in some IBM PS/2 machines and
|
|
laptops. It is a bus system similar to PCI or ISA. See
|
|
<file:Documentation/mca.txt> (and especially the web page given
|
|
there) before attempting to build an MCA bus kernel.
|
|
|
|
config PCMCIA
|
|
tristate
|
|
---help---
|
|
Say Y here if you want to attach PCMCIA- or PC-cards to your Linux
|
|
computer. These are credit-card size devices such as network cards,
|
|
modems or hard drives often used with laptops computers. There are
|
|
actually two varieties of these cards: the older 16 bit PCMCIA cards
|
|
and the newer 32 bit CardBus cards. If you want to use CardBus
|
|
cards, you need to say Y here and also to "CardBus support" below.
|
|
|
|
To use your PC-cards, you will need supporting software from David
|
|
Hinds' pcmcia-cs package (see the file <file:Documentation/Changes>
|
|
for location). Please also read the PCMCIA-HOWTO, available from
|
|
<http://www.tldp.org/docs.html#howto>.
|
|
|
|
To compile this driver as modules, choose M here: the
|
|
modules will be called pcmcia_core and ds.
|
|
|
|
config SBUS
|
|
bool
|
|
default y
|
|
|
|
config SBUSCHAR
|
|
bool
|
|
default y
|
|
|
|
config SUN_AUXIO
|
|
bool
|
|
default y
|
|
|
|
config SUN_IO
|
|
bool
|
|
default y
|
|
|
|
config SUN_LDOMS
|
|
bool "Sun Logical Domains support"
|
|
help
|
|
Say Y here is you want to support virtual devices via
|
|
Logical Domains.
|
|
|
|
config PCI
|
|
bool "PCI support"
|
|
select ARCH_SUPPORTS_MSI
|
|
help
|
|
Find out whether you have a PCI motherboard. PCI is the name of a
|
|
bus system, i.e. the way the CPU talks to the other stuff inside
|
|
your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
|
|
VESA. If you have PCI, say Y, otherwise N.
|
|
|
|
The PCI-HOWTO, available from
|
|
<http://www.tldp.org/docs.html#howto>, contains valuable
|
|
information about which PCI hardware does work under Linux and which
|
|
doesn't.
|
|
|
|
config PCI_DOMAINS
|
|
def_bool PCI
|
|
|
|
config PCI_SYSCALL
|
|
def_bool PCI
|
|
|
|
source "drivers/pci/Kconfig"
|
|
|
|
config SUN_OPENPROMFS
|
|
tristate "Openprom tree appears in /proc/openprom"
|
|
help
|
|
If you say Y, the OpenPROM device tree will be available as a
|
|
virtual file system, which you can mount to /proc/openprom by "mount
|
|
-t openpromfs none /proc/openprom".
|
|
|
|
To compile the /proc/openprom support as a module, choose M here: the
|
|
module will be called openpromfs. If unsure, choose M.
|
|
|
|
config SPARC32_COMPAT
|
|
bool "Kernel support for Linux/Sparc 32bit binary compatibility"
|
|
help
|
|
This allows you to run 32-bit binaries on your Ultra.
|
|
Everybody wants this; say Y.
|
|
|
|
config COMPAT
|
|
bool
|
|
depends on SPARC32_COMPAT
|
|
default y
|
|
|
|
config BINFMT_ELF32
|
|
bool "Kernel support for 32-bit ELF binaries"
|
|
depends on SPARC32_COMPAT
|
|
help
|
|
This allows you to run 32-bit Linux/ELF binaries on your Ultra.
|
|
Everybody wants this; say Y.
|
|
|
|
config BINFMT_AOUT32
|
|
bool "Kernel support for 32-bit (ie. SunOS) a.out binaries"
|
|
depends on SPARC32_COMPAT
|
|
help
|
|
This allows you to run 32-bit a.out format binaries on your Ultra.
|
|
If you want to run SunOS binaries (see SunOS binary emulation below)
|
|
or other a.out binaries, say Y. If unsure, say N.
|
|
|
|
menu "Executable file formats"
|
|
|
|
source "fs/Kconfig.binfmt"
|
|
|
|
config SUNOS_EMUL
|
|
bool "SunOS binary emulation"
|
|
depends on BINFMT_AOUT32
|
|
help
|
|
This allows you to run most SunOS binaries. If you want to do this,
|
|
say Y here and place appropriate files in /usr/gnemul/sunos. See
|
|
<http://www.ultralinux.org/faq.html> for more information. If you
|
|
want to run SunOS binaries on an Ultra you must also say Y to
|
|
"Kernel support for 32-bit a.out binaries" above.
|
|
|
|
config SOLARIS_EMUL
|
|
tristate "Solaris binary emulation (EXPERIMENTAL)"
|
|
depends on SPARC32_COMPAT && NET && EXPERIMENTAL
|
|
help
|
|
This is experimental code which will enable you to run (many)
|
|
Solaris binaries on your SPARC Linux machine.
|
|
|
|
To compile this code as a module, choose M here: the
|
|
module will be called solaris.
|
|
|
|
endmenu
|
|
|
|
config SCHED_SMT
|
|
bool "SMT (Hyperthreading) scheduler support"
|
|
depends on SMP
|
|
default y
|
|
help
|
|
SMT scheduler support improves the CPU scheduler's decision making
|
|
when dealing with UltraSPARC cpus at a cost of slightly increased
|
|
overhead in some places. If unsure say N here.
|
|
|
|
config SCHED_MC
|
|
bool "Multi-core scheduler support"
|
|
depends on SMP
|
|
default y
|
|
help
|
|
Multi-core scheduler support improves the CPU scheduler's decision
|
|
making when dealing with multi-core CPU chips at a cost of slightly
|
|
increased overhead in some places. If unsure say N here.
|
|
|
|
source "kernel/Kconfig.preempt"
|
|
|
|
config CMDLINE_BOOL
|
|
bool "Default bootloader kernel arguments"
|
|
|
|
config CMDLINE
|
|
string "Initial kernel command string"
|
|
depends on CMDLINE_BOOL
|
|
default "console=ttyS0,9600 root=/dev/sda1"
|
|
help
|
|
Say Y here if you want to be able to pass default arguments to
|
|
the kernel. This will be overridden by the bootloader, if you
|
|
use one (such as SILO). This is most useful if you want to boot
|
|
a kernel from TFTP, and want default options to be available
|
|
with having them passed on the command line.
|
|
|
|
NOTE: This option WILL override the PROM bootargs setting!
|
|
|
|
source "net/Kconfig"
|
|
|
|
source "drivers/Kconfig"
|
|
|
|
source "drivers/sbus/char/Kconfig"
|
|
|
|
source "fs/Kconfig"
|
|
|
|
source "kernel/Kconfig.instrumentation"
|
|
|
|
source "arch/sparc64/Kconfig.debug"
|
|
|
|
source "security/Kconfig"
|
|
|
|
source "crypto/Kconfig"
|
|
|
|
source "lib/Kconfig"
|