From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Danilo Krummrich" <dakr@kernel.org>,
"Lyude Paul" <lyude@redhat.com>,
"Alexander Lobakin" <aleksander.lobakin@intel.com>,
"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
"Liam Girdwood" <lgirdwood@gmail.com>,
"Lukas Wunner" <lukas@wunner.de>,
"Mark Brown" <broonie@kernel.org>,
"Maíra Canal" <mairacanal@riseup.net>,
"Robin Murphy" <robin.murphy@arm.com>,
"Simona Vetter" <simona.vetter@ffwll.ch>,
"Zijun Hu" <quic_zijuhu@quicinc.com>,
linux-usb@vger.kernel.org, rust-for-linux@vger.kernel.org,
"Haneen Mohammed" <hamohammed.sa@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Melissa Wen" <melissa.srw@gmail.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v3 8/8] drm/vkms: convert to use faux_device
Date: Sat, 8 Feb 2025 08:12:37 +0100 [thread overview]
Message-ID: <2025020855-ventricle-slang-b705@gregkh> (raw)
In-Reply-To: <Z6Y72LK1UW86x8av@louis-chauvet-laptop>
On Fri, Feb 07, 2025 at 05:59:04PM +0100, Louis Chauvet wrote:
> On 06/02/25 - 18:38, Greg Kroah-Hartman wrote:
> > The vkms driver does not need to create a platform device, as there is
> > no real platform resources associated it, it only did so because it was
> > simple to do that in order to get a device to use for resource
> > management of drm resources. Change the driver to use the faux device
> > instead as this is NOT a real platform device.
> >
> > Cc: Louis Chauvet <louis.chauvet@bootlin.com>
> > Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
> > Cc: Simona Vetter <simona@ffwll.ch>
> > Cc: Melissa Wen <melissa.srw@gmail.com>
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Maxime Ripard <mripard@kernel.org>
> > Cc: Thomas Zimmermann <tzimmermann@suse.de>
> > Cc: David Airlie <airlied@gmail.com>
> > Cc: dri-devel@lists.freedesktop.org
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > ---
> > v3: new patch in the series. For an example of the api working, does
> > not have to be merged at this time, but I can take it if the
> > maintainers give an ack.
>
> Hi,
>
> This patch cannot be merged into drm-misc-next because we modified the
> vkms_device structure in commit 49a167c393b0 ("drm/vkms: Switch to dynamic
> allocation for CRTC"), which is present in linux-next.
>
> Once this conflict is resolved, I agree with changing from platform_device
> to faux_device.
>
> Apart from this minor conflict, I believe your patch has revealed an issue
> in VKMS:
>
> Without your patch:
>
> bash-5.2# modprobe vkms
> [drm] Initialized vkms 1.0.0 for vkms on minor 0
> bash-5.2#
>
> With your patch:
>
> bash-5.2# modprobe vkms
> faux vkms: Resources present before probing
> [drm] Initialized vkms 1.0.0 for vkms on minor 0
> bash-5.2#
>
> After some investigation, I found that the issue is not caused by your
> patch but by VKMS itself:
>
> During faux_device_create, the device core postpones the device probe to
> run it later [0]. This probe checks if the devres list is empty [1] and
> fails if it is not.
>
> [0]:https://elixir.bootlin.com/linux/v6.13.1/source/drivers/base/bus.c#L534
> [1]:https://elixir.bootlin.com/linux/v6.13.1/source/drivers/base/dd.c#L626
>
> With a platform driver, the order of execution was:
>
> platform_device_register_simple();
> device_add();
> *async* device_probe(); /* no issue, the devres is untouched */
> devres_open_group();
>
> But with faux-device, the order is:
>
> faux_device_create();
> device_add();
> devres_open_group();
> *async* device_probe(); /* issue here, because of the previous
> devres_open_group */
Wait, what? It shouuld be the exact same codepath, as faux_device() is
not doing anything different from platform here. You might just be
hitting a race condition as the async probing is the same here.
> How do you think this should be solved? I would like to keep a simple
> solution, given that:
> - we want to have multiple vkms devices (configfs [2])
> - we need to ensure that device_probe is called before devres_open_group
> and devm_drm_dev_alloc to avoid this error
How about we take out the async probe? You are getting lucky that it's
not hit on the platform device code today. Faux really doesn't need
async, I was just trying to make the system work the same way that
platform devices did.
And as for the merge issue, not a problem, I just did this conversion
for people to see how this works and ideally test it, as you did, to
find issues!
thanks,
greg k-h
next prev parent reply other threads:[~2025-02-08 7:12 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-06 17:38 [PATCH v3 0/8] Driver core: Add faux bus devices Greg Kroah-Hartman
2025-02-06 17:38 ` [PATCH v3 1/8] driver core: add a faux bus for use when a simple device/bus is needed Greg Kroah-Hartman
2025-02-06 18:08 ` Thomas Weißschuh
2025-02-06 20:07 ` Lyude Paul
2025-02-07 9:13 ` Greg Kroah-Hartman
2025-02-07 9:15 ` Greg Kroah-Hartman
2025-02-07 2:54 ` Zijun Hu
2025-02-07 9:16 ` Greg Kroah-Hartman
2025-02-06 17:38 ` [PATCH v3 2/8] regulator: dummy: convert to use the faux device interface Greg Kroah-Hartman
2025-02-06 17:38 ` [PATCH v3 3/8] x86/microcode: move away from using a fake platform device Greg Kroah-Hartman
2025-02-06 17:38 ` [PATCH v3 4/8] wifi: cfg80211: " Greg Kroah-Hartman
2025-02-06 17:38 ` [PATCH v3 5/8] tlclk: convert to use faux_device Greg Kroah-Hartman
2025-02-06 17:38 ` [PATCH v3 6/8] misc: lis3lv02d: " Greg Kroah-Hartman
2025-02-06 17:38 ` [PATCH v3 7/8] drm/vgem/vgem_drv " Greg Kroah-Hartman
2025-02-06 20:04 ` Lyude Paul
2025-02-06 17:38 ` [PATCH v3 8/8] drm/vkms: " Greg Kroah-Hartman
2025-02-06 20:03 ` Lyude Paul
2025-02-07 9:16 ` Greg Kroah-Hartman
2025-02-07 16:59 ` Louis Chauvet
2025-02-08 7:12 ` Greg Kroah-Hartman [this message]
2025-02-08 8:37 ` Louis Chauvet
2025-02-08 8:49 ` Greg Kroah-Hartman
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=2025020855-ventricle-slang-b705@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=Jonathan.Cameron@huawei.com \
--cc=airlied@gmail.com \
--cc=aleksander.lobakin@intel.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=bhelgaas@google.com \
--cc=broonie@kernel.org \
--cc=dakr@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=hamohammed.sa@gmail.com \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=lyude@redhat.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mairacanal@riseup.net \
--cc=melissa.srw@gmail.com \
--cc=mripard@kernel.org \
--cc=quic_zijuhu@quicinc.com \
--cc=rafael@kernel.org \
--cc=robin.murphy@arm.com \
--cc=rust-for-linux@vger.kernel.org \
--cc=simona.vetter@ffwll.ch \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
/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