* radeon causing sleeping function called from invalid context @ 2013-01-13 1:27 Dave Jones 2013-01-13 11:38 ` Sergey Senozhatsky 0 siblings, 1 reply; 5+ messages in thread From: Dave Jones @ 2013-01-13 1:27 UTC (permalink / raw) To: Linux Kernel; +Cc: airlied BUG: sleeping function called from invalid context at mm/slub.c:925 in_atomic(): 1, irqs_disabled(): 0, pid: 566, name: Xorg INFO: lockdep is turned off. Pid: 566, comm: Xorg Not tainted 3.8.0-rc3+ #49 Call Trace: [<ffffffff81087ad1>] __might_sleep+0x141/0x200 [<ffffffff8119eddb>] kmem_cache_alloc_trace+0x4b/0x2a0 [<ffffffffa0083fb3>] ttm_bo_move_accel_cleanup+0x1d3/0x330 [ttm] [<ffffffffa00c5418>] radeon_move_blit.isra.4+0xf8/0x160 [radeon] [<ffffffffa00c5db0>] radeon_bo_move+0xb0/0x1f0 [radeon] [<ffffffffa00820ed>] ttm_bo_handle_move_mem+0x27d/0x5d0 [ttm] [<ffffffff8108dd51>] ? get_parent_ip+0x11/0x50 [<ffffffffa0083307>] ttm_bo_move_buffer+0x127/0x140 [ttm] [<ffffffffa008717d>] ? ttm_eu_list_ref_sub+0x3d/0x60 [ttm] [<ffffffffa00833c2>] ttm_bo_validate+0xa2/0x120 [ttm] [<ffffffffa00c6f45>] radeon_bo_list_validate+0x75/0x90 [radeon] [<ffffffffa00dca22>] radeon_cs_ioctl+0x582/0x950 [radeon] [<ffffffffa002e573>] drm_ioctl+0x4d3/0x580 [drm] [<ffffffffa00dc4a0>] ? radeon_cs_finish_pages+0xf0/0xf0 [radeon] [<ffffffff811c49f9>] do_vfs_ioctl+0x99/0x5a0 [<ffffffff812cd3d7>] ? file_has_perm+0x97/0xb0 [<ffffffff81103715>] ? rcu_eqs_exit+0x65/0xb0 [<ffffffff811c4f91>] sys_ioctl+0x91/0xb0 [<ffffffff81695ad4>] tracesys+0xdd/0xe2 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: radeon causing sleeping function called from invalid context 2013-01-13 1:27 radeon causing sleeping function called from invalid context Dave Jones @ 2013-01-13 11:38 ` Sergey Senozhatsky 2013-02-07 21:53 ` Andreas Bombe 0 siblings, 1 reply; 5+ messages in thread From: Sergey Senozhatsky @ 2013-01-13 11:38 UTC (permalink / raw) To: Dave Airlie; +Cc: Dave Jones, dri-devel, Linux Kernel On (01/12/13 20:27), Dave Jones wrote: > BUG: sleeping function called from invalid context at mm/slub.c:925 > in_atomic(): 1, irqs_disabled(): 0, pid: 566, name: Xorg > INFO: lockdep is turned off. > Pid: 566, comm: Xorg Not tainted 3.8.0-rc3+ #49 > Call Trace: > [<ffffffff81087ad1>] __might_sleep+0x141/0x200 > [<ffffffff8119eddb>] kmem_cache_alloc_trace+0x4b/0x2a0 > [<ffffffffa0083fb3>] ttm_bo_move_accel_cleanup+0x1d3/0x330 [ttm] > [<ffffffffa00c5418>] radeon_move_blit.isra.4+0xf8/0x160 [radeon] > [<ffffffffa00c5db0>] radeon_bo_move+0xb0/0x1f0 [radeon] > [<ffffffffa00820ed>] ttm_bo_handle_move_mem+0x27d/0x5d0 [ttm] > [<ffffffff8108dd51>] ? get_parent_ip+0x11/0x50 > [<ffffffffa0083307>] ttm_bo_move_buffer+0x127/0x140 [ttm] > [<ffffffffa008717d>] ? ttm_eu_list_ref_sub+0x3d/0x60 [ttm] > [<ffffffffa00833c2>] ttm_bo_validate+0xa2/0x120 [ttm] > [<ffffffffa00c6f45>] radeon_bo_list_validate+0x75/0x90 [radeon] > [<ffffffffa00dca22>] radeon_cs_ioctl+0x582/0x950 [radeon] > [<ffffffffa002e573>] drm_ioctl+0x4d3/0x580 [drm] > [<ffffffffa00dc4a0>] ? radeon_cs_finish_pages+0xf0/0xf0 [radeon] > [<ffffffff811c49f9>] do_vfs_ioctl+0x99/0x5a0 > [<ffffffff812cd3d7>] ? file_has_perm+0x97/0xb0 > [<ffffffff81103715>] ? rcu_eqs_exit+0x65/0xb0 > [<ffffffff811c4f91>] sys_ioctl+0x91/0xb0 > [<ffffffff81695ad4>] tracesys+0xdd/0xe2 > I see lots of these [mostly from page fault], the following one (quick and dirty) works for me. ---- Forbid ttm_buffer_object_transfer() sleeping in ISR context, do not pass __GFP_WAIT flag to kzalloc(): BUG: sleeping function called from invalid context at mm/slub.c:925 in_atomic(): 1, irqs_disabled(): 0, pid: 2179, name: X 3 locks held by X/2179: #0: (&mm->mmap_sem){++++++}, at: [<ffffffff815fac53>] __do_page_fault+0xf3/0x590 #1: (&rdev->pm.mclk_lock){++++.+}, at: [<ffffffff81428e40>] radeon_ttm_fault+0x40/0x70 #2: (&(&bdev->fence_lock)->rlock){+.+.+.}, at: [<ffffffff813f3227>] ttm_bo_move_accel_cleanup+0x57/0x330 Pid: 2179, comm: X Not tainted 3.8.0-rc3-dbg-01259-gbdac2d4-dirty #1500 Call Trace: [<ffffffff8107adea>] __might_sleep+0x14a/0x200 [<ffffffff811649c3>] kmem_cache_alloc_trace+0x153/0x240 [<ffffffff813f33a3>] ttm_bo_move_accel_cleanup+0x1d3/0x330 [<ffffffff814292e8>] radeon_move_blit.isra.6+0xf8/0x160 [<ffffffff81429a90>] radeon_bo_move+0xb0/0x1f0 [<ffffffff813f14b5>] ttm_bo_handle_move_mem+0x275/0x5c0 [<ffffffff813f26f7>] ttm_bo_move_buffer+0x127/0x140 [<ffffffff813f27b2>] ttm_bo_validate+0xa2/0x130 [<ffffffff8142b0ed>] radeon_bo_fault_reserve_notify+0xad/0xe0 [<ffffffff813f4600>] ttm_bo_vm_fault+0x60/0x370 [<ffffffff81428e51>] radeon_ttm_fault+0x51/0x70 [<ffffffff8114150a>] __do_fault+0x6a/0x540 [<ffffffff81144771>] handle_pte_fault+0x91/0x810 [<ffffffff815fac53>] ? __do_page_fault+0xf3/0x590 [<ffffffff811464c1>] handle_mm_fault+0x231/0x330 [<ffffffff815facbc>] __do_page_fault+0x15c/0x590 [<ffffffff81184cd9>] ? do_vfs_ioctl+0x99/0x580 [<ffffffff815ff7c9>] ? sysret_check+0x22/0x5d [<ffffffff815fb11b>] do_page_fault+0x2b/0x50 [<ffffffff815f79a8>] page_fault+0x28/0x30 Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> --- drivers/gpu/drm/ttm/ttm_bo_util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c index d73d6e3..92e0dea 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_util.c +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c @@ -422,7 +422,7 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo, struct ttm_bo_device *bdev = bo->bdev; struct ttm_bo_driver *driver = bdev->driver; - fbo = kzalloc(sizeof(*fbo), GFP_KERNEL); + fbo = kzalloc(sizeof(*fbo), __GFP_IO | __GFP_FS); if (!fbo) return -ENOMEM; ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: radeon causing sleeping function called from invalid context 2013-01-13 11:38 ` Sergey Senozhatsky @ 2013-02-07 21:53 ` Andreas Bombe 2013-02-08 7:47 ` Sergey Senozhatsky 0 siblings, 1 reply; 5+ messages in thread From: Andreas Bombe @ 2013-02-07 21:53 UTC (permalink / raw) To: Sergey Senozhatsky; +Cc: Dave Airlie, Dave Jones, dri-devel, Linux Kernel On Sun, Jan 13, 2013 at 02:38:20PM +0300, Sergey Senozhatsky wrote: > On (01/12/13 20:27), Dave Jones wrote: > > BUG: sleeping function called from invalid context at mm/slub.c:925 > > in_atomic(): 1, irqs_disabled(): 0, pid: 566, name: Xorg > > INFO: lockdep is turned off. > > Pid: 566, comm: Xorg Not tainted 3.8.0-rc3+ #49 > > Call Trace: > > [<ffffffff81087ad1>] __might_sleep+0x141/0x200 > > [<ffffffff8119eddb>] kmem_cache_alloc_trace+0x4b/0x2a0 > > [<ffffffffa0083fb3>] ttm_bo_move_accel_cleanup+0x1d3/0x330 [ttm] > > [<ffffffffa00c5418>] radeon_move_blit.isra.4+0xf8/0x160 [radeon] > > [<ffffffffa00c5db0>] radeon_bo_move+0xb0/0x1f0 [radeon] > > [<ffffffffa00820ed>] ttm_bo_handle_move_mem+0x27d/0x5d0 [ttm] > > [<ffffffff8108dd51>] ? get_parent_ip+0x11/0x50 > > [<ffffffffa0083307>] ttm_bo_move_buffer+0x127/0x140 [ttm] > > [<ffffffffa008717d>] ? ttm_eu_list_ref_sub+0x3d/0x60 [ttm] > > [<ffffffffa00833c2>] ttm_bo_validate+0xa2/0x120 [ttm] > > [<ffffffffa00c6f45>] radeon_bo_list_validate+0x75/0x90 [radeon] > > [<ffffffffa00dca22>] radeon_cs_ioctl+0x582/0x950 [radeon] > > [<ffffffffa002e573>] drm_ioctl+0x4d3/0x580 [drm] > > [<ffffffffa00dc4a0>] ? radeon_cs_finish_pages+0xf0/0xf0 [radeon] > > [<ffffffff811c49f9>] do_vfs_ioctl+0x99/0x5a0 > > [<ffffffff812cd3d7>] ? file_has_perm+0x97/0xb0 > > [<ffffffff81103715>] ? rcu_eqs_exit+0x65/0xb0 > > [<ffffffff811c4f91>] sys_ioctl+0x91/0xb0 > > [<ffffffff81695ad4>] tracesys+0xdd/0xe2 > > > > I see lots of these [mostly from page fault], the following one (quick and dirty) works for me. Is that patch or any other fix being picked up? It's over three weeks now and I'm still seeing those BUGs with the latest 3.8-rc. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: radeon causing sleeping function called from invalid context 2013-02-07 21:53 ` Andreas Bombe @ 2013-02-08 7:47 ` Sergey Senozhatsky 2013-02-08 8:44 ` Daniel Vetter 0 siblings, 1 reply; 5+ messages in thread From: Sergey Senozhatsky @ 2013-02-08 7:47 UTC (permalink / raw) To: Andreas Bombe; +Cc: Dave Airlie, Dave Jones, dri-devel, Linux Kernel On (02/07/13 22:53), Andreas Bombe wrote: > On Sun, Jan 13, 2013 at 02:38:20PM +0300, Sergey Senozhatsky wrote: > > On (01/12/13 20:27), Dave Jones wrote: > > > BUG: sleeping function called from invalid context at mm/slub.c:925 > > > in_atomic(): 1, irqs_disabled(): 0, pid: 566, name: Xorg > > > INFO: lockdep is turned off. > > > Pid: 566, comm: Xorg Not tainted 3.8.0-rc3+ #49 > > > Call Trace: > > > [<ffffffff81087ad1>] __might_sleep+0x141/0x200 > > > [<ffffffff8119eddb>] kmem_cache_alloc_trace+0x4b/0x2a0 > > > [<ffffffffa0083fb3>] ttm_bo_move_accel_cleanup+0x1d3/0x330 [ttm] > > > [<ffffffffa00c5418>] radeon_move_blit.isra.4+0xf8/0x160 [radeon] > > > [<ffffffffa00c5db0>] radeon_bo_move+0xb0/0x1f0 [radeon] > > > [<ffffffffa00820ed>] ttm_bo_handle_move_mem+0x27d/0x5d0 [ttm] > > > [<ffffffff8108dd51>] ? get_parent_ip+0x11/0x50 > > > [<ffffffffa0083307>] ttm_bo_move_buffer+0x127/0x140 [ttm] > > > [<ffffffffa008717d>] ? ttm_eu_list_ref_sub+0x3d/0x60 [ttm] > > > [<ffffffffa00833c2>] ttm_bo_validate+0xa2/0x120 [ttm] > > > [<ffffffffa00c6f45>] radeon_bo_list_validate+0x75/0x90 [radeon] > > > [<ffffffffa00dca22>] radeon_cs_ioctl+0x582/0x950 [radeon] > > > [<ffffffffa002e573>] drm_ioctl+0x4d3/0x580 [drm] > > > [<ffffffffa00dc4a0>] ? radeon_cs_finish_pages+0xf0/0xf0 [radeon] > > > [<ffffffff811c49f9>] do_vfs_ioctl+0x99/0x5a0 > > > [<ffffffff812cd3d7>] ? file_has_perm+0x97/0xb0 > > > [<ffffffff81103715>] ? rcu_eqs_exit+0x65/0xb0 > > > [<ffffffff811c4f91>] sys_ioctl+0x91/0xb0 > > > [<ffffffff81695ad4>] tracesys+0xdd/0xe2 > > > > > > > I see lots of these [mostly from page fault], the following one (quick and dirty) works for me. > > Is that patch or any other fix being picked up? It's over three weeks > now and I'm still seeing those BUGs with the latest 3.8-rc. > None that I'm aware of. -ss ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: radeon causing sleeping function called from invalid context 2013-02-08 7:47 ` Sergey Senozhatsky @ 2013-02-08 8:44 ` Daniel Vetter 0 siblings, 0 replies; 5+ messages in thread From: Daniel Vetter @ 2013-02-08 8:44 UTC (permalink / raw) To: Sergey Senozhatsky Cc: Andreas Bombe, Dave Airlie, Linux Kernel, dri-devel, Dave Jones On Fri, Feb 08, 2013 at 10:47:42AM +0300, Sergey Senozhatsky wrote: > On (02/07/13 22:53), Andreas Bombe wrote: > > On Sun, Jan 13, 2013 at 02:38:20PM +0300, Sergey Senozhatsky wrote: > > > On (01/12/13 20:27), Dave Jones wrote: > > > > BUG: sleeping function called from invalid context at mm/slub.c:925 > > > > in_atomic(): 1, irqs_disabled(): 0, pid: 566, name: Xorg > > > > INFO: lockdep is turned off. > > > > Pid: 566, comm: Xorg Not tainted 3.8.0-rc3+ #49 > > > > Call Trace: > > > > [<ffffffff81087ad1>] __might_sleep+0x141/0x200 > > > > [<ffffffff8119eddb>] kmem_cache_alloc_trace+0x4b/0x2a0 > > > > [<ffffffffa0083fb3>] ttm_bo_move_accel_cleanup+0x1d3/0x330 [ttm] > > > > [<ffffffffa00c5418>] radeon_move_blit.isra.4+0xf8/0x160 [radeon] > > > > [<ffffffffa00c5db0>] radeon_bo_move+0xb0/0x1f0 [radeon] > > > > [<ffffffffa00820ed>] ttm_bo_handle_move_mem+0x27d/0x5d0 [ttm] > > > > [<ffffffff8108dd51>] ? get_parent_ip+0x11/0x50 > > > > [<ffffffffa0083307>] ttm_bo_move_buffer+0x127/0x140 [ttm] > > > > [<ffffffffa008717d>] ? ttm_eu_list_ref_sub+0x3d/0x60 [ttm] > > > > [<ffffffffa00833c2>] ttm_bo_validate+0xa2/0x120 [ttm] > > > > [<ffffffffa00c6f45>] radeon_bo_list_validate+0x75/0x90 [radeon] > > > > [<ffffffffa00dca22>] radeon_cs_ioctl+0x582/0x950 [radeon] > > > > [<ffffffffa002e573>] drm_ioctl+0x4d3/0x580 [drm] > > > > [<ffffffffa00dc4a0>] ? radeon_cs_finish_pages+0xf0/0xf0 [radeon] > > > > [<ffffffff811c49f9>] do_vfs_ioctl+0x99/0x5a0 > > > > [<ffffffff812cd3d7>] ? file_has_perm+0x97/0xb0 > > > > [<ffffffff81103715>] ? rcu_eqs_exit+0x65/0xb0 > > > > [<ffffffff811c4f91>] sys_ioctl+0x91/0xb0 > > > > [<ffffffff81695ad4>] tracesys+0xdd/0xe2 > > > > > > > > > > I see lots of these [mostly from page fault], the following one (quick and dirty) works for me. > > > > Is that patch or any other fix being picked up? It's over three weeks > > now and I'm still seeing those BUGs with the latest 3.8-rc. > > > > None that I'm aware of. Either this one https://patchwork.kernel.org/patch/2094501/ or a bit an older approach here https://patchwork.kernel.org/patch/1972071/ should fix this. /me looks at Dave Cheers, Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-02-08 8:42 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-01-13 1:27 radeon causing sleeping function called from invalid context Dave Jones 2013-01-13 11:38 ` Sergey Senozhatsky 2013-02-07 21:53 ` Andreas Bombe 2013-02-08 7:47 ` Sergey Senozhatsky 2013-02-08 8:44 ` Daniel Vetter
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox