aboutsummaryrefslogtreecommitdiff
path: root/SOURCES/tkg.patch
diff options
context:
space:
mode:
Diffstat (limited to 'SOURCES/tkg.patch')
-rw-r--r--SOURCES/tkg.patch888
1 files changed, 281 insertions, 607 deletions
diff --git a/SOURCES/tkg.patch b/SOURCES/tkg.patch
index aeffc95..f29c409 100644
--- a/SOURCES/tkg.patch
+++ b/SOURCES/tkg.patch
@@ -1,357 +1,64 @@
-From c304f43d14e98d4bf1215fc10bc5012f554bdd8a Mon Sep 17 00:00:00 2001
-From: Alexandre Frade <admfrade@gmail.com>
-Date: Mon, 29 Jan 2018 16:59:22 +0000
-Subject: [PATCH 02/17] dcache: cache_pressure = 50 decreases the rate at which
- VFS caches are reclaimed
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jan200101 <sentrycraft123@gmail.com>
+Date: Tue, 6 Aug 2024 19:20:54 +0200
+Subject: [PATCH] tkg glitched base
-Signed-off-by: Alexandre Frade <admfrade@gmail.com>
+Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
- fs/dcache.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ .../admin-guide/kernel-parameters.txt | 3 ++
+ Makefile | 3 ++
+ block/elevator.c | 6 ++--
+ drivers/cpufreq/intel_pstate.c | 2 ++
+ drivers/infiniband/core/addr.c | 1 +
+ drivers/input/evdev.c | 19 ++++++-----
+ drivers/md/dm-crypt.c | 5 +++
+ fs/dcache.c | 2 +-
+ include/linux/mm.h | 3 +-
+ include/linux/pageblock-flags.h | 2 +-
+ include/linux/pagemap.h | 2 +-
+ init/Kconfig | 32 +++++++++++++++++++
+ init/Makefile | 2 +-
+ kernel/sched/rt.c | 4 +--
+ mm/huge_memory.c | 4 +++
+ mm/page_alloc.c | 9 +++---
+ net/ipv4/Kconfig | 4 +++
+ net/sched/Kconfig | 4 +++
+ scripts/setlocalversion | 14 ++++----
+ 19 files changed, 91 insertions(+), 30 deletions(-)
-diff --git a/fs/dcache.c b/fs/dcache.c
-index 361ea7ab30ea..0c5cf69b241a 100644
---- a/fs/dcache.c
-+++ b/fs/dcache.c
-@@ -71,7 +71,7 @@
- * If no ancestor relationship:
- * arbitrary, since it's serialized on rename_lock
- */
--int sysctl_vfs_cache_pressure __read_mostly = 100;
-+int sysctl_vfs_cache_pressure __read_mostly = 50;
- EXPORT_SYMBOL_GPL(sysctl_vfs_cache_pressure);
-
- __cacheline_aligned_in_smp DEFINE_SEQLOCK(rename_lock);
---
-2.28.0
-
-
-diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
-index f788cd61df21..2bfbb4213707 100644
---- a/kernel/sched/rt.c
-+++ b/kernel/sched/rt.c
-@@ -22,7 +22,7 @@
- * part of the period that we allow rt tasks to run in us.
- * default: 0.95s
- */
--int sysctl_sched_rt_runtime = 950000;
-+int sysctl_sched_rt_runtime = 980000;
-
- #ifdef CONFIG_SYSCTL
- static int sysctl_sched_rr_timeslice = (MSEC_PER_SEC * RR_TIMESLICE) / HZ;
---
-2.28.0
-
-
-From acc49f33a10f61dc66c423888cbb883ba46710e4 Mon Sep 17 00:00:00 2001
-From: Alexandre Frade <admfrade@gmail.com>
-Date: Mon, 29 Jan 2018 17:41:29 +0000
-Subject: [PATCH 04/17] scripts: disable the localversion "+" tag of a git repo
-
-Signed-off-by: Alexandre Frade <admfrade@gmail.com>
----
- scripts/setlocalversion | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/setlocalversion b/scripts/setlocalversion
-index 20f2efd57b11..0552d8b9f582 100755
---- a/scripts/setlocalversion
-+++ b/scripts/setlocalversion
-@@ -54,7 +54,7 @@ scm_version()
- # If only the short version is requested, don't bother
- # running further git commands
- if $short; then
-- echo "+"
-+ #echo "+"
- return
- fi
- # If we are past the tagged commit, we pretty print it.
---
-2.28.0
-
-
-From 360c6833e07cc9fdef5746f6bc45bdbc7212288d Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
-Date: Fri, 26 Oct 2018 11:22:33 +0100
-Subject: [PATCH 06/17] infiniband: Fix __read_overflow2 error with -O3
- inlining
-
----
- drivers/infiniband/core/addr.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
-index 3a98439bba83..6efc4f907f58 100644
---- a/drivers/infiniband/core/addr.c
-+++ b/drivers/infiniband/core/addr.c
-@@ -820,6 +820,7 @@ int rdma_addr_find_l2_eth_by_grh(const union ib_gid *sgid,
- union {
- struct sockaddr_in _sockaddr_in;
- struct sockaddr_in6 _sockaddr_in6;
-+ struct sockaddr_ib _sockaddr_ib;
- } sgid_addr, dgid_addr;
- int ret;
-
---
-2.28.0
-
-
-From f85ed068b4d0e6c31edce8574a95757a60e58b87 Mon Sep 17 00:00:00 2001
-From: Etienne Juvigny <Ti3noU@gmail.com>
-Date: Mon, 3 Sep 2018 17:36:25 +0200
-Subject: [PATCH 07/17] Add Zenify option
-
----
- init/Kconfig | 32 ++++++++++++++++++++++++++++++++
- 1 file changed, 32 insertions(+)
-
-diff --git a/init/Kconfig b/init/Kconfig
-index 3ae8678e1145..da708eed0f1e 100644
---- a/init/Kconfig
-+++ b/init/Kconfig
-@@ -92,6 +92,38 @@ config THREAD_INFO_IN_TASK
-
- menu "General setup"
-
-+config ZENIFY
-+ bool "A selection of patches from Zen/Liquorix kernel and additional tweaks for a better gaming experience"
-+ default y
-+ help
-+ Tunes the kernel for responsiveness at the cost of throughput and power usage.
-+
-+ --- Virtual Memory Subsystem ---------------------------
-+
-+ Mem dirty before bg writeback..: 10 % -> 20 %
-+ Mem dirty before sync writeback: 20 % -> 50 %
-+
-+ --- Block Layer ----------------------------------------
-+
-+ Queue depth...............: 128 -> 512
-+ Default MQ scheduler......: mq-deadline -> bfq
-+
-+ --- CFS CPU Scheduler ----------------------------------
-+
-+ Scheduling latency.............: 6 -> 3 ms
-+ Minimal granularity............: 0.75 -> 0.3 ms
-+ Wakeup granularity.............: 1 -> 0.5 ms
-+ CPU migration cost.............: 0.5 -> 0.25 ms
-+ Bandwidth slice size...........: 5 -> 3 ms
-+ Ondemand fine upscaling limit..: 95 % -> 85 %
-+
-+ --- MuQSS CPU Scheduler --------------------------------
-+
-+ Scheduling interval............: 6 -> 3 ms
-+ ISO task max realtime use......: 70 % -> 25 %
-+ Ondemand coarse upscaling limit: 80 % -> 45 %
-+ Ondemand fine upscaling limit..: 95 % -> 45 %
-+
- config BROKEN
- bool
-
---
-2.28.0
-
-
-From e92e67143385cf285851e12aa8b7f083dd38dd24 Mon Sep 17 00:00:00 2001
-From: Steven Barrett <damentz@liquorix.net>
-Date: Sun, 16 Jan 2011 18:57:32 -0600
-Subject: [PATCH 08/17] ZEN: Allow TCP YeAH as default congestion control
-
-4.4: In my tests YeAH dramatically slowed down transfers over a WLAN,
- reducing throughput from ~65Mbps (CUBIC) to ~7MBps (YeAH) over 10
- seconds (netperf TCP_STREAM) including long stalls.
-
- Be careful when choosing this. ~heftig
----
- net/ipv4/Kconfig | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
-index e64e59b536d3..bfb55ef7ebbe 100644
---- a/net/ipv4/Kconfig
-+++ b/net/ipv4/Kconfig
-@@ -691,6 +691,9 @@ choice
- config DEFAULT_VEGAS
- bool "Vegas" if TCP_CONG_VEGAS=y
-
-+ config DEFAULT_YEAH
-+ bool "YeAH" if TCP_CONG_YEAH=y
-+
- config DEFAULT_VENO
- bool "Veno" if TCP_CONG_VENO=y
-
-@@ -724,6 +727,7 @@ config DEFAULT_TCP_CONG
- default "htcp" if DEFAULT_HTCP
- default "hybla" if DEFAULT_HYBLA
- default "vegas" if DEFAULT_VEGAS
-+ default "yeah" if DEFAULT_YEAH
- default "westwood" if DEFAULT_WESTWOOD
- default "veno" if DEFAULT_VENO
- default "reno" if DEFAULT_RENO
---
-2.28.0
-
-
-From 76dbe7477bfde1b5e8bf29a71b5af7ab2be9b98e Mon Sep 17 00:00:00 2001
-From: Steven Barrett <steven@liquorix.net>
-Date: Wed, 28 Nov 2018 19:01:27 -0600
-Subject: [PATCH 09/17] zen: Use [defer+madvise] as default khugepaged defrag
- strategy
-
-For some reason, the default strategy to respond to THP fault fallbacks
-is still just madvise, meaning stall if the program wants transparent
-hugepages, but don't trigger a background reclaim / compaction if THP
-begins to fail allocations. This creates a snowball affect where we
-still use the THP code paths, but we almost always fail once a system
-has been active and busy for a while.
-
-The option "defer" was created for interactive systems where THP can
-still improve performance. If we have to fallback to a regular page due
-to an allocation failure or anything else, we will trigger a background
-reclaim and compaction so future THP attempts succeed and previous
-attempts eventually have their smaller pages combined without stalling
-running applications.
-
-We still want madvise to stall applications that explicitely want THP,
-so defer+madvise _does_ make a ton of sense. Make it the default for
-interactive systems, especially if the kernel maintainer left
-transparent hugepages on "always".
-
-Reasoning and details in the original patch: https://lwn.net/Articles/711248/
----
- mm/huge_memory.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/mm/huge_memory.c b/mm/huge_memory.c
-index 74300e337c3c..9277f22c10a7 100644
---- a/mm/huge_memory.c
-+++ b/mm/huge_memory.c
-@@ -53,7 +53,11 @@ unsigned long transparent_hugepage_flags __read_mostly =
- #ifdef CONFIG_TRANSPARENT_HUGEPAGE_MADVISE
- (1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG)|
- #endif
-+#ifdef CONFIG_ZENIFY
-+ (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG)|
-+#else
- (1<<TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG)|
-+#endif
- (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG)|
- (1<<TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG);
-
---
-2.28.0
-
-
-From 2b65a1329cb220b43c19c4d0de5833fae9e2b22d Mon Sep 17 00:00:00 2001
-From: Alexandre Frade <admfrade@gmail.com>
-Date: Wed, 24 Oct 2018 16:58:52 -0300
-Subject: [PATCH 10/17] net/sched: allow configuring cake qdisc as default
-
-Signed-off-by: Alexandre Frade <admfrade@gmail.com>
----
- net/sched/Kconfig | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/net/sched/Kconfig b/net/sched/Kconfig
-index 84badf00647e..6a922bca9f39 100644
---- a/net/sched/Kconfig
-+++ b/net/sched/Kconfig
-@@ -471,6 +471,9 @@ choice
- config DEFAULT_SFQ
- bool "Stochastic Fair Queue" if NET_SCH_SFQ
+diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
+index 2569e7f19b47..5b79a61afd6d 100644
+--- a/Documentation/admin-guide/kernel-parameters.txt
++++ b/Documentation/admin-guide/kernel-parameters.txt
+@@ -355,6 +355,9 @@
+ disable
+ Do not enable amd_pstate as the default
+ scaling driver for the supported processors
++ enable
++ Enable intel_pstate in-case "disable" was passed
++ previously in the kernel boot parameters
+ passive
+ Use amd_pstate with passive mode as a scaling driver.
+ In this mode autonomous selection is disabled.
+diff --git a/Makefile b/Makefile
+index c0af6d8aeb05..94d76f300914 100644
+--- a/Makefile
++++ b/Makefile
+@@ -999,6 +999,9 @@ KBUILD_CFLAGS += $(call cc-option, -fstrict-flex-arrays=3)
+ KBUILD_CFLAGS-$(CONFIG_CC_NO_STRINGOP_OVERFLOW) += $(call cc-option, -Wno-stringop-overflow)
+ KBUILD_CFLAGS-$(CONFIG_CC_STRINGOP_OVERFLOW) += $(call cc-option, -Wstringop-overflow)
-+ config DEFAULT_CAKE
-+ bool "Common Applications Kept Enhanced" if NET_SCH_CAKE
++# disable GCC vectorization on trees
++KBUILD_CFLAGS += $(call cc-option, -fno-tree-vectorize)
+
- config DEFAULT_PFIFO_FAST
- bool "Priority FIFO Fast"
- endchoice
-@@ -453,6 +453,7 @@
- default "fq_codel" if DEFAULT_FQ_CODEL
- default "fq_pie" if DEFAULT_FQ_PIE
- default "sfq" if DEFAULT_SFQ
-+ default "cake" if DEFAULT_CAKE
- default "pfifo_fast"
- endif
-
---
-2.28.0
-
-
-From 90240bcd90a568878738e66c0d45bed3e38e347b Mon Sep 17 00:00:00 2001
-From: Tk-Glitch <ti3nou@gmail.com>
-Date: Fri, 19 Apr 2019 12:33:38 +0200
-Subject: [PATCH 12/17] Set vm.max_map_count to 262144 by default
-
-The value is still pretty low, and AMD64-ABI and ELF extended numbering
-supports that, so we should be fine on modern x86 systems.
-
-This fixes crashes in some applications using more than 65535 vmas (also
-affects some windows games running in wine, such as Star Citizen).
----
- include/linux/mm.h | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/include/linux/mm.h b/include/linux/mm.h
-index bc05c3588aa3..b0cefe94920d 100644
---- a/include/linux/mm.h
-+++ b/include/linux/mm.h
-@@ -190,8 +190,7 @@ static inline void __mm_zero_struct_page(struct page *page)
- * not a hard limit any more. Although some userspace tools can be surprised by
- * that.
- */
--#define MAPCOUNT_ELF_CORE_MARGIN (5)
--#define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN)
-+#define DEFAULT_MAX_MAP_COUNT (262144)
-
- extern int sysctl_max_map_count;
-
---
-2.28.0
-
-
-From 3a34034dba5efe91bcec491efe8c66e8087f509b Mon Sep 17 00:00:00 2001
-From: Tk-Glitch <ti3nou@gmail.com>
-Date: Mon, 27 Jul 2020 00:19:18 +0200
-Subject: [PATCH 13/17] mm: bump DEFAULT_MAX_MAP_COUNT
-
-Some games such as Detroit: Become Human tend to be very crash prone with
-lower values.
----
- include/linux/mm.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/linux/mm.h b/include/linux/mm.h
-index b0cefe94920d..890165099b07 100644
---- a/include/linux/mm.h
-+++ b/include/linux/mm.h
-@@ -190,7 +190,7 @@ static inline void __mm_zero_struct_page(struct page *page)
- * not a hard limit any more. Although some userspace tools can be surprised by
- * that.
- */
--#define DEFAULT_MAX_MAP_COUNT (262144)
-+#define DEFAULT_MAX_MAP_COUNT (16777216)
-
- extern int sysctl_max_map_count;
+ # disable invalid "can't wrap" optimizations for signed / pointers
+ KBUILD_CFLAGS += -fno-strict-overflow
---
-2.28.0
-
-From 977812938da7c7226415778c340832141d9278b7 Mon Sep 17 00:00:00 2001
-From: Alexandre Frade <admfrade@gmail.com>
-Date: Mon, 25 Nov 2019 15:13:06 -0300
-Subject: [PATCH 14/17] elevator: set default scheduler to bfq for blk-mq
-
-Signed-off-by: Alexandre Frade <admfrade@gmail.com>
----
- block/elevator.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
diff --git a/block/elevator.c b/block/elevator.c
-index 4eab3d70e880..79669aa39d79 100644
+index f64ebd726e58..73227b97162b 100644
--- a/block/elevator.c
+++ b/block/elevator.c
-@@ -623,19 +623,19 @@ static inline bool elv_support_iosched(struct request_queue *q)
+@@ -557,8 +557,8 @@ static inline bool elv_support_iosched(struct request_queue *q)
}
/*
@@ -362,10 +69,7 @@ index 4eab3d70e880..79669aa39d79 100644
*/
static struct elevator_type *elevator_get_default(struct request_queue *q)
{
- if (q->tag_set && q->tag_set->flags & BLK_MQ_F_NO_SCHED_BY_DEFAULT)
- return NULL;
-
- if (q->nr_hw_queues != 1 &&
+@@ -569,7 +569,7 @@ static struct elevator_type *elevator_get_default(struct request_queue *q)
!blk_mq_is_shared_tags(q->tag_set->flags))
return NULL;
@@ -374,86 +78,11 @@ index 4eab3d70e880..79669aa39d79 100644
}
/*
---
-2.28.0
-
-From 3c229f434aca65c4ca61772bc03c3e0370817b92 Mon Sep 17 00:00:00 2001
-From: Alexandre Frade <kernel@xanmod.org>
-Date: Mon, 3 Aug 2020 17:05:04 +0000
-Subject: [PATCH 16/17] mm: set 2 megabytes for address_space-level file
- read-ahead pages size
-
-Signed-off-by: Alexandre Frade <kernel@xanmod.org>
----
- include/linux/pagemap.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
-index cf2468da68e9..007dea784451 100644
---- a/include/linux/pagemap.h
-+++ b/include/linux/pagemap.h
-@@ -1181,7 +1181,7 @@
- ._index = i, \
- }
-
--#define VM_READAHEAD_PAGES (SZ_128K / PAGE_SIZE)
-+#define VM_READAHEAD_PAGES (SZ_2M / PAGE_SIZE)
-
- void page_cache_ra_unbounded(struct readahead_control *,
- unsigned long nr_to_read, unsigned long lookahead_count);
---
-2.28.0
-
-
-From 716f41cf6631f3a85834dcb67b4ce99185b6387f Mon Sep 17 00:00:00 2001
-From: Steven Barrett <steven@liquorix.net>
-Date: Wed, 15 Jan 2020 20:43:56 -0600
-Subject: [PATCH 17/17] ZEN: intel-pstate: Implement "enable" parameter
-
-If intel-pstate is compiled into the kernel, it will preempt the loading
-of acpi-cpufreq so you can take advantage of hardware p-states without
-any friction.
-
-However, intel-pstate is not completely superior to cpufreq's ondemand
-for one reason. There's no concept of an up_threshold property.
-
-In ondemand, up_threshold essentially reduces the maximum utilization to
-compare against, allowing you to hit max frequencies and turbo boost
-from a much lower core utilization.
-
-With intel-pstate, you have the concept of minimum and maximum
-performance, but no tunable that lets you define, maximum frequency
-means 50% core utilization. For just this oversight, there's reasons
-you may want ondemand.
-
-Lets support setting "enable" in kernel boot parameters. This lets
-kernel maintainers include "intel_pstate=disable" statically in the
-static boot parameters, but let users of the kernel override this
-selection.
----
- Documentation/admin-guide/kernel-parameters.txt | 3 +++
- drivers/cpufreq/intel_pstate.c | 2 ++
- 2 files changed, 5 insertions(+)
-
-diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
-index fb95fad81c79..3e92fee81e33 100644
---- a/Documentation/admin-guide/kernel-parameters.txt
-+++ b/Documentation/admin-guide/kernel-parameters.txt
-@@ -2133,6 +2133,9 @@
- disable
- Do not enable intel_pstate as the default
- scaling driver for the supported processors
-+ enable
-+ Enable intel_pstate in-case "disable" was passed
-+ previously in the kernel boot parameters
- active
- Use intel_pstate driver to bypass the scaling
- governors layer of cpufreq and provides it own
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
-index 36a469150ff9..aee891c9b78a 100644
+index c31914a9876f..d6ed90b3c930 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
-@@ -3533,6 +3533,8 @@
+@@ -3558,6 +3558,8 @@ static int __init intel_pstate_setup(char *str)
if (!strcmp(str, "no_hwp"))
no_hwp = 1;
@@ -462,54 +91,20 @@ index 36a469150ff9..aee891c9b78a 100644
if (!strcmp(str, "force"))
force_load = 1;
if (!strcmp(str, "hwp_only"))
---
-2.28.0
-
-From 379cbab18b5c75c622b93e2c5abdfac141fe9654 Mon Sep 17 00:00:00 2001
-From: Kenny Levinsen <kl@kl.wtf>
-Date: Sun, 27 Dec 2020 14:43:13 +0000
-Subject: [PATCH] ZEN: Input: evdev - use call_rcu when detaching client
-
-Significant time was spent on synchronize_rcu in evdev_detach_client
-when applications closed evdev devices. Switching VT away from a
-graphical environment commonly leads to mass input device closures,
-which could lead to noticable delays on systems with many input devices.
-
-Replace synchronize_rcu with call_rcu, deferring reclaim of the evdev
-client struct till after the RCU grace period instead of blocking the
-calling application.
-
-While this does not solve all slow evdev fd closures, it takes care of a
-good portion of them, including this simple test:
-
- #include <fcntl.h>
- #include <unistd.h>
-
- int main(int argc, char *argv[])
- {
- int idx, fd;
- const char *path = "/dev/input/event0";
- for (idx = 0; idx < 1000; idx++) {
- if ((fd = open(path, O_RDWR)) == -1) {
- return -1;
- }
- close(fd);
- }
- return 0;
- }
-
-Time to completion of above test when run locally:
-
- Before: 0m27.111s
- After: 0m0.018s
-
-Signed-off-by: Kenny Levinsen <kl@kl.wtf>
----
- drivers/input/evdev.c | 19 +++++++++++--------
- 1 file changed, 11 insertions(+), 8 deletions(-)
-
+diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
+index be0743dac3ff..358eb15e1d69 100644
+--- a/drivers/infiniband/core/addr.c
++++ b/drivers/infiniband/core/addr.c
+@@ -814,6 +814,7 @@ int rdma_addr_find_l2_eth_by_grh(const union ib_gid *sgid,
+ union {
+ struct sockaddr_in _sockaddr_in;
+ struct sockaddr_in6 _sockaddr_in6;
++ struct sockaddr_ib _sockaddr_ib;
+ } sgid_addr, dgid_addr;
+ int ret;
+
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
-index 95f90699d2b17b..2b10fe29d2c8d9 100644
+index 51e0c4954600..35c3ad741870 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -46,6 +46,7 @@ struct evdev_client {
@@ -523,7 +118,7 @@ index 95f90699d2b17b..2b10fe29d2c8d9 100644
@@ -377,13 +378,22 @@ static void evdev_attach_client(struct evdev *evdev,
spin_unlock(&evdev->client_lock);
}
-
+
+static void evdev_reclaim_client(struct rcu_head *rp)
+{
+ struct evdev_client *client = container_of(rp, struct evdev_client, rcu);
@@ -542,110 +137,198 @@ index 95f90699d2b17b..2b10fe29d2c8d9 100644
- synchronize_rcu();
+ call_rcu(&client->rcu, evdev_reclaim_client);
}
-
+
static int evdev_open_device(struct evdev *evdev)
@@ -436,7 +446,6 @@ static int evdev_release(struct inode *inode, struct file *file)
{
struct evdev_client *client = file->private_data;
struct evdev *evdev = client->evdev;
- unsigned int i;
-
+
mutex_lock(&evdev->mutex);
-
+
@@ -448,11 +457,6 @@ static int evdev_release(struct inode *inode, struct file *file)
-
+
evdev_detach_client(evdev, client);
-
+
- for (i = 0; i < EV_CNT; ++i)
- bitmap_free(client->evmasks[i]);
-
- kvfree(client);
-
evdev_close_device(evdev);
-
+
return 0;
@@ -495,7 +499,6 @@ static int evdev_open(struct inode *inode, struct file *file)
-
+
err_free_client:
evdev_detach_client(evdev, client);
- kvfree(client);
return error;
}
-
-
-From 2aafb56f20e4b63d8c4af172fe9d017c64bc4129 Mon Sep 17 00:00:00 2001
-From: Sultan Alsawaf <sultan@kerneltoast.com>
-Date: Wed, 20 Oct 2021 20:50:11 -0700
-Subject: [PATCH] ZEN: mm: Lower the non-hugetlbpage pageblock size to reduce
- scheduling delays
-
-The page allocator processes free pages in groups of pageblocks, where
-the size of a pageblock is typically quite large (1024 pages without
-hugetlbpage support). Pageblocks are processed atomically with the zone
-lock held, which can cause severe scheduling delays on both the CPU
-going through the pageblock and any other CPUs waiting to acquire the
-zone lock. A frequent offender is move_freepages_block(), which is used
-by rmqueue() for page allocation.
-
-As it turns out, there's no requirement for pageblocks to be so large,
-so the pageblock order can simply be reduced to ease the scheduling
-delays and zone lock contention. PAGE_ALLOC_COSTLY_ORDER is used as a
-reasonable setting to ensure non-costly page allocation requests can
-still be serviced without always needing to free up more than one
-pageblock's worth of pages at a time.
-
-This has a noticeable effect on overall system latency when memory
-pressure is elevated. The various mm functions which operate on
-pageblocks no longer appear in the preemptoff tracer, where previously
-they would spend up to 100 ms on a mobile arm64 CPU processing a
-pageblock with preemption disabled and the zone lock held.
-
-Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
----
- include/linux/pageblock-flags.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
+
+diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
+index 1b7a97cc3779..bed9d9588b87 100644
+--- a/drivers/md/dm-crypt.c
++++ b/drivers/md/dm-crypt.c
+@@ -3284,6 +3284,11 @@ static int crypt_ctr(struct dm_target *ti, unsigned int argc, char **argv)
+ goto bad;
+ }
+
++#ifdef CONFIG_ZENIFY
++ set_bit(DM_CRYPT_NO_READ_WORKQUEUE, &cc->flags);
++ set_bit(DM_CRYPT_NO_WRITE_WORKQUEUE, &cc->flags);
++#endif
++
+ ret = crypt_ctr_cipher(ti, argv[0], argv[1]);
+ if (ret < 0)
+ goto bad;
+diff --git a/fs/dcache.c b/fs/dcache.c
+index 4c144519aa70..fb0f9a1368c8 100644
+--- a/fs/dcache.c
++++ b/fs/dcache.c
+@@ -71,7 +71,7 @@
+ * If no ancestor relationship:
+ * arbitrary, since it's serialized on rename_lock
+ */
+-int sysctl_vfs_cache_pressure __read_mostly = 100;
++int sysctl_vfs_cache_pressure __read_mostly = 50;
+ EXPORT_SYMBOL_GPL(sysctl_vfs_cache_pressure);
+
+ __cacheline_aligned_in_smp DEFINE_SEQLOCK(rename_lock);
+diff --git a/include/linux/mm.h b/include/linux/mm.h
+index b58bad248eef..dbae141dc3ce 100644
+--- a/include/linux/mm.h
++++ b/include/linux/mm.h
+@@ -192,8 +192,7 @@ static inline void __mm_zero_struct_page(struct page *page)
+ * not a hard limit any more. Although some userspace tools can be surprised by
+ * that.
+ */
+-#define MAPCOUNT_ELF_CORE_MARGIN (5)
+-#define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN)
++#define DEFAULT_MAX_MAP_COUNT (16777216)
+
+ extern int sysctl_max_map_count;
+
diff --git a/include/linux/pageblock-flags.h b/include/linux/pageblock-flags.h
-index 5f1ae07d724b88..97cda629c9e909 100644
+index 547e82cdc89a..67a999944cdb 100644
--- a/include/linux/pageblock-flags.h
+++ b/include/linux/pageblock-flags.h
-@@ -48,7 +48,7 @@ extern unsigned int pageblock_order;
- #else /* CONFIG_HUGETLB_PAGE */
-
+@@ -52,7 +52,7 @@ extern unsigned int pageblock_order;
+ #else /* CONFIG_TRANSPARENT_HUGEPAGE */
+
/* If huge pages are not used, group by MAX_ORDER_NR_PAGES */
-#define pageblock_order MAX_PAGE_ORDER
+#define pageblock_order PAGE_ALLOC_COSTLY_ORDER
-
+
#endif /* CONFIG_HUGETLB_PAGE */
-
-
-From f22bc56be85e69c71c8e36041193856bb8b01525 Mon Sep 17 00:00:00 2001
-From: Sultan Alsawaf <sultan@kerneltoast.com>
-Date: Wed, 20 Oct 2021 20:50:32 -0700
-Subject: [PATCH] ZEN: mm: Don't hog the CPU and zone lock in rmqueue_bulk()
-
-There is noticeable scheduling latency and heavy zone lock contention
-stemming from rmqueue_bulk's single hold of the zone lock while doing
-its work, as seen with the preemptoff tracer. There's no actual need for
-rmqueue_bulk() to hold the zone lock the entire time; it only does so
-for supposed efficiency. As such, we can relax the zone lock and even
-reschedule when IRQs are enabled in order to keep the scheduling delays
-and zone lock contention at bay. Forward progress is still guaranteed,
-as the zone lock can only be relaxed after page removal.
-
-With this change, rmqueue_bulk() no longer appears as a serious offender
-in the preemptoff tracer, and system latency is noticeably improved.
-
-Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
----
- mm/page_alloc.c | 23 ++++++++++++++++++-----
- 1 file changed, 18 insertions(+), 5 deletions(-)
-
+
+diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
+index a0a026d2d244..4d2e7d8512d1 100644
+--- a/include/linux/pagemap.h
++++ b/include/linux/pagemap.h
+@@ -1281,7 +1281,7 @@ struct readahead_control {
+ ._index = i, \
+ }
+
+-#define VM_READAHEAD_PAGES (SZ_128K / PAGE_SIZE)
++#define VM_READAHEAD_PAGES (SZ_2M / PAGE_SIZE)
+
+ void page_cache_ra_unbounded(struct readahead_control *,
+ unsigned long nr_to_read, unsigned long lookahead_count);
+diff --git a/init/Kconfig b/init/Kconfig
+index febdea2afc3b..c8c6671c9549 100644
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -132,6 +132,38 @@ config THREAD_INFO_IN_TASK
+
+ menu "General setup"
+
++config ZENIFY
++ bool "A selection of patches from Zen/Liquorix kernel and additional tweaks for a better gaming experience"
++ default y
++ help
++ Tunes the kernel for responsiveness at the cost of throughput and power usage.
++
++ --- Virtual Memory Subsystem ---------------------------
++
++ Mem dirty before bg writeback..: 10 % -> 20 %
++ Mem dirty before sync writeback: 20 % -> 50 %
++
++ --- Block Layer ----------------------------------------
++
++ Queue depth...............: 128 -> 512
++ Default MQ scheduler......: mq-deadline -> bfq
++
++ --- CFS CPU Scheduler ----------------------------------
++
++ Scheduling latency.............: 6 -> 3 ms
++ Minimal granularity............: 0.75 -> 0.3 ms
++ Wakeup granularity.............: 1 -> 0.5 ms
++ CPU migration cost.............: 0.5 -> 0.25 ms
++ Bandwidth slice size...........: 5 -> 3 ms
++ Ondemand fine upscaling limit..: 95 % -> 85 %
++
++ --- MuQSS CPU Scheduler --------------------------------
++
++ Scheduling interval............: 6 -> 3 ms
++ ISO task max realtime use......: 70 % -> 25 %
++ Ondemand coarse upscaling limit: 80 % -> 45 %
++ Ondemand fine upscaling limit..: 95 % -> 45 %
++
+ config BROKEN
+ bool
+
+diff --git a/init/Makefile b/init/Makefile
+index ab71cedc5fd6..eafc4ef50ab5 100644
+--- a/init/Makefile
++++ b/init/Makefile
+@@ -33,7 +33,7 @@ build-timestamp = $(or $(KBUILD_BUILD_TIMESTAMP), $(build-timestamp-auto))
+
+ # Maximum length of UTS_VERSION is 64 chars
+ filechk_uts_version = \
+- utsver=$$(echo '$(pound)'"$(build-version)" $(smp-flag-y) $(preempt-flag-y) "$(build-timestamp)" | cut -b -64); \
++ utsver=$$(echo '$(pound)'"$(build-version)" $(smp-flag-y) $(preempt-flag-y) "TKG" "$(build-timestamp)" | cut -b -64); \
+ echo '$(pound)'define UTS_VERSION \""$${utsver}"\"
+
+ #
+diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
+index aa4c1c874fa4..cd58198e990f 100644
+--- a/kernel/sched/rt.c
++++ b/kernel/sched/rt.c
+@@ -20,9 +20,9 @@ int sysctl_sched_rt_period = 1000000;
+
+ /*
+ * part of the period that we allow rt tasks to run in us.
+- * default: 0.95s
++ * XanMod default: 0.98s
+ */
+-int sysctl_sched_rt_runtime = 950000;
++int sysctl_sched_rt_runtime = 980000;
+
+ #ifdef CONFIG_SYSCTL
+ static int sysctl_sched_rr_timeslice = (MSEC_PER_SEC * RR_TIMESLICE) / HZ;
+diff --git a/mm/huge_memory.c b/mm/huge_memory.c
+index 374a0d54b08d..1d4efe9df1a6 100644
+--- a/mm/huge_memory.c
++++ b/mm/huge_memory.c
+@@ -63,7 +63,11 @@ unsigned long transparent_hugepage_flags __read_mostly =
+ #ifdef CONFIG_TRANSPARENT_HUGEPAGE_MADVISE
+ (1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG)|
+ #endif
++#ifdef CONFIG_ZENIFY
++ (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG)|
++#else
+ (1<<TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG)|
++#endif
+ (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG)|
+ (1<<TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG);
+
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index a0b0397e29ee4c..87a983a356530c 100644
+index df2c442f1c47..d8d83c503419 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -2152,16 +2152,17 @@
+@@ -2228,16 +2228,17 @@ __rmqueue(struct zone *zone, unsigned int order, int migratetype,
}
/*
@@ -663,77 +346,68 @@ index a0b0397e29ee4c..87a983a356530c 100644
unsigned long flags;
- int i;
+ const bool can_resched = !preempt_count() && !irqs_disabled();
-+ int i, last_mod = 0;
++ int i, allocated = 0, last_mod = 0;
spin_lock_irqsave(&zone->lock, flags);
for (i = 0; i < count; ++i) {
-@@ -2170,6 +2171,18 @@
- if (unlikely(page == NULL))
- break;
-
-+ /* Reschedule and ease the contention on the lock if needed */
-+ if (i + 1 < count && ((can_resched && need_resched()) ||
-+ spin_needbreak(&zone->lock))) {
-+ __mod_zone_page_state(zone, NR_FREE_PAGES,
-+ -((i + 1 - last_mod) << order));
-+ last_mod = i + 1;
-+ spin_unlock_irqrestore(&zone->lock, flags);
-+ if (can_resched)
-+ cond_resched();
-+ spin_lock_irqsave(&zone->lock, flags);
-+ }
-+
- /*
- * Split buddy pages returned by expand() are received here in
- * physical page order. The page is added to the tail of
-@@ -2186,7 +2199,7 @@
- -(1 << order));
- }
-
-- __mod_zone_page_state(zone, NR_FREE_PAGES, -(i << order));
-+ __mod_zone_page_state(zone, NR_FREE_PAGES, -((i - last_mod) << order));
- spin_unlock_irqrestore(&zone->lock, flags);
+diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
+index 8e94ed7c56a0..c103bc45c900 100644
+--- a/net/ipv4/Kconfig
++++ b/net/ipv4/Kconfig
+@@ -700,6 +700,9 @@ choice
+ config DEFAULT_VEGAS
+ bool "Vegas" if TCP_CONG_VEGAS=y
- return i;
++ config DEFAULT_YEAH
++ bool "YeAH" if TCP_CONG_YEAH=y
++
+ config DEFAULT_VENO
+ bool "Veno" if TCP_CONG_VENO=y
-From 6329525a0fa10cd13f39b76948b1296150f75c95 Mon Sep 17 00:00:00 2001
-From: Alexandre Frade <kernel@xanmod.org>
-Date: Mon, 29 Aug 2022 16:47:26 +0000
-Subject: [PATCH 14/16] XANMOD: Makefile: Disable GCC vectorization on trees
-
-Signed-off-by: Alexandre Frade <kernel@xanmod.org>
----
- Makefile | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/Makefile b/Makefile
-index 3f6628780eb2..35a5ae1ede42 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1002,6 +1002,9 @@
- KBUILD_CFLAGS-$(CONFIG_CC_NO_STRINGOP_OVERFLOW) += $(call cc-option, -Wno-stringop-overflow)
- KBUILD_CFLAGS-$(CONFIG_CC_STRINGOP_OVERFLOW) += $(call cc-option, -Wstringop-overflow)
+@@ -733,6 +736,7 @@ config DEFAULT_TCP_CONG
+ default "htcp" if DEFAULT_HTCP
+ default "hybla" if DEFAULT_HYBLA
+ default "vegas" if DEFAULT_VEGAS
++ default "yeah" if DEFAULT_YEAH
+ default "westwood" if DEFAULT_WESTWOOD
+ default "veno" if DEFAULT_VENO
+ default "reno" if DEFAULT_RENO
+diff --git a/net/sched/Kconfig b/net/sched/Kconfig
+index 8180d0c12fce..22c5a59d5058 100644
+--- a/net/sched/Kconfig
++++ b/net/sched/Kconfig
+@@ -438,6 +438,9 @@ choice
+ config DEFAULT_SFQ
+ bool "Stochastic Fair Queue" if NET_SCH_SFQ
-+# disable GCC vectorization on trees
-+KBUILD_CFLAGS += $(call cc-option, -fno-tree-vectorize)
++ config DEFAULT_CAKE
++ bool "Common Applications Kept Enhanced" if NET_SCH_CAKE
+
- # disable invalid "can't wrap" optimizations for signed / pointers
- KBUILD_CFLAGS += -fno-strict-overflow
+ config DEFAULT_PFIFO_FAST
+ bool "Priority FIFO Fast"
+ endchoice
+@@ -449,6 +452,7 @@ config DEFAULT_NET_SCH
+ default "fq_codel" if DEFAULT_FQ_CODEL
+ default "fq_pie" if DEFAULT_FQ_PIE
+ default "sfq" if DEFAULT_SFQ
++ default "cake" if DEFAULT_CAKE
+ default "pfifo_fast"
+ endif
---
-2.39.1
-
-From f997578464b2c4c63e7bd1afbfef56212ee44f2d Mon Sep 17 00:00:00 2001
-From: Etienne JUVIGNY <ti3nou@gmail.com>
-Date: Mon, 6 Mar 2023 13:54:09 +0100
-Subject: Don't add -dirty versioning on unclean trees
-
-
diff --git a/scripts/setlocalversion b/scripts/setlocalversion
-index ca5795e16..ad0d94477 100755
+index 38b96c6797f4..e22768e0e875 100755
--- a/scripts/setlocalversion
+++ b/scripts/setlocalversion
-@@ -85,12 +85,12 @@ scm_version()
+@@ -92,7 +92,7 @@ scm_version()
+ # If only the short version is requested, don't bother
+ # running further git commands
+ if $short; then
+- echo "+"
++ #echo "+"
+ return
+ fi
+ # If we are past the tagged commit, we pretty print it.
+@@ -119,12 +119,12 @@ scm_version()
# git-diff-index does not refresh the index, so it may give misleading
# results.
# See git-update-index(1), git-diff-index(1), and git-status(1).
@@ -750,5 +424,5 @@ index ca5795e16..ad0d94477 100755
+ # printf '%s' -dirty
+ #fi
}
-
+
collect_files()