* [4.0.5-rt4] i915: sleeping function called from invalid context at intel_pipe_update_start/end
@ 2015-06-25 15:09 Luis Claudio R. Goncalves
2015-07-10 14:08 ` Sebastian Andrzej Siewior
0 siblings, 1 reply; 3+ messages in thread
From: Luis Claudio R. Goncalves @ 2015-06-25 15:09 UTC (permalink / raw)
To: linux-rt-users, Sebastian Andrzej Siewior
Hi!
I have been seeing the annoying message below non-stop:
i915: sleeping function called from invalid context at intel_pipe_update_start/end
[drm] Initialized i915 1.6.0 20150130 for 0000:00:02.0 on minor 0
fbcon: inteldrmfb (fb0) is primary device
BUG: sleeping function called from invalid context at /home/lclaudio/SANDBOX/mrg-rt-v2-devel/kernel/locking/rtmutex.c:917
in_atomic(): 0, irqs_disabled(): 1, pid: 111, name: kworker/u8:5
9 locks held by kworker/u8:5/111:
#0: ("events_unbound"){......}, at: [<ffffffff8109a06d>] process_one_work+0x17d/0x640
#1: ((&entry->work)){......}, at: [<ffffffff8109a06d>] process_one_work+0x17d/0x640
#2: (registration_lock){......}, at: [<ffffffff81416314>] register_framebuffer+0x34/0x3a0
#3: (console_lock){......}, at: [<ffffffff81416534>] register_framebuffer+0x254/0x3a0
#4: (&fb_info->lock){......}, at: [<ffffffff814145db>] lock_fb_info+0x1b/0x40
#5: ((fb_notifier_list).rwsem){......}, at: [<ffffffff810d7d60>] rt_down_read+0x10/0x20
#6: (&dev->mode_config.mutex){......}, at: [<ffffffffa007476e>] __drm_modeset_lock_all+0x8e/0x120 [drm]
#7: (crtc_ww_class_acquire){......}, at: [<ffffffffa0074778>] __drm_modeset_lock_all+0x98/0x120 [drm]
#8: (crtc_ww_class_mutex){......}, at: [<ffffffffa007432d>] drm_modeset_lock+0x3d/0x110 [drm]
CPU: 0 PID: 111 Comm: kworker/u8:5 Not tainted 4.0.5-rt4+ #4
Hardware name: Hewlett-Packard p7-1512/2ADA, BIOS 8.15 02/05/2013
Workqueue: events_unbound async_run_entry_fn
0000000000000000 000000002b54f949 ffff88003de17658 ffffffff81783f82
000000002b54f949 0000000000000000 ffff88003de17678 ffffffff810a6578
ffff88018aef5808 ffff88018aef5808 ffff88003de176a8 ffffffff8178abe4
Call Trace:
[<ffffffff81783f82>] dump_stack+0x4f/0x90
[<ffffffff810a6578>] ___might_sleep+0xf8/0x170
[<ffffffff8178abe4>] rt_spin_lock+0x24/0x60
[<ffffffff810acff5>] ? migrate_disable+0x85/0xf0
[<ffffffff810c7a0b>] prepare_to_wait+0x2b/0x90
[<ffffffffa005ab3f>] ? drm_vblank_get+0x6f/0xc0 [drm]
[<ffffffffa0161ace>] intel_pipe_update_start+0x1be/0x390 [i915]
[<ffffffff810c7e00>] ? wait_woken+0xa0/0xa0
[<ffffffffa014a6f9>] intel_begin_crtc_commit+0x159/0x1c0 [i915]
[<ffffffffa00cc464>] drm_atomic_helper_commit_planes+0x64/0x1b0 [drm_kms_helper]
[<ffffffffa00c9f0c>] ? drm_atomic_helper_prepare_planes+0x5c/0xe0 [drm_kms_helper]
[<ffffffffa016822e>] intel_atomic_commit+0xbe/0x110 [i915]
[<ffffffffa0075397>] drm_atomic_commit+0x37/0x60 [drm]
[<ffffffffa00cb48d>] drm_atomic_helper_plane_set_property+0x8d/0xd0 [drm_kms_helper]
[<ffffffffa006313d>] drm_mode_plane_set_obj_prop+0x2d/0x90 [drm]
[<ffffffffa00cd2fb>] restore_fbdev_mode+0x6b/0xf0 [drm_kms_helper]
[<ffffffffa00cf3b9>] drm_fb_helper_restore_fbdev_mode_unlocked+0x29/0x80 [drm_kms_helper]
[<ffffffffa00cf432>] drm_fb_helper_set_par+0x22/0x50 [drm_kms_helper]
[<ffffffffa0163c4a>] intel_fbdev_set_par+0x1a/0x60 [i915]
[<ffffffff8140d3f8>] fbcon_init+0x588/0x610
[<ffffffff81481c4c>] visual_init+0xbc/0x120
[<ffffffff8148449e>] do_bind_con_driver+0x17e/0x3c0
[<ffffffff81484c44>] do_take_over_console+0xb4/0x1b0
[<ffffffff814081f3>] do_fbcon_takeover+0x63/0xd0
[<ffffffff8140df4d>] fbcon_event_notify+0x6dd/0x7e0
[<ffffffff810a11bf>] notifier_call_chain+0x4f/0x80
[<ffffffff810d7d60>] ? rt_down_read+0x10/0x20
[<ffffffff810a14b1>] __blocking_notifier_call_chain+0x51/0x70
[<ffffffff810a14e6>] blocking_notifier_call_chain+0x16/0x20
[<ffffffff8141401b>] fb_notifier_call_chain+0x1b/0x20
[<ffffffff81416557>] register_framebuffer+0x277/0x3a0
[<ffffffffa00cf6c4>] drm_fb_helper_initial_config+0x264/0x3c0 [drm_kms_helper]
[<ffffffffa0164f5b>] intel_fbdev_initial_config+0x1b/0x20 [i915]
[<ffffffff810a2f4c>] async_run_entry_fn+0x4c/0x160
[<ffffffff8109a108>] process_one_work+0x218/0x640
[<ffffffff8109a06d>] ? process_one_work+0x17d/0x640
[<ffffffff8109a58b>] worker_thread+0x5b/0x500
[<ffffffff8109a530>] ? process_one_work+0x640/0x640
[<ffffffff8109fd56>] kthread+0xf6/0x110
[<ffffffff810cfb5e>] ? put_lock_stats.isra.24+0xe/0x40
[<ffffffff8109fc60>] ? kthread_create_on_node+0x260/0x260
[<ffffffff8178b688>] ret_from_fork+0x58/0x90
[<ffffffff8109fc60>] ? kthread_create_on_node+0x260/0x260
[drm:intel_set_pch_fifo_underrun_reporting [i915]] *ERROR* uncleared pch fifo underrun on pch transcoder A
[drm:intel_pch_fifo_underrun_irq_handler [i915]] *ERROR* PCH transcoder A FIFO underrun
Console: switching to colour frame buffer device 240x67
i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
i915 0000:00:02.0: registered panic notifier
Signed-off-by: Luis Claudio R. Goncalves <lgoncalv@redhat.com>
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index 9c5451c..2b9e648 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -101,7 +101,7 @@ bool intel_pipe_update_start(struct intel_crtc *crtc, uint32_t *start_vbl_count)
if (WARN_ON(drm_vblank_get(dev, pipe)))
return false;
- local_irq_disable();
+ local_irq_disable_nort();
trace_i915_pipe_update_start(crtc, min, max);
@@ -123,11 +123,11 @@ bool intel_pipe_update_start(struct intel_crtc *crtc, uint32_t *start_vbl_count)
break;
}
- local_irq_enable();
+ local_irq_enable_nort();
timeout = schedule_timeout(timeout);
- local_irq_disable();
+ local_irq_disable_nort();
}
finish_wait(wq, &wait);
@@ -158,7 +158,7 @@ void intel_pipe_update_end(struct intel_crtc *crtc, u32 start_vbl_count)
trace_i915_pipe_update_end(crtc, end_vbl_count);
- local_irq_enable();
+ local_irq_enable_nort();
if (start_vbl_count != end_vbl_count)
DRM_ERROR("Atomic update failure on pipe %c (start=%u end=%u)\n",
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [4.0.5-rt4] i915: sleeping function called from invalid context at intel_pipe_update_start/end
2015-06-25 15:09 [4.0.5-rt4] i915: sleeping function called from invalid context at intel_pipe_update_start/end Luis Claudio R. Goncalves
@ 2015-07-10 14:08 ` Sebastian Andrzej Siewior
2015-07-10 14:14 ` Luis Claudio R. Goncalves
0 siblings, 1 reply; 3+ messages in thread
From: Sebastian Andrzej Siewior @ 2015-07-10 14:08 UTC (permalink / raw)
To: Luis Claudio R. Goncalves; +Cc: linux-rt-users
* Luis Claudio R. Goncalves | 2015-06-25 12:09:47 [-0300]:
>Hi!
Hi,
>I have been seeing the annoying message below non-stop:
>
>i915: sleeping function called from invalid context at intel_pipe_update_start/end
I am not sure what we break here if we drop the irq-off. It waits to sync
with the interrupt and expects no interruption after that. What about if
we skip this mmio_flip thing entirely? Either via modprobe or kernel
commandline
i915.use_mmio_flip=-1
should do the trick. Either way
/sys/module/i915/parameters/use_mmio_flip
should be -1. Could you please try and test?
Sebastian
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [4.0.5-rt4] i915: sleeping function called from invalid context at intel_pipe_update_start/end
2015-07-10 14:08 ` Sebastian Andrzej Siewior
@ 2015-07-10 14:14 ` Luis Claudio R. Goncalves
0 siblings, 0 replies; 3+ messages in thread
From: Luis Claudio R. Goncalves @ 2015-07-10 14:14 UTC (permalink / raw)
To: Sebastian Andrzej Siewior; +Cc: linux-rt-users
On Fri, Jul 10, 2015 at 04:08:26PM +0200, Sebastian Andrzej Siewior wrote:
| * Luis Claudio R. Goncalves | 2015-06-25 12:09:47 [-0300]:
|
| >Hi!
| Hi,
|
| >I have been seeing the annoying message below non-stop:
| >
| >i915: sleeping function called from invalid context at intel_pipe_update_start/end
|
| I am not sure what we break here if we drop the irq-off. It waits to sync
| with the interrupt and expects no interruption after that. What about if
| we skip this mmio_flip thing entirely? Either via modprobe or kernel
| commandline
|
| i915.use_mmio_flip=-1
|
| should do the trick. Either way
| /sys/module/i915/parameters/use_mmio_flip
| should be -1. Could you please try and test?
I will need to test that during the weekend, but I can surely test.
Luis
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-07-10 14:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-25 15:09 [4.0.5-rt4] i915: sleeping function called from invalid context at intel_pipe_update_start/end Luis Claudio R. Goncalves
2015-07-10 14:08 ` Sebastian Andrzej Siewior
2015-07-10 14:14 ` Luis Claudio R. Goncalves
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).