日期范围
231
全部讨论数
其它分析 success作者:Greg Kroah-Hartman2026/08/11 07:00457 封邮件

[PATCH 7.1 001/438] net: mpls: initialize rtm_tos in mpls_getroute()

Greg Kroah-Hartman 发布 Linux 7.1.8-rc1 稳定分支的 438 个回搬补丁合入评审。涵盖 mm/slab、btrfs、netfilter、bluetooth、KVM、ALSA、drm 等子系统;其中 sched/deadline 183/438 限定 revised wakeup rule 仅在 dl_server running 时生效。窗口期截止 2026-08-09 14:33 UTC;多数回信为 Tested-by/确认收到。

lore
其它分析 success作者:Greg Kroah-Hartman2026/08/11 06:40406 封邮件

[PATCH 6.18 001/396] netfilter: nf_conntrack_expect: restore helper propagation via expectation

Greg KH 发布的 6.18.44-rc1 stable review 一次拉取 396 个 patch,跨 netfilter、btrfs、mm/slab、drm、ALSA、Bluetooth、hwmon、net、scsi、can、phy 等 30+ 子系统。真正属于 scheduler 的只有 PATCH 149/396 sched/deadline: Use revised wakeup rule only for running dl_server,把 DL wakeup rule 的判定收敛到 dl_server 实际 running 时。其余 395 个均为各子系统 bugfi...

lore
Bugfix重要分析 success作者:Karl Mehltretter2026/08/11 05:5714 封邮件

[PATCH 0/5] kcov: suppress timer and scheduler coverage leaks

5 patch 系列在 kcov_mode 中新增可嵌套的 KCOV_PAUSED 位,配合 __always_inline 的 kcov_pause()/kcov_resume(),在 hrtimer 延迟 rearm、__schedule()、try_to_wake_up()、wake_up_new_task() 入口抑制被插桩 callee 把非确定性 scheduler/timer 路径误记入 current。修复后 KCOV selftest 在 x86_64/s390/RISC-V/LoongArch 通过,syzkaller A/B corpus +28.8%、coverage ...

lore
讨论重要分析 success作者:Kayra Cizmeci2026/08/11 02:263 封邮件

[PATCH] sched/fair: Drop min_vruntime() call from set_protect_slice()

Kayra Cizmeci 提出在 set_protect_slice() 中直接去掉 min_vruntime() 调用以省掉一次比较,但 Zhan Xusheng 在 review 中指出:PLACE_DEADLINE_INITIAL 会让新实体的 deadline 只领先半个 slice,而 put_prev_entity() 重新入队时不续期 deadline,导致算出的 vprot 可能越过 deadline,从而让 RUN_TO_PARITY 保护超出实体的合法时间窗。作者在收到详细解释后承认疏漏,主动请求 drop patch,本 thread 以讨论形式收尾。

lore
Bugfix重要分析 success作者:Zhan Xusheng2026/08/10 22:201 封邮件

[PATCH v2] sched/debug: Validate writes to the scan_size_mb debugfs knob

扫描大小旋钮 scan_size_mb 从 sysctl 迁到 debugfs 时丢失了下界校验、上界也从未存在,导致写 0 或 2^24(4K 页 MB_TO_PAGES 回绕点)会让 fork/clone 路径在内核态除零 Oops。该 patch 把它换成自定义 write handler,校验 0 < mb <= UINT_MAX >> (20 - PAGE_SHIFT),越界返回 -EINVAL。

lore
Bugfix重要分析 success作者:Zhan Xusheng2026/08/10 21:582 封邮件

[PATCH] sched/debug: Validate writes to the scan_size_mb debugfs knob

为 debugfs 中的 scan_size_mb 写入口补上边界校验。原先 sysctl 的 .extra1=SYSCTL_ONE 在迁移到 debugfs 时被丢弃,导致写入 0 或 2^24 倍数值会让 MB_TO_PAGES() 回绕到 0,触发 task_scan_min/task_nr_scan_windows 除零内核 oops。补丁新增 write handler,拒绝非法值并在 qemu 上验证。Chen Yu 给出 Reviewed-by 并建议 kstrtouint_from_user 使用 base 0 以兼容十六进制写入。

lore
其它重要分析 success作者:Shrikanth Hegde2026/08/10 21:2430 封邮件

[PATCH v9 00/11] sched, steal_governor: Introduce preferred CPUs and steal-driven vCPU backoff

本系列引入 cpu_preferred_mask 作为 scheduler 一等 cpumask 状态, 并把 virtualization 策略放到 drivers/virt/steal_governor 驱动中。驱动周期性采样系统 steal time, 与高/低阈值比较后逐步收缩或扩展 preferred CPU 集合; 调度器在 wakeup、tick、load balance 三条路径上优先使用 preferred。目的是为 paravirt 下多个 VM 提供协作式、可恢复、不破坏用户 affinity 的 vCPU 退避机制, 避免 CPU hotplug/isolcpuset ...

lore
Bugfix重要分析 success作者:Breno Leitao2026/08/10 19:471 封邮件

[PATCH] sched/topology: don't claim sched_domain_shared twice on the same domain

Breno Leitao 发现,在同时具备 SD_SHARE_LLC 与 SD_ASYM_CPUCAPACITY_FULL 的 sched_domain 上,build_sched_domains() 会让 asym 路径与 LLC 路径各自调用一次 init_sched_domain_shared(),第二次覆盖 sd->shared 但不释放第一次的对象,导致 32 字节的 sched_domain_shared 泄漏。补丁在 LLC claim 前增加 if (!sd->shared) 守卫,Fixes 9e005ed21152,仅改动 kernel/sched/topology.c 一...

lore
其它重要分析 success作者:Andrea Righi2026/08/10 18:383 封邮件

[PATCH v5] sched/fair: Prefer fully idle cores for NOHZ balancing

Andrea Righi v5 修改 find_new_ilb(),在 SMT 系统中优先挑选整 core 空闲的 CPU 作为 ILB 目标,不存在时回退到任一 idle CPU。针对 NVIDIA Olympus(Vera)上 SMT 唤醒后 10 Ki cycle 才恢复单线程性能的特性,在自制 GEMM benchmark、每 core 一个 CPU 密集任务下,从约 6.2 TFLOP/s 提升到 9.4 TFLOP/s。非 SMT 系统行为保持不变。

lore
Bugfix重要分析 success作者:Sibi Sankar2026/08/10 17:5415 封邮件

[PATCH 0/2] sched/cpufreq: Fix schedutil's boost frequency handling

Sibi Sankar 发起 2 枚 patch 系列:patch 1 移除 cpufreq_frequency_table_cpuinfo() 中的 "只升不降" guard,让 cpuinfo.max_freq 在 boost 关闭后能回落;patch 2 在 schedutil 的 get_next_freq() 中用 max(ref, policy->max) 取代固定 anchor capacity_freq_ref,使 DVFS 请求能触达 boost 频率。Christian Loehle 与 Vincent Guittot 引用 Dietmar Eggemann 的上游系列 2...

lore
Bugfix重要分析 success作者:Chen Yu2026/08/10 11:471 封邮件

[PATCH v2] sched/cache: Fix a thread aggregation conflict when there is one runnable task

引入 migrate_llc_task 后,SD_ASYM_PACKING(如 ITMT)平台上 sched_asym() 过滤会拒绝 LLC 亲和性迁移。v2 补丁给 migrate_llc_task 开例外,并在 commit log 中解释 SD_ASYM_CPUCAPACITY 暂不同步处理的理由。

lore
Bugfix重要分析 success作者:Aaron Tomlin2026/08/10 11:186 封邮件

[PATCH v3 0/4] sched/debug: Introduce per-CPU debugfs files

Aaron Tomlin 的 v3 系列包含 4 个 patch:1) 在 print_cpu() 中用 rcu_read_lock + READ_ONCE 保护 rq->curr;2) 在 print_dl_rq() 中同样保护 rq->rd;3) 用 list_for_each_entry_rcu 替换 print_cfs_stats() 中的 _safe 遍历;4) 新增 /sys/kernel/debug/sched/cpu/cpu<N>/debug。三个修复都属于 lockless 解引用导致的潜在 UAF 或 RCU 违例,Reported-by 均为 sashiko-bot。但作...

lore
Bugfix重要分析 success作者:Greg Kroah-Hartman2026/08/10 02:362 封邮件

Re: Linux 7.1.8

Greg KH 发布 Linux 7.1.8 stable,宣布 7.1 系列用户必须升级。配套 reply 邮件附带 Documentation 改动:在 arm64 silicon-errata 表中新增 AmpereOne AC03/AC04 两条;在 qcom,sa8255p-ufshc.yaml 中把 reg 调整为 maxItems:2 并新增 reg-names: std/mcq;在 erofs.rst 中删除已废弃的 fsid 与 domain_id 挂载选项说明。虽然 thread 来源频道为 sched,但内容是 stable 跨子系统推送,没有 scheduler 自身修...

lore
讨论重要分析 success作者:Greg Kroah-Hartman2026/08/10 02:362 封邮件

Re: Linux 6.18.44

Greg Kroah-Hartman 发布 6.18.44 stable 点版本,覆盖 hwmon INA234 文档、ARM64 KVM guest_memfd 与 MTE 互斥、s390 KVM PCI MMIO 大改(78 行)、蓝牙 btmtk/btusb 修复以及多个驱动小修。修改文件横跨 Documentation、arch、KVM、drivers 等数十处。stable 分支要求所有 6.18 用户升级;生产部署前应重点回归 s390 KVM 与 ARM64 MTE 路径。

lore
讨论分析 success作者:Greg Kroah-Hartman2026/08/10 02:362 封邮件

Linux 6.12.103

Greg Kroah-Hartman 宣布放出 6.12.103 稳定内核,要求所有 6.12 用户升级。第二封回复贴出 kmemleak.rst 新增 transient_leak 接口说明与 ina2xx.rst 新增 INA260/SY24655/INA234 三款 hwmon 芯片支持两条文档补丁。本帖并非 scheduler 专题,scheduler 直接相关改动需查阅完整 stable log。

lore
Bugfix重要分析 success作者:Mete Durlu2026/08/09 18:033 封邮件

[PATCH] sched/fair: Make is_core_idle() check all cpus in a core

Mete Durlu 提单 patch 删除 is_core_idle() 里的 self-skip,让函数按整核 idle 语义返回。Zhan Xusheng 在 review 中指出 sched_balance_newidle() 路径上 env->dst_cpu 就是 this_cpu 且 rq->curr 还是 outgoing task,删除 skip 后 env->dst_core_idle 变 false,会让 misfit 闸门与 sched_use_asym_prio() 失效,回归只发生在 powerpc / x86 ITMT / arm64 big.LITTLE / x8...

lore
Bugfix重要分析 success作者:Ricardo Neri2026/08/08 17:4418 封邮件

[PATCH v6 0/6] sched: Fix cluster scheduling in the presence of asymmetric capacity

Ricardo Neri 提交的 v6 系列(6 patches)针对 big.LITTLE/hybrid CPU 拓扑中集群调度失效的问题,依次修复 SMT busy sibling 误判、sg_overloaded gating、busiest 选组顺序、misfit 累加、identical-capacity 跳过以及 SD_PREFER_SIBLING 缺失五个相互关联的 bug。该系列已被 Peter Zijlstra 合并到 sched/core tip 分支,覆盖 Alder Lake、Lunar Lake、Panther Lake、qemu arm64 与 Vera Rubin...

lore
Bugfix重要分析 success作者:Shubhang Kaushik (Ampere)2026/08/08 04:244 封邮件

[PATCH v2] sched/core: Skip rq->avg_idle update without a valid idle_stamp

该 patch 修复 commit 4b603f1551a73 将 rq->avg_idle 记账搬到 put_prev_task_idle() 后丢失的 rq->idle_stamp 合法性检查;通过在 update_rq_avg_idle() 入口加 if (!idle_stamp) return,避免 stamp=0 时被退化成 rq_clock(rq) 的大样本把 avg_idle 推到 clamp。Zhan 在 review 中进一步定位真正高频触发路径是 sched_balance_newidle 的 ttwu_pending 早返回,建议在 changelog 中显式点名。

lore
其它分析 success作者:Liang Hao2026/08/07 23:071 封邮件

[PATCH] sched/deadline: Do not pull when the local CPU is the only overloaded one

本 patch 把 RT 调度器 commit f73c52a5bcd1 中已有的 "pull 端短路" 镜像到 DEADLINE 调度器的 pull_dl_task():当 dlo_count==1 且本 CPU 拥有唯一的 dlo_mask bit 时直接返回,避免 for_each_cpu() 循环在本地 CPU 上空转。改动只动 kernel/sched/deadline.c 一处 +7/-1,作者明确说明无功能变化,仅做对称补齐和微小性能优化。

lore
其它重要分析 success作者:Usama Arif2026/08/07 17:522 封邮件

[PATCH v2] sched/psi: use __ffs() to walk task-count bitmasks in psi_group_change()

把 psi_group_change() 中遍历 clear/set 4-bit 掩码的写法从线性扫到最高位改为 __ffs()+m&=m-1,按置位数而不是位宽工作。微基准在常见 PSI mask 分布上提速 47-63%,生成代码减少 67 字节;属性能/可读性双优的 patch 清理。

lore
Bugfix重要分析 success作者:Guopeng Zhang2026/08/07 17:529 封邮件

[PATCH 0/3] sched/psi: Fix rtpoll teardown races

3 patch 系列修复 psi_trigger_destroy() 放锁窗口内新旧 rtpoll worker 并存引发的三处竞态:旧 worker 吞掉共享 wakeup 使替换 worker 停摆、RCU 读端在 timer_delete 之后 mod_timer 留下幽灵 timer、rtpoll_scheduled 清零过晚覆盖替换 worker 状态。修法是唤醒先判停后消费、持锁下 synchronize_rcu 加 timer_delete_sync、清零挪进锁内。Suren Baghdasaryan 认为问题合理但注入延迟仍无法复现,要求提供 reproducer 并重写 AI...

lore
Bugfix重要分析 success作者:Andrea Righi2026/08/07 16:221 封邮件

[PATCH] sched: Preserve reset-on-fork across concurrent sched_setparam()

Andrea Righi 提交的单封补丁修复 __sched_setscheduler() 中 SCHED_RESET_ON_FORK 的丢失更新竞态:reset_on_fork 在持 rq lock 之前被采样,并发的 sched_setscheduler() 修改后,迟到的 sched_setparam() 会用陈旧值回写。补丁新增 keep_policy 标志,在 reset_on_fork 回写前重新读取 p->sched_reset_on_fork,覆盖所有 keep_policy 路径,从而在并发场景下保留 SCHED_RESET_ON_FORK 的语义。改动仅 +5 行,影响 k...

lore
RFC重要分析 success作者:Vinicius Costa Gomes2026/08/07 13:186 封邮件

[PATCH RFC] sched/fair: decline WF_SYNC stacking when waker LLC is the busier share

针对 epoll 同步唤醒 (commit 900bbaae67e9) 在 NUMA 系统上造成单节点过载的回归,Vinicius Costa Gomes 提交 RFC,在 wake_affine_idle 与 wake_affine_weight 的 sync 分支新增 sched_llc_over_commited 检查:当 waker LLC 已无空闲且比 prev LLC 更忙时拒绝 stack,转走常规负载均衡。memcached 96x32 下 p90/p99 改善 50% 以上,但 64x32 下吞吐 -3.4%、p99.9 +6.7%。patch 内置 FIXME 提示 NO_...

lore
其它重要分析 success作者:Mark Rutland2026/08/07 11:3316 封邮件

[PATCH v2 0/6] sched: dynamic: Simplify PREEMPT_DYNAMIC

Mark Rutland 提出的 6 补丁系列在 v7.2-rc4 之上让 PREEMPT_DYNAMIC 直接依赖 ARCH_HAS_PREEMPT_LAZY,把因 7dadeaa6e851 而实际走不到的 NONE/VOLUNTARY 路径、HAVE_PREEMPT_DYNAMIC_{CALL,KEY} Kconfig 项以及 cond_resched / preempt_schedule / irqentry_exit_cond_resched 的动态跳板一次性删除,共削减 374 行;评审者 Jinjie Ruan 与 Shrikanth Hegde 给出逐封 review 与 acc...

lore
Bugfix重要分析 success作者:Shubhang Kaushik (Ampere)2026/08/07 07:276 封邮件

[PATCH v4] sched/fair: Preserve wake-affine CPU for non-SMT reciprocal sync wakeups

Shubhang Kaushik 在 v4 patch 中对非 SMT 系统的窄互反 WF_SYNC 唤醒做局部优化:waker rq 上无其他 fair 任务时,select_task_rq_fair() 直接返回 waker CPU、绕过 select_idle_sibling(),perf bench sched pipe 提升约 20%。维护者 Shrikanth、Prateek 认为 WF_SYNC 在内核里语义任意(pipe、net 都被随手用),应先在 Documentation/scheduler/ 文档化语义再谈局部 fix,否则一个 benchmark 受益、另一个受损。v...

lore
Bugfix重要分析 success作者:Peter Zijlstra2026/08/06 22:144 封邮件

Re: [PATCH] sched/core: Don't pin the idle task in migrate_disable_switch()

补丁在 migrate_disable_switch() 入口判断 p == rq->idle 后直接返回,避免 idle 任务进入 sched_change 守卫后通过 NULL enqueue_task 跳到 RIP 0。维护者 Peter Zijlstra 追问是什么在 idle 上调了 migrate_disable,作者回溯 vmcore 发现 migration_disabled 单 bit 翻且 nr_pinned 为 0,怀疑是 DDR5 非 ECC 硬件位翻而非调度器 API 触发,因此 patch 屏蔽症状的同时仍需后续硬件侧调查。

lore
Bugfix分析 success作者:Hui Su2026/08/06 20:562 封邮件

[PATCH v2] cpufreq: schedutil: Fix rate limit overflow

schedutil governor 在把 sysfs 中的 rate_limit_us(微秒)换算成 freq_update_delay_ns(纳秒)时,32 位平台上的 32 位无符号乘法会发生回绕,导致大值延迟被截断为几百纳秒,频率更新频率被异常放大。本补丁抽出 sugov_update_rate_limit_us() 辅助函数,把 rate_limit_us 显式拓宽到 s64 再乘 NSEC_PER_USEC,并在 sysfs 写入和 governor 启动两个入口统一使用,避免回绕。v2 主要补强了 32 位算术的说明、把强转写得更明确,并加上 Reviewed-by。Rafael...

lore
Bugfix重要分析 success作者:Hui Su2026/08/06 14:182 封邮件

[PATCH] cpufreq: schedutil: Fix rate limit overflow

schedutil governor 的 rate limit 在 32 位系统上会因为 u32 * 1000 的 32-bit 乘法回卷成几百纳秒,导致频率更新远高于用户配置。补丁抽出 sugov_update_rate_limit_us() 在乘法前 widen 到 u64,并在 sysfs store 与 sugov_start 两条路径统一调用,回归到正确的纳秒级延时。

lore
其它分析 success作者:Aaron Tomlin2026/08/05 20:373 封邮件

[PATCH v2] sched/debug: Introduce per-CPU debugfs files

Aaron Tomlin 在 v2 中向 kernel/sched/debug.c 新增 debugfs_cpu_init(),为每个 possible CPU 在 /sys/kernel/debug/sched/cpu/cpu<N>/debug 下创建独立 debug 文件,读取时通过 sched_debug_cpu_show() 复用 print_cpu() 输出该 CPU 的 runqueue 状态,offline CPU 返回 -ENODEV。v2 主要按 Peter Zijlstra 和 Zhan Xusheng 的反馈重写 commit message 动机,并补上 cpu_onl...

lore
其它重要分析 success作者:Aaron Tomlin2026/08/05 20:324 封邮件

[PATCH v4] security: Expand task_setscheduler LSM hook

Aaron Tomlin v4 patch 给 security_task_setscheduler hook 增加 sched_attr 和 cpumask 两个 __nullable 参数,让 LSM 在 sched_setaffinity 路径上能看到目标 CPU 集合。同步更新 SELinux/Smack/commoncap/cpuset/timerslack/MIPS 等 10 个文件,但当前 LSM 都用 __always_unused 暂时忽略新参数,为后续基于空间隔离的策略铺路。

lore
其它分析 success作者:fangqiurong2026/08/05 17:122 封邮件

[PATCH] sched/fair: Remove dead throttled check in pick_task_fair()

本 patch 删除 pick_task_fair() 中因 f666241e6bd5 重构而变成死代码的 throttled 变量与 task_throttle_setup_work() 调用,属于 cleanup 类改动,行为完全不变。回复者 K Prateek Nayak 指出 tip:sched/core 上 Peter Zijlstra 已经通过 85570f10a4c6(sched/eevdf: Move to a single runqueue)完成了同样的清理,作者需要 rebase 或撤回本 patch。

lore
其它重要分析 success作者:Andrea Righi2026/08/05 16:598 封邮件

[PATCH v3] sched/fair: Prefer fully idle cores for NOHZ balancing

Andrea Righi 改写 find_new_ilb(),让 ILB 目标优先选整核空闲的 SMT CPU,避免唤醒半活 core 的空闲兄弟线程,从而防止 NVIDIA Olympus/Vera 上 10 Ki cycles 的单线程性能恢复窗口被反复触发。v3 在见到 busy CPU 后跳过其所有兄弟,简化宽 SMT 扫描。审稿人主要质疑 this_cpu 检查是否冗余,并建议把 busy 检查与 this_cpu 判断合并。

lore
其它重要分析 success作者:Greg Kroah-Hartman2026/08/04 22:32502 封邮件

[PATCH 6.6 000/484] 6.6.148-rc1 review

Greg Kroah-Hartman 发布的 Linux 6.6.148-rc1 stable 候选版,包含 484 个跨子系统补丁。修复重点包括 CAN bcm/isotp 的并发 race、drm/virtio 的 fbdev probe 死锁、mmc vub300 的 use-after-free、KVM MMU 与 ASID 系列问题,以及 wifi、RDMA、thunderbolt 等驱动侧大量 OOB read/UAF 修复。本帖同时包含 17 封社区 review 回信,主要覆盖 mmc vub300 patch 的命名分歧和 ceph 布局 ioctl 校验。

lore
其它分析 success作者:Christoph Hellwig2026/08/04 21:002 封邮件

[PATCH v2] block: split out a new blk_plug.h header

Christoph Hellwig 把 struct blk_plug、blk_plug_cb 及相关 inline 从 include/linux/blkdev.h 抽出到新建的 include/linux/blk_plug.h,让 aio、writeback、io_uring、mm、kernel/sched/core.c 等非 block 模块不再被迫 include 重型 blkdev.h,从而减少 blkdev.h 改动触发的重编译、降低头耦合。维护者 Jens Axboe 当日 ack 并合入为 commit 758b86f7bc8a。

lore
其它重要分析 success作者:Boqun Feng2026/08/04 20:5259 封邮件

[GIT PULL] [PATCH 00/24] Rust synchronization changes for v7.3

Boqun Feng 推送 24 个 patch,把 IRQ disable 嵌套层数记进 preempt_count 的 HARDIRQ_DISABLE 字段,并以此为基础提供 Rust 端的 SpinLockIrq、synchronize_rcu() 安全封装和 trait-based 泛型 memory barrier。该系列还顺手修复 openrisc 的 smp.h 编译错误并把 64 位架构的 NMI 嵌套放回 preempt_count。Peter Zijlstra 在 patch 02 的 Signed-off-by 链、interrupt_disable_state 包装以及...

lore
其它分析 success作者:Zhan Xusheng2026/08/04 20:504 封邮件

[PATCH 0/3] sched: minor cleanups

Zhan Xusheng 提交的 3 个 cleanup 补丁:删除早就没有调用者的 static inline sched_fair_runnable();把 requeue_task_rt() 永远不用的 rq 形参去掉,三处 caller 同步;修正 rt.c 里与 #ifdef CONFIG_RT_GROUP_SCHED 配套的 #endif 注释(去掉多余的 !)。全部 No functional change,仅改善代码可读性和接口整洁度。

lore
其它分析 success作者:Zhan Xusheng2026/08/04 17:268 封邮件

[PATCH] sched/psi: Skip CPUs with zero non-idle jiffies in per-cpu aggregation

针对 collect_percpu_times() 对每个 possible CPU 都执行 nsecs_to_jiffies 与加权累加的浪费,作者利用 get_recent_times() 已设的 PSI_NONIDLE 位作为天然 zero-delta 标记,在循环里直接 continue。该优化在 i7-8700 以及 -smp 2..32 的 A/B 测试中带来最多约 18% 的 /proc/pressure/cpu 读延迟节省,且随 CPU 数放大。整条线索从 v1 到 v6 主要迭代判断条件、Reviewed-by 标签语义、commit 措辞以及 Peter Zijlstra ...

lore
Bugfix分析 success作者:Chen Jinghuang2026/08/04 17:171 封邮件

[PATCH v2] sched/numa: Prevent race on sysctl_numa_balancing static key

v2 单 patch。Chen Jinghuang 在 /proc/sys/kernel/numa_balancing 的 write 路径加 numabalancing_mutex 串行化 static_key 的 enable/disable,避免并发 1/0 写入时 disable 路径锁外读到 -1 触发 WARN_ON_ONCE。仅修改 kernel/sched/core.c,3 行新增。

lore
Bugfix重要分析 success作者:Hongling Zeng2026/08/04 17:021 封邮件

[PATCH] sched/numa: clear locality statistics on early return

Hongling Zeng 发现 commit f307cd1a32fa 引入的 slow-scan 逻辑在 update_task_scan_period() 中提前返回时漏掉了清零 p->numa_faults_locality,导致一次迁移失败让 locality 长期残留并持续把 task 困在慢扫描档。该补丁在 slow-scan 分支返回前补上 memset,让后续扫描周期评估能基于新的 locality 统计。补丁仅 2 行,但属于 NUMA 平衡的正确性回归,已 Cc stable 建议 backport。

lore
Bugfix分析 success作者:Chen Jinghuang2026/08/04 16:525 封邮件

[PATCH] sched/numa: Prevent race on sysctl_numa_balancing static key

补丁在 /proc/sys/kernel/numa_balancing 的 write 路径上加互斥锁,把 static_key_enable/disable 调用串行化,避免并发写入时 disable 读到 enable 路径中的临时 -1 状态触发 jump_label 的 WARN_ON_ONCE。Reviewer Prateek 建议把锁位置从 set_numabalancing_state() 收回到 sysctl 写入分支,并改用 guard(mutex) 写法,作者均接受并承诺更新 v2。

lore
Bugfix分析 success作者:Fengyu Wang2026/08/04 15:083 封邮件

[PATCH] sched/topology: Free NUMA masks on topology allocation failure

sched_init_numa() 在分配 topology 数组前先通过 rcu_assign_pointer() 发布 NUMA masks;若 kzalloc 失败则提前 return,导致 masks 已发布但永远不会被释放。v1 在失败路径里 unpublish + synchronize_rcu + 三层 kfree 来回收,Tim Chen 进一步建议把 rcu_assign_pointer() 移到分配成功之后,作者将在 v2 中采用这种更简洁的 check-then-publish 写法。

lore
Bugfix重要分析 success作者:Hongling Zeng2026/08/04 14:151 封邮件

[PATCH v2] sched/numa: avoid doubling scan period for remote private faults

这个 v2 单 patch 修复了 NUMA 自动平衡里 update_task_scan_period() 的一个误判:旧代码用 local + shared == 0 判定无 fault,会把只有远程私有 fault 的工作负载误判为完全空闲,从而把扫描周期无条件翻倍。作者把判定换成 local + remote == 0,让这类负载继续走 locality-ratio 计算,同时顺手对齐 ps_ratio / lr_ratio 两个分支的注释。这是 NUMA 调度路径上的一个小但正确的修复,可能让远端私有访问为主的负载扫描变密。

lore
Bugfix分析 success作者:Hongling Zeng2026/08/04 14:093 封邮件

[PATCH] sched/numa: Fix scan period for remote private faults

Hongling Zeng 提交单封 patch 修改 update_task_scan_period() 的早返回条件,把 `local + shared == 0` 改成 `local + remote == 0`,试图让纯远程 private 工作负载进入 ratio 计算分支。但 Zhan Xusheng 评审指出,纯 remote private 场景下 ps_ratio 必为 10(>= 阈值 7),仍会落入 grow period 分支,commit message 中所谓"加速扫描"的说法不成立,实际只是把翻倍变成增长约 3 个 slot,建议补充数据并把注释修正拆成独立 pa...

lore
其它重要分析 success作者:Shubhang Kaushik (Ampere)2026/08/04 08:226 封邮件

[PATCH v3] sched/fair: Prefer waker CPU for non-SMT reciprocal sync wakeups

本系列在 select_task_rq_fair() 中新增 prefer_sync_pair_cpu(),借助 last_wakee 识别 pipe-style ping-pong WF_SYNC 唤醒,在非 SMT 平台上让 wakee 留在 waker CPU,80核 Ampere Altra 上 perf bench sched pipe 提升约 30%。线程后续由 Prateek 提议下沉到 select_idle_sibling() 以覆盖 SMT,并由 Shrikanth 质疑 sync wakeup 的整体语义,呼吁先界定策略再决定合入。

lore
Bugfix重要分析 success作者:Greg Kroah-Hartman2026/08/03 17:352 封邮件

Re: Linux 7.1.6

Greg Kroah-Hartman 在 lore.kernel.org 发布 Linux 7.1.6 稳定分支维护版本,回合了 mainline 上跨 arm64/loongarch/powerpc/riscv/s390/x86/m68k 等多个架构的 bug 修复、驱动支持、文档更新与 BPF/KVM 改进。回复截取的 hunk 显示了 cgroup-v2.rst 的格式清理 (去掉 (npn)、补充 zswap 的 amount of memory used 描述) 以及 hwmon/max34440.rst 新增 ADI ADPM12250 设备支持。公告明确要求所有 7.1 系列用户...

lore
讨论重要分析 success作者:Greg Kroah-Hartman2026/08/03 17:352 封邮件

Re: Linux 6.18.42

Greg Kroah-Hartman 发布 6.18 稳定分支的 6.18.42 小版本,要求所有 6.18 用户必须升级。本帖是 stable-announce 风格的发布公告,包含 DRM 文档、netlink yaml、各架构 DTS 与 RISC-V KVM 等多处修复片段,并非 scheduler 专题讨论。

lore
Bugfix分析 success作者:Greg Kroah-Hartman2026/08/03 17:342 封邮件

Linux 6.6.148

Greg Kroah-Hartman 发布 Linux 6.6.148 stable,要求 6.6 系列用户升级。邮件正文含跨多个子系统的 diffstat;从可读取的 patch 看,本版本把 Tegra234 SoC 的 CPU compatible 从 cortex-a78 更正为 cortex-a78ae,并 bump 了 Makefile 的 SUBLEVEL 到 148。该帖来源标记为 sched 频道,但内容并非 scheduler 专题。

lore
Bugfix分析 success作者:Eric Kim2026/08/03 15:503 封邮件

[PATCH] sched/numa: Reset NUMA fault locality after scan period update

update_task_scan_period 在放大扫描周期时没有清空 numa_faults_locality,导致旧 locality 数据影响下一次 NUMA 调度判断。v1 在早 return 前补 memset;v2 根据 Peter Zijlstra 建议改成 goto out,把清零统一到函数尾部的 out 标签,避免重复代码。

lore
其它分析 success作者:Hongling Zeng2026/08/03 15:401 封邮件

[PATCH RESEND v2] sched: adjust the layout of the cfs_bandwith structure to save memory

通过 pahole 发现 struct cfs_bandwidth 有 13 字节 padding hole,v2 RESEND 把三个 u8 标志挪到 raw_spinlock_t lock 之后,把结构体从 240 字节压到 232 字节。代价是 period_timer 跨过 cacheline 边界,但作者评估这条路径本来已访问多个 cacheline,并不是热点路径。

lore
Bugfix分析 success作者:Andrew Morton2026/08/03 14:544 封邮件

Re: [Bug 221804] New: WARNING at mm/memblock.c:904 __free_reserved_area(): "Cannot free reserved memory because of deferred initialization of the memory map" during housekeeping_init() at boot

CONFIG_DEFERRED_STRUCT_PAGE_INIT=y 时,housekeeping_init() 在 start_kernel() 早期调用 memblock_free() 释放 bootmem cpumask,因延迟内存映射尚未初始化而触发 WARNING 并污染内核。patch 将 memblock_free() 推迟到 core_initcall 执行,确保在 page_alloc_init_late() 完成后再释放。实际无内存泄漏,但 taint 标记影响生产环境。

lore
每页
上一页3 / 5下一页