Re: Oops (NULL pointer dereference) in radeon_fence_ref in 3.14.63

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 08.03.2016 um 03:54 schrieb Nicolai Hähnle:
Hi,

On 05.03.2016 16:24, Christian König wrote:
just an educated guess, but I think the problem is simply that kernel
3.14 doesn't yet contain the code so that radeon_fence_get() can safely
called with a NULL pointer.

So the backport of Nicolai's patch needs and extra check for the case
when the fence is NULL.

Oops indeed. Only the ref call should need the guard, the unref has always had a NULL pointer test as far as I can see.

Lutz, could you please test whether the attached patch on top of 3.14.63 fixes the problem?

Patch is Reviewed-by: Christian König <christian.koenig@xxxxxxx>.

Regards,
Christian.


Thanks,
Nicolai

Regards,
Christian.

Am 05.03.2016 um 18:16 schrieb Lutz Euler:
Hi,

after upgrading from kernel 3.14.62 to 3.14.63, while surfing, the
screen suddenly got black and the mouse cursor froze. I had to reset
the machine and found an oops followed by repeated messages
"BUG: scheduling while atomic: Xorg/3757/0x00000002" in the logs.
I have copied the oops and the first of these messages below.

This was repeatable: After the reboot, when the browser restored its
tabs, the oops occurred again. I then rebooted into 3.14.62 and the
problem didn't occur again.

Just guessing: Of the commits regarding radeon between these two
kernel versions might the following be involved

Nicolai Hähnle (1):
       drm/radeon: hold reference to fences in radeon_sa_bo_new

as it mentions fences and the stack trace starts with radeon_sa_bo_new?

Thanks and Regards,

Lutz

 From lspci -v:

05:00.0 VGA compatible controller: ATI Technologies Inc NI Caicos [AMD
RADEON HD 6450] (prog-if 00 [VGA controller])
    Subsystem: PC Partner Limited Device e164
    Flags: bus master, fast devsel, latency 0, IRQ 53
    Memory at d0000000 (64-bit, prefetchable) [size=256M]
    Memory at fe9e0000 (64-bit, non-prefetchable) [size=128K]
    I/O ports at e000 [size=256]
    Expansion ROM at fe9c0000 [disabled] [size=128K]
    Capabilities: [50] Power Management version 3
    Capabilities: [58] Express Legacy Endpoint, MSI 00
    Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1
Len=010 <?>
    Capabilities: [150] Advanced Error Reporting
    Kernel driver in use: radeon
    Kernel modules: radeon

X.Org version: 1.10.4

decodecode of the oops:

Mar 5 15:04:58 lutz kernel: [ 6995.216776] Code: c7 c6 d8 3e 36 a0 31
c0 45 31 e4 e8 7b 70 15 e1 eb b5 66 0f 1f 84 00 00 00 00 00 55 48 89
f8 ba 01 00 00 00 48 89 e5 48 83 ec 10 <f0> 0f c1 57 08 ff c2 ff ca 7e
02 c9 c3 80 3d 10 ae 10 00 01 74
All code
========
    0:    c7 c6 d8 3e 36 a0        mov    $0xa0363ed8,%esi
    6:    31 c0                    xor    %eax,%eax
    8:    45 31 e4                 xor    %r12d,%r12d
    b:    e8 7b 70 15 e1           callq  0xffffffffe115708b
   10:    eb b5                    jmp    0xffffffffffffffc7
   12:    66 0f 1f 84 00 00 00     nopw   0x0(%rax,%rax,1)
   19:    00 00
   1b:    55                       push   %rbp
   1c:    48 89 f8                 mov    %rdi,%rax
   1f:    ba 01 00 00 00           mov    $0x1,%edx
   24:    48 89 e5                 mov    %rsp,%rbp
   27:    48 83 ec 10              sub    $0x10,%rsp
   2b:*    f0 0f c1 57 08           lock xadd %edx,0x8(%rdi)
<-- trapping instruction
   30:    ff c2                    inc    %edx
   32:    ff ca                    dec    %edx
   34:    7e 02                    jle    0x38
   36:    c9                       leaveq
   37:    c3                       retq
   38:    80 3d 10 ae 10 00 01     cmpb $0x1,0x10ae10(%rip)        #
0x10ae4f
   3f:    74                       .byte 0x74

Code starting with the faulting instruction
===========================================
    0:    f0 0f c1 57 08           lock xadd %edx,0x8(%rdi)
    5:    ff c2                    inc    %edx
    7:    ff ca                    dec    %edx
    9:    7e 02                    jle    0xd
    b:    c9                       leaveq
    c:    c3                       retq
    d:    80 3d 10 ae 10 00 01     cmpb $0x1,0x10ae10(%rip)        #
0x10ae24
   14:    74                       .byte 0x74

Mar  5 15:04:58 lutz kernel: [ 6995.192330] BUG: unable to handle
kernel NULL pointer dereference at 0000000000000008
Mar  5 15:04:58 lutz kernel: [ 6995.192375] IP: [<ffffffffa02776c0>]
radeon_fence_ref+0x10/0x50 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.192441] PGD 22a86a067 PUD
22d8e8067 PMD 0
Mar  5 15:04:58 lutz kernel: [ 6995.192463] Oops: 0002 [#1] PREEMPT SMP
Mar  5 15:04:58 lutz kernel: [ 6995.192484] Modules linked in:
binfmt_misc parport_pc ppdev snd_hda_codec_hdmi snd_opl3_synth
snd_seq_midi_emul snd_hda_intel snd_hda_codec snd_es1938 gameport
snd_pcm_oss snd_mixer_oss snd_seq_dummy snd_pcm snd_seq_oss
snd_opl3_lib snd_hwdep snd_mpu401_uart snd_seq_midi snd_rawmidi
snd_seq_midi_event snd_seq psmouse fbcon tileblit edac_core font
serio_raw i2c_piix4 bitblit softcursor radeon snd_seq_device snd_timer
hwmon_vid ttm drm_kms_helper asus_atk0110 drm i2c_algo_bit snd
soundcore lp parport usbhid btrfs raid6_pq zlib_deflate xor r8169 mii
xhci_hcd libcrc32c
Mar  5 15:04:58 lutz kernel: [ 6995.192741] CPU: 5 PID: 3757 Comm:
Xorg Not tainted 3.14.63 #1
Mar  5 15:04:58 lutz kernel: [ 6995.192765] Hardware name: System
manufacturer System Product Name/M4A87TD/USB3, BIOS 1202 02/17/2011
Mar  5 15:04:58 lutz kernel: [ 6995.192803] task: ffff88022c1d5f80 ti:
ffff8800c42a6000 task.ti: ffff8800c42a6000
Mar  5 15:04:58 lutz kernel: [ 6995.192833] RIP:
0010:[<ffffffffa02776c0>]  [<ffffffffa02776c0>]
radeon_fence_ref+0x10/0x50 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.192881] RSP:
0018:ffff8800c42a7a68  EFLAGS: 00010282
Mar  5 15:04:58 lutz kernel: [ 6995.192903] RAX: 0000000000000000 RBX:
ffff8800c5d61328 RCX: 0000000000000000
Mar  5 15:04:58 lutz kernel: [ 6995.192931] RDX: 0000000000000001 RSI:
0000000000000000 RDI: 0000000000000000
Mar  5 15:04:58 lutz kernel: [ 6995.192960] RBP: ffff8800c42a7a78 R08:
ffff8800c5d60000 R09: 0000000000000000
Mar  5 15:04:58 lutz kernel: [ 6995.192988] R10: 0000000000000000 R11:
0000000000000000 R12: 0000000000000100
Mar  5 15:04:58 lutz kernel: [ 6995.193016] R13: ffff8800c5d613b0 R14:
ffff8800c42a7ae8 R15: ffff8800c42a7b08
Mar  5 15:04:58 lutz kernel: [ 6995.193045] FS:
00007f7ebe91d8a0(0000) GS:ffff880237d40000(0000) knlGS:0000000000000000
Mar  5 15:04:58 lutz kernel: [ 6995.193076] CS:  0010 DS: 0000 ES:
0000 CR0: 0000000080050033
Mar  5 15:04:58 lutz kernel: [ 6995.193100] CR2: 0000000000000008 CR3:
000000022de3e000 CR4: 00000000000007e0
Mar  5 15:04:58 lutz kernel: [ 6995.193128] Stack:
Mar  5 15:04:58 lutz kernel: [ 6995.193137]  ffff880159dcef00
ffff8800c5d61328 ffff8800c42a7b88 ffffffffa02d9f22
Mar  5 15:04:58 lutz kernel: [ 6995.193170]  01ff8800c42a7a98
ffff8800c5d60000 ffff8800c42a7b08 ffff8800c42a7c88
Mar  5 15:04:58 lutz kernel: [ 6995.193203]  0000f00455ee5200
ffff8800c5d613b0 00000100c42a7b08 0006e97800200000
Mar  5 15:04:58 lutz kernel: [ 6995.193237] Call Trace:
Mar  5 15:04:58 lutz kernel: [ 6995.194709] [<ffffffffa02d9f22>]
radeon_sa_bo_new+0x302/0x590 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.196175] [<ffffffff811551e6>] ?
__kmalloc+0x66/0x1d0
Mar  5 15:04:58 lutz kernel: [ 6995.197659] [<ffffffffa028f849>] ?
copy_from_user+0x9/0x10 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.199160] [<ffffffffa028dcb3>]
radeon_ib_get+0x43/0xe0 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.200655] [<ffffffffa0290111>]
radeon_cs_ioctl+0x201/0xac0 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.202135] [<ffffffff812ffe52>] ?
idr_mark_full+0x52/0x70
Mar  5 15:04:58 lutz kernel: [ 6995.203620] [<ffffffffa01b6b31>]
drm_ioctl+0x401/0x580 [drm]
Mar  5 15:04:58 lutz kernel: [ 6995.205094] [<ffffffffa028ff10>] ?
radeon_cs_parser_init+0x470/0x470 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.206564] [<ffffffff816572dc>] ?
__do_page_fault+0x1cc/0x560
Mar  5 15:04:58 lutz kernel: [ 6995.208033] [<ffffffffa025e349>]
radeon_drm_ioctl+0x9/0x10 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.209510] [<ffffffff8116fe21>]
do_vfs_ioctl+0x81/0x4d0
Mar  5 15:04:58 lutz kernel: [ 6995.210975] [<ffffffff81137f29>] ?
SyS_mmap_pgoff+0xd9/0x210
Mar  5 15:04:58 lutz kernel: [ 6995.212432] [<ffffffff81170301>]
SyS_ioctl+0x91/0xa0
Mar  5 15:04:58 lutz kernel: [ 6995.213874] [<ffffffff8165767c>] ?
do_page_fault+0xc/0x10
Mar  5 15:04:58 lutz kernel: [ 6995.215323] [<ffffffff8165b542>]
system_call_fastpath+0x16/0x1b
Mar  5 15:04:58 lutz kernel: [ 6995.216776] Code: c7 c6 d8 3e 36 a0 31
c0 45 31 e4 e8 7b 70 15 e1 eb b5 66 0f 1f 84 00 00 00 00 00 55 48 89
f8 ba 01 00 00 00 48 89 e5 48 83 ec 10 <f0> 0f c1 57 08 ff c2 ff ca 7e
02 c9 c3 80 3d 10 ae 10 00 01 74
Mar  5 15:04:58 lutz kernel: [ 6995.218402] RIP [<ffffffffa02776c0>]
radeon_fence_ref+0x10/0x50 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.219987]  RSP <ffff8800c42a7a68>
Mar  5 15:04:58 lutz kernel: [ 6995.221568] CR2: 0000000000000008
Mar  5 15:04:58 lutz kernel: [ 6995.234168] ---[ end trace
37c0545f39a2b3e5 ]---

Mar  5 15:04:58 lutz kernel: [ 6995.234170] note: Xorg[3757] exited
with preempt_count 1
Mar  5 15:04:58 lutz kernel: [ 6995.239926] BUG: scheduling while
atomic: Xorg/3757/0x00000002
Mar  5 15:04:58 lutz kernel: [ 6995.239931] Modules linked in:
binfmt_misc parport_pc ppdev snd_hda_codec_hdmi snd_opl3_synth
snd_seq_midi_emul snd_hda_intel snd_hda_c
odec snd_es1938 gameport snd_pcm_oss snd_mixer_oss snd_seq_dummy
snd_pcm snd_seq_oss snd_opl3_lib snd_hwdep snd_mpu401_uart
snd_seq_midi snd_rawmidi snd_seq_midi_event
  snd_seq psmouse fbcon tileblit edac_core font serio_raw i2c_piix4
bitblit softcursor radeon snd_seq_device snd_timer hwmon_vid ttm
drm_kms_helper asus_atk0110 drm i2c
_algo_bit snd soundcore lp parport usbhid btrfs raid6_pq zlib_deflate
xor r8169 mii xhci_hcd libcrc32c
Mar  5 15:04:58 lutz kernel: [ 6995.239960] CPU: 5 PID: 3757 Comm:
Xorg Tainted: G      D      3.14.63 #1
Mar  5 15:04:58 lutz kernel: [ 6995.239961] Hardware name: System
manufacturer System Product Name/M4A87TD/USB3, BIOS 1202 02/17/2011
Mar  5 15:04:58 lutz kernel: [ 6995.239963]  0000000000000000
ffff8800c42a7078 ffffffff8164f89c ffff880237d518c0
Mar  5 15:04:58 lutz kernel: [ 6995.239965]  0000000000000005
ffff8800c42a7088 ffffffff81075d27 ffff8800c42a70f8
Mar  5 15:04:58 lutz kernel: [ 6995.239967]  ffffffff81650680
ffff8800c42a7184 ffff88022c1d5f80 ffff8800c42a6000
Mar  5 15:04:58 lutz kernel: [ 6995.239969] Call Trace:
Mar  5 15:04:58 lutz kernel: [ 6995.239976] [<ffffffff8164f89c>]
dump_stack+0x4f/0x6b
Mar  5 15:04:58 lutz kernel: [ 6995.239980] [<ffffffff81075d27>]
__schedule_bug+0x47/0x60
Mar  5 15:04:58 lutz kernel: [ 6995.239982] [<ffffffff81650680>]
__schedule+0x600/0x810
Mar  5 15:04:58 lutz kernel: [ 6995.239984] [<ffffffff81650984>]
schedule+0x24/0x70
Mar  5 15:04:58 lutz kernel: [ 6995.239986] [<ffffffff8164fa11>]
schedule_timeout+0x151/0x320
Mar  5 15:04:58 lutz kernel: [ 6995.239989] [<ffffffff81056b60>] ?
call_timer_fn+0x1a0/0x1a0
Mar  5 15:04:58 lutz kernel: [ 6995.240028] [<ffffffffa027713a>]
radeon_fence_wait_seq+0x3ca/0x530 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240043] [<ffffffffa02c1740>] ?
evergreen_program_watermarks+0x150/0x670 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240046] [<ffffffff8108a210>] ?
bit_waitqueue+0xd0/0xd0
Mar  5 15:04:58 lutz kernel: [ 6995.240062] [<ffffffffa02c004b>] ?
evergreen_line_buffer_adjust.clone.5+0xcb/0x1a0 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240073] [<ffffffffa0277680>]
radeon_fence_wait_empty_locked+0xb0/0xe0 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240088] [<ffffffffa02bb83d>]
radeon_pm_compute_clocks+0x59d/0x840 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240100] [<ffffffffa026a69f>]
atombios_crtc_dpms+0x6f/0x100 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240111] [<ffffffffa026bc08>]
atombios_crtc_disable+0x28/0x2f0 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240126] [<ffffffffa02d8844>] ?
radeon_atom_encoder_dpms+0xf4/0x230 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240132] [<ffffffffa021b305>]
drm_helper_disable_unused_functions+0x105/0x160 [drm_kms_helper]
Mar  5 15:04:58 lutz kernel: [ 6995.240135] [<ffffffffa021c610>]
drm_crtc_helper_set_config+0x130/0x970 [drm_kms_helper]
Mar  5 15:04:58 lutz kernel: [ 6995.240138] [<ffffffff81155962>] ?
__slab_free+0x302/0x480
Mar  5 15:04:58 lutz kernel: [ 6995.240151] [<ffffffffa0285061>]
radeon_crtc_set_config+0x31/0xb0 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240172] [<ffffffffa01c16ac>]
drm_mode_set_config_internal+0x5c/0xe0 [drm]
Mar  5 15:04:58 lutz kernel: [ 6995.240180] [<ffffffffa01c30bd>]
drm_framebuffer_remove+0x10d/0x160 [drm]
Mar  5 15:04:58 lutz kernel: [ 6995.240188] [<ffffffffa01c6605>]
drm_fb_release+0xa5/0xd0 [drm]
Mar  5 15:04:58 lutz kernel: [ 6995.240195] [<ffffffffa01b7e18>]
drm_release+0x548/0x5c0 [drm]
Mar  5 15:04:58 lutz kernel: [ 6995.240198] [<ffffffff8115f5a4>]
__fput+0xa4/0x220
Mar  5 15:04:58 lutz kernel: [ 6995.240199] [<ffffffff8115f769>]
____fput+0x9/0x10
Mar  5 15:04:58 lutz kernel: [ 6995.240202] [<ffffffff8106a80c>]
task_work_run+0xac/0xd0
Mar  5 15:04:58 lutz kernel: [ 6995.240205] [<ffffffff8104dc30>]
do_exit+0x2c0/0xac0
Mar  5 15:04:58 lutz kernel: [ 6995.240207] [<ffffffff8164f77b>] ?
printk+0x48/0x4a
Mar  5 15:04:58 lutz kernel: [ 6995.240209] [<ffffffff8109bc29>] ?
kmsg_dump+0xb9/0xd0
Mar  5 15:04:58 lutz kernel: [ 6995.240211] [<ffffffff8165553a>]
oops_end+0x9a/0xe0
Mar  5 15:04:58 lutz kernel: [ 6995.240214] [<ffffffff8103ee32>]
no_context+0x132/0x2e0
Mar  5 15:04:58 lutz kernel: [ 6995.240216] [<ffffffff8103f0f5>]
__bad_area_nosemaphore+0x115/0x210
Mar  5 15:04:58 lutz kernel: [ 6995.240218] [<ffffffff811136d1>] ?
__alloc_pages_nodemask+0x141/0x910
Mar  5 15:04:58 lutz kernel: [ 6995.240220] [<ffffffff8103f1fe>]
bad_area_nosemaphore+0xe/0x10
Mar  5 15:04:58 lutz kernel: [ 6995.240222] [<ffffffff81657442>]
__do_page_fault+0x332/0x560
Mar  5 15:04:58 lutz kernel: [ 6995.240230] [<ffffffffa022b8bb>] ?
ttm_mem_global_alloc_zone.clone.1+0x12b/0x150 [ttm]
Mar  5 15:04:58 lutz kernel: [ 6995.240233] [<ffffffffa022bc12>] ?
ttm_mem_global_alloc_page+0x42/0x50 [ttm]
Mar  5 15:04:58 lutz kernel: [ 6995.240237] [<ffffffff8114dd3e>] ?
alloc_pages_current+0xae/0x170
Mar  5 15:04:58 lutz kernel: [ 6995.240238] [<ffffffff8165767c>]
do_page_fault+0xc/0x10
Mar  5 15:04:58 lutz kernel: [ 6995.240240] [<ffffffff816549d2>]
page_fault+0x22/0x30
Mar  5 15:04:58 lutz kernel: [ 6995.240252] [<ffffffffa02776c0>] ?
radeon_fence_ref+0x10/0x50 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240268] [<ffffffffa02d9f22>]
radeon_sa_bo_new+0x302/0x590 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240270] [<ffffffff811551e6>] ?
__kmalloc+0x66/0x1d0
Mar  5 15:04:58 lutz kernel: [ 6995.240283] [<ffffffffa028f849>] ?
copy_from_user+0x9/0x10 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240296] [<ffffffffa028dcb3>]
radeon_ib_get+0x43/0xe0 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240309] [<ffffffffa0290111>]
radeon_cs_ioctl+0x201/0xac0 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240312] [<ffffffff812ffe52>] ?
idr_mark_full+0x52/0x70
Mar  5 15:04:58 lutz kernel: [ 6995.240320] [<ffffffffa01b6b31>]
drm_ioctl+0x401/0x580 [drm]
Mar  5 15:04:58 lutz kernel: [ 6995.240333] [<ffffffffa028ff10>] ?
radeon_cs_parser_init+0x470/0x470 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240335] [<ffffffff816572dc>] ?
__do_page_fault+0x1cc/0x560
Mar  5 15:04:58 lutz kernel: [ 6995.240346] [<ffffffffa025e349>]
radeon_drm_ioctl+0x9/0x10 [radeon]
Mar  5 15:04:58 lutz kernel: [ 6995.240348] [<ffffffff8116fe21>]
do_vfs_ioctl+0x81/0x4d0
Mar  5 15:04:58 lutz kernel: [ 6995.240351] [<ffffffff81137f29>] ?
SyS_mmap_pgoff+0xd9/0x210
Mar  5 15:04:58 lutz kernel: [ 6995.240353] [<ffffffff81170301>]
SyS_ioctl+0x91/0xa0
Mar  5 15:04:58 lutz kernel: [ 6995.240355] [<ffffffff8165767c>] ?
do_page_fault+0xc/0x10
Mar  5 15:04:58 lutz kernel: [ 6995.240357] [<ffffffff8165b542>]
system_call_fastpath+0x16/0x1b
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel


_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux