
This commit upgrades the Linux kernel to 6.12.18 from 6.6.x, which comes from the linux-yocto upstream. The following changes we made to support the kernel upgrade. For linux debian package deb_patches folder. We adapt the kernel related patch for 6.12.18, and cherry pick the following 8 commits to support to build the kernel 6.12.x. 1) commit f77deecbb5d4 "d/rules.real: Unset KBUILD_HOSTCFLAGS etc. instead of overriding to be empty" https://salsa.debian.org/kernel-team/linux/-/commit/f77deecbb5d4 2) commit 0d0d62b7d1cc "d/rules.d/Makefile.inc: Add scripts/include to header include path" https://salsa.debian.org/kernel-team/linux/-/commit/0d0d62b7d1cc 3) commit 4ad01663251d "[x86] linux-cpupower: Update turbostat Makefile to define BUILD_BUG_HEADER" https://salsa.debian.org/kernel-team/linux/-/commit/4ad01663251d 4) commit fced95b415be "hyperv-daemons: Update for upstream removal of hv_fcopy_daemon" https://salsa.debian.org/kernel-team/linux/-/commit/fced95b415be 5) commit 3a17dcbfe0be "d/rules.d/certs: Add newly required include directory to CPPFLAGS" https://salsa.debian.org/kernel-team/linux/-/commit/3a17dcbfe0be 6) commit 15b6859742d4 "Disable building rtla, since bullseye's libtraceevent and libtracefs are too old" https://salsa.debian.org/kernel-team/linux/-/commit/15b6859742d4 7) commit b4b93560d441 "[ia64] Drop all ia64 configs due to upstream dropping IA64 arch" https://salsa.debian.org/kernel-team/linux/-/commit/b4b93560d441 8) commit b93faa99519d "linux-kbuild: Add scripts/module-common.c (Closes: #1087495)" https://salsa.debian.org/kernel-team/linux/-/commit/b93faa99519d For the Linux source code patches folder. 1) We adapt the patch 0001, 0003, 0005, 0006, 0010, 0014 and 0017 based on kernel-6.12.18. 2) Remove all the ice port back patches because that has been included in our source code. For the kernel config. We enable CONFIG_CPUSETS_V1 and CONFIG_MEMCG_V1 to fix install issue. Verification: - Build kernel and out of tree modules success for rt and std. - Build iso success for rt and std. - Install success onto a All-in-One lab with rt kernel, and can switch to std kernel. - Boot up successfully in the lab. - The sanity testing was run and the test results PASS. - The cyclictest benchmark was also run on the starlingx lab, the result is "samples: 43199996 avg: 1656.295 std_dev: 67.617 max: 8827 99.9999th percentile: 8652“,It is worse than linux-6.6.x. - The network performance test had been done. For TCP, better than kernel-6.6.x, for UDP, a little worse than kernel-6.6.x, for STCP, can not do the test that is same with kernel-6.6.x. Story: 2011384 Task: 51856 Change-Id: I06ff2f3ab3620fe887f1e5e72ea9022a0cea6102 Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
63 lines
2.5 KiB
Diff
63 lines
2.5 KiB
Diff
From b51ab594903af7cc209b4d8ca905db403a99772c Mon Sep 17 00:00:00 2001
|
|
From: "M. Vefa Bicakci" <vefa.bicakci@windriver.com>
|
|
Date: Thu, 9 Sep 2021 04:56:46 -0400
|
|
Subject: [PATCH 10/16] workqueue: Affine rescuer threads and unbound wqs
|
|
|
|
This commit ensures that workqueue rescuer threads are affined to the
|
|
platform CPUs specified by the "kthread_cpus" kernel argument. Prior to
|
|
this commit, rescuer threads could be bound to any CPU. Rescuer threads
|
|
are described in "kernel/workqueue.c" as follows:
|
|
|
|
"Regular work processing on a pool may block trying to create a new
|
|
worker which uses GFP_KERNEL allocation which has slight chance of
|
|
developing into deadlock if some works currently on the same queue
|
|
need to be processed to satisfy the GFP_KERNEL allocation. This is
|
|
the problem rescuer solves.
|
|
|
|
When such condition is possible, the pool summons rescuers of all
|
|
workqueues which have works queued on the pool and let them process
|
|
those works so that forward progress can be guaranteed."
|
|
|
|
This commit also affines unbound workqueues to the platform CPUs instead
|
|
of the housekeeping CPUs, because the latter can be a superset of the
|
|
former.
|
|
|
|
Signed-off-by: M. Vefa Bicakci <vefa.bicakci@windriver.com>
|
|
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
|
|
[lz: Adapted the patch for upgrading kernel from 5.10 to 6.6
|
|
according to M. Vefa Bicakci's suggestion.]
|
|
Signed-off-by: Li Zhou <li.zhou@windriver.com>
|
|
[jm: Adapted the patch for upgrading kernel from 6.6 to 6.12.]
|
|
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
|
|
---
|
|
kernel/workqueue.c | 6 ++----
|
|
1 file changed, 2 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
|
|
index 3f0f7cf15ed2..d39a4db6bb65 100644
|
|
--- a/kernel/workqueue.c
|
|
+++ b/kernel/workqueue.c
|
|
@@ -5559,10 +5559,7 @@ static int init_rescuer(struct workqueue_struct *wq)
|
|
}
|
|
|
|
wq->rescuer = rescuer;
|
|
- if (wq->flags & WQ_UNBOUND)
|
|
- kthread_bind_mask(rescuer->task, unbound_effective_cpumask(wq));
|
|
- else
|
|
- kthread_bind_mask(rescuer->task, cpu_possible_mask);
|
|
+ kthread_bind_mask(rescuer->task, cpu_kthread_mask);
|
|
wake_up_process(rescuer->task);
|
|
|
|
return 0;
|
|
@@ -7727,6 +7724,7 @@ void __init workqueue_init_early(void)
|
|
cpumask_copy(wq_unbound_cpumask, cpu_possible_mask);
|
|
restrict_unbound_cpumask("HK_TYPE_WQ", housekeeping_cpumask(HK_TYPE_WQ));
|
|
restrict_unbound_cpumask("HK_TYPE_DOMAIN", housekeeping_cpumask(HK_TYPE_DOMAIN));
|
|
+ restrict_unbound_cpumask("kthread_cpus", cpu_kthread_mask);
|
|
if (!cpumask_empty(&wq_cmdline_cpumask))
|
|
restrict_unbound_cpumask("workqueue.unbound_cpus", &wq_cmdline_cpumask);
|
|
|
|
--
|
|
2.47.1
|
|
|