[PATCH v2 1/2] drm/crtc: fix connector reference counting mismatch in drm_crtc_helper_set_config
Daniel Vetter
daniel at ffwll.ch
Tue Jun 14 16:03:14 UTC 2016
On Tue, Jun 14, 2016 at 04:51:27PM +0200, Philipp Zabel wrote:
> Am Dienstag, den 14.06.2016, 13:57 +0200 schrieb Lucas Stach:
> > Am Montag, den 13.06.2016, 20:18 +0200 schrieb Daniel Vetter:
> > [...]
> > > > > > Only the reference count of connectors that weren't previously bound to
> > > > > > an encoder should be incremented after a call to drm_crtc_helper_set_config.
> > > > > > And only the reference count of connectors that were previously bound to
> > > > > > an encoder and are unbound afterwards should ever be decremented.
> > > > > > The reference counts of the temporary copies in the save_connectors
> > > > > > should not be touched at all.
> > > > > >
> > > > > > This patch fixes the above error by only incrementing the reference count
> > > > > > of those connectors in the set that are initially not bound to any encoder,
> > > > > > and also by restoring the reference count of only those connectors in the
> > > > > > set in the failure case.
> > > > > >
> > > > > > Fixes: 0955c1250e96 ("drm/crtc: take references to connectors used in a modeset. (v2)")
> > > > > > Signed-off-by: Philipp Zabel <p.zabel at pengutronix.de>
> > > > >
> > > > > I'd like to analyze this bug first a bit more (since it seems to be imx
> > > > > specific) before review/merging, per our ongoing discussion. The current
> > > > > code is definitely wrong, but looking at it I more expected a leak (since
> > > > > we decrement saved structures, not the real ones), not an explosion.
> > > > > -Daniel
> > > > >
> > > > There is a regression bug open against nouveau, which shows the same
> > > > symptoms and is fixed by these patches.
> > > >
> > > > https://bugzilla.kernel.org/show_bug.cgi?id=119861
> > > >
> > > > It is not specific to imx-drm, but doesn't explode on desktop system
> > > > right away, probably due to the FB emulation holding a reference to all
> > > > connectors.
> > >
> > > Sensible theory. Can you confirm that enabling fbdev emulation on imx
> > > works around this?
> >
> > Yes, we are unable to reproduce the issue if fbdev emulation is enabled.
>
> And contrary to what I expected, the connector reference counts don't
> decrease, but increase over time with fbdev emulation enabled.
That's actually entirely expected, since we only ever decrement it on the
copy, which then gets kfreed. It all makes sense now. Will review the
patches onces more and then Dave can pick them up tomorrow.
-Daniel
>
> ---------->8----------
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index bceb31c..62c9299 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -364,6 +364,7 @@ static struct drm_mode_object *_object_find(struct drm_device *dev,
> obj = NULL;
>
> if (obj && obj->free_cb) {
> + DRM_DEBUG("OBJ ID: %d (%d)\n", obj->id, atomic_read(&obj->refcount.refcount));
> if (!kref_get_unless_zero(&obj->refcount))
> obj = NULL;
> }
> ----------8<----------
>
> Initially:
>
> [ 1.697118] [drm:drm_minor_register]
> [ 1.697136] [drm:drm_minor_register]
> [ 1.698860] [drm:drm_minor_register] new minor registered 128
> [ 1.698878] [drm:drm_minor_register]
> [ 1.700011] [drm:drm_minor_register] new minor registered 0
> [ 1.949582] [drm:drm_platform_init]
> [ 1.949601] [drm:drm_get_platform_dev]
> [ 1.949775] [drm:drm_minor_register]
> [ 1.950938] [drm:drm_minor_register] new minor registered 64
> [ 1.950956] [drm:drm_minor_register]
> [ 1.950972] [drm:drm_minor_register]
> [ 1.951896] [drm:drm_minor_register] new minor registered 1
> [ 2.030970] [drm:drm_sysfs_connector_add] adding "HDMI-A-1" to sysfs
> [ 2.030991] [drm:drm_sysfs_hotplug_event] generating hotplug event
> [ 2.031581] [drm:drm_sysfs_connector_add] adding "LVDS-1" to sysfs
> [ 2.031601] [drm:drm_sysfs_hotplug_event] generating hotplug event
> [ 2.031850] [drm:drm_mode_object_reference] OBJ ID: 34 (1)
> [ 2.031875] [drm:drm_mode_object_reference] OBJ ID: 36 (1)
> [ 2.031901] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:34:HDMI-A-1]
> [ 2.079442] [drm:drm_detect_monitor_audio] Monitor has basic audio support
> [ 2.080453] [drm:drm_assign_hdmi_deep_color_info] HDMI-A-1: No deep color support on this HDMI sink.
> [ 2.080477] [drm:drm_edid_to_eld] ELD monitor SyncMaster
> [ 2.080517] [drm:drm_edid_to_eld] ELD size 36, SAD count 1
> [ 2.080787] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:34:HDMI-A-1] probed modes :
> [ 2.080813] [drm:drm_mode_debug_printmodeline] Modeline 38:"1920x1200" 60 154000 1920 1968 2000 2080 1200 1203 1209 1235 0x48 0x9
> [ 2.080837] [drm:drm_mode_debug_printmodeline] Modeline 39:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x40 0x5
> [...]
> [ 2.081478] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1]
> [ 2.081497] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1] status updated from unknown to connected
> [ 2.081535] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1] probed modes :
> [ 2.081559] [drm:drm_mode_debug_printmodeline] Modeline 63:"1280x800" 60 71100 1280 1281 1439 1440 800 801 822 823 0x40 0x0
> [ 2.081576] [drm:drm_setup_crtcs]
> [ 2.081601] [drm:drm_enable_connectors] connector 34 enabled? yes
> [ 2.081618] [drm:drm_enable_connectors] connector 36 enabled? yes
> [ 2.081636] [drm:drm_target_preferred] looking for cmdline mode on connector 34
> [ 2.081653] [drm:drm_target_preferred] looking for preferred mode on connector 34 0
> [ 2.081668] [drm:drm_target_preferred] found mode 1920x1200
> [ 2.081684] [drm:drm_target_preferred] looking for cmdline mode on connector 36
> [ 2.081699] [drm:drm_target_preferred] looking for preferred mode on connector 36 0
> [ 2.081714] [drm:drm_target_preferred] found mode 1280x800
> [ 2.081731] [drm:drm_setup_crtcs] picking CRTCs for 4096x4096 config
> [ 2.081778] [drm:drm_setup_crtcs] desired mode 1920x1200 set on crtc 24 (0,0)
> [ 2.081804] [drm:drm_setup_crtcs] desired mode 1280x800 set on crtc 27 (0,0)
> [ 2.081842] [drm:drm_fbdev_cma_create_with_funcs] surface width(1920), height(1200) and bpp(16)
> [ 2.101869] [drm:drm_crtc_helper_set_config]
> [ 2.101883] [drm:drm_crtc_helper_set_config] [CRTC:24:crtc-0] [FB:67] #connectors=1 (x y) (0 0)
> [ 2.101901] [drm:drm_crtc_helper_set_config] crtc has no fb, full mode set
> [ 2.101910] [drm:drm_crtc_helper_set_config] modes are different, full mode set
> [ 2.101923] [drm:drm_mode_debug_printmodeline] Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
> [ 2.101939] [drm:drm_mode_debug_printmodeline] Modeline 64:"1920x1200" 60 154000 1920 1968 2000 2080 1200 1203 1209 1235 0x48 0x9
> [ 2.101947] [drm:drm_mode_object_reference] OBJ ID: 34 (2)
> [ 2.101956] [drm:drm_crtc_helper_set_config] encoder changed, full mode switch
> [ 2.101963] [drm:drm_crtc_helper_set_config] crtc changed, full mode switch
> [ 2.101972] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
> [ 2.101982] [drm:drm_crtc_helper_set_config] attempting to set mode from userspace
> [ 2.101994] [drm:drm_mode_debug_printmodeline] Modeline 64:"1920x1200" 60 154000 1920 1968 2000 2080 1200 1203 1209 1235 0x48 0x9
> [ 2.102032] [drm:drm_crtc_helper_set_mode] [CRTC:24:crtc-0]
> [ 2.103022] [drm:drm_crtc_helper_set_mode] [ENCODER:33:TMDS-33] set [MODE:64:1920x1200]
> [ 2.122426] [drm:drm_calc_timestamping_constants] crtc 24: hwmode: htotal 2080, vtotal 1235, vdisplay 1200
> [ 2.122437] [drm:drm_calc_timestamping_constants] crtc 24: clock 154000 kHz framedur 16680519 linedur 13506
> [ 2.122457] [drm:drm_crtc_helper_set_config] Setting connector DPMS state to on
> [ 2.122465] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] set DPMS on
> [ 2.122478] [drm:drm_mode_object_unreference] OBJ ID: 34 (2)
> [ 2.122485] [drm:drm_mode_object_unreference] OBJ ID: 36 (2)
> [ 2.122507] [drm:drm_crtc_helper_set_config]
> [ 2.122517] [drm:drm_crtc_helper_set_config] [CRTC:27:crtc-1] [FB:67] #connectors=1 (x y) (0 0)
> [ 2.122531] [drm:drm_crtc_helper_set_config] crtc has no fb, full mode set
> [ 2.122538] [drm:drm_crtc_helper_set_config] modes are different, full mode set
> [ 2.122549] [drm:drm_mode_debug_printmodeline] Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
> [ 2.122563] [drm:drm_mode_debug_printmodeline] Modeline 66:"1280x800" 60 71100 1280 1281 1439 1440 800 801 822 823 0x40 0x0
> [ 2.122570] [drm:drm_mode_object_reference] OBJ ID: 36 (2)
> [ 2.122577] [drm:drm_crtc_helper_set_config] encoder changed, full mode switch
> [ 2.122585] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
> [ 2.122592] [drm:drm_crtc_helper_set_config] crtc changed, full mode switch
> [ 2.122599] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
> [ 2.122606] [drm:drm_crtc_helper_set_config] attempting to set mode from userspace
> [ 2.122618] [drm:drm_mode_debug_printmodeline] Modeline 66:"1280x800" 60 71100 1280 1281 1439 1440 800 801 822 823 0x40 0x0
> [ 2.122652] [drm:drm_crtc_helper_set_mode] [CRTC:27:crtc-1]
> [ 2.122740] [drm:drm_crtc_helper_set_mode] [ENCODER:35:LVDS-35] set [MODE:66:1280x800]
> [ 2.123305] [drm:drm_calc_timestamping_constants] crtc 27: hwmode: htotal 1440, vtotal 823, vdisplay 800
> [ 2.123315] [drm:drm_calc_timestamping_constants] crtc 27: clock 71100 kHz framedur 16668354 linedur 20253
> [ 2.123334] [drm:drm_crtc_helper_set_config] Setting connector DPMS state to on
> [ 2.123342] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] set DPMS on
> [ 2.123352] [drm:drm_mode_object_unreference] OBJ ID: 34 (3)
> [ 2.123360] [drm:drm_mode_object_unreference] OBJ ID: 36 (2)
> [ 2.123395] [drm:drm_crtc_helper_set_config]
> [ 2.123402] [drm:drm_crtc_helper_set_config] [CRTC:29:crtc-2] [NOFB]
> [ 2.123436] [drm:drm_crtc_helper_set_config]
> [ 2.123443] [drm:drm_crtc_helper_set_config] [CRTC:32:crtc-3] [NOFB]
> [ 2.123619] [drm:drm_crtc_helper_set_config]
> [ 2.123630] [drm:drm_crtc_helper_set_config] [CRTC:24:crtc-0] [FB:67] #connectors=1 (x y) (0 0)
> [ 2.123646] [drm:drm_mode_object_reference] OBJ ID: 34 (3)
> [ 2.123656] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
> [ 2.123664] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
> [ 2.123671] [drm:drm_mode_object_unreference] OBJ ID: 34 (3)
> [ 2.123678] [drm:drm_mode_object_unreference] OBJ ID: 36 (3)
> [ 2.123719] [drm:drm_crtc_helper_set_config]
> [ 2.123728] [drm:drm_crtc_helper_set_config] [CRTC:27:crtc-1] [FB:67] #connectors=1 (x y) (0 0)
> [ 2.123742] [drm:drm_mode_object_reference] OBJ ID: 36 (3)
> [ 2.123751] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
> [ 2.123759] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
> [ 2.123766] [drm:drm_mode_object_unreference] OBJ ID: 34 (4)
> [ 2.123772] [drm:drm_mode_object_unreference] OBJ ID: 36 (3)
> [ 2.130720] [drm:drm_crtc_helper_set_config]
> [ 2.130731] [drm:drm_crtc_helper_set_config] [CRTC:24:crtc-0] [FB:67] #connectors=1 (x y) (0 0)
> [ 2.130748] [drm:drm_mode_object_reference] OBJ ID: 34 (4)
> [ 2.130758] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
> [ 2.130766] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
> [ 2.130774] [drm:drm_mode_object_unreference] OBJ ID: 34 (4)
> [ 2.130781] [drm:drm_mode_object_unreference] OBJ ID: 36 (4)
> [ 2.130822] [drm:drm_crtc_helper_set_config]
> [ 2.130830] [drm:drm_crtc_helper_set_config] [CRTC:27:crtc-1] [FB:67] #connectors=1 (x y) (0 0)
> [ 2.130845] [drm:drm_mode_object_reference] OBJ ID: 36 (4)
> [ 2.130854] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
> [ 2.130862] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
> [ 2.130868] [drm:drm_mode_object_unreference] OBJ ID: 34 (5)
> [ 2.130875] [drm:drm_mode_object_unreference] OBJ ID: 36 (4)
>
> $ modetest -M imx-drm -f
>
> [ 140.564392] [drm:drm_stub_open]
> [ 140.564463] [drm:drm_open_helper] pid = 268, minor = 0
> [ 140.566906] [drm:drm_setup]
> [ 140.567587] [drm:drm_ioctl] pid=268, dev=0xe200, auth=1, DRM_IOCTL_VERSION
> [ 140.567633] [drm:drm_ioctl] pid=268, dev=0xe200, auth=1, DRM_IOCTL_VERSION
> [ 140.567736] [drm:drm_release] open_count = 1
> [ 140.568010] [drm:drm_release] pid = 268, device = 0xe200, open_count = 1
> [ 140.568426] [drm:drm_lastclose]
> [ 140.568455] [drm:drm_lastclose] driver lastclose completed
> [ 140.568487] [drm:drm_legacy_dev_reinit] lastclose completed
> [ 140.568733] [drm:drm_stub_open]
> [ 140.568778] [drm:drm_open_helper] pid = 268, minor = 0
> [ 140.568837] [drm:drm_setup]
> [ 140.568898] [drm:drm_ioctl] pid=268, dev=0xe200, auth=1, DRM_IOCTL_VERSION
> [ 140.568937] [drm:drm_ioctl] pid=268, dev=0xe200, auth=1, DRM_IOCTL_VERSION
> [ 140.568989] [drm:drm_release] open_count = 1
> [ 140.569041] [drm:drm_release] pid = 268, device = 0xe200, open_count = 1
> [ 140.569099] [drm:drm_lastclose]
> [ 140.569123] [drm:drm_lastclose] driver lastclose completed
> [ 140.569153] [drm:drm_legacy_dev_reinit] lastclose completed
> [ 140.569382] [drm:drm_stub_open]
> [ 140.569426] [drm:drm_open_helper] pid = 268, minor = 1
> [ 140.569483] [drm:drm_setup]
> [ 140.569541] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_VERSION
> [ 140.569580] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_VERSION
> [ 140.569624] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_GET_UNIQUE
> [ 140.569665] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_GET_UNIQUE
> [ 140.569708] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_SET_CLIENT_CAP
> [ 140.569794] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETRESOURCES
> [ 140.570021] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETRESOURCES
> [ 140.570138] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
> [ 140.570274] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
> [ 140.570341] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
> [ 140.570402] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
> [ 140.570465] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETENCODER
> [ 140.570513] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETENCODER
> [ 140.570559] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
> [ 140.570625] [drm:_object_find] OBJ ID: 34 (5)
> [ 140.570656] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:34:HDMI-A-1]
> [ 140.571998] [drm:drm_assign_hdmi_deep_color_info] HDMI-A-1: No deep color support on this HDMI sink.
> [ 140.572032] [drm:drm_edid_to_eld] ELD monitor SyncMaster
> [ 140.572065] [drm:parse_hdmi_vsdb] HDMI: DVI dual 0, max TMDS clock 0, latency present 0 0, video latency 0 0, audio latency 0 0
> [ 140.572091] [drm:drm_edid_to_eld] ELD size 36, SAD count 1
> [ 140.572747] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:34:HDMI-A-1] probed modes :
> [ 140.572786] [drm:drm_mode_debug_printmodeline] Modeline 38:"1920x1200" 60 154000 1920 1968 2000 2080 1200 1203 1209 1235 0x48 0x9
> [ 140.572820] [drm:drm_mode_debug_printmodeline] Modeline 39:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x40 0x5
> [...]
> [ 140.573849] [drm:drm_mode_object_unreference] OBJ ID: 34 (6)
> [ 140.573897] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
> [ 140.573932] [drm:_object_find] OBJ ID: 34 (5)
> [ 140.574001] [drm:drm_mode_object_unreference] OBJ ID: 34 (6)
> [ 140.574080] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
> [ 140.574118] [drm:_object_find] OBJ ID: 36 (5)
> [ 140.574148] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1]
> [ 140.574221] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1] probed modes :
> [ 140.574259] [drm:drm_mode_debug_printmodeline] Modeline 63:"1280x800" 60 71100 1280 1281 1439 1440 800 801 822 823 0x40 0x0
> [ 140.574292] [drm:drm_mode_object_unreference] OBJ ID: 36 (6)
> [ 140.574332] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
> [ 140.574366] [drm:_object_find] OBJ ID: 36 (5)
> [ 140.574405] [drm:drm_mode_object_unreference] OBJ ID: 36 (6)
> [ 140.574566] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.574784] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.585074] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.585184] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.585290] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.585390] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.585492] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.585593] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.585694] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.585761] [drm:_object_find] OBJ ID: 34 (5)
> [ 140.585792] [drm:drm_mode_object_unreference] OBJ ID: 34 (6)
> [ 140.585853] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.585918] [drm:_object_find] OBJ ID: 34 (5)
> [ 140.585951] [drm:drm_mode_object_unreference] OBJ ID: 34 (6)
> [ 140.586020] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.586122] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.586226] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.586329] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.586440] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.586506] [drm:_object_find] OBJ ID: 36 (5)
> [ 140.586538] [drm:drm_mode_object_unreference] OBJ ID: 36 (6)
> [ 140.586599] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.586665] [drm:_object_find] OBJ ID: 36 (5)
> [ 140.586698] [drm:drm_mode_object_unreference] OBJ ID: 36 (6)
> [ 140.586762] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.586860] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.586963] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.587065] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.587177] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANERESOURCES
> [ 140.587213] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANERESOURCES
> [ 140.587252] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 140.587298] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 140.587347] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 140.587391] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 140.587438] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 140.587482] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 140.587530] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 140.587573] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 140.587620] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 140.587663] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 140.587710] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 140.587752] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 140.587799] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.587901] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.588009] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.588111] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.588222] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.588324] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.588431] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.588533] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.588644] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.588746] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.588850] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.588952] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.589061] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.589164] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.589270] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.589372] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.589481] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.589583] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.589688] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.589790] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.589900] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.590003] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 140.590108] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.590210] [drm:drm_ioctl] pid=268, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 140.601683] [drm:drm_release] open_count = 1
> [ 140.601737] [drm:drm_release] pid = 268, device = 0xe201, open_count = 1
> [ 140.601800] [drm:drm_lastclose]
> [ 140.602003] [drm:drm_crtc_helper_set_config]
> [ 140.602038] [drm:drm_crtc_helper_set_config] [CRTC:24:crtc-0] [FB:67] #connectors=1 (x y) (0 0)
> [ 140.602085] [drm:drm_mode_object_reference] OBJ ID: 34 (5)
> [ 140.602117] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
> [ 140.602145] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
> [ 140.602171] [drm:drm_mode_object_unreference] OBJ ID: 34 (5)
> [ 140.602195] [drm:drm_mode_object_unreference] OBJ ID: 36 (5)
> [ 140.602337] [drm:drm_crtc_helper_set_config]
> [ 140.602364] [drm:drm_crtc_helper_set_config] [CRTC:27:crtc-1] [FB:67] #connectors=1 (x y) (0 0)
> [ 140.602400] [drm:drm_mode_object_reference] OBJ ID: 36 (5)
> [ 140.602429] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
> [ 140.602456] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
> [ 140.602480] [drm:drm_mode_object_unreference] OBJ ID: 34 (6)
> [ 140.602512] [drm:drm_mode_object_unreference] OBJ ID: 36 (5)
> [ 140.602640] [drm:drm_crtc_helper_set_config]
> [ 140.602664] [drm:drm_crtc_helper_set_config] [CRTC:29:crtc-2] [NOFB]
> [ 140.602785] [drm:drm_crtc_helper_set_config]
> [ 140.602820] [drm:drm_crtc_helper_set_config] [CRTC:32:crtc-3] [NOFB]
> [ 140.602971] [drm:drm_lastclose] driver lastclose completed
>
> $ modetest -M imx-drm -f
>
> [ 186.620993] [drm:drm_stub_open]
> [ 186.621047] [drm:drm_open_helper] pid = 274, minor = 0
> [ 186.621111] [drm:drm_setup]
> [ 186.621760] [drm:drm_ioctl] pid=274, dev=0xe200, auth=1, DRM_IOCTL_VERSION
> [ 186.621804] [drm:drm_ioctl] pid=274, dev=0xe200, auth=1, DRM_IOCTL_VERSION
> [ 186.621903] [drm:drm_release] open_count = 1
> [ 186.621962] [drm:drm_release] pid = 274, device = 0xe200, open_count = 1
> [ 186.622025] [drm:drm_lastclose]
> [ 186.622051] [drm:drm_lastclose] driver lastclose completed
> [ 186.622082] [drm:drm_legacy_dev_reinit] lastclose completed
> [ 186.622311] [drm:drm_stub_open]
> [ 186.622354] [drm:drm_open_helper] pid = 274, minor = 0
> [ 186.622411] [drm:drm_setup]
> [ 186.622470] [drm:drm_ioctl] pid=274, dev=0xe200, auth=1, DRM_IOCTL_VERSION
> [ 186.622509] [drm:drm_ioctl] pid=274, dev=0xe200, auth=1, DRM_IOCTL_VERSION
> [ 186.622560] [drm:drm_release] open_count = 1
> [ 186.622611] [drm:drm_release] pid = 274, device = 0xe200, open_count = 1
> [ 186.622668] [drm:drm_lastclose]
> [ 186.622693] [drm:drm_lastclose] driver lastclose completed
> [ 186.622721] [drm:drm_legacy_dev_reinit] lastclose completed
> [ 186.622936] [drm:drm_stub_open]
> [ 186.622980] [drm:drm_open_helper] pid = 274, minor = 1
> [ 186.623038] [drm:drm_setup]
> [ 186.623095] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_VERSION
> [ 186.623134] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_VERSION
> [ 186.623176] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_GET_UNIQUE
> [ 186.623218] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_GET_UNIQUE
> [ 186.623261] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_SET_CLIENT_CAP
> [ 186.623338] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETRESOURCES
> [ 186.623393] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETRESOURCES
> [ 186.623487] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
> [ 186.623567] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
> [ 186.623635] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
> [ 186.623698] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCRTC
> [ 186.623759] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETENCODER
> [ 186.623807] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETENCODER
> [ 186.623852] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
> [ 186.623885] [drm:_object_find] OBJ ID: 34 (6)
> [ 186.623916] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:34:HDMI-A-1]
> [ 186.625441] [drm:drm_assign_hdmi_deep_color_info] HDMI-A-1: No deep color support on this HDMI sink.
> [ 186.625486] [drm:drm_edid_to_eld] ELD monitor SyncMaster
> [ 186.625519] [drm:parse_hdmi_vsdb] HDMI: DVI dual 0, max TMDS clock 0, latency present 0 0, video latency 0 0, audio latency 0 0
> [ 186.625545] [drm:drm_edid_to_eld] ELD size 36, SAD count 1
> [ 186.626192] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:34:HDMI-A-1] probed modes :
> [ 186.626233] [drm:drm_mode_debug_printmodeline] Modeline 38:"1920x1200" 60 154000 1920 1968 2000 2080 1200 1203 1209 1235 0x48 0x9
> [ 186.626277] [drm:drm_mode_debug_printmodeline] Modeline 39:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x40 0x5
> [...]
> [ 186.627279] [drm:drm_mode_object_unreference] OBJ ID: 34 (7)
> [ 186.627327] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
> [ 186.627363] [drm:_object_find] OBJ ID: 34 (6)
> [ 186.627430] [drm:drm_mode_object_unreference] OBJ ID: 34 (7)
> [ 186.627512] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
> [ 186.627550] [drm:_object_find] OBJ ID: 36 (6)
> [ 186.627590] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1]
> [ 186.627663] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:36:LVDS-1] probed modes :
> [ 186.627701] [drm:drm_mode_debug_printmodeline] Modeline 63:"1280x800" 60 71100 1280 1281 1439 1440 800 801 822 823 0x40 0x0
> [ 186.627735] [drm:drm_mode_object_unreference] OBJ ID: 36 (7)
> [ 186.627774] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETCONNECTOR
> [ 186.627809] [drm:_object_find] OBJ ID: 36 (6)
> [ 186.627847] [drm:drm_mode_object_unreference] OBJ ID: 36 (7)
> [ 186.628001] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.628118] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.628226] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.628327] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.628431] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.628536] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.628640] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.628739] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.628841] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.628908] [drm:_object_find] OBJ ID: 34 (6)
> [ 186.628939] [drm:drm_mode_object_unreference] OBJ ID: 34 (7)
> [ 186.629007] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.629073] [drm:_object_find] OBJ ID: 34 (6)
> [ 186.629105] [drm:drm_mode_object_unreference] OBJ ID: 34 (7)
> [ 186.629170] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.629281] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.629386] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.629490] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.629602] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.629669] [drm:_object_find] OBJ ID: 36 (6)
> [ 186.629708] [drm:drm_mode_object_unreference] OBJ ID: 36 (7)
> [ 186.629772] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.629838] [drm:_object_find] OBJ ID: 36 (6)
> [ 186.629871] [drm:drm_mode_object_unreference] OBJ ID: 36 (7)
> [ 186.629942] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.630042] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.630145] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.630250] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.630361] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANERESOURCES
> [ 186.630399] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANERESOURCES
> [ 186.630439] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 186.630484] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 186.630533] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 186.630576] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 186.630624] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 186.630666] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 186.630720] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 186.630763] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 186.630811] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 186.630856] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 186.630904] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 186.630947] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPLANE
> [ 186.630995] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.631098] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.631206] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.631319] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.631431] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.631536] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.631644] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.631747] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.631864] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.631968] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.632074] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.632176] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.632289] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.632392] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.632500] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.632603] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.632714] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.632818] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.632925] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.633027] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.633147] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.633251] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_OBJ_GETPROPERTIES
> [ 186.633357] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.633460] [drm:drm_ioctl] pid=274, dev=0xe201, auth=1, DRM_IOCTL_MODE_GETPROPERTY
> [ 186.635240] [drm:drm_release] open_count = 1
> [ 186.635287] [drm:drm_release] pid = 274, device = 0xe201, open_count = 1
> [ 186.635344] [drm:drm_lastclose]
> [ 186.635427] [drm:drm_crtc_helper_set_config]
> [ 186.635460] [drm:drm_crtc_helper_set_config] [CRTC:24:crtc-0] [FB:67] #connectors=1 (x y) (0 0)
> [ 186.635502] [drm:drm_mode_object_reference] OBJ ID: 34 (6)
> [ 186.635535] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
> [ 186.635563] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
> [ 186.635589] [drm:drm_mode_object_unreference] OBJ ID: 34 (6)
> [ 186.635613] [drm:drm_mode_object_unreference] OBJ ID: 36 (6)
> [ 186.635742] [drm:drm_crtc_helper_set_config]
> [ 186.635769] [drm:drm_crtc_helper_set_config] [CRTC:27:crtc-1] [FB:67] #connectors=1 (x y) (0 0)
> [ 186.635803] [drm:drm_mode_object_reference] OBJ ID: 36 (6)
> [ 186.635831] [drm:drm_crtc_helper_set_config] [CONNECTOR:34:HDMI-A-1] to [CRTC:24:crtc-0]
> [ 186.635857] [drm:drm_crtc_helper_set_config] [CONNECTOR:36:LVDS-1] to [CRTC:27:crtc-1]
> [ 186.635881] [drm:drm_mode_object_unreference] OBJ ID: 34 (7)
> [ 186.635914] [drm:drm_mode_object_unreference] OBJ ID: 36 (6)
> [ 186.636040] [drm:drm_crtc_helper_set_config]
> [ 186.636064] [drm:drm_crtc_helper_set_config] [CRTC:29:crtc-2] [NOFB]
> [ 186.636193] [drm:drm_crtc_helper_set_config]
> [ 186.636217] [drm:drm_crtc_helper_set_config] [CRTC:32:crtc-3] [NOFB]
> [ 186.636367] [drm:drm_lastclose] driver lastclose completed
>
> ... and so on.
> With my patches applied, I see steady state refcounts of 3/4 with FBDEV_EMULATION enabled:
>
> [ 126.584377] [drm:_object_find] OBJ ID: 34 (3)
> [ 126.588587] [drm:drm_mode_object_unreference] OBJ ID: 34 (4)
> [ 126.588696] [drm:_object_find] OBJ ID: 34 (3)
> [ 126.588795] [drm:drm_mode_object_unreference] OBJ ID: 34 (4)
> [ 126.588951] [drm:_object_find] OBJ ID: 36 (3)
> [ 126.589177] [drm:drm_mode_object_unreference] OBJ ID: 36 (4)
> [ 126.589272] [drm:_object_find] OBJ ID: 36 (3)
> [ 126.589322] [drm:drm_mode_object_unreference] OBJ ID: 36 (4)
> [...]
>
> and 1/2 without:
>
> [ 92.965302] [drm:_object_find] OBJ ID: 36 (1)
> [ 92.973203] [drm:drm_mode_object_unreference] OBJ ID: 36 (2)
> [ 92.977927] [drm:_object_find] OBJ ID: 36 (1)
> [ 92.977986] [drm:drm_mode_object_unreference] OBJ ID: 36 (2)
> [ 92.981723] [drm:_object_find] OBJ ID: 34 (1)
> [ 92.981765] [drm:drm_mode_object_unreference] OBJ ID: 34 (2)
> [ 92.982496] [drm:_object_find] OBJ ID: 34 (1)
> [ 92.982542] [drm:drm_mode_object_unreference] OBJ ID: 34 (2)
> [...]
>
> regards
> Philipp
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list