d080827f85
1/ Media error handling: The 'badblocks' implementation that originated in md-raid is up-levelled to a generic capability of a block device. This initial implementation is limited to being consulted in the pmem block-i/o path. Later, 'badblocks' will be consulted when creating dax mappings. 2/ Raw block device dax: For virtualization and other cases that want large contiguous mappings of persistent memory, add the capability to dax-mmap a block device directly. 3/ Increased /dev/mem restrictions: Add an option to treat all io-memory as IORESOURCE_EXCLUSIVE, i.e. disable /dev/mem access while a driver is actively using an address range. This behavior is controlled via the new CONFIG_IO_STRICT_DEVMEM option and can be overridden by the existing "iomem=relaxed" kernel command line option. 4/ Miscellaneous fixes include a 'pfn'-device huge page alignment fix, block device shutdown crash fix, and other small libnvdimm fixes. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJWlrhjAAoJEB7SkWpmfYgCFbAQALKsQfFwT6JFS+zlPgiNpbqw 2VMNKEH0AfGYGj96mT02j2q+vSUmXLMIDMTsbe0sDdtwFZtQbFmhmryzPWUVppSu KGTlLPW8vuEhQVs91+UI3BQKkvpi0+tbR8hPOh9W6QhjpRT+lyHFKnsNR5HZy5wB K4/VMaT5ffd5/pXRTjkYiPQYTwWyfcvNjICj0YtqhPvOwS031m77JpFsWJ8HSpEX K99VlzNUPMXd1pYkHmFNXWw52fhRGNhwAEomLeKMdQfKms+KnbKp8BOSA0aCqU8E kpujQcilDXJwykFQZOFI3Z5Dxvrv8lxFTU8HRMBvo3ESzfTWjfqcvyjGOjDUcruw ihESFSJtdZzhrBiMnf9RRqSpMFJvAT8MVT6Q4D3mZUHCMPbUqFJsQjMPt9hEH3ho 4F0D2lesOCkubUKFTZmjMoDb+szuKbVhYK8TeFVVEhizinc/Aj0NKuazJqi+CXB/ xh0ER4ZxD8wvzqFFWvS5UvR1G9I5fr7+3jGRUrqGLHlSdeXP9dkEg28ao3QbWk3x 1dPOen6ZqQ9WJ/E7eGmXbVEz2R4Xd79hMXQzdQwmKDk/KbxRoAp7hyU8BslAyrBf HCdmVt+RAgrxZYfFRXuLhqwEBThJnNrgZA3qu74FUpkpFg6xRUu1bAYBiF7N+bFi 82b5UbMkveBTtkXjJoiR =7V5r -----END PGP SIGNATURE----- Merge tag 'libnvdimm-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull libnvdimm updates from Dan Williams: "The bulk of this has appeared in -next and independently received a build success notification from the kbuild robot. The 'for-4.5/block- dax' topic branch was rebased over the weekend to drop the "block device end-of-life" rework that Al would like to see re-implemented with a notifier, and to address bug reports against the badblocks integration. There is pending feedback against "libnvdimm: Add a poison list and export badblocks" received last week. Linda identified some localized fixups that we will handle incrementally. Summary: - Media error handling: The 'badblocks' implementation that originated in md-raid is up-levelled to a generic capability of a block device. This initial implementation is limited to being consulted in the pmem block-i/o path. Later, 'badblocks' will be consulted when creating dax mappings. - Raw block device dax: For virtualization and other cases that want large contiguous mappings of persistent memory, add the capability to dax-mmap a block device directly. - Increased /dev/mem restrictions: Add an option to treat all io-memory as IORESOURCE_EXCLUSIVE, i.e. disable /dev/mem access while a driver is actively using an address range. This behavior is controlled via the new CONFIG_IO_STRICT_DEVMEM option and can be overridden by the existing "iomem=relaxed" kernel command line option. - Miscellaneous fixes include a 'pfn'-device huge page alignment fix, block device shutdown crash fix, and other small libnvdimm fixes" * tag 'libnvdimm-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (32 commits) block: kill disk_{check|set|clear|alloc}_badblocks libnvdimm, pmem: nvdimm_read_bytes() badblocks support pmem, dax: disable dax in the presence of bad blocks pmem: fail io-requests to known bad blocks libnvdimm: convert to statically allocated badblocks libnvdimm: don't fail init for full badblocks list block, badblocks: introduce devm_init_badblocks block: clarify badblocks lifetime badblocks: rename badblocks_free to badblocks_exit libnvdimm, pmem: move definition of nvdimm_namespace_add_poison to nd.h libnvdimm: Add a poison list and export badblocks nfit_test: Enable DSMs for all test NFITs md: convert to use the generic badblocks code block: Add badblock management for gendisks badblocks: Add core badblock management code block: fix del_gendisk() vs blkdev_ioctl crash block: enable dax for raw block devices block: introduce bdev_file_inode() restrict /dev/mem to idle io memory ranges arch: consolidate CONFIG_STRICT_DEVM in lib/Kconfig.debug ...
495 lines
13 KiB
Plaintext
495 lines
13 KiB
Plaintext
# For a description of the syntax of this configuration file,
|
|
# see Documentation/kbuild/kconfig-language.txt.
|
|
|
|
config TILE
|
|
def_bool y
|
|
select HAVE_PERF_EVENTS
|
|
select USE_PMC if PERF_EVENTS
|
|
select HAVE_DMA_ATTRS
|
|
select HAVE_DMA_API_DEBUG
|
|
select HAVE_KVM if !TILEGX
|
|
select GENERIC_FIND_FIRST_BIT
|
|
select SYSCTL_EXCEPTION_TRACE
|
|
select CC_OPTIMIZE_FOR_SIZE
|
|
select HAVE_DEBUG_KMEMLEAK
|
|
select GENERIC_IRQ_PROBE
|
|
select GENERIC_PENDING_IRQ if SMP
|
|
select GENERIC_IRQ_SHOW
|
|
select HAVE_DEBUG_BUGVERBOSE
|
|
select VIRT_TO_BUS
|
|
select SYS_HYPERVISOR
|
|
select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
|
|
select ARCH_HAS_DEVMEM_IS_ALLOWED
|
|
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
|
select GENERIC_CLOCKEVENTS
|
|
select MODULES_USE_ELF_RELA
|
|
select HAVE_ARCH_TRACEHOOK
|
|
select HAVE_SYSCALL_TRACEPOINTS
|
|
select USER_STACKTRACE_SUPPORT
|
|
select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
|
|
select HAVE_DEBUG_STACKOVERFLOW
|
|
select ARCH_WANT_FRAME_POINTERS
|
|
select HAVE_CONTEXT_TRACKING
|
|
select EDAC_SUPPORT
|
|
select GENERIC_STRNCPY_FROM_USER
|
|
select GENERIC_STRNLEN_USER
|
|
select HAVE_ARCH_SECCOMP_FILTER
|
|
|
|
# FIXME: investigate whether we need/want these options.
|
|
# select HAVE_IOREMAP_PROT
|
|
# select HAVE_OPTPROBES
|
|
# select HAVE_REGS_AND_STACK_ACCESS_API
|
|
# select HAVE_HW_BREAKPOINT
|
|
# select PERF_EVENTS
|
|
# select HAVE_USER_RETURN_NOTIFIER
|
|
# config NO_BOOTMEM
|
|
# config ARCH_SUPPORTS_DEBUG_PAGEALLOC
|
|
# config HUGETLB_PAGE_SIZE_VARIABLE
|
|
|
|
config MMU
|
|
def_bool y
|
|
|
|
config GENERIC_CSUM
|
|
def_bool y
|
|
|
|
config HAVE_ARCH_ALLOC_REMAP
|
|
def_bool y
|
|
|
|
config HAVE_SETUP_PER_CPU_AREA
|
|
def_bool y
|
|
|
|
config NEED_PER_CPU_PAGE_FIRST_CHUNK
|
|
def_bool y
|
|
|
|
config SYS_SUPPORTS_HUGETLBFS
|
|
def_bool y
|
|
|
|
# Support for additional huge page sizes besides HPAGE_SIZE.
|
|
# The software support is currently only present in the TILE-Gx
|
|
# hypervisor. TILEPro in any case does not support page sizes
|
|
# larger than the default HPAGE_SIZE.
|
|
config HUGETLB_SUPER_PAGES
|
|
depends on HUGETLB_PAGE && TILEGX
|
|
def_bool y
|
|
|
|
config GENERIC_TIME_VSYSCALL
|
|
def_bool y
|
|
|
|
# Enable PMC if PERF_EVENTS, OPROFILE, or WATCHPOINTS are enabled.
|
|
config USE_PMC
|
|
bool
|
|
|
|
# FIXME: tilegx can implement a more efficient rwsem.
|
|
config RWSEM_GENERIC_SPINLOCK
|
|
def_bool y
|
|
|
|
# We only support gcc 4.4 and above, so this should work.
|
|
config ARCH_SUPPORTS_OPTIMIZED_INLINING
|
|
def_bool y
|
|
|
|
config ARCH_PHYS_ADDR_T_64BIT
|
|
def_bool y
|
|
|
|
config ARCH_DMA_ADDR_T_64BIT
|
|
def_bool y
|
|
|
|
config NEED_DMA_MAP_STATE
|
|
def_bool y
|
|
|
|
config ARCH_HAS_DMA_SET_COHERENT_MASK
|
|
bool
|
|
|
|
config LOCKDEP_SUPPORT
|
|
def_bool y
|
|
|
|
config STACKTRACE_SUPPORT
|
|
def_bool y
|
|
select STACKTRACE
|
|
|
|
# We use discontigmem for now; at some point we may want to switch
|
|
# to sparsemem (Tilera bug 7996).
|
|
config ARCH_DISCONTIGMEM_ENABLE
|
|
def_bool y
|
|
|
|
config ARCH_DISCONTIGMEM_DEFAULT
|
|
def_bool y
|
|
|
|
config TRACE_IRQFLAGS_SUPPORT
|
|
def_bool y
|
|
|
|
# SMP is required for Tilera Linux.
|
|
config SMP
|
|
def_bool y
|
|
|
|
config HVC_TILE
|
|
depends on TTY
|
|
select HVC_DRIVER
|
|
select HVC_IRQ if TILEGX
|
|
def_bool y
|
|
|
|
# Building with ARCH=tilegx (or ARCH=tile) implies using the
|
|
# 64-bit TILE-Gx toolchain, so force CONFIG_TILEGX on.
|
|
config TILEGX
|
|
def_bool ARCH != "tilepro"
|
|
select SPARSE_IRQ
|
|
select GENERIC_IRQ_LEGACY_ALLOC_HWIRQ
|
|
select HAVE_FUNCTION_TRACER
|
|
select HAVE_FUNCTION_GRAPH_TRACER
|
|
select HAVE_DYNAMIC_FTRACE
|
|
select HAVE_FTRACE_MCOUNT_RECORD
|
|
select HAVE_KPROBES
|
|
select HAVE_KRETPROBES
|
|
select HAVE_ARCH_KGDB
|
|
select ARCH_SUPPORTS_ATOMIC_RMW
|
|
|
|
config TILEPRO
|
|
def_bool !TILEGX
|
|
|
|
config 64BIT
|
|
def_bool TILEGX
|
|
|
|
config ARCH_DEFCONFIG
|
|
string
|
|
default "arch/tile/configs/tilepro_defconfig" if !TILEGX
|
|
default "arch/tile/configs/tilegx_defconfig" if TILEGX
|
|
|
|
config PGTABLE_LEVELS
|
|
int
|
|
default 3 if 64BIT
|
|
default 2
|
|
|
|
source "init/Kconfig"
|
|
|
|
source "kernel/Kconfig.freezer"
|
|
|
|
menu "Tilera-specific configuration"
|
|
|
|
config NR_CPUS
|
|
int "Maximum number of tiles (2-255)"
|
|
range 2 255
|
|
depends on SMP
|
|
default "64"
|
|
---help---
|
|
Building with 64 is the recommended value, but a slightly
|
|
smaller kernel memory footprint results from using a smaller
|
|
value on chips with fewer tiles.
|
|
|
|
choice
|
|
prompt "Kernel page size"
|
|
default PAGE_SIZE_64KB
|
|
help
|
|
This lets you select the page size of the kernel. For best
|
|
performance on memory-intensive applications, a page size of 64KB
|
|
is recommended. For workloads involving many small files, many
|
|
connections, etc., it may be better to select 16KB, which uses
|
|
memory more efficiently at some cost in TLB performance.
|
|
|
|
Note that for TILEPro, you must also rebuild the hypervisor
|
|
with a matching page size.
|
|
|
|
config PAGE_SIZE_4KB
|
|
bool "4KB" if TILEPRO
|
|
|
|
config PAGE_SIZE_16KB
|
|
bool "16KB"
|
|
|
|
config PAGE_SIZE_64KB
|
|
bool "64KB"
|
|
|
|
endchoice
|
|
|
|
source "kernel/Kconfig.hz"
|
|
|
|
config KEXEC
|
|
bool "kexec system call"
|
|
select KEXEC_CORE
|
|
---help---
|
|
kexec is a system call that implements the ability to shutdown your
|
|
current kernel, and to start another kernel. It is like a reboot
|
|
but it is independent of the system firmware. It is used
|
|
to implement the "mboot" Tilera booter.
|
|
|
|
The name comes from the similarity to the exec system call.
|
|
|
|
config COMPAT
|
|
bool "Support 32-bit TILE-Gx binaries in addition to 64-bit"
|
|
depends on TILEGX
|
|
select COMPAT_BINFMT_ELF
|
|
default y
|
|
---help---
|
|
If enabled, the kernel will support running TILE-Gx binaries
|
|
that were built with the -m32 option.
|
|
|
|
config SECCOMP
|
|
bool "Enable seccomp to safely compute untrusted bytecode"
|
|
depends on PROC_FS
|
|
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 prctl, it cannot be disabled and the task is only
|
|
allowed to execute a few safe syscalls defined by each seccomp
|
|
mode.
|
|
|
|
If unsure, say N.
|
|
|
|
config SYSVIPC_COMPAT
|
|
def_bool y
|
|
depends on COMPAT && SYSVIPC
|
|
|
|
# We do not currently support disabling HIGHMEM on tilepro.
|
|
config HIGHMEM
|
|
bool # "Support for more than 512 MB of RAM"
|
|
default !TILEGX
|
|
---help---
|
|
Linux can use the full amount of RAM in the system by
|
|
default. However, the address space of TILE processors is
|
|
only 4 Gigabytes large. That means that, if you have a large
|
|
amount of physical memory, not all of it can be "permanently
|
|
mapped" by the kernel. The physical memory that's not
|
|
permanently mapped is called "high memory".
|
|
|
|
If you are compiling a kernel which will never run on a
|
|
machine with more than 512 MB total physical RAM, answer
|
|
"false" here. This will result in the kernel mapping all of
|
|
physical memory into the top 1 GB of virtual memory space.
|
|
|
|
If unsure, say "true".
|
|
|
|
config ZONE_DMA
|
|
def_bool y
|
|
|
|
config IOMMU_HELPER
|
|
bool
|
|
|
|
config NEED_SG_DMA_LENGTH
|
|
bool
|
|
|
|
config SWIOTLB
|
|
bool
|
|
default TILEGX
|
|
select IOMMU_HELPER
|
|
select NEED_SG_DMA_LENGTH
|
|
select ARCH_HAS_DMA_SET_COHERENT_MASK
|
|
|
|
# We do not currently support disabling NUMA.
|
|
config NUMA
|
|
bool # "NUMA Memory Allocation and Scheduler Support"
|
|
depends on SMP && DISCONTIGMEM
|
|
default y
|
|
---help---
|
|
NUMA memory allocation is required for TILE processors
|
|
unless booting with memory striping enabled in the
|
|
hypervisor, or with only a single memory controller.
|
|
It is recommended that this option always be enabled.
|
|
|
|
config NODES_SHIFT
|
|
int "Log base 2 of the max number of memory controllers"
|
|
default 2
|
|
depends on NEED_MULTIPLE_NODES
|
|
---help---
|
|
By default, 2, i.e. 2^2 == 4 DDR2 controllers.
|
|
In a system with more controllers, this value should be raised.
|
|
|
|
choice
|
|
depends on !TILEGX
|
|
prompt "Memory split" if EXPERT
|
|
default VMSPLIT_3G
|
|
---help---
|
|
Select the desired split between kernel and user memory.
|
|
|
|
If the address range available to the kernel is less than the
|
|
physical memory installed, the remaining memory will be available
|
|
as "high memory". Accessing high memory is a little more costly
|
|
than low memory, as it needs to be mapped into the kernel first.
|
|
Note that increasing the kernel address space limits the range
|
|
available to user programs, making the address space there
|
|
tighter. Selecting anything other than the default 3G/1G split
|
|
will also likely make your kernel incompatible with binary-only
|
|
kernel modules.
|
|
|
|
If you are not absolutely sure what you are doing, leave this
|
|
option alone!
|
|
|
|
config VMSPLIT_3_75G
|
|
bool "3.75G/0.25G user/kernel split (no kernel networking)"
|
|
config VMSPLIT_3_5G
|
|
bool "3.5G/0.5G user/kernel split"
|
|
config VMSPLIT_3G
|
|
bool "3G/1G user/kernel split"
|
|
config VMSPLIT_2_75G
|
|
bool "2.75G/1.25G user/kernel split (for full 1G low memory)"
|
|
config VMSPLIT_2_5G
|
|
bool "2.5G/1.5G user/kernel split"
|
|
config VMSPLIT_2_25G
|
|
bool "2.25G/1.75G user/kernel split"
|
|
config VMSPLIT_2G
|
|
bool "2G/2G user/kernel split"
|
|
config VMSPLIT_1G
|
|
bool "1G/3G user/kernel split"
|
|
endchoice
|
|
|
|
config PAGE_OFFSET
|
|
hex
|
|
depends on !64BIT
|
|
default 0xF0000000 if VMSPLIT_3_75G
|
|
default 0xE0000000 if VMSPLIT_3_5G
|
|
default 0xB0000000 if VMSPLIT_2_75G
|
|
default 0xA0000000 if VMSPLIT_2_5G
|
|
default 0x90000000 if VMSPLIT_2_25G
|
|
default 0x80000000 if VMSPLIT_2G
|
|
default 0x40000000 if VMSPLIT_1G
|
|
default 0xC0000000
|
|
|
|
source "mm/Kconfig"
|
|
|
|
source "kernel/Kconfig.preempt"
|
|
|
|
config CMDLINE_BOOL
|
|
bool "Built-in kernel command line"
|
|
default n
|
|
---help---
|
|
Allow for specifying boot arguments to the kernel at
|
|
build time. On some systems (e.g. embedded ones), it is
|
|
necessary or convenient to provide some or all of the
|
|
kernel boot arguments with the kernel itself (that is,
|
|
to not rely on the boot loader to provide them.)
|
|
|
|
To compile command line arguments into the kernel,
|
|
set this option to 'Y', then fill in the
|
|
the boot arguments in CONFIG_CMDLINE.
|
|
|
|
Systems with fully functional boot loaders (e.g. mboot, or
|
|
if booting over PCI) should leave this option set to 'N'.
|
|
|
|
config CMDLINE
|
|
string "Built-in kernel command string"
|
|
depends on CMDLINE_BOOL
|
|
default ""
|
|
---help---
|
|
Enter arguments here that should be compiled into the kernel
|
|
image and used at boot time. If the boot loader provides a
|
|
command line at boot time, it is appended to this string to
|
|
form the full kernel command line, when the system boots.
|
|
|
|
However, you can use the CONFIG_CMDLINE_OVERRIDE option to
|
|
change this behavior.
|
|
|
|
In most cases, the command line (whether built-in or provided
|
|
by the boot loader) should specify the device for the root
|
|
file system.
|
|
|
|
config CMDLINE_OVERRIDE
|
|
bool "Built-in command line overrides boot loader arguments"
|
|
default n
|
|
depends on CMDLINE_BOOL
|
|
---help---
|
|
Set this option to 'Y' to have the kernel ignore the boot loader
|
|
command line, and use ONLY the built-in command line.
|
|
|
|
This is used to work around broken boot loaders. This should
|
|
be set to 'N' under normal conditions.
|
|
|
|
config VMALLOC_RESERVE
|
|
hex
|
|
default 0x2000000
|
|
|
|
config HARDWALL
|
|
bool "Hardwall support to allow access to user dynamic network"
|
|
default y
|
|
|
|
config KERNEL_PL
|
|
int "Processor protection level for kernel"
|
|
range 1 2
|
|
default 2 if TILEGX
|
|
default 1 if !TILEGX
|
|
---help---
|
|
Since MDE 4.2, the Tilera hypervisor runs the kernel
|
|
at PL2 by default. If running under an older hypervisor,
|
|
or as a KVM guest, you must run at PL1. (The current
|
|
hypervisor may also be recompiled with "make HV_PL=2" to
|
|
allow it to run a kernel at PL1, but clients running at PL1
|
|
are not expected to be supported indefinitely.)
|
|
|
|
If you're not sure, don't change the default.
|
|
|
|
source "arch/tile/gxio/Kconfig"
|
|
|
|
endmenu # Tilera-specific configuration
|
|
|
|
menu "Bus options"
|
|
|
|
config PCI
|
|
bool "PCI support"
|
|
default y
|
|
select PCI_DOMAINS
|
|
select GENERIC_PCI_IOMAP
|
|
select TILE_GXIO_TRIO if TILEGX
|
|
select PCI_MSI if TILEGX
|
|
---help---
|
|
Enable PCI root complex support, so PCIe endpoint devices can
|
|
be attached to the Tile chip. Many, but not all, PCI devices
|
|
are supported under Tilera's root complex driver.
|
|
|
|
config PCI_DOMAINS
|
|
bool
|
|
|
|
config NO_IOMEM
|
|
def_bool !PCI
|
|
|
|
config NO_IOPORT_MAP
|
|
def_bool !PCI
|
|
|
|
config TILE_PCI_IO
|
|
bool "PCI I/O space support"
|
|
default n
|
|
depends on PCI
|
|
depends on TILEGX
|
|
---help---
|
|
Enable PCI I/O space support on TILEGx. Since the PCI I/O space
|
|
is used by few modern PCIe endpoint devices, its support is disabled
|
|
by default to save the TRIO PIO Region resource for other purposes.
|
|
|
|
source "drivers/pci/Kconfig"
|
|
|
|
source "drivers/pci/pcie/Kconfig"
|
|
|
|
config TILE_USB
|
|
tristate "Tilera USB host adapter support"
|
|
default y
|
|
depends on USB
|
|
depends on TILEGX
|
|
select TILE_GXIO_USB_HOST
|
|
---help---
|
|
Provides USB host adapter support for the built-in EHCI and OHCI
|
|
interfaces on TILE-Gx chips.
|
|
|
|
source "drivers/pci/hotplug/Kconfig"
|
|
|
|
endmenu
|
|
|
|
menu "Executable file formats"
|
|
|
|
source "fs/Kconfig.binfmt"
|
|
|
|
endmenu
|
|
|
|
source "net/Kconfig"
|
|
|
|
source "drivers/Kconfig"
|
|
|
|
source "fs/Kconfig"
|
|
|
|
source "arch/tile/Kconfig.debug"
|
|
|
|
source "security/Kconfig"
|
|
|
|
source "crypto/Kconfig"
|
|
|
|
source "lib/Kconfig"
|
|
|
|
source "arch/tile/kvm/Kconfig"
|