Message ID | 20130113113820.GA2503@swordfish (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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.
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
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
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;