From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out-186.mta1.migadu.com (out-186.mta1.migadu.com [95.215.58.186]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7B3013AE19F; Wed, 24 Jun 2026 12:30:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.186 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782304212; cv=none; b=FTXIx5OhGWAY3nzWFjTZzNUQB4RZhJRwa74Eqymjn1qg7tqLUuad53V5ucLZMgjArkmli7kqnebVPymHniwRh25fpgNiSPuySO+kh63+SORzOadiJ+bj5mic54BQHlmDuZODvM3+XOqqz7ZvlV78EpzXejcYYxw24iqREPkbed0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782304212; c=relaxed/simple; bh=x+wrByIgOH4VvEI96gvWujAPl3WM8xGYqVOhtQGJNvw=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=LrICX3wr8qeh8hsYw9YCzxthxEEDoLnliSK24NAiVv338Bix9gvUQ3YZOTiU7IsoK8TE3UtYXyQlrU0kvo2T30WwRyxwNR3L3uKE926DA7IXYFWi1V42Sr3GyTwETO5prEkIkkgsIULbx3lex3bMVTZ8deDjQfMvV55qo0Au+wc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=R0l5uaRB; arc=none smtp.client-ip=95.215.58.186 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="R0l5uaRB" Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1782304195; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eNfuHxO86n8b93ev9jYNFJxXkathlRXlXpz1k/8S9nI=; b=R0l5uaRBMcxiN2aXXeE7sJmbbWZ+nIwvYOIBg2hW4xeZNywWJj11l3PcvXG3Ip7YlbinqT P/PQ6kfAvOv13VlW7fdMv2tpC85uXP91R5VJRz9HOOc6aZfnOL/SuWOVvCXI8elJq6bVmX Hq88NW9qj4aWnLm21y4nDBq7fAgYa9M= Date: Wed, 24 Jun 2026 20:29:26 +0800 Precedence: bulk X-Mailing-List: audit@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Subject: Re: [PATCH v3 0/7] Prepare mutable list iterators to cache cursor state To: Andy Shevchenko Cc: Alexei Starovoitov , Andrew Morton , David Hildenbrand , Jens Axboe , Tejun Heo , Alexander Viro , Christian Brauner , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Johannes Weiner , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Thomas Gleixner , Juri Lelli , Vincent Guittot , Paul Moore , "Paul E. McKenney" , Shakeel Butt , =?UTF-8?Q?Christian_K=C3=B6nig?= , David Howells , Simona Vetter , Randy Dunlap , Luca Ceresoli , Philipp Stanner , linux-block@vger.kernel.org, LKML , "open list:CONTROL GROUP (CGROUP)" , linux-ntfs-dev@lists.sourceforge.net, Linux-Fsdevel , io-uring , audit@vger.kernel.org, bpf , Network Development , dri-devel@lists.freedesktop.org, "linux-perf-use." , linux-trace-kernel , kexec@lists.infradead.org, live-patching@vger.kernel.org, linux-modules@vger.kernel.org, Linux Crypto Mailing List , Linux Power Management , rcu@vger.kernel.org, sched-ext@lists.linux.dev, linux-mm , virtualization@lists.linux.dev, damon@lists.linux.dev, clang-built-linux , chengkaitao , Muchun Song References: <20260622040533.29824-1-kaitao.cheng@linux.dev> <8c8f1849-86d3-4c69-be27-30bbdffdf616@linux.dev> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Kaitao Cheng In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT 在 2026/6/22 18:46, Andy Shevchenko 写道: > On Mon, Jun 22, 2026 at 02:15:01PM +0800, Kaitao Cheng wrote: >> 在 2026/6/22 13:28, Alexei Starovoitov 写道: >>> On Sun, Jun 21, 2026 at 9:06 PM Kaitao Cheng wrote: > > ... > >>>> 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. >> 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