From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: "luo.liu.linux" <luo.liu.linux@163.com>
Cc: mchehab@kernel.org, linux-media@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: Re: Re: [PATCH] media:v4l2-async:debugfs for registered subdevices
Date: Mon, 16 Mar 2026 18:48:07 +0200 [thread overview]
Message-ID: <abg0R5zerwCM_1mK@kekkonen.localdomain> (raw)
In-Reply-To: <384d2274.9b3e.19ce776ec2c.Coremail.luo.liu.linux@163.com>
Hi Luo,
On Fri, Mar 13, 2026 at 09:50:56PM +0800, luo.liu.linux wrote:
>
> Hi Sakari,
>
> Apologies if my previous explanation wasn't clear enough.
>
> To clarify, the primary goal of this interface is not merely to verify if insmod/rmmod succeeds,
> but to validate the correctness of the asynchronous subdevice registration and unregistration paths,
> specifically ensuring that resource allocation and reclamation are handled properly.
>
> I would like to share a real-world scenario that motivated this patch:
>
> We had a camera subsystem pipeline like sensor -> dphy -> mipi-csi2 -> isp
> subdevice driver that appeared to function perfectly for six months. insmod and rmmod completed without any errors,
> and the system seemed stable during normal operation. However, just before a major release, a QA engineer performed
> stress testing involving rapid, repeated cycles of insmod and rmmod, which eventually triggered a kernel crash.
>
> During the debugging process, I inspected the internal global lists:
>
> static LIST_HEAD(subdev_list);
> static LIST_HEAD(notifier_list);
>
> By dumping the subdev_list via this debugfs interface, I discovered that a D-PHY subdevice entry remained in the list even
> after its driver was unloaded. Crucially, the output explicitly showed the device name, allowing me to immediately pinpoint
> the D-PHY driver as the culprit, rather than blindly troubleshooting other components in the pipeline (such as the sensor or ISP).
>
> This was the critical clue that led me to the root cause:
>
> The D-PHY subdriver's remove function was missing a call to v4l2_async_cleanup(sd). Consequently, the subdevice was never properly
> unregistered from the async framework, leading to a use-after-free or stale pointer issue during the stress test.
>
> Without this debugfs interface, detecting such "silent" registration leaks is extremely difficult.
> The driver loads and unloads without reporting errors, and standard logs (dmesg) often provide
> no indication that an entry was left behind in the core framework's list until a crash occurs under specific timing conditions.
>
>
> Given this experience, I believe this interface provides a vital visibility point for engineers to:
>
> 1,Verify that subdevices are correctly removed from the global list upon driver unload.
> 2,Catch missing cleanup calls (like v4l2_async_cleanup) early in the development cycle, rather than discovering them through random crashes in stress testing.
I guess you'd have found this with either KASAN or linked list debugging?
--
Sakari Ailus
next prev parent reply other threads:[~2026-03-16 16:48 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-13 7:58 luo.liu
2026-03-13 10:28 ` Sakari Ailus
2026-03-13 11:21 ` luo.liu.linux
2026-03-13 11:42 ` Sakari Ailus
2026-03-13 13:50 ` luo.liu.linux
2026-03-16 16:48 ` Sakari Ailus [this message]
2026-03-17 3:37 ` Re:Re: " luo.liu.linux
2026-03-17 8:21 ` Sakari Ailus
2026-03-17 11:14 ` luo.liu.linux
2026-03-19 20:30 ` Laurent Pinchart
2026-03-20 6:52 ` luo.liu.linux
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=abg0R5zerwCM_1mK@kekkonen.localdomain \
--to=sakari.ailus@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=luo.liu.linux@163.com \
--cc=mchehab@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome