From b4dc19e39323fdeddafdb3a73ca27d012cd6f85e Mon Sep 17 00:00:00 2001 From: Tk-Glitch Date: Fri, 15 Sep 2023 15:41:44 +0200 Subject: [PATCH] 5.15.y: Update defconfig and Project C fixups. --- linux-tkg-config/5.15/config.x86_64 | 24 +-- .../5.15/0009-prjc_v5.15-r1.patch | 152 +++++++++++++++--- 2 files changed, 143 insertions(+), 33 deletions(-) diff --git a/linux-tkg-config/5.15/config.x86_64 b/linux-tkg-config/5.15/config.x86_64 index 7d42821..c629ff7 100644 --- a/linux-tkg-config/5.15/config.x86_64 +++ b/linux-tkg-config/5.15/config.x86_64 @@ -1,15 +1,15 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.15.106 Kernel Configuration +# Linux/x86 5.15.131 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.1 20230201" +CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.2.1 20230801" CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=120201 +CONFIG_GCC_VERSION=130201 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=24000 +CONFIG_AS_VERSION=24100 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=24000 +CONFIG_LD_VERSION=24100 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y @@ -18,7 +18,7 @@ CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y -CONFIG_PAHOLE_VERSION=124 +CONFIG_PAHOLE_VERSION=125 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_TABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y @@ -520,7 +520,9 @@ CONFIG_RETHUNK=y CONFIG_CPU_UNRET_ENTRY=y CONFIG_CPU_IBPB_ENTRY=y CONFIG_CPU_IBRS_ENTRY=y +CONFIG_CPU_SRSO=y CONFIG_SLS=y +# CONFIG_GDS_FORCE_MITIGATION is not set CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y CONFIG_USE_PERCPU_NUMA_NODE_ID=y @@ -756,6 +758,7 @@ CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_ARCH_WANTS_NO_INSTR=y @@ -1627,7 +1630,6 @@ CONFIG_NET_DSA_TAG_XRS700X=m CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q_MVRP=y -# CONFIG_DECNET is not set CONFIG_LLC=m CONFIG_LLC2=m CONFIG_ATALK=m @@ -2490,7 +2492,6 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m CONFIG_BLK_DEV_DRBD=m # CONFIG_DRBD_FAULT_INJECTION is not set CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_SX8=m CONFIG_BLK_DEV_RAM=m CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 @@ -8390,8 +8391,8 @@ CONFIG_FUJITSU_TABLET=m CONFIG_GPD_POCKET_FAN=m CONFIG_X86_PLATFORM_DRIVERS_HP=y CONFIG_HP_ACCEL=m -CONFIG_WIRELESS_HOTKEY=m CONFIG_HP_WMI=m +CONFIG_WIRELESS_HOTKEY=m CONFIG_IBM_RTL=m CONFIG_IDEAPAD_LAPTOP=m CONFIG_SENSORS_HDAPS=m @@ -8817,6 +8818,11 @@ CONFIG_VIPERBOARD_ADC=m CONFIG_XILINX_XADC=m # end of Analog to digital converters +# +# Analog to digital and digital to analog converters +# +# end of Analog to digital and digital to analog converters + # # Analog Front Ends # diff --git a/linux-tkg-patches/5.15/0009-prjc_v5.15-r1.patch b/linux-tkg-patches/5.15/0009-prjc_v5.15-r1.patch index 730c08b..1869bf3 100644 --- a/linux-tkg-patches/5.15/0009-prjc_v5.15-r1.patch +++ b/linux-tkg-patches/5.15/0009-prjc_v5.15-r1.patch @@ -564,70 +564,73 @@ index 291b857a6e20..f3480cdb7497 100644 "%s: %s:%d is running\n", __func__, task->comm, task->pid); diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 6bb116c559b4..d4c8168a8270 100644 +index 7779ee8abc2a..5b9893cdfb1b 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c -@@ -298,21 +298,25 @@ static __always_inline void - waiter_update_prio(struct rt_mutex_waiter *waiter, struct task_struct *task) - { - waiter->prio = __waiter_prio(task); -- waiter->deadline = task->dl.deadline; -+ waiter->deadline = __tsk_deadline(task); +@@ -343,7 +343,7 @@ waiter_update_prio(struct rt_mutex_waite + lockdep_assert(RB_EMPTY_NODE(&waiter->tree.entry)); + + waiter->tree.prio = __waiter_prio(task); +- waiter->tree.deadline = task->dl.deadline; ++ waiter->tree.deadline = __tsk_deadline(task); } - + /* - * Only use with rt_mutex_waiter_{less,equal}() +@@ -364,16 +364,20 @@ waiter_clone_prio(struct rt_mutex_waiter + * Only use with rt_waiter_node_{less,equal}() */ + #define task_to_waiter_node(p) \ +- &(struct rt_waiter_node){ .prio = __waiter_prio(p), .deadline = (p)->dl.deadline } ++ &(struct rt_waiter_node){ .prio = __waiter_prio(p), .deadline = __tsk_deadline(p) } #define task_to_waiter(p) \ -- &(struct rt_mutex_waiter){ .prio = __waiter_prio(p), .deadline = (p)->dl.deadline } -+ &(struct rt_mutex_waiter){ .prio = __waiter_prio(p), .deadline = __tsk_deadline(p) } - - static __always_inline int rt_mutex_waiter_less(struct rt_mutex_waiter *left, - struct rt_mutex_waiter *right) + &(struct rt_mutex_waiter){ .tree = *task_to_waiter_node(p) } + + static __always_inline int rt_waiter_node_less(struct rt_waiter_node *left, + struct rt_waiter_node *right) { +#ifdef CONFIG_SCHED_PDS + return (left->deadline < right->deadline); +#else if (left->prio < right->prio) return 1; - + +#ifndef CONFIG_SCHED_BMQ /* * If both waiters have dl_prio(), we check the deadlines of the * associated tasks. -@@ -321,16 +325,22 @@ static __always_inline int rt_mutex_waiter_less(struct rt_mutex_waiter *left, +@@ -382,16 +386,22 @@ static __always_inline int rt_waiter_nod */ if (dl_prio(left->prio)) return dl_time_before(left->deadline, right->deadline); +#endif - + return 0; +#endif } - - static __always_inline int rt_mutex_waiter_equal(struct rt_mutex_waiter *left, - struct rt_mutex_waiter *right) + + static __always_inline int rt_waiter_node_equal(struct rt_waiter_node *left, + struct rt_waiter_node *right) { +#ifdef CONFIG_SCHED_PDS + return (left->deadline == right->deadline); +#else if (left->prio != right->prio) return 0; - + +#ifndef CONFIG_SCHED_BMQ /* * If both waiters have dl_prio(), we check the deadlines of the * associated tasks. -@@ -339,8 +349,10 @@ static __always_inline int rt_mutex_waiter_equal(struct rt_mutex_waiter *left, +@@ -400,8 +410,10 @@ static __always_inline int rt_waiter_nod */ if (dl_prio(left->prio)) return left->deadline == right->deadline; +#endif - + return 1; +#endif } - + static inline bool rt_mutex_steal(struct rt_mutex_waiter *waiter, diff --git a/kernel/sched/Makefile b/kernel/sched/Makefile index 978fcfca5871..0425ee149b4d 100644 @@ -10012,3 +10015,104 @@ index 38f3698f5e5b31d35fe18c3c6c103a685475e64e..b9d597394316d2f5f16b6eb19f922b65 #ifdef CONFIG_PSI void psi_task_change(struct task_struct *task, int clear, int set); +diff --git a/kernel/sched/alt_core.c b/kernel/sched/alt_core.c +index 03772805e4f9f1bf881740c8dd14aef667fbecf2..4742bbdfb2d715a439c0d505b4f293a82b76b255 100644 +--- a/kernel/sched/alt_core.c ++++ b/kernel/sched/alt_core.c +@@ -5661,9 +5661,6 @@ static int __sched_setscheduler(struct task_struct *p, + return retval; + } + +- if (pi) +- cpuset_read_lock(); +- + /* + * Make sure no PI-waiters arrive (or leave) while we are + * changing the priority of the task: +@@ -5709,8 +5706,6 @@ static int __sched_setscheduler(struct task_struct *p, + policy = oldpolicy = -1; + __task_access_unlock(p, lock); + raw_spin_unlock_irqrestore(&p->pi_lock, flags); +- if (pi) +- cpuset_read_unlock(); + goto recheck; + } + +@@ -5741,10 +5736,8 @@ static int __sched_setscheduler(struct task_struct *p, + __task_access_unlock(p, lock); + raw_spin_unlock_irqrestore(&p->pi_lock, flags); + +- if (pi) { +- cpuset_read_unlock(); ++ if (pi) + rt_mutex_adjust_pi(p); +- } + + /* Run balance callbacks after we've adjusted the PI chain: */ + balance_callbacks(rq, head); +@@ -5755,8 +5748,6 @@ static int __sched_setscheduler(struct task_struct *p, + unlock: + __task_access_unlock(p, lock); + raw_spin_unlock_irqrestore(&p->pi_lock, flags); +- if (pi) +- cpuset_read_unlock(); + return retval; + } + +diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c +index 2f6606f4a3ec941f78b85a8ff997f2a6c0405218..71f5da268ee8e597ee15b2b440b4a80f8a6adb1c 100644 +--- a/kernel/cgroup/cpuset.c ++++ b/kernel/cgroup/cpuset.c +@@ -2509,12 +2509,15 @@ static int cpuset_can_attach(struct cgroup_taskset *tset) + if (ret) + goto out_unlock; + ++#ifndef CONFIG_SCHED_ALT + if (dl_task(task)) { + cs->nr_migrate_dl_tasks++; + cs->sum_migrate_dl_bw += task->dl.dl_bw; + } ++#endif + } + ++#ifndef CONFIG_SCHED_ALT + if (!cs->nr_migrate_dl_tasks) + goto out_success; + +@@ -2535,6 +2538,7 @@ static int cpuset_can_attach(struct cgroup_taskset *tset) + } + + out_success: ++#endif + /* + * Mark attach is in progress. This makes validate_change() fail + * changes which zero cpus/mems_allowed. +@@ -2558,12 +2562,14 @@ static void cpuset_cancel_attach(struct cgroup_taskset *tset) + if (!cs->attach_in_progress) + wake_up(&cpuset_attach_wq); + ++#ifndef CONFIG_SCHED_ALT + if (cs->nr_migrate_dl_tasks) { + int cpu = cpumask_any(cs->effective_cpus); + + dl_bw_free(cpu, cs->sum_migrate_dl_bw); + reset_migrate_dl_data(cs); + } ++#endif + + mutex_unlock(&cpuset_mutex); + } +diff --git a/kernel/sched/alt_core.c b/kernel/sched/alt_core.c +index 4742bbdfb2d715a439c0d505b4f293a82b76b255..8badb54c7d7b00bba30dbbd7206feeafbf919af2 100644 +--- a/kernel/sched/alt_core.c ++++ b/kernel/sched/alt_core.c +@@ -7156,8 +7156,7 @@ int cpuset_cpumask_can_shrink(const struct cpumask __maybe_unused *cur, + return 1; + } + +-int task_can_attach(struct task_struct *p, +- const struct cpumask *cs_cpus_allowed) ++int task_can_attach(struct task_struct *p) + { + int ret = 0; +