commit 359f0630a0aad45206f33359dcb6ddedd028b6ba Author: Alexandre Frade Date: Tue Mar 5 16:40:47 2019 -0300 5.0.0-xanmod1 Signed-off-by: Alexandre Frade commit e7c0f0b7d0386287b7b5f177931482d6c9a4b8ef Author: graysky Date: Tue Mar 5 16:40:06 2019 -0300 x86/Kconfig: Enable additional cpu optimizations for gcc v8.1+ kernel v4.13+ WARNING This patch works with gcc versions 8.1+ and with kernel version 4.13+ and should NOT be applied when compiling on older versions of gcc due to key name changes of the march flags introduced with the version 4.9 release of gcc.[1] Use the older version of this patch hosted on the same github for older versions of gcc. FEATURES This patch adds additional CPU options to the Linux kernel accessible under: Processor type and features ---> Processor family ---> The expanded microarchitectures include: * AMD Improved K8-family * AMD K10-family * AMD Family 10h (Barcelona) * AMD Family 14h (Bobcat) * AMD Family 16h (Jaguar) * AMD Family 15h (Bulldozer) * AMD Family 15h (Piledriver) * AMD Family 15h (Steamroller) * AMD Family 15h (Excavator) * AMD Family 17h (Zen) * Intel Silvermont low-power processors * Intel 1st Gen Core i3/i5/i7 (Nehalem) * Intel 1.5 Gen Core i3/i5/i7 (Westmere) * Intel 2nd Gen Core i3/i5/i7 (Sandybridge) * Intel 3rd Gen Core i3/i5/i7 (Ivybridge) * Intel 4th Gen Core i3/i5/i7 (Haswell) * Intel 5th Gen Core i3/i5/i7 (Broadwell) * Intel 6th Gen Core i3/i5/i7 (Skylake) * Intel 6th Gen Core i7/i9 (Skylake X) * Intel 8th Gen Core i3/i5/i7 (Cannon Lake) * Intel 8th Gen Core i7/i9 (Ice Lake) It also offers to compile passing the 'native' option which, "selects the CPU to generate code for at compilation time by determining the processor type of the compiling machine. Using -march=native enables all instruction subsets supported by the local machine and will produce code optimized for the local machine under the constraints of the selected instruction set."[3] MINOR NOTES This patch also changes 'atom' to 'bonnell' in accordance with the gcc v4.9 changes. Note that upstream is using the deprecated 'match=atom' flags when I believe it should use the newer 'march=bonnell' flag for atom processors.[2] It is not recommended to compile on Atom-CPUs with the 'native' option.[4] The recommendation is to use the 'atom' option instead. BENEFITS Small but real speed increases are measurable using a make endpoint comparing a generic kernel to one built with one of the respective microarchs. See the following experimental evidence supporting this statement: https://github.com/graysky2/kernel_gcc_patch REQUIREMENTS linux version >=3.15 gcc version >=8.1 ACKNOWLEDGMENTS This patch builds on the seminal work by Jeroen.[5] REFERENCES 1. https://gcc.gnu.org/gcc-4.9/changes.html 2. https://bugzilla.kernel.org/show_bug.cgi?id=77461 3. https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html 4. https://github.com/graysky2/kernel_gcc_patch/issues/15 5. http://www.linuxforge.net/docs/linux/linux-gcc.php commit 5f4cb17544f9dcc94b7d6c283f91b704a1f5c335 Author: Alexandre Frade Date: Tue Mar 5 16:10:47 2019 -0300 block: set rq_affinity = 2 for full multithreading I/O requests Signed-off-by: Alexandre Frade commit 1735833445beb160478e7efc928e722c504b9543 Author: Alexandre Frade Date: Wed Oct 24 16:58:52 2018 -0300 net/sched: allow configuring cake qdisc as default Signed-off-by: Alexandre Frade commit 16d76f2631e071bf6e91b474ce3d0471d6b80108 Author: Alexandre Frade Date: Mon Jan 29 18:29:13 2018 +0000 sched/core: nr_migrate = 128 increases number of tasks to iterate in a single balance run. Signed-off-by: Alexandre Frade commit 565d2b9ae8d6590ebcdc1ca748d05a33ac7ad51a Author: Alexandre Frade Date: Mon Jan 29 17:55:52 2018 +0000 cpufreq: tunes ondemand governor for performance Signed-off-by: Alexandre Frade commit 29776e29b2622fb75f5cf4fd4b8fddf1ce842f0a Author: Alexandre Frade Date: Mon Jan 29 17:41:29 2018 +0000 disable the localversion "+" tag of a git repo Signed-off-by: Alexandre Frade commit aaf80c172954d156eb018b81a77747c5933d3217 Author: Alexandre Frade Date: Mon Jan 29 17:36:22 2018 +0000 mm/zswap: set to use lz4 compressor Signed-off-by: Alexandre Frade commit c820b1ea55eabb5b8a4f187fa658908920227c33 Author: Alexandre Frade Date: Mon Jan 29 17:31:25 2018 +0000 mm/vmscan: vm_swappiness = 30 decreases the amount of swapping Signed-off-by: Alexandre Frade commit c7532073ff35b170d5305bf88730a8edb85b6b76 Author: Alexandre Frade Date: Mon Jan 29 17:26:15 2018 +0000 kconfig: add 500Hz timer interrupt kernel config option Signed-off-by: Alexandre Frade commit 6b9bc18ac96b1a01813fc74047d88191ab68bd44 Author: Alexandre Frade Date: Mon Jan 29 17:21:43 2018 +0000 mm: set 128/2048 (min/max) kilobytes to read-ahead for filesystems on this block device Signed-off-by: Alexandre Frade commit 9b24668e23157b95413e32aee1dad292f0b410f4 Author: Alexandre Frade Date: Mon Jan 29 16:59:22 2018 +0000 dcache: cache_pressure = 50 decreases the rate at which VFS caches are reclaimed Signed-off-by: Alexandre Frade commit 3375dd861068ab2674c60e043477e1fbfcc2db4a Author: Mark Weiman Date: Sun Aug 12 11:36:21 2018 -0400 pci: Enable overrides for missing ACS capabilities This an updated version of Alex Williamson's patch from: https://lkml.org/lkml/2013/5/30/513 Original commit message follows: PCIe ACS (Access Control Services) is the PCIe 2.0+ feature that allows us to control whether transactions are allowed to be redirected in various subnodes of a PCIe topology. For instance, if two endpoints are below a root port or downsteam switch port, the downstream port may optionally redirect transactions between the devices, bypassing upstream devices. The same can happen internally on multifunction devices. The transaction may never be visible to the upstream devices. One upstream device that we particularly care about is the IOMMU. If a redirection occurs in the topology below the IOMMU, then the IOMMU cannot provide isolation between devices. This is why the PCIe spec encourages topologies to include ACS support. Without it, we have to assume peer-to-peer DMA within a hierarchy can bypass IOMMU isolation. Unfortunately, far too many topologies do not support ACS to make this a steadfast requirement. Even the latest chipsets from Intel are only sporadically supporting ACS. We have trouble getting interconnect vendors to include the PCIe spec required PCIe capability, let alone suggested features. Therefore, we need to add some flexibility. The pcie_acs_override= boot option lets users opt-in specific devices or sets of devices to assume ACS support. The "downstream" option assumes full ACS support on root ports and downstream switch ports. The "multifunction" option assumes the subset of ACS features available on multifunction endpoints and upstream switch ports are supported. The "id:nnnn:nnnn" option enables ACS support on devices matching the provided vendor and device IDs, allowing more strategic ACS overrides. These options may be combined in any order. A maximum of 16 id specific overrides are available. It's suggested to use the most limited set of options necessary to avoid completely disabling ACS across the topology. Note to hardware vendors, we have facilities to permanently quirk specific devices which enforce isolation but not provide an ACS capability. Please contact me to have your devices added and save your customers the hassle of this boot option. Signed-off-by: Mark Weiman commit c31db32060e26851dd8255baded8abcc03107414 Author: Alexandre Frade Date: Thu Jul 6 03:03:36 2017 +0000 add trace events for open(), exec() and uselib() Signed-off-by: Alexandre Frade commit 8918a922c393f864a691a09323428ada9ba534d7 Author: Alexandre Frade Date: Fri Dec 21 16:20:41 2018 -0200 elevator: set default scheduler to bfq for blk-mq Signed-off-by: Alexandre Frade commit beca0227e9efba7ef0eb68f56946dc046909d168 Author: Alfred Chen Date: Tue Mar 5 15:56:01 2019 -0300 pds: PDS 0.99o for v5.0 kernel commit 1c163f4c7b3f621efff9b28a47abb36f7378d783 Author: Linus Torvalds Date: Sun Mar 3 15:21:29 2019 -0800 Linux 5.0