freebsd-skq/sys/conf
Warner Losh a6e0c5da99 New CAM I/O scheduler for FreeBSD. The default I/O scheduler is the same
as before. The common scheduling bits have moved from inline code in
each of the CAM periph drivers into a library that implements the
default scheduling.

In addition, a number of rate-limiting and I/O preference options can
be enabled by adding CAM_IOSCHED_NETFLIX to your config file. A number
of extra stats are also maintained. CAM_IOSCHED_NETFLIX isn't on by
default because it uses a separate BIO_READ and BIO_WRITE queue, so
doesn't honor BIO_ORDERED between these two types of operations. We
already didn't honor it for BIO_DELETE, and we don't depend on
BIO_ORDERED between reads and writes anywhere in the system (it is
currently used with BIO_FLUSH in ZFS to make sure some writes are
complete before others start and as a poor-man's soft dependency in
one place in UFS where we won't be issuing READs until after the
operation completes). However, out of an abundance of caution, it
isn't enabled by default.

Plus, this also brings in NCQ TRIM support for those SSDs that support
it. A black list is also provided for known rogues that use NCQ trim
as an excuse to corrupt the drive. It was difficult to separate out
into a separate commit.

This code has run in production at Netflix for over a year now.

Sponsored by: Netflix, Inc
Differential Revision: https://reviews.freebsd.org/D4609
2016-04-14 21:47:58 +00:00
..
config.mk Reduce duplicated logic from r291744. 2016-03-12 22:21:14 +00:00
dtb.mk Do as r289391 did for share/mk and make installing to a non-existent directory 2015-10-17 05:49:07 +00:00
files New CAM I/O scheduler for FreeBSD. The default I/O scheduler is the same 2016-04-14 21:47:58 +00:00
files.amd64 Move i386/i386/autoconf.c to sys/x86/x86 and use it on both amd64 and i386. 2016-04-03 23:03:54 +00:00
files.arm Sort so pic_if.m is in the correct location with the other kern files. 2016-04-14 15:52:11 +00:00
files.arm64 arm64: bzero optimization 2016-04-04 07:06:20 +00:00
files.i386 Move i386/i386/autoconf.c to sys/x86/x86 and use it on both amd64 and i386. 2016-04-03 23:03:54 +00:00
files.mips Reduce OFW PCI code duplication - involves ARM, PPC and SPARC64 2016-03-29 15:19:56 +00:00
files.pc98 Move i386/i386/autoconf.c to sys/x86/x86 and use it on both amd64 and i386. 2016-04-03 23:03:54 +00:00
files.powerpc Fix PowerPC LINT build after r297392 2016-04-01 09:07:18 +00:00
files.riscv Add support for ddb(4). 2016-03-10 15:51:43 +00:00
files.sparc64 simplify compile-time default keyboard map generation 2016-03-28 19:51:45 +00:00
kern.mk We only support GCC 4.8 for these flags. 2016-03-13 19:17:48 +00:00
kern.opts.mk Remove the old depend (mkdep) code and make FAST_DEPEND the one true way. 2016-03-30 23:50:23 +00:00
kern.post.mk Implement the dependency condition more safely. 2016-04-14 21:04:49 +00:00
kern.pre.mk Remove the old depend (mkdep) code and make FAST_DEPEND the one true way. 2016-03-30 23:50:23 +00:00
kmod_syms.awk
kmod.mk Remove the old depend (mkdep) code and make FAST_DEPEND the one true way. 2016-03-30 23:50:23 +00:00
ldscript.amd64 amd64: set the correct LMA values 2015-06-26 07:12:17 +00:00
ldscript.arm Remove STARTUP_PAGETABLE_ADDR from the ARM configs and replace it with 2014-01-28 09:12:04 +00:00
ldscript.arm64 Bring in the start of the arm64 kernel. 2015-04-13 14:43:10 +00:00
ldscript.i386
ldscript.mips
ldscript.mips.cfe
ldscript.mips.mips64
ldscript.mips.octeon1
ldscript.powerpc Refactor PowerPC (especially AIM) init sequence to be less baroque. 2015-01-18 18:32:43 +00:00
ldscript.powerpc64 Fix build with new binutils. This gets a working kernel with GCC 5.2 and 2015-11-29 06:40:09 +00:00
ldscript.riscv Welcome the RISC-V 64-bit kernel. 2016-01-29 15:12:31 +00:00
ldscript.sparc64
Makefile.amd64 Clang's 3.5 integrated assembler now handles these files correctly (it 2015-01-05 12:28:22 +00:00
Makefile.arm ARM: All remaining functions in cpufunc_asm_arm10.S are identical with 2016-02-02 14:53:34 +00:00
Makefile.arm64 Build changes that allow the modules on arm64. 2015-10-08 17:42:08 +00:00
Makefile.i386 Clang's 3.5 integrated assembler now handles these files correctly (it 2015-01-05 12:28:22 +00:00
Makefile.mips Revert this change. It broke the trampoline build. Until I'm sure 2015-12-21 20:36:01 +00:00
Makefile.pc98 Fix kernel build ${MACHINE} path 2015-04-16 22:34:10 +00:00
Makefile.powerpc Make 32-bit PowerPC kernels, like 64-bit PowerPC kernels, position-independent 2015-03-07 20:14:46 +00:00
Makefile.riscv Add support for ddb(4). 2016-03-10 15:51:43 +00:00
Makefile.sparc64 Bump the version of config to the latest (3 year old, so upgrade 2014-02-04 18:24:25 +00:00
makeLINT.mk
makeLINT.sed
newvers.sh newvers.sh: rationalize licence condition numbering 2016-04-07 20:30:46 +00:00
NOTES Add more fine-grained kernel options for NUMA support. 2016-04-09 13:58:04 +00:00
options New CAM I/O scheduler for FreeBSD. The default I/O scheduler is the same 2016-04-14 21:47:58 +00:00
options.amd64 Microsoft vmbus, storage and other related driver enhancements for HyperV. 2015-04-29 10:12:34 +00:00
options.arm Add SMP support to the ARM PLATFORM code. This will allow us to have 2016-02-28 13:43:58 +00:00
options.arm64 Add the SOC_HISI_HI6220 option. This will be used to enable drivers for 2015-08-26 18:09:17 +00:00
options.i386 Remove support for Xen PV domU kernels. Support for HVM domU kernels 2015-04-30 15:48:48 +00:00
options.mips Add MIPS_INTRNG to sys/conf/options.mips 2016-03-08 08:57:53 +00:00
options.pc98 Reduce diffs against i386. 2014-10-04 05:03:39 +00:00
options.powerpc Add support for new LAW registers in QorIQ SoCs. 2015-11-18 01:54:19 +00:00
options.riscv Welcome the RISC-V 64-bit kernel. 2016-01-29 15:12:31 +00:00
options.sparc64
systags.sh
WITHOUT_SOURCELESS
WITHOUT_SOURCELESS_HOST Retire the nve(4) driver; nfe(4) has been the default driver for NVIDIA 2014-02-16 12:22:43 +00:00
WITHOUT_SOURCELESS_UCODE Add nodevice iwmfw to WITHOUT_SOURCELESS_UCODE. 2015-08-08 20:45:47 +00:00