Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "José Expósito" <jose.exposito89@gmail.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Louis Chauvet <louis.chauvet@bootlin.com>,
	igt-dev@lists.freedesktop.org,
	Thomas Zimmermann <tzimmermann@suse.de>
Subject: Re: [PATCH i-g-t 20/39] tests/vkms_configfs: Test enablement without pipeline items
Date: Fri, 28 Feb 2025 12:58:28 +0100	[thread overview]
Message-ID: <Z8Gk5K_1d-sZDjgh@fedora> (raw)
In-Reply-To: <2025022715-steadfast-captive-f171@gregkh>

Hi everyone,

On Thu, Feb 27, 2025 at 05:47:59PM -0800, Greg Kroah-Hartman wrote:
> On Thu, Feb 27, 2025 at 02:06:23PM +0100, Louis Chauvet wrote:
> > 
> > 
> > Le 18/02/2025 à 17:49, José Expósito a écrit :
> > > It shouldn't be possible to enable a device without creating and
> > > attaching its pipeline items.
> > > 
> > > Test that the device is not enabled and also that no actual device was
> > > created using libdrm.
> > > 
> > > Signed-off-by: José Expósito <jose.exposito89@gmail.com>
> > > ---
> > >   tests/vkms/vkms_configfs.c | 60 ++++++++++++++++++++++++++++++++++++++
> > >   1 file changed, 60 insertions(+)
> > > 
> > > diff --git a/tests/vkms/vkms_configfs.c b/tests/vkms/vkms_configfs.c
> > > index dc3dbe80d..87d660fff 100644
> > > --- a/tests/vkms/vkms_configfs.c
> > > +++ b/tests/vkms/vkms_configfs.c
> > > @@ -108,6 +108,42 @@ static bool attach(const char *src_path, const char *dst_path,
> > >   	return ret == 0;
> > >   }
> > > +static drmDevicePtr find_device(const char *name, drmDevicePtr *devices,
> > > +				int n_devices)
> > > +{
> > > +	drmDevicePtr dev;
> > > +	const char *dev_name;
> > > +
> > > +	for (int i = 0; i < n_devices; i++) {
> > > +		dev = devices[i];
> > > +
> > > +		if (!(dev->available_nodes & BIT(DRM_NODE_PRIMARY)))
> > > +			continue;
> > > +
> > > +		if (dev->bustype != DRM_BUS_PLATFORM)
> > > +			continue;
> > 
> > Hummm, I think this may have issues with the change proposed by Greg in [1],
> > I don't know how the drmDevicePtr should look like with the new faux_device
> > struct.
> > 
> > The declaration in xf86drm.h is:
> > 
> > typedef struct _drmDevice {
> >     char **nodes; /* DRM_NODE_MAX sized array */
> >     int available_nodes; /* DRM_NODE_* bitmask */
> >     int bustype;
> >     union {
> >         drmPciBusInfoPtr pci;
> >         drmUsbBusInfoPtr usb;
> >         drmPlatformBusInfoPtr platform;
> >         drmHost1xBusInfoPtr host1x;
> >     } businfo;
> >     union {
> >         drmPciDeviceInfoPtr pci;
> >         drmUsbDeviceInfoPtr usb;
> >         drmPlatformDeviceInfoPtr platform;
> >         drmHost1xDeviceInfoPtr host1x;
> >     } deviceinfo;
> > } drmDevice, *drmDevicePtr;
> 
> Why does a drm device care about what type of "bus" it lives on?  That's
> not the user/kernel api to the drm device, the drm api is the way the
> device is handled.
> 
> Why not just treat it like any other "new bus" that gets written?  What
> happens if a bus type shows up in the kernel that no one has seen yet in
> this userspace code, and exposes a drm device node?  Why would that not
> "just work"?
> 
> thanks,
> 
> greg k-h

I already commented in the kernel ML [1], but I'm dropping a comment
here as well in case someone is following this thread.

drmGetDevices() doesn't return the devices in the faux bus, and libdrm
would need to be updated to handle the new bus.

To avoid blocking this series, I'll try to get the VKMS device using
udev in v2, following the approach taken by Mutter.

Let me know if you known a better API to solve this issue, please.

Thanks,
Jose

[1] https://lore.kernel.org/all/Z8Gduj1cDdCYzaBY@fedora/T/#m3fa9b60d5f637ebb0352366c605b94822fc45788

  reply	other threads:[~2025-02-28 14:02 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-18 16:49 [PATCH i-g-t 00/39] VKMS configfs tests José Expósito
2025-02-18 16:49 ` [PATCH i-g-t 01/39] lib/drmtest: Add VKMS as a known driver type José Expósito
2025-02-27 13:12   ` Louis Chauvet
2025-03-13 17:22     ` José Expósito
2025-02-18 16:49 ` [PATCH i-g-t 02/39] lib/igt_debugfs: Move is_mountpoint() to igt_aux José Expósito
2025-02-27 13:12   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 03/39] lib/igt_configfs: Add helper to mount configfs José Expósito
2025-02-27 13:14   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 04/39] lib/vkms: Add minimal VKMS library and test device default files José Expósito
2025-02-27 13:12   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 05/39] lib/vkms: Allow to enable/disable VKMS devices José Expósito
2025-02-27 13:15   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 06/39] tests/vkms_configfs: Test device invalid values José Expósito
2025-02-27 13:14   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 07/39] lib/vkms: Test plane default files José Expósito
2025-02-27 13:15   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 08/39] lib/vkms: Test plane default values José Expósito
2025-02-27 13:15   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 09/39] lib/vkms: Test plane invalid values José Expósito
2025-02-27 13:14   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 10/39] lib/vkms: Test CRTC default files José Expósito
2025-02-27 13:15   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 11/39] lib/vkms: Test CRTC default values José Expósito
2025-02-27 13:12   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 12/39] lib/vkms: Test CRTC invalid values José Expósito
2025-02-27 13:12   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 13/39] lib/vkms: Test encoder default files José Expósito
2025-02-27 13:14   ` Louis Chauvet
2025-03-13 17:25     ` José Expósito
2025-02-18 16:49 ` [PATCH i-g-t 14/39] lib/vkms: Test connector " José Expósito
2025-02-18 16:49 ` [PATCH i-g-t 15/39] lib/vkms: Test connector default values José Expósito
2025-02-18 16:49 ` [PATCH i-g-t 16/39] lib/vkms: Test plane connector invalid values José Expósito
2025-02-27 13:12   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 17/39] lib/vkms: Test attaching planes to CRTCs José Expósito
2025-02-27 13:15   ` Louis Chauvet
2025-03-13 17:23     ` José Expósito
2025-02-18 16:49 ` [PATCH i-g-t 18/39] lib/vkms: Test attaching encoders " José Expósito
2025-02-18 16:49 ` [PATCH i-g-t 19/39] lib/vkms: Test attaching connectors to encoders José Expósito
2025-02-18 16:49 ` [PATCH i-g-t 20/39] tests/vkms_configfs: Test enablement without pipeline items José Expósito
2025-02-27 13:06   ` Louis Chauvet
2025-02-28  1:47     ` Greg Kroah-Hartman
2025-02-28 11:58       ` José Expósito [this message]
2025-02-18 16:49 ` [PATCH i-g-t 21/39] lib/vkms: Create VKMS device from static config José Expósito
2025-02-27 14:30   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 22/39] tests/vkms_configfs: Test adding too many planes José Expósito
2025-02-27 14:53   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 23/39] tests/vkms_configfs: Test not adding a primary plane José Expósito
2025-02-27 14:54   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 24/39] tests/vkms_configfs: Test adding multiple primary planes José Expósito
2025-02-27 15:00   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 25/39] tests/vkms_configfs: Test adding multiple cursor planes José Expósito
2025-02-27 15:00   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 26/39] tests/vkms_configfs: Test adding a plane without possible CRTCs José Expósito
2025-02-27 15:01   ` Louis Chauvet
2025-02-18 16:49 ` [PATCH i-g-t 27/39] tests/vkms_configfs: Test enabling a device without CRTCs José Expósito
2025-02-27 15:15   ` Louis Chauvet
2025-02-18 16:50 ` [PATCH i-g-t 28/39] tests/vkms_configfs: Test enabling a device with too many CRTCs José Expósito
2025-02-27 15:05   ` Louis Chauvet
2025-02-18 16:50 ` [PATCH i-g-t 29/39] tests/vkms_configfs: Test enabling a device without encoders José Expósito
2025-02-27 15:05   ` Louis Chauvet
2025-02-18 16:50 ` [PATCH i-g-t 30/39] tests/vkms_configfs: Test enabling a device with too many encoders José Expósito
2025-02-27 15:05   ` Louis Chauvet
2025-02-18 16:50 ` [PATCH i-g-t 31/39] tests/vkms_configfs: Test adding an encoder without possible CRTCs José Expósito
2025-02-27 15:15   ` Louis Chauvet
2025-02-18 16:50 ` [PATCH i-g-t 32/39] tests/vkms_configfs: Test adding a CRTC without encoders José Expósito
2025-02-27 15:15   ` Louis Chauvet
2025-02-18 16:50 ` [PATCH i-g-t 33/39] tests/vkms_configfs: Test enabling a device without connectors José Expósito
2025-02-27 15:15   ` Louis Chauvet
2025-02-18 16:50 ` [PATCH i-g-t 34/39] tests/vkms_configfs: Test enabling a device with too many connectors José Expósito
2025-02-27 15:15   ` Louis Chauvet
2025-02-18 16:50 ` [PATCH i-g-t 35/39] lib/vkms: Test changing enabled device planes José Expósito
2025-02-28  8:51   ` Louis Chauvet
2025-02-28 11:52     ` José Expósito
2025-02-28 22:15       ` Louis Chauvet
2025-02-18 16:50 ` [PATCH i-g-t 36/39] lib/vkms: Test changing enabled device CRTCs José Expósito
2025-02-18 16:50 ` [PATCH i-g-t 37/39] lib/vkms: Test changing enabled device encoders José Expósito
2025-02-18 16:50 ` [PATCH i-g-t 38/39] lib/vkms: Test changing enabled device connectors José Expósito
2025-02-18 16:50 ` [PATCH i-g-t 39/39] tests/vkms_configfs: Test connector hot-plug José Expósito
2025-02-28  8:51   ` Louis Chauvet
2025-02-27 13:11 ` [PATCH i-g-t 00/39] VKMS configfs tests Louis Chauvet
2025-02-28 21:22 ` ✓ Xe.CI.BAT: success for VKMS configfs tests (rev3) Patchwork
2025-02-28 21:25 ` ✓ i915.CI.BAT: " Patchwork
2025-03-01  5:04 ` ✗ Xe.CI.Full: failure " Patchwork
2025-03-01  9:43 ` ✗ i915.CI.Full: " Patchwork

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=Z8Gk5K_1d-sZDjgh@fedora \
    --to=jose.exposito89@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=louis.chauvet@bootlin.com \
    --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