[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20130630142810.GA10350@localhost>
Date: Sun, 30 Jun 2013 22:28:10 +0800
From: Fengguang Wu <fengguang.wu@...el.com>
To: fengguang.wu@...el.com, Dave Airlie <airlied@...hat.com>
Cc: Daniel Vetter <daniel.vetter@...ll.ch>,
dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org
Subject: [drm] WARNING: at kernel/workqueue.c:1432 __queue_delayed_work()
Greetings,
I got the below warning and the first bad commit is
commit be37835619fce22d3f46c5a591bbf0bbcb2288e4
Author: Daniel Vetter <daniel.vetter@...ll.ch>
Date: Thu Jun 6 00:17:25 2013 +0200
drm: kms_helper: don't lose hotplug event
There's a race window (small for hpd, 10s large for polled outputs)
where userspace could sneak in with an unrelated connnector probe
ioctl call and eat the hotplug event (since neither the hpd nor the
poll code see a state change).
To avoid this, check whether the connector state changes in all other
->detect calls (in the current helper code that's only probe_single)
and if that's the case, fire off a hotplug event. Note that we can't
directly call the hotplug event handler, since that expects that no
locks are held (due to reentrancy with the fb code to update the kms
console).
Also, this requires that drivers using the probe_single helper
function set up the poll work. All current drivers do that already,
and with the reworked hpd handling there'll be no downside to
unconditionally setting up the poll work any more.
Reviewed-by: Chris Wilson <chris@...is-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@...ll.ch>
Signed-off-by: Dave Airlie <airlied@...hat.com>
[ 3.829957] [TTM] Initializing pool allocator
[ 3.830706] ------------[ cut here ]------------
[ 3.831240] WARNING: at /c/kernel-tests/src/linux/kernel/workqueue.c:1432 __queue_delayed_work+0x81/0x247()
[ 3.832303] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.0-rc7-wl-01596-gb53e037 #1
[ 3.833158] 00000000 00000000 85429d24 798531bf 85429d3c 7906c42f 790831cf 00000201
[ 3.834185] 00000001 7ea3ec14 85429d4c 7906c4d7 00000009 00000000 85429d70 790831cf
[ 3.835827] 8542b770 7ea3ec34 00000020 00000001 00000246 00000000 00000020 85429d90
[ 3.836829] Call Trace:
[ 3.837115] [<798531bf>] dump_stack+0x16/0x18
[ 3.837597] [<7906c42f>] warn_slowpath_common+0x48/0x5f
[ 3.838154] [<790831cf>] ? __queue_delayed_work+0x81/0x247
[ 3.838740] [<7906c4d7>] warn_slowpath_null+0x14/0x18
[ 3.839278] [<790831cf>] __queue_delayed_work+0x81/0x247
[ 3.839849] [<79084358>] queue_delayed_work_on+0x42/0x59
[ 3.840437] [<792d944c>] schedule_delayed_work+0x16/0x18
[ 3.840453] [<792da72b>] drm_helper_probe_single_connector_modes+0xf5/0x2be
[ 3.840453] [<792d7821>] drm_fb_helper_probe_connector_modes+0x3a/0x4e
[ 3.840453] [<792d8fdc>] drm_fb_helper_initial_config+0x14d/0x3ae
[ 3.840453] [<79110996>] ? __kmalloc_node+0x6a/0xd6
[ 3.840453] [<792d9641>] ? drm_helper_disable_unused_functions+0xc3/0xdc
[ 3.840453] [<7934cd7c>] cirrus_fbdev_init+0x7c/0x8d
[ 3.840453] [<7934c623>] cirrus_modeset_init+0x145/0x186
[ 3.840453] [<7934b925>] cirrus_driver_load+0x88/0xce
[ 3.840453] [<792e4321>] drm_get_pci_dev+0x136/0x214
[ 3.840453] [<7934c724>] cirrus_pci_probe+0x85/0x91
[ 3.840453] [<791fbcfa>] pci_device_probe+0x5c/0x94
[ 3.840453] [<793e4586>] driver_probe_device+0x97/0x1b1
[ 3.840453] [<793e4724>] __driver_attach+0x53/0x6f
[ 3.840453] [<793e31d4>] bus_for_each_dev+0x3e/0x69
[ 3.840453] [<793e44a6>] driver_attach+0x19/0x1b
[ 3.840453] [<793e46d1>] ? __device_attach+0x31/0x31
[ 3.840453] [<793e382e>] bus_add_driver+0xb4/0x1bd
[ 3.840453] [<793e4ef3>] driver_register+0x8c/0xe9
[ 3.840453] [<791fbb2d>] __pci_register_driver+0x4a/0x4d
[ 3.840453] [<792e4470>] drm_pci_init+0x71/0xc9
[ 3.840453] [<79df7f16>] ? ftrace_define_fields_intel_gpu_freq_change+0x1c/0x1c
[ 3.840453] [<79df7f31>] cirrus_init+0x1b/0x25
[ 3.840453] [<79dcaa28>] do_one_initcall+0x6b/0x119
[ 3.840453] [<79dcabc7>] kernel_init_freeable+0xf1/0x171
[ 3.840453] [<7984161e>] kernel_init+0xd/0xb9
[ 3.840453] [<79860cf7>] ret_from_kernel_thread+0x1b/0x28
[ 3.840453] [<79841611>] ? rest_init+0xb1/0xb1
[ 3.840453] ---[ end trace 4a7136f8b8f4ca4a ]---
git bisect start b53e037930134d11fa6307162b41fb19b6c43643 9e895ace5d82df8929b16f58e9f515f6d54ab82d --
git bisect bad 3ef6fb0acbf846ec267c86b4b7841ca7cc1fd636 # 09:34 0- Merge remote-tracking branch 'vireshk/cpufreq-fix-notification' into devel-snb-i386-201306280352
git bisect bad e26e8115c78ca2f7e104ad085343e37c544033ae # 09:51 0- alx builtin HACK
git bisect good 40ccc72b84a848e6fcbdb38fe716f0ac6939609e # 12:39 20+ drm/i915: release cursor when crtc is destroyed
git bisect good d5cfba1b9ce6f1f4add8f3c67fde5243e5549bbd # 12:45 20+ drm/ast: do not attempt to acquire a reservation while in an interrupt handler
git bisect bad 395ba7ac59ac1aa4bb07c21e3211c2af04719f0a # 12:50 0- drm/ttm: get rid of ttm_bo_is_reserved
git bisect good 1e876e3b1a9df25bb04682b0d48aaa7e8ae1fc82 # 12:55 20+ Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
git bisect bad 1fb4883ad4ae880d2ef100f00624ec7660018186 # 12:59 0- reservation: cross-device reservation support, v4
git bisect good f3cf139efa4bc0fe4f032af6ca3e49e38a5d9ae5 # 13:04 20+ mutex: Add more w/w tests to test EDEADLK path handling
git bisect good 76ceded51787729bea28ab8cf986b23ffd8e3533 # 13:08 20+ Merge branch 'core/mutexes' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into drm-next
git bisect bad 3839e7f1cf063d9bae9406e8d9a0c64645ea21b2 # 13:13 0- Merge branch 'for-airlied-next' into for-airlied
git bisect bad be37835619fce22d3f46c5a591bbf0bbcb2288e4 # 13:17 0- drm: kms_helper: don't lose hotplug event
git bisect good 76ceded51787729bea28ab8cf986b23ffd8e3533 # 15:50 60+ Merge branch 'core/mutexes' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into drm-next
git bisect bad b53e037930134d11fa6307162b41fb19b6c43643 # 15:50 0- Merge remote-tracking branch 'xlnx/zynq/clk' into devel-snb-i386-201306280352
git bisect good c13737291d08634b4e7e59862ea3ae2a7dbfb36d # 15:56 60+ Revert "drm: kms_helper: don't lose hotplug event"
git bisect good 98b6ed0f2bf4abfb759206aa70690636372bdee7 # 15:58 60+ Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
git bisect bad 4ad125f98662b3226daaea1a277a5936006c10d7 # 16:03 0- Add linux-next specific files for 20130628
Thanks,
Fengguang
View attachment "dmesg-kvm-vp-10423-20130628043651-3.10.0-rc7-wl-01596-gb53e037-1" of type "text/plain" (60373 bytes)
Download attachment "bisect-b53e037930134d11fa6307162b41fb19b6c43643-i386-randconfig-s07-0628-cirrus_init+-x-53954.log" of type "application/octet-stream" (54940 bytes)
View attachment "config-3.10.0-rc7-wl-01596-gb53e037" of type "text/plain" (74917 bytes)
Powered by blists - more mailing lists