lkml.org 
[lkml]   [2016]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: BUG caused by "Use new drm_fb_helper functions" series
From
Date
Hi Peter,

On 02/02/2016 02:07 AM, Peter Hurley wrote:
> Hi Archit,
>
> Just booting 4.4-rc5+, I got this splat [1]
> At first glance, this appears to be a simple fix.

Thanks for sharing this.

>
> However, I'm concerned that fbcon functions, which may be called with
> interrupts disabled, are now hooked up to fbdev functions which may assume
> interrupts are not disabled (as is the case with cfb_imageblit()).

In the case when CONFIG_FB is enabled, drm_fb_helper_cfb_imageblit
helper simply wraps around cfg_imageblit, so I don't see how we'd have
any difference in behaviour.

>
> For example, in the splat below, it's a simple fix to make the splat go
> away with GFP_ATOMIC allocation. However, the following fence wait is _never_
> going to trigger with interrupts disabled on UP.
>
> FWIW, I've been running almost exclusively debug kernel builds so I'm not
> sure why this hasn't triggered many times before, but it hasn't.

We could revert the patch
"drm/nouveau: Use new drm_fb_helper functions" and see if we still hit this
issue.

Thanks,
Archit

> Regards,
> Peter Hurley
>
>
> [1] BUG splat
>
> [ 37.438494] BUG: sleeping function called from invalid context at /home/peter/src/kernels/mainline/mm/slub.c:1287
> [ 37.438495] in_atomic(): 1, irqs_disabled(): 1, pid: 2276, name: auditd
> [ 37.438497] 1 lock held by auditd/2276:
> [ 37.438507] #0: (audit_cmd_mutex){+.+.+.}, at: [<ffffffff8113a63f>] audit_receive+0x1f/0xa0
> [ 37.438507] irq event stamp: 1689
> [ 37.438511] hardirqs last enabled at (1689): [<ffffffff810e9a96>] vprintk_emit+0x236/0x620
> [ 37.438513] hardirqs last disabled at (1688): [<ffffffff810e9934>] vprintk_emit+0xd4/0x620
> [ 37.438518] softirqs last enabled at (1652): [<ffffffff81753898>] netlink_poll+0x138/0x1c0
> [ 37.438520] softirqs last disabled at (1650): [<ffffffff81753857>] netlink_poll+0xf7/0x1c0
> [ 37.438522] CPU: 7 PID: 2276 Comm: auditd Not tainted 4.4.0-rc5+wip-xeon+debug #rc5+wip
> [ 37.438523] Hardware name: Dell Inc. Precision WorkStation T5400 /0RW203, BIOS A11 04/30/2012
> [ 37.438526] ffffffff81ce5cc8 ffff8802a87c3590 ffffffff813fb6c5 ffff8802ac768000
> [ 37.438528] ffff8802a87c35b8 ffffffff810a6fb9 ffffffff81ce5cc8 0000000000000507
> [ 37.438530] 0000000000000000 ffff8802a87c35e0 ffffffff810a70b9 00000000024080c0
> [ 37.438531] Call Trace:
> [ 37.438535] [<ffffffff813fb6c5>] dump_stack+0x4e/0x79
> [ 37.438538] [<ffffffff810a6fb9>] ___might_sleep+0x149/0x200
> [ 37.438540] [<ffffffff810a70b9>] __might_sleep+0x49/0x80
> [ 37.438544] [<ffffffff81202dfd>] kmem_cache_alloc_trace+0x20d/0x2e0
> [ 37.438600] [<ffffffffa0272e9b>] ? nouveau_fence_new+0x3b/0x90 [nouveau]
> [ 37.438624] [<ffffffffa0272e9b>] nouveau_fence_new+0x3b/0x90 [nouveau]
> [ 37.438649] [<ffffffffa02707b2>] nouveau_channel_idle+0x42/0xb0 [nouveau]
> [ 37.438673] [<ffffffffa026bb3f>] nouveau_fbcon_sync+0x7f/0xb0 [nouveau]
> [ 37.438677] [<ffffffff8148998a>] cfb_imageblit+0x9a/0x4d0
> [ 37.438681] [<ffffffff810d22ef>] ? trace_hardirqs_off_caller+0x1f/0xc0
> [ 37.438693] [<ffffffffa013d30e>] drm_fb_helper_cfb_imageblit+0xe/0x10 [drm_kms_helper]
> [ 37.438717] [<ffffffffa026bbc1>] nouveau_fbcon_imageblit+0x51/0xd0 [nouveau]
> [ 37.438719] [<ffffffff8147c02c>] bit_putcs+0x2dc/0x530
> [ 37.438721] [<ffffffff810d239d>] ? trace_hardirqs_off+0xd/0x10
> [ 37.438725] [<ffffffff81476144>] ? get_color.isra.15+0x34/0x130
> [ 37.438727] [<ffffffff81477278>] fbcon_putcs+0x128/0x160
> [ 37.438728] [<ffffffff8147bd50>] ? bit_cursor+0x5e0/0x5e0
> [ 37.438730] [<ffffffff8147756b>] fbcon_redraw.isra.25+0x16b/0x1d0
> [ 37.438731] [<ffffffff8147894a>] fbcon_scroll+0x1ea/0xce0
> [ 37.438734] [<ffffffff815112ca>] scrup+0x14a/0x160
> [ 37.438736] [<ffffffff81511360>] lf+0x80/0x90
> [ 37.438737] [<ffffffff81511617>] vt_console_print+0x2a7/0x3e0
> [ 37.438739] [<ffffffff810e89c4>] call_console_drivers.constprop.24+0x144/0x1d0
> [ 37.438741] [<ffffffff810e9783>] console_unlock+0x463/0x540
> [ 37.438742] [<ffffffff810e9bba>] vprintk_emit+0x35a/0x620
> [ 37.438744] [<ffffffff810e9fd9>] vprintk_default+0x29/0x40
> [ 37.438748] [<ffffffff8119f71a>] printk+0x4d/0x4f
> [ 37.438750] [<ffffffff81137ad2>] audit_printk_skb+0x62/0x70
> [ 37.438751] [<ffffffff81137e84>] audit_log_end+0x1d4/0x2d0
> [ 37.438752] [<ffffffff81137ce0>] ? audit_log_end+0x30/0x2d0
> [ 37.438754] [<ffffffff81139059>] audit_log_config_change+0x89/0xa0
> [ 37.438756] [<ffffffff8113a4ca>] audit_receive_msg+0xa5a/0xbb0
> [ 37.438759] [<ffffffff818481bd>] ? mutex_lock_nested+0x2ed/0x450
> [ 37.438761] [<ffffffff8113a63f>] ? audit_receive+0x1f/0xa0
> [ 37.438762] [<ffffffff8113a63f>] ? audit_receive+0x1f/0xa0
> [ 37.438764] [<ffffffff8113a672>] audit_receive+0x52/0xa0
> [ 37.438766] [<ffffffff81755652>] netlink_unicast+0xf2/0x1c0
> [ 37.438767] [<ffffffff81755b07>] netlink_sendmsg+0x3e7/0x620
> [ 37.438771] [<ffffffff816ff4e8>] sock_sendmsg+0x38/0x50
> [ 37.438772] [<ffffffff816ff946>] SYSC_sendto+0xf6/0x170
> [ 37.438775] [<ffffffff8119db8d>] ? context_tracking_exit+0x1d/0x30
> [ 37.438778] [<ffffffff8100367f>] ? enter_from_user_mode+0x1f/0x50
> [ 37.438780] [<ffffffff8100377b>] ? syscall_trace_enter_phase1+0xcb/0x130
> [ 37.438781] [<ffffffff81003017>] ? trace_hardirqs_on_thunk+0x17/0x19
> [ 37.438784] [<ffffffff8170079e>] SyS_sendto+0xe/0x10
> [ 37.438786] [<ffffffff8184be36>] entry_SYSCALL_64_fastpath+0x16/0x7a
>

--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora
Forum, hosted by The Linux Foundation

\
 
 \ /
  Last update: 2016-02-02 06:41    [W:0.067 / U:2.948 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site