Re: [PATCH v3 0/7] Prepare mutable list iterators to cache cursor state
From: Kaitao Cheng <hidden>
Date: 2026-06-24 12:30:09
Also in:
bpf, cgroups, damon, dri-devel, io-uring, kexec, linux-block, linux-crypto, linux-fsdevel, linux-mm, linux-modules, linux-perf-users, linux-pm, linux-trace-kernel, lkml, llvm, netdev, rcu, sched-ext, virtualization
在 2026/6/22 18:46, Andy Shevchenko 写道:
On Mon, Jun 22, 2026 at 02:15:01PM +0800, Kaitao Cheng wrote:quoted
在 2026/6/22 13:28, Alexei Starovoitov 写道:quoted
On Sun, Jun 21, 2026 at 9:06 PM Kaitao Cheng [off-list ref] wrote:...quoted
quoted
quoted
block/bfq-iosched.c | 17 +- block/blk-cgroup.c | 12 +- block/blk-flush.c | 4 +- block/blk-iocost.c | 18 +- block/blk-mq.c | 8 +- block/blk-throttle.c | 4 +- block/kyber-iosched.c | 4 +- block/partitions/ldm.c | 8 +- block/sed-opal.c | 4 +- include/linux/list.h | 269 ++++++++++++++++++++++++---- include/linux/llist.h | 81 +++++++-- init/initramfs.c | 5 +- io_uring/cancel.c | 6 +- io_uring/poll.c | 3 +- io_uring/rw.c | 4 +- io_uring/timeout.c | 8 +- io_uring/uring_cmd.c | 3 +- kernel/audit_tree.c | 4 +- kernel/audit_watch.c | 16 +- kernel/auditfilter.c | 4 +- kernel/auditsc.c | 4 +- kernel/bpf/arena.c | 10 +- kernel/bpf/arraymap.c | 8 +- kernel/bpf/bpf_local_storage.c | 3 +- kernel/bpf/bpf_lru_list.c | 25 ++- kernel/bpf/btf.c | 18 +- kernel/bpf/cgroup.c | 7 +- kernel/bpf/cpumap.c | 4 +- kernel/bpf/devmap.c | 10 +- kernel/bpf/helpers.c | 8 +- kernel/bpf/local_storage.c | 4 +- kernel/bpf/memalloc.c | 16 +- kernel/bpf/offload.c | 8 +- kernel/bpf/states.c | 4 +- kernel/bpf/stream.c | 4 +- kernel/bpf/verifier.c | 6 +- kernel/cgroup/cgroup-v1.c | 4 +- kernel/cgroup/cgroup.c | 54 +++--- kernel/cgroup/dmem.c | 12 +- kernel/cgroup/rdma.c | 8 +- kernel/events/core.c | 44 +++-- kernel/events/uprobes.c | 12 +- kernel/exit.c | 8 +- kernel/fail_function.c | 4 +- kernel/gcov/clang.c | 4 +- kernel/irq_work.c | 4 +- kernel/kexec_core.c | 4 +- kernel/kprobes.c | 16 +- kernel/livepatch/core.c | 4 +- kernel/livepatch/core.h | 4 +- kernel/liveupdate/kho_block.c | 4 +- kernel/liveupdate/luo_flb.c | 4 +- kernel/locking/rwsem.c | 2 +- kernel/locking/test-ww_mutex.c | 2 +- kernel/module/main.c | 11 +- kernel/padata.c | 4 +- kernel/power/snapshot.c | 8 +- kernel/power/wakelock.c | 4 +- kernel/printk/printk.c | 11 +- kernel/ptrace.c | 4 +- kernel/rcu/rcutorture.c | 3 +- kernel/rcu/tasks.h | 9 +- kernel/rcu/tree.c | 6 +- kernel/resource.c | 4 +- kernel/sched/core.c | 4 +- kernel/sched/ext.c | 22 +-- kernel/sched/fair.c | 28 +-- kernel/sched/topology.c | 4 +- kernel/sched/wait.c | 4 +- kernel/seccomp.c | 4 +- kernel/signal.c | 11 +- kernel/smp.c | 4 +- kernel/taskstats.c | 8 +- kernel/time/clockevents.c | 6 +- kernel/time/clocksource.c | 4 +- kernel/time/posix-cpu-timers.c | 4 +- kernel/time/posix-timers.c | 3 +- kernel/torture.c | 3 +- kernel/trace/bpf_trace.c | 4 +- kernel/trace/ftrace.c | 49 +++-- kernel/trace/ring_buffer.c | 25 ++- kernel/trace/trace.c | 12 +- kernel/trace/trace_dynevent.c | 6 +- kernel/trace/trace_dynevent.h | 5 +- kernel/trace/trace_events.c | 35 ++-- kernel/trace/trace_events_filter.c | 4 +- kernel/trace/trace_events_hist.c | 8 +- kernel/trace/trace_events_trigger.c | 17 +- kernel/trace/trace_events_user.c | 16 +- kernel/trace/trace_stat.c | 4 +- kernel/user-return-notifier.c | 3 +- kernel/workqueue.c | 16 +- mm/backing-dev.c | 8 +- mm/balloon.c | 8 +- mm/cma.c | 4 +- mm/compaction.c | 4 +- mm/damon/core.c | 4 +- mm/damon/sysfs-schemes.c | 4 +- mm/dmapool.c | 4 +- mm/huge_memory.c | 8 +- mm/hugetlb.c | 56 +++--- mm/hugetlb_vmemmap.c | 16 +- mm/khugepaged.c | 14 +- mm/kmemleak.c | 7 +- mm/ksm.c | 25 +-- mm/list_lru.c | 4 +- mm/memcontrol-v1.c | 8 +- mm/memory-failure.c | 12 +- mm/memory-tiers.c | 4 +- mm/migrate.c | 23 ++- mm/mmu_notifier.c | 9 +- mm/page_alloc.c | 8 +- mm/page_reporting.c | 2 +- mm/percpu.c | 11 +- mm/pgtable-generic.c | 4 +- mm/rmap.c | 10 +- mm/shmem.c | 9 +- mm/slab_common.c | 14 +- mm/slub.c | 33 ++-- mm/swapfile.c | 4 +- mm/userfaultfd.c | 12 +- mm/vmalloc.c | 24 +-- mm/vmscan.c | 7 +- mm/zsmalloc.c | 4 +- 124 files changed, 875 insertions(+), 681 deletions(-)Not sure what you were thinking, but this diff stat is not landable.[PATCH v3 1/7] and [PATCH v3 2/7] contain the main logic and can be merged directly. They are also compatible with the old API. [PATCH v3 3/7] through [PATCH v3 7/7] are just simple interface replacements and do not change any functional logic. They can be left unmerged for now; individual modules can pick them up later if needed. In v2, Andy Shevchenko mentioned: "If it's done by Linus himself during the day when he prepares -rc1, it's fine."Yes, but you need to get his blessing first to go with this. Have you communicated with him on this?
Not yet, because the overall approach is still not mature. People have different opinions on the implementation details and on how to move this forward, so I think we should iterate through a few versions first before making a final decision.
quoted
Even so, the changes in this patch series are indeed quite large and touch almost every subsystem. I have only converted part of them for now, so I wanted to send this out first and see what people think.That's why it's better to provide a script to convert (e.g., coccinelle) instead of tons of patches.
I tried writing conversion scripts with Coccinelle, but there were always cases that got missed. In contrast, I found that using AI for focused replacements was actually more efficient. As David Hildenbrand mentioned, "If we decide we want this, I guess we should target per-subsystem conversions." I would like to provide the new interface first; adapting each subsystem on demand later may be easier to achieve. -- Thanks Kaitao Cheng