Request for info regarding mst connected devices

appu s appushan131186 at gmail.com
Wed Jan 11 05:49:01 UTC 2023


Dear All,

Happy new year! and very glad to meet you all!, as I am newbie to DRM
susbsytem, seeking for some help please, in understanding some of the below
info regarding DRM

1. May I know please , what could be going wrong based on the attached
errors, any debug information, like anywhere can I print the atomic states.
What is the api to do that please? or  that I can add further to narrow
down the below errors please ? & may I know what is the connection between
these 2 signatures below please?

[  165.434510] RIP: 0010:drm_dp_atomic_release_vcpi_slots+0x90/0xb4

[  165.434849] RIP: 0010:drm_framebuffer_remove+0x34d/0x478

I see the above issue, when I unplugged the same mst dock with external
displays connected which was plugged initially.

2. trying to understand the below api, "drm_dp_atomic_release_vcpi_slots",
could anyone please correct if my understanding is incorrect please based
on comment below:

/**
 * drm_dp_atomic_release_vcpi_slots() - Release allocated vcpi slots
 * @state: global atomic state
 * @mgr: MST topology manager for the port
 * @port: The port to release the VCPI slots from
 *
 * Releases any VCPI slots that have been allocated to a port in the atomic
 * state. Any atomic drivers which support MST must call this function in
 * their &drm_connector_helper_funcs.atomic_check() callback when the
 * connector will no longer have VCPI allocated (e.g. because its CRTC was
 * removed) when it had VCPI allocated in the previous atomic state.
 *
 * It is OK to call this even if @port has been removed from the system.
 * Additionally, it is OK to call this function multiple times on the same
 * @port as needed. It is not OK however, to call this function and
 * drm_dp_atomic_find_vcpi_slots() on the same @port in a single atomic
check
 * phase.
 *
 * See also:
 * drm_dp_atomic_find_vcpi_slots()
 * drm_dp_mst_atomic_check()
 *
 * Returns:
 * 0 if all slots for this port were added back to
 * &drm_dp_mst_topology_state.avail_slots or negative error code
 */

1. The term "vcpi slots" is equivalent to here is the number of display
devices connected over mst?

2. somewhere vcpi allocation is not getting freed, any quick tweaks or
hacks please, how can I quickly try to release or free vcpi allocations,
when it is removed or unplugged, but my worries is whether any of it is
previous atomic state would get affected or impacts or cause any issues due
to its freeing?

3. Could anyone please once again explain this portion of the comment "It
is not OK however, to call this function and
 * drm_dp_atomic_find_vcpi_slots() on the same @port in a single atomic
check
 * phase."?

Many thanks in advance,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20230111/950c1f7b/attachment.htm>
-------------- next part --------------
[  165.434342] ------------[ cut here ]------------
[  165.434352] [drm:customsoc_ih_process] customsoc_ih_process: rptr 20832, wptr 20864
[  165.434350] WARNING: CPU: 0 PID: 6207 at drivers/gpu/drm/display/drm_dp_mst_topology.c:4483 drm_dp_atomic_release_vcpi_slots+0x90/0xb4
[  165.434360] Modules linked in: r8153_ecm snd_usb_audio snd_usbmidi_lib snd_rawmidi snd_seq_dummy snd_seq snd_seq_device option cdc_mbim usb_wwan usbserial
[  165.434374] [drm:customsoc_get_vblank_counter_kms] crtc 2: dist from vblank start 5
[  165.434380]  cdc_wdm cdc_ncm bridge stp
[  165.434381] customsoc 0000:04:00.0: [drm:drm_crtc_vblank_helper_get_vblank_timestamp_internal] crtc 2 : v p(1810,-56)@ 142.488927 -> 142.489344 [e 2 us, 0 rep]
[  165.434387]  llc tun vhost_vsock vhost
[  165.434391] [drm:customsocgpu_get_vblank_counter_kms] crtc 2: dist from vblank start 7
[  165.434391]  vhost_iotlb vmw_vsock_virtio_transport_common vsock
[  165.434394] customsocgpu 0000:04:00.0: [drm:drm_update_vblank_count] updating vblank count on crtc 2: current=5650, diff=1, hw=1190 hw_last=1189
[  165.434398]  8021q rfcomm cmac algif_hash algif_skcipher af_alg veth uinput xt_cgroup snd_acp_sof_mach snd_acp_mach snd_soc_dmic xt_MASQUERADE snd_hda_codec_hdmi snd_hda_intel btusb snd_sof_customsoc_rembrandt snd_intel_dspcfg btrtl snd_sof_customsoc_acp snd_hda_codec btintel btmtk snd_sof_xtensa_dsp snd_sof_pci snd_hwdep btbcm snd_sof snd_sof_utils snd_hda_core snd_rn_pci_acp3x snd_acp_config snd_soc_acpi snd_pci_acp3x cdc_ether usbnet i2c_piix4 snd_soc_rt5682s snd_soc_rt1019 snd_soc_rl6231 ip6table_nat fuse rtw89_8852ce rtw89_8852c rtw89_pci rtw89_core iio_trig_sysfs mac80211 cros_ec_lid_angle cros_ec_sensors cros_ec_sensors_core industrialio_triggered_buffer kfifo_buf bluetooth industrialio r8152 cfg80211 ecdh_generic ecc cros_ec_sensorhub mii lzo_rle lzo_compress zram uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common joydev
[  165.434487] CPU: 0 PID: 6207 Comm: kworker/0:31 Tainted: G        W         5.15.86-15717-ga43324a33237-dirty #23 f72b4797b41c134d4334983e154d2e878f9925d6
[  165.434501] Workqueue: events drm_mode_rmfb_work_fn
[  165.434510] RIP: 0010:drm_dp_atomic_release_vcpi_slots+0x90/0xb4
[  165.434516] Code: f1 b1 fd ff 83 7b f0 00 74 10 4c 89 e7 e8 f6 d2 ff ff 48 c7 43 f0 00 00 00 00 44 89 f0 5b 41 5c 41 5e 41 5f 5d e9 0b 72 b8 00 <0f> 0b 49 8b 47 58 48 8b 78 08 48 c7 c6 f7 19 45 8d 4c 89 e2 4c 89
[  165.434521] RSP: 0018:ffff939a03f53b20 EFLAGS: 00010246
[  165.434526] RAX: ffff8aa48c028b50 RBX: ffff8aa48c028b50 RCX: bd851d50380fce00
[  165.434531] RDX: 0000000000000000 RSI: 00000000ff7fffff RDI: 0000000000000001
[  165.434534] RBP: ffff939a03f53b40 R08: 0000000000000000 R09: ffff939a03f53758
[  165.434538] R10: 00000000ff7fffff R11: ffff8aa676340000 R12: ffff8aa60c575800
[  165.434541] R13: ffff8aa5ceb46000 R14: ffff8aa48c028b40 R15: ffff8aa5836ec7b0
[  165.434546] FS:  0000000000000000(0000) GS:ffff8aa66e000000(0000) knlGS:0000000000000000
[  165.434551] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  165.434555] CR2: 000074d54280e000 CR3: 00000001164b8000 CR4: 0000000000350ef0
[  165.434560] Call Trace:
[  165.434570]  <TASK>
[  165.434579]  drm_atomic_helper_check_modeset+0x504/0x923
[  165.434586]  customsocgpu_dm_atomic_check+0xad/0xc2e
[  165.434594]  ? _dev_printk+0x60/0x7e
[  165.434602]  ? drm_atomic_check_only+0x43/0x98f
[  165.434609]  drm_atomic_check_only+0x3ee/0x98f
[  165.434616]  ? drm_atomic_connector_print_state+0x63/0xbf
[  165.434623]  drm_atomic_commit+0xa2/0x105
[  165.434630]  ? __drm_printfn_info+0x1d/0x1d
[  165.434636]  drm_framebuffer_remove+0x299/0x478
[  165.434644]  drm_mode_rmfb_work_fn+0x76/0x86
[  165.434651]  process_one_work+0x1da/0x342
[  165.434659]  worker_thread+0x25c/0x373
[  165.434665]  kthread+0x13d/0x153
[  165.434671]  ? pr_cont_work+0x54/0x54
[  165.434674]  ? kthread_blkcg+0x31/0x31
[  165.434680]  ret_from_fork+0x22/0x30
[  165.434689]  </TASK>
[  165.434692] ---[ end trace cbab957e75309463 ]---
[  165.434697] customsocgpu 0000:04:00.0: [drm] *ERROR* no VCPI for [MST PORT:0000000052ace186] found in mst state 000000002e25a21e
[  165.434703] [drm:customsocgpu_dm_atomic_check] drm_atomic_helper_check_modeset() failed
[  165.434709] [drm:customsocgpu_dm_atomic_check] Atomic check failed with err: -22
[  165.434714] customsocgpu 0000:04:00.0: [drm:drm_atomic_check_only] atomic driver check for 00000000efb673d1 failed: -22
[  165.434719] customsocgpu 0000:04:00.0: [drm:drm_atomic_state_default_clear] Clearing atomic state 00000000efb673d1
[  165.434724] [drm:drm_mode_object_put] OBJ ID: 119 (2)
[  165.434727] [drm:drm_mode_object_put] OBJ ID: 117 (3)
[  165.434731] customsocgpu 0000:04:00.0: [drm:__drm_atomic_state_free] Freeing atomic state 00000000efb673d1
[  165.434735] ------------[ cut here ]------------
[  165.434739] atomic remove_fb failed with -22
[  165.434750] WARNING: CPU: 0 PID: 6207 at drivers/gpu/drm/drm_framebuffer.c:1130 drm_framebuffer_remove+0x34d/0x478
[  165.434757] Modules linked in: r8153_ecm snd_usb_audio snd_usbmidi_lib snd_rawmidi snd_seq_dummy snd_seq snd_seq_device option cdc_mbim usb_wwan usbserial cdc_wdm cdc_ncm bridge stp llc tun vhost_vsock vhost vhost_iotlb vmw_vsock_virtio_transport_common vsock 8021q rfcomm cmac algif_hash algif_skcipher af_alg veth uinput xt_cgroup snd_acp_sof_mach snd_acp_mach snd_soc_dmic xt_MASQUERADE snd_hda_codec_hdmi snd_hda_intel btusb snd_sof_customsoc_rembrandt snd_intel_dspcfg btrtl snd_sof_customsoc_acp snd_hda_codec btintel btmtk snd_sof_xtensa_dsp snd_sof_pci snd_hwdep btbcm snd_sof snd_sof_utils snd_hda_core snd_rn_pci_acp3x snd_acp_config snd_soc_acpi snd_pci_acp3x cdc_ether usbnet i2c_piix4 snd_soc_rt5682s snd_soc_rt1019 snd_soc_rl6231 ip6table_nat fuse rtw89_8852ce rtw89_8852c rtw89_pci rtw89_core iio_trig_sysfs mac80211 cros_ec_lid_angle cros_ec_sensors cros_ec_sensors_core industrialio_triggered_buffer kfifo_buf bluetooth industrialio r8152 cfg80211 ecdh_generic ecc cros_ec_sensorhub mii lzo_rle
[  165.434822]  lzo_compress zram uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common joydev
[  165.434834] CPU: 0 PID: 6207 Comm: kworker/0:31 Tainted: G        W         5.15.86-15717-ga43324a33237-dirty #23 f72b4797b41c134d4334983e154d2e878f9925d6
[  165.434843] Workqueue: events drm_mode_rmfb_work_fn
[  165.434849] RIP: 0010:drm_framebuffer_remove+0x34d/0x478
[  165.434854] Code: 89 ef be 03 00 00 00 e8 6a 58 ea ff eb be 45 85 e4 48 8b 5d 88 0f 84 00 01 00 00 48 c7 c7 e2 aa 4e 8d 44 89 e6 e8 18 10 ac ff <0f> 0b e9 ea 00 00 00 4c 8b 33 4c 89 f7 e8 e6 b1 ff ff 4d 8d be d8
[  165.434859] RSP: 0018:ffff939a03f53da8 EFLAGS: 00010246
[  165.434862] RAX: bd851d50380fce00 RBX: ffff8aa488e5af00 RCX: 0000000000000027
[  165.434866] RDX: 0000000000000027 RSI: 00000000ff7fffff RDI: ffff8aa66e016d88
[  165.434870] RBP: ffff939a03f53e40 R08: 0000000000000000 R09: ffff939a03f53b80
[  165.434873] R10: 00000000ff7fffff R11: ffff8aa676340000 R12: 00000000ffffffea
[  165.434877] R13: ffff8aa5af029900 R14: 0000000000000007 R15: ffff939a03f53dd0
[  165.434882] FS:  0000000000000000(0000) GS:ffff8aa66e000000(0000) knlGS:0000000000000000
[  165.434886] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  165.434890] CR2: 000074d54280e000 CR3: 00000001164b8000 CR4: 0000000000350ef0
[  165.434893] Call Trace:
[  165.434896]  <TASK>
[  165.434900]  drm_mode_rmfb_work_fn+0x76/0x86
[  165.434906]  process_one_work+0x1da/0x342
[  165.434911]  worker_thread+0x25c/0x373
[  165.434916]  kthread+0x13d/0x153
[  165.434921]  ? pr_cont_work+0x54/0x54
[  165.434925]  ? kthread_blkcg+0x31/0x31
[  165.434931]  ret_from_fork+0x22/0x30
[  165.434936]  </TASK>
[  165.434940] ---[ end trace cbab957e75309464 ]---


More information about the dri-devel mailing list