72ed1d5634
Currently, we have two different implementation of rwsem: 1) CONFIG_RWSEM_GENERIC_SPINLOCK (rwsem-spinlock.c) 2) CONFIG_RWSEM_XCHGADD_ALGORITHM (rwsem-xadd.c) As we are going to use a single generic implementation for rwsem-xadd.c and no architecture-specific code will be needed, there is no point in keeping two different implementations of rwsem. In most cases, the performance of rwsem-spinlock.c will be worse. It also doesn't get all the performance tuning and optimizations that had been implemented in rwsem-xadd.c over the years. For simplication, we are going to remove rwsem-spinlock.c and make all architectures use a single implementation of rwsem - rwsem-xadd.c. All references to RWSEM_GENERIC_SPINLOCK and RWSEM_XCHGADD_ALGORITHM in the code are removed. Suggested-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Waiman Long <longman@redhat.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Borislav Petkov <bp@alien8.de> Cc: Davidlohr Bueso <dave@stgolabs.net> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Tim Chen <tim.c.chen@linux.intel.com> Cc: Will Deacon <will.deacon@arm.com> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-c6x-dev@linux-c6x.org Cc: linux-m68k@lists.linux-m68k.org Cc: linux-riscv@lists.infradead.org Cc: linux-um@lists.infradead.org Cc: linux-xtensa@linux-xtensa.org Cc: linuxppc-dev@lists.ozlabs.org Cc: nios2-dev@lists.rocketboards.org Cc: openrisc@lists.librecores.org Cc: uclinux-h8-devel@lists.sourceforge.jp Link: https://lkml.kernel.org/r/20190322143008.21313-3-longman@redhat.com Signed-off-by: Ingo Molnar <mingo@kernel.org> Change-Id: I8a94de8b29db44da529ccbb90dc591efa06906c7 Signed-off-by: UtsavBalar1231 <utsavbalar1231@gmail.com>
114 lines
3.0 KiB
Plaintext
114 lines
3.0 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see Documentation/kbuild/kconfig-language.txt.
|
|
#
|
|
|
|
config C6X
|
|
def_bool y
|
|
select ARCH_HAS_SYNC_DMA_FOR_CPU
|
|
select ARCH_HAS_SYNC_DMA_FOR_DEVICE
|
|
select CLKDEV_LOOKUP
|
|
select DMA_NONCOHERENT_OPS
|
|
select GENERIC_ATOMIC64
|
|
select GENERIC_IRQ_SHOW
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select HAVE_MEMBLOCK
|
|
select SPARSE_IRQ
|
|
select IRQ_DOMAIN
|
|
select OF
|
|
select OF_EARLY_FLATTREE
|
|
select GENERIC_CLOCKEVENTS
|
|
select MODULES_USE_ELF_RELA
|
|
select ARCH_NO_COHERENT_DMA_MMAP
|
|
select MMU_GATHER_NO_RANGE if MMU
|
|
|
|
config MMU
|
|
def_bool n
|
|
|
|
config FPU
|
|
def_bool n
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
def_bool y
|
|
|
|
config GENERIC_HWEIGHT
|
|
def_bool y
|
|
|
|
config GENERIC_BUG
|
|
def_bool y
|
|
depends on BUG
|
|
|
|
config C6X_BIG_KERNEL
|
|
bool "Build a big kernel"
|
|
help
|
|
The C6X function call instruction has a limited range of +/- 2MiB.
|
|
This is sufficient for most kernels, but some kernel configurations
|
|
with lots of compiled-in functionality may require a larger range
|
|
for function calls. Use this option to have the compiler generate
|
|
function calls with 32-bit range. This will make the kernel both
|
|
larger and slower.
|
|
|
|
If unsure, say N.
|
|
|
|
# Use the generic interrupt handling code in kernel/irq/
|
|
|
|
config CMDLINE_BOOL
|
|
bool "Default bootloader kernel arguments"
|
|
|
|
config CMDLINE
|
|
string "Kernel command line"
|
|
depends on CMDLINE_BOOL
|
|
default "console=ttyS0,57600"
|
|
help
|
|
On some architectures there is currently no way for the boot loader
|
|
to pass arguments to the kernel. For these architectures, you should
|
|
supply some command-line options at build time by entering them
|
|
here.
|
|
|
|
config CMDLINE_FORCE
|
|
bool "Force default kernel command string"
|
|
depends on CMDLINE_BOOL
|
|
default n
|
|
help
|
|
Set this to have arguments from the default kernel command string
|
|
override those passed by the boot loader.
|
|
|
|
config CPU_BIG_ENDIAN
|
|
bool "Build big-endian kernel"
|
|
default n
|
|
help
|
|
Say Y if you plan on running a kernel in big-endian mode.
|
|
Note that your board must be properly built and your board
|
|
port must properly enable any big-endian related features
|
|
of your chipset/board/processor.
|
|
|
|
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 11 means that the largest free memory block is 2^10 pages.
|
|
|
|
menu "Processor type and features"
|
|
|
|
source "arch/c6x/platforms/Kconfig"
|
|
|
|
config KERNEL_RAM_BASE_ADDRESS
|
|
hex "Virtual address of memory base"
|
|
default 0xe0000000 if SOC_TMS320C6455
|
|
default 0xe0000000 if SOC_TMS320C6457
|
|
default 0xe0000000 if SOC_TMS320C6472
|
|
default 0x80000000
|
|
|
|
source "kernel/Kconfig.hz"
|
|
|
|
endmenu
|