commit 26c204cbadba550dfec34404af9633824a39f314 Author: Alexandre Frade Date: Tue Dec 25 01:45:22 2018 -0200 4.20.0-xanmod1 Signed-off-by: Alexandre Frade commit 0fcbb80208b5888e4c705860b41e1b5a5591fb45 Author: graysky Date: Tue Dec 25 01:18:33 2018 -0200 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 13fa1351a8d2cc6dd6d04dd84f7eb173e02f941d 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 8b5319710ac04fcb8e863de31ad3a33dd40fb10f Author: Alexandre Frade Date: Mon Jan 29 18:36:35 2018 +0000 block: set rq_affinity = 2 for full multithreading I/O requests Signed-off-by: Alexandre Frade commit 2110b6da618e20befcfc330677edb9a9dda111c5 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 3ea73c1d39a574eb81d63258c5a196fc7ade858c Author: Alexandre Frade Date: Mon Jan 29 17:55:52 2018 +0000 cpufreq: tunes ondemand governor for performance Signed-off-by: Alexandre Frade commit b45ddc4ca4d0a81b620cd60dc74c35faa8ef4819 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 cb9e9c6e99b98bfb1750ac3c1d180b66030f8ac8 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 27954d861a4ed35174ce2ade11fec634b83b34bf 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 c497a60a193770f90cac1ede98afcd8965b89664 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 d199eb69000cdd5d5de51fe8d92250979df5c2a6 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 1cf793fb5be96d5faa0aa7dbe88e57e60203ec54 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 cdeab384f48dd9c88e2dff2e9ad8d57dca1a1b1c 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 b1da34cb4252a848a4f566b0ec5cf62b51b64163 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 7b6470b4bc997d73b75dae558ee6f02bf8e73e22 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 35b118127f6e0d894f79a0ec9dbe3c70afd23ece Author: Alfred Chen Date: Tue Dec 25 01:07:42 2018 -0200 pds: PDS 0.99i for v4.20 kernel commit 03bb62acbde02b71189a23b7420dd4cba4a2528f Author: J. R. Okajima Date: Tue Dec 25 01:06:39 2018 -0200 aufs: advanced multi layered unification filesystem. version 4.x-rcN 20181217 commit 8fe28cb58bcb235034b64cbbb7550a8a43fd88be Author: Linus Torvalds Date: Sun Dec 23 15:55:59 2018 -0800 Linux 4.20