dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: "Maíra Canal" <mcanal@igalia.com>
To: marius.vlad@collabora.com
Cc: mwen@igalia.com, rodrigosiqueiramelo@gmail.com,
	"Maíra Canal" <mcanal@igalia.com>,
	dri-devel@lists.freedesktop.org, melissa.srw@gmail.com,
	igormtorrente@gmail.com
Subject: Re: [PATCH 2/2] vkms: Add support for multiple connectors
Date: Wed,  5 Apr 2023 10:51:46 -0300	[thread overview]
Message-ID: <20230405135145.305293-1-mcanal@igalia.com> (raw)
In-Reply-To: <20221202142051.136651-3-marius.vlad@collabora.com>

Hi Marius,

> This patch adds support for creating multiple virtual connectors, in
> case one would need it. Use module parameters to specify how many,
> defaulting to just one, allocating from the start, a maximum of 4
> possible outputs.

I got a bit confused by this description. The commit message says that you
are creating multiple connectors, but it seems like you are creating multiple
pipes. From what I could see, for each new connector created, you are also
creating a new CRTC and new planes.

Moreover, if your real intention is to create multiple pipes, I believe that
you don't really need to duplicate the planes as well.

I ran the VKMS CI [1] with your patches applied and, although most of the 
tests are now passing with multiple pipes, which is really nice, the test
kms_writeback crashes with the following error:

[ 1997.244347] [IGT] kms_writeback: starting subtest writeback-check-output
[ 1997.250673] BUG: kernel NULL pointer dereference, address: 000000000000016c
[ 1997.250691] #PF: supervisor read access in kernel mode
[ 1997.250693] #PF: error_code(0x0000) - not-present page
[ 1997.250694] PGD 800000001a877067 P4D 800000001a877067 PUD 1a872067 PMD 0
[ 1997.250697] Oops: 0000 [#1] PREEMPT SMP PTI
[ 1997.250699] CPU: 2 PID: 3223 Comm: kms_writeback Not tainted 6.3.0-rc4-g8c2c29ba129f-dirty #257
[ 1997.250701] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-1.fc37 04/01/2014
[ 1997.250703] RIP: 0010:drm_vblank_get+0xa/0xe0
[ 1997.250710] Code: a9 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 55 41 57 41 56 41 55 41 54 53 <8b> 87 6c 01 00 00 41 bc ea ff ff ff 85 c0 74 74 89 f5 48 89 fb 39
[ 1997.250712] RSP: 0018:ffffb84d407a3b08 EFLAGS: 00010202
[ 1997.250714] RAX: 0000000000000000 RBX: ffffa2eb02bf8b70 RCX: 0000000000000000
[ 1997.250718] RDX: ffffa2eb180d2420 RSI: 0000000000000000 RDI: 0000000000000000
[ 1997.250719] RBP: ffffa2eb02bf99e8 R08: 0000000000000036 R09: ffffa2eb01d620c0
[ 1997.250720] R10: ffffe82b84027e40 R11: ffffffffc0042520 R12: ffffa2eb01c01900
[ 1997.250721] R13: ffffa2eb02bf9b60 R14: 0000000000000001 R15: ffffa2ea1ecd6b80
[ 1997.250722] FS:  00007f7d44e89a80(0000) GS:ffffa2eb3bd00000(0000) knlGS:0000000000000000
[ 1997.250723] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 1997.250725] CR2: 000000000000016c CR3: 000000001ec02000 CR4: 00000000000006e0
[ 1997.250728] Call Trace:
[ 1997.250735]  <TASK>
[ 1997.250736]  vkms_set_composer+0x18/0x60 [vkms]
[ 1997.250745]  vkms_wb_atomic_commit+0x93/0x150 [vkms]
[ 1997.250749]  drm_atomic_helper_commit_modeset_enables+0x1d9/0x250
[ 1997.250754]  vkms_atomic_commit_tail+0x33/0xb0 [vkms]
[ 1997.250758]  commit_tail+0x8d/0x170
[ 1997.250761]  drm_atomic_helper_commit+0x26b/0x280
[ 1997.250763]  drm_atomic_commit+0x9f/0xc0
[ 1997.250766]  ? __pfx___drm_printfn_info+0x10/0x10
[ 1997.250769]  drm_mode_atomic_ioctl+0x34c/0x480
[ 1997.250771]  ? __pfx_drm_mode_atomic_ioctl+0x10/0x10
[ 1997.250773]  drm_ioctl_kernel+0xd7/0x150
[ 1997.250780]  drm_ioctl+0x31f/0x490
[ 1997.250781]  ? __pfx_drm_mode_atomic_ioctl+0x10/0x10
[ 1997.250783]  __se_sys_ioctl+0x6d/0xb0
[ 1997.250789]  do_syscall_64+0x43/0x90
[ 1997.250795]  entry_SYSCALL_64_after_hwframe+0x72/0xdc

[1] https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/tree/master/tests/vkms_ci

Best Regards,
- Maíra Canal

> 
> This is of particular importance when testing out the DRM backend in
> compositors, but also to be able to independently handle multiple
> outputs/connectors, like setting one to off/sleep on while the others
> are on, and combinations that arise from that.
> 
> Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
> ---
>  drivers/gpu/drm/vkms/vkms_crtc.c      |  3 +--
>  drivers/gpu/drm/vkms/vkms_drv.c       | 26 ++++++++++++++++++++++----
>  drivers/gpu/drm/vkms/vkms_drv.h       |  8 +++++---
>  drivers/gpu/drm/vkms/vkms_output.c    |  5 ++---
>  drivers/gpu/drm/vkms/vkms_writeback.c | 18 ++++++++----------
>  5 files changed, 38 insertions(+), 22 deletions(-)
> 

  reply	other threads:[~2023-04-05 13:53 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-02 14:20 [PATCH 0/2] vkms: Add support for multiple connectors Marius Vlad
2022-12-02 14:20 ` [PATCH 1/2] vkms: Pass the correct bitmask for possible crtcs Marius Vlad
2022-12-02 14:20 ` [PATCH 2/2] vkms: Add support for multiple connectors Marius Vlad
2023-04-05 13:51   ` Maíra Canal [this message]
2023-04-06  9:17     ` Marius Vlad
2023-04-06 11:29       ` Thomas Zimmermann
2023-04-06 14:04         ` Marius Vlad
2023-04-06 14:18           ` Thomas Zimmermann
2023-04-10 18:17           ` Melissa Wen
2023-04-20  8:44             ` Marius Vlad
2023-04-06 10:32     ` Thomas Zimmermann

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=20230405135145.305293-1-mcanal@igalia.com \
    --to=mcanal@igalia.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=igormtorrente@gmail.com \
    --cc=marius.vlad@collabora.com \
    --cc=melissa.srw@gmail.com \
    --cc=mwen@igalia.com \
    --cc=rodrigosiqueiramelo@gmail.com \
    /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;
as well as URLs for NNTP newsgroup(s).