mirror of
https://github.com/torvalds/linux.git
synced 2024-11-29 23:51:37 +00:00
007dc78fea
Pull locking updates from Ingo Molnar: "Here are the locking changes in this cycle: - rwsem unification and simpler micro-optimizations to prepare for more intrusive (and more lucrative) scalability improvements in v5.3 (Waiman Long) - Lockdep irq state tracking flag usage cleanups (Frederic Weisbecker) - static key improvements (Jakub Kicinski, Peter Zijlstra) - misc updates, cleanups and smaller fixes" * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (26 commits) locking/lockdep: Remove unnecessary unlikely() locking/static_key: Don't take sleeping locks in __static_key_slow_dec_deferred() locking/static_key: Factor out the fast path of static_key_slow_dec() locking/static_key: Add support for deferred static branches locking/lockdep: Test all incompatible scenarios at once in check_irq_usage() locking/lockdep: Avoid bogus Clang warning locking/lockdep: Generate LOCKF_ bit composites locking/lockdep: Use expanded masks on find_usage_*() functions locking/lockdep: Map remaining magic numbers to lock usage mask names locking/lockdep: Move valid_state() inside CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING locking/rwsem: Prevent unneeded warning during locking selftest locking/rwsem: Optimize rwsem structure for uncontended lock acquisition locking/rwsem: Enable lock event counting locking/lock_events: Don't show pvqspinlock events on bare metal locking/lock_events: Make lock_events available for all archs & other locks locking/qspinlock_stat: Introduce generic lockevent_*() counting APIs locking/rwsem: Enhance DEBUG_RWSEMS_WARN_ON() macro locking/rwsem: Add debug check for __down_read*() locking/rwsem: Micro-optimize rwsem_try_read_lock_unqueued() locking/rwsem: Move rwsem internal function declarations to rwsem-xadd.h ...
539 lines
14 KiB
Plaintext
539 lines
14 KiB
Plaintext
config 64BIT
|
|
bool "64-bit kernel" if "$(ARCH)" = "sparc"
|
|
default "$(ARCH)" = "sparc64"
|
|
help
|
|
SPARC is a family of RISC microprocessors designed and marketed by
|
|
Sun Microsystems, incorporated. They are very widely found in Sun
|
|
workstations and clones.
|
|
|
|
Say yes to build a 64-bit kernel - formerly known as sparc64
|
|
Say no to build a 32-bit kernel - formerly known as sparc
|
|
|
|
config SPARC
|
|
bool
|
|
default y
|
|
select ARCH_MIGHT_HAVE_PC_PARPORT if SPARC64 && PCI
|
|
select ARCH_MIGHT_HAVE_PC_SERIO
|
|
select OF
|
|
select OF_PROMTREE
|
|
select HAVE_IDE
|
|
select HAVE_OPROFILE
|
|
select HAVE_ARCH_KGDB if !SMP || SPARC64
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select HAVE_EXIT_THREAD
|
|
select HAVE_PCI
|
|
select SYSCTL_EXCEPTION_TRACE
|
|
select RTC_CLASS
|
|
select RTC_DRV_M48T59
|
|
select RTC_SYSTOHC
|
|
select HAVE_ARCH_JUMP_LABEL if SPARC64
|
|
select GENERIC_IRQ_SHOW
|
|
select ARCH_WANT_IPC_PARSE_VERSION
|
|
select GENERIC_PCI_IOMAP
|
|
select HAVE_NMI_WATCHDOG if SPARC64
|
|
select HAVE_CBPF_JIT if SPARC32
|
|
select HAVE_EBPF_JIT if SPARC64
|
|
select HAVE_DEBUG_BUGVERBOSE
|
|
select GENERIC_SMP_IDLE_THREAD
|
|
select GENERIC_CLOCKEVENTS
|
|
select GENERIC_STRNCPY_FROM_USER
|
|
select GENERIC_STRNLEN_USER
|
|
select MODULES_USE_ELF_RELA
|
|
select PCI_SYSCALL if PCI
|
|
select ODD_RT_SIGACTION
|
|
select OLD_SIGSUSPEND
|
|
select CPU_NO_EFFICIENT_FFS
|
|
select LOCKDEP_SMALL if LOCKDEP
|
|
select NEED_DMA_MAP_STATE
|
|
select NEED_SG_DMA_LENGTH
|
|
|
|
config SPARC32
|
|
def_bool !64BIT
|
|
select ARCH_32BIT_OFF_T
|
|
select ARCH_HAS_SYNC_DMA_FOR_CPU
|
|
select GENERIC_ATOMIC64
|
|
select CLZ_TAB
|
|
select HAVE_UID16
|
|
select OLD_SIGACTION
|
|
|
|
config SPARC64
|
|
def_bool 64BIT
|
|
select HAVE_FUNCTION_TRACER
|
|
select HAVE_FUNCTION_GRAPH_TRACER
|
|
select HAVE_KRETPROBES
|
|
select HAVE_KPROBES
|
|
select HAVE_RCU_TABLE_FREE if SMP
|
|
select HAVE_RCU_TABLE_NO_INVALIDATE if HAVE_RCU_TABLE_FREE
|
|
select HAVE_MEMBLOCK_NODE_MAP
|
|
select HAVE_ARCH_TRANSPARENT_HUGEPAGE
|
|
select HAVE_DYNAMIC_FTRACE
|
|
select HAVE_FTRACE_MCOUNT_RECORD
|
|
select HAVE_SYSCALL_TRACEPOINTS
|
|
select HAVE_CONTEXT_TRACKING
|
|
select HAVE_DEBUG_KMEMLEAK
|
|
select IOMMU_HELPER
|
|
select SPARSE_IRQ
|
|
select RTC_DRV_CMOS
|
|
select RTC_DRV_BQ4802
|
|
select RTC_DRV_SUN4V
|
|
select RTC_DRV_STARFIRE
|
|
select HAVE_PERF_EVENTS
|
|
select PERF_USE_VMALLOC
|
|
select IRQ_PREFLOW_FASTEOI
|
|
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
|
select HAVE_C_RECORDMCOUNT
|
|
select HAVE_ARCH_AUDITSYSCALL
|
|
select ARCH_SUPPORTS_ATOMIC_RMW
|
|
select HAVE_NMI
|
|
select HAVE_REGS_AND_STACK_ACCESS_API
|
|
select ARCH_USE_QUEUED_RWLOCKS
|
|
select ARCH_USE_QUEUED_SPINLOCKS
|
|
select GENERIC_TIME_VSYSCALL
|
|
select ARCH_CLOCKSOURCE_DATA
|
|
select ARCH_HAS_PTE_SPECIAL
|
|
select PCI_DOMAINS if PCI
|
|
|
|
config ARCH_DEFCONFIG
|
|
string
|
|
default "arch/sparc/configs/sparc32_defconfig" if SPARC32
|
|
default "arch/sparc/configs/sparc64_defconfig" if SPARC64
|
|
|
|
config ARCH_PROC_KCORE_TEXT
|
|
def_bool y
|
|
|
|
config CPU_BIG_ENDIAN
|
|
def_bool y
|
|
|
|
config ARCH_ATU
|
|
bool
|
|
default y if SPARC64
|
|
|
|
config STACKTRACE_SUPPORT
|
|
bool
|
|
default y if SPARC64
|
|
|
|
config LOCKDEP_SUPPORT
|
|
bool
|
|
default y if SPARC64
|
|
|
|
config ARCH_HIBERNATION_POSSIBLE
|
|
def_bool y if SPARC64
|
|
|
|
config AUDIT_ARCH
|
|
bool
|
|
default y
|
|
|
|
config HAVE_SETUP_PER_CPU_AREA
|
|
def_bool y if SPARC64
|
|
|
|
config NEED_PER_CPU_EMBED_FIRST_CHUNK
|
|
def_bool y if SPARC64
|
|
|
|
config NEED_PER_CPU_PAGE_FIRST_CHUNK
|
|
def_bool y if SPARC64
|
|
|
|
config MMU
|
|
bool
|
|
default y
|
|
|
|
config HIGHMEM
|
|
bool
|
|
default y if SPARC32
|
|
|
|
config ZONE_DMA
|
|
bool
|
|
default y if SPARC32
|
|
|
|
config GENERIC_ISA_DMA
|
|
bool
|
|
default y if SPARC32
|
|
|
|
config ARCH_SUPPORTS_DEBUG_PAGEALLOC
|
|
def_bool y if SPARC64
|
|
|
|
config PGTABLE_LEVELS
|
|
default 4 if 64BIT
|
|
default 3
|
|
|
|
config ARCH_SUPPORTS_UPROBES
|
|
def_bool y if SPARC64
|
|
|
|
menu "Processor type and features"
|
|
|
|
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 uni- 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,
|
|
uniprocessor machines. On a uniprocessor 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 <file:Documentation/lockup-watchdogs.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"
|
|
depends on SMP
|
|
range 2 32 if SPARC32
|
|
range 2 4096 if SPARC64
|
|
default 32 if SPARC32
|
|
default 4096 if SPARC64
|
|
|
|
source "kernel/Kconfig.hz"
|
|
|
|
config GENERIC_HWEIGHT
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
bool
|
|
default y
|
|
|
|
config ARCH_MAY_HAVE_PC_FDC
|
|
bool
|
|
default y
|
|
|
|
config EMULATED_CMPXCHG
|
|
bool
|
|
default y if SPARC32
|
|
help
|
|
Sparc32 does not have a CAS instruction like sparc64. cmpxchg()
|
|
is emulated, and therefore it is not completely atomic.
|
|
|
|
# Makefile helpers
|
|
config SPARC32_SMP
|
|
bool
|
|
default y
|
|
depends on SPARC32 && SMP
|
|
|
|
config SPARC64_SMP
|
|
bool
|
|
default y
|
|
depends on SPARC64 && SMP
|
|
|
|
config EARLYFB
|
|
bool "Support for early boot text console"
|
|
default y
|
|
depends on SPARC64
|
|
help
|
|
Say Y here to enable a faster early framebuffer boot console.
|
|
|
|
config SECCOMP
|
|
bool "Enable seccomp to safely compute untrusted bytecode"
|
|
depends on SPARC64 && 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.
|
|
|
|
config HOTPLUG_CPU
|
|
bool "Support for hot-pluggable CPUs"
|
|
depends on SPARC64 && SMP
|
|
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.
|
|
|
|
if SPARC64
|
|
source "drivers/cpufreq/Kconfig"
|
|
endif
|
|
|
|
config US3_MC
|
|
tristate "UltraSPARC-III Memory Controller driver"
|
|
depends on SPARC64
|
|
default y
|
|
help
|
|
This adds a driver for the UltraSPARC-III memory controller.
|
|
Loading this driver allows exact mnemonic strings to be
|
|
printed in the event of a memory error, so that the faulty DIMM
|
|
on the motherboard can be matched to the error.
|
|
|
|
If in doubt, say Y, as this information can be very useful.
|
|
|
|
# Global things across all Sun machines.
|
|
config GENERIC_LOCKBREAK
|
|
bool
|
|
default y
|
|
depends on SPARC64 && SMP && PREEMPT
|
|
|
|
config NUMA
|
|
bool "NUMA support"
|
|
depends on SPARC64 && SMP
|
|
|
|
config NODES_SHIFT
|
|
int "Maximum NUMA Nodes (as a power of 2)"
|
|
range 4 5 if SPARC64
|
|
default "5"
|
|
depends on NEED_MULTIPLE_NODES
|
|
help
|
|
Specify the maximum number of NUMA Nodes available on the target
|
|
system. Increases memory reserved to accommodate various tables.
|
|
|
|
# Some NUMA nodes have memory ranges that span
|
|
# other nodes. Even though a pfn is valid and
|
|
# between a node's start and end pfns, it may not
|
|
# reside on that node. See memmap_init_zone()
|
|
# for details.
|
|
config NODES_SPAN_OTHER_NODES
|
|
def_bool y
|
|
depends on NEED_MULTIPLE_NODES
|
|
|
|
config ARCH_SELECT_MEMORY_MODEL
|
|
def_bool y if SPARC64
|
|
|
|
config ARCH_SPARSEMEM_ENABLE
|
|
def_bool y if SPARC64
|
|
select SPARSEMEM_VMEMMAP_ENABLE
|
|
|
|
config ARCH_SPARSEMEM_DEFAULT
|
|
def_bool y if SPARC64
|
|
|
|
config FORCE_MAX_ZONEORDER
|
|
int "Maximum zone order"
|
|
default "13"
|
|
help
|
|
The kernel memory allocator divides physically contiguous memory
|
|
blocks into "zones", where each zone is a power of two number of
|
|
pages. This option selects the largest power of two that the kernel
|
|
keeps in the memory allocator. If you need to allocate very large
|
|
blocks of physically contiguous memory, then you may need to
|
|
increase this value.
|
|
|
|
This config option is actually maximum order plus one. For example,
|
|
a value of 13 means that the largest free memory block is 2^12 pages.
|
|
|
|
if SPARC64
|
|
source "kernel/power/Kconfig"
|
|
endif
|
|
|
|
config SCHED_SMT
|
|
bool "SMT (Hyperthreading) scheduler support"
|
|
depends on SPARC64 && SMP
|
|
default y
|
|
help
|
|
SMT scheduler support improves the CPU scheduler's decision making
|
|
when dealing with SPARC 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 SPARC64 && 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.
|
|
|
|
config CMDLINE_BOOL
|
|
bool "Default bootloader kernel arguments"
|
|
depends on SPARC64
|
|
|
|
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!
|
|
|
|
config SUN_PM
|
|
bool
|
|
default y if SPARC32
|
|
help
|
|
Enable power management and CPU standby features on supported
|
|
SPARC platforms.
|
|
|
|
config SPARC_LED
|
|
tristate "Sun4m LED driver"
|
|
depends on SPARC32
|
|
help
|
|
This driver toggles the front-panel LED on sun4m systems
|
|
in a user-specifiable manner. Its state can be probed
|
|
by reading /proc/led and its blinking mode can be changed
|
|
via writes to /proc/led
|
|
|
|
config SERIAL_CONSOLE
|
|
bool
|
|
depends on SPARC32
|
|
default y
|
|
---help---
|
|
If you say Y here, it will be possible to use a serial port as the
|
|
system console (the system console is the device which receives all
|
|
kernel messages and warnings and which allows logins in single user
|
|
mode). This could be useful if some terminal or printer is connected
|
|
to that serial port.
|
|
|
|
Even if you say Y here, the currently visible virtual console
|
|
(/dev/tty0) will still be used as the system console by default, but
|
|
you can alter that using a kernel command line option such as
|
|
"console=ttyS1". (Try "man bootparam" or see the documentation of
|
|
your boot loader (silo) about how to pass options to the kernel at
|
|
boot time.)
|
|
|
|
If you don't have a graphics card installed and you say Y here, the
|
|
kernel will automatically use the first serial line, /dev/ttyS0, as
|
|
system console.
|
|
|
|
If unsure, say N.
|
|
|
|
config SPARC_LEON
|
|
bool "Sparc Leon processor family"
|
|
depends on SPARC32
|
|
select USB_EHCI_BIG_ENDIAN_MMIO
|
|
select USB_EHCI_BIG_ENDIAN_DESC
|
|
select USB_UHCI_BIG_ENDIAN_MMIO
|
|
select USB_UHCI_BIG_ENDIAN_DESC
|
|
---help---
|
|
If you say Y here if you are running on a SPARC-LEON processor.
|
|
The LEON processor is a synthesizable VHDL model of the
|
|
SPARC-v8 standard. LEON is part of the GRLIB collection of
|
|
IP cores that are distributed under GPL. GRLIB can be downloaded
|
|
from www.gaisler.com. You can download a sparc-linux cross-compilation
|
|
toolchain at www.gaisler.com.
|
|
|
|
if SPARC_LEON
|
|
menu "U-Boot options"
|
|
|
|
config UBOOT_LOAD_ADDR
|
|
hex "uImage Load Address"
|
|
default 0x40004000
|
|
---help---
|
|
U-Boot kernel load address, the address in physical address space
|
|
where u-boot will place the Linux kernel before booting it.
|
|
This address is normally the base address of main memory + 0x4000.
|
|
|
|
config UBOOT_FLASH_ADDR
|
|
hex "uImage.o Load Address"
|
|
default 0x00080000
|
|
---help---
|
|
Optional setting only affecting the uImage.o ELF-image used to
|
|
download the uImage file to the target using a ELF-loader other than
|
|
U-Boot. It may for example be used to download an uImage to FLASH with
|
|
the GRMON utility before even starting u-boot.
|
|
|
|
config UBOOT_ENTRY_ADDR
|
|
hex "uImage Entry Address"
|
|
default 0xf0004000
|
|
---help---
|
|
Do not change this unless you know what you're doing. This is
|
|
hardcoded by the SPARC32 and LEON port.
|
|
|
|
This is the virtual address u-boot jumps to when booting the Linux
|
|
Kernel.
|
|
|
|
endmenu
|
|
endif
|
|
|
|
endmenu
|
|
|
|
menu "Bus options (PCI etc.)"
|
|
config SBUS
|
|
bool
|
|
default y
|
|
|
|
config SBUSCHAR
|
|
bool
|
|
default y
|
|
|
|
config SUN_LDOMS
|
|
bool "Sun Logical Domains support"
|
|
depends on SPARC64
|
|
help
|
|
Say Y here is you want to support virtual devices via
|
|
Logical Domains.
|
|
|
|
config PCIC_PCI
|
|
bool
|
|
depends on PCI && SPARC32 && !SPARC_LEON
|
|
default y
|
|
|
|
config LEON_PCI
|
|
bool
|
|
depends on PCI && SPARC_LEON
|
|
default y
|
|
|
|
config SPARC_GRPCI1
|
|
bool "GRPCI Host Bridge Support"
|
|
depends on LEON_PCI
|
|
default y
|
|
help
|
|
Say Y here to include the GRPCI Host Bridge Driver. The GRPCI
|
|
PCI host controller is typically found in GRLIB SPARC32/LEON
|
|
systems. The driver has one property (all_pci_errors) controlled
|
|
from the bootloader that makes the GRPCI to generate interrupts
|
|
on detected PCI Parity and System errors.
|
|
|
|
config SPARC_GRPCI2
|
|
bool "GRPCI2 Host Bridge Support"
|
|
depends on LEON_PCI
|
|
default y
|
|
help
|
|
Say Y here to include the GRPCI2 Host Bridge Driver.
|
|
|
|
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.
|
|
|
|
Only choose N if you know in advance that you will not need to modify
|
|
OpenPROM settings on the running system.
|
|
|
|
# Makefile helpers
|
|
config SPARC64_PCI
|
|
bool
|
|
default y
|
|
depends on SPARC64 && PCI
|
|
|
|
config SPARC64_PCI_MSI
|
|
bool
|
|
default y
|
|
depends on SPARC64_PCI && PCI_MSI
|
|
|
|
endmenu
|
|
|
|
config COMPAT
|
|
bool
|
|
depends on SPARC64
|
|
default y
|
|
select COMPAT_BINFMT_ELF
|
|
select HAVE_UID16
|
|
select ARCH_WANT_OLD_COMPAT_IPC
|
|
select COMPAT_OLD_SIGACTION
|
|
|
|
config SYSVIPC_COMPAT
|
|
bool
|
|
depends on COMPAT && SYSVIPC
|
|
default y
|
|
|
|
source "drivers/sbus/char/Kconfig"
|