drm/sysfs lifetime interaction fixes

Fengguang Wu fengguang.wu at intel.com
Sat Oct 12 14:54:09 CEST 2013


On Sat, Oct 12, 2013 at 07:47:05AM +1000, Dave Airlie wrote:
> >>
> >> This is my preferred method of fixing it as I don't think the lifetimes need
> >> to be tied so closely, though this requires review my someone to make sure
> >> my unregistering etc is correct and in the right place.
> >
> > Apparently this fixes the problem for Fengguang, and the code looks
> > cleaner too. Thanks,
> 
> Leaves the fixes or next question, since I suppose its not technically
> a regression, -next is probably fine, let me know if you'd l like them
> earlier.

Dave, I tested the two patches on top of drm-next and find that it
does help eliminate the lots of oops messages in the below kernels.

However in the 2nd config, the patched kernel has one new oops type
than its base kernels (6aba5b6 and v3.12-rc3). v3.12-rc4 is also
tested for your reference. In the 3nd config, both patched and base
kernels have that oops:

[   96.969429] init: plymouth-upstart-bridge main process (309) terminated with status 1
 * Asking all remaining processes to terminate...       
[   97.260371] BUG: Bad page map in process killall5  pte:4f426de0 pmd:0f4f4067
[   97.261114] addr:3fc00000 vm_flags:00100173 anon_vma:4f4066c0 mapping:  (null) index:3ffe6
[   97.261912] CPU: 0 PID: 334 Comm: killall5 Not tainted 3.12.0-rc3-00156-gdaeb5e3 #1
[   97.262633] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[   97.263192]  3fc00000 4f4c1e14 4212e45c 4fbff9a0 4f4c1e4c 411a9c4b 4262ade0 3fc00000
[   97.264051]  00100173 4f4066c0 00000000 0003ffe6 4f426de0 0003ffe6 00000000 4fbff9a0
[   97.264906]  3fc00000 3fc00000 4f4c1e60 411ab50e 00000000 4f464000 00000000 4f4c1ed0
[   97.265751] Call Trace:
[   97.266022]  [<4212e45c>] dump_stack+0xbb/0x14b
[   97.266456]  [<411a9c4b>] print_bad_pte+0x28b/0x2c0
[   97.266931]  [<411ab50e>] vm_normal_page+0xae/0xe0
[   97.267388]  [<411b37f3>] munlock_vma_pages_range+0x143/0x320
[   97.267950]  [<410d30fd>] ? sched_clock_cpu+0x20d/0x250
[   97.268451]  [<411bacee>] exit_mmap+0x7e/0x200
[   97.268893]  [<4131de9c>] ? __const_udelay+0x2c/0x40
[   97.269369]  [<410adf28>] ? __rcu_read_unlock+0x68/0x150
[   97.269888]  [<4123227b>] ? exit_aio+0x11b/0x280
[   97.270412]  [<4123217c>] ? exit_aio+0x1c/0x280
[   97.270892]  [<410829c7>] ? do_exit+0x697/0x1280
[   97.271332]  [<4107a1a1>] mmput+0x81/0x170
[   97.271726]  [<410829dc>] do_exit+0x6ac/0x1280
[   97.272166]  [<410bad75>] ? hrtimer_nanosleep+0x1f5/0x210
[   97.272679]  [<4215328a>] ? sysenter_exit+0xf/0x45
[   97.273151]  [<41083751>] do_group_exit+0x131/0x160
[   97.273617]  [<410837ad>] SyS_exit_group+0x2d/0x30
[   97.274088]  [<42153251>] sysenter_do_call+0x12/0x3c
[   97.274560] Disabling lock debugging due to kernel taint
 * All processes ended within 1 seconds....       

That oops message looks very like the one I reported for this commit.

commit 7a8010cd36273ff5f6fea5201ef9232f30cebbd9
Author: Vlastimil Babka <vbabka at suse.cz>
Date:   Wed Sep 11 14:22:35 2013 -0700

    mm: munlock: manual pte walk in fast path instead of follow_page_mask()

Vlastimil Babka, has this bug been fixed in -rc4?

Thanks,
Fengguang
---

patch 2  daeb5e3 drm/sysfs: sort out minor and connector device object lifetimes.
patch 1  b4dcbb3 drm/i915: abstract the conversion of device->minor out to a macro
drm-next 6aba5b6 drm/i915/dp: get rid of intel_dp->link_configuration

/kernel/x86_64-randconfig-j3-1009/daeb5e37165e2ad745d1d2d5d7ab32ad9cb08f1a

+-----------------------------------------------------------------------+-----------+-----------+--------------+--------------+
|                                                                       | v3.12-rc3 | v3.12-rc4 | 6aba5b6cf098 | daeb5e37165e |
+-----------------------------------------------------------------------+-----------+-----------+--------------+--------------+
| has_kernel_error_warning                                              | 161       | 60        | 109          | 3            |
| WARNING:CPU:PID:at_fs/sysfs/dir.c:sysfs_add_one()                     | 161       | 60        | 109          |              |
| WARNING:CPU:PID:at_lib/kobject.c:kobject_add_internal()               | 161       | 60        | 109          |              |
| WARNING:CPU:PID:at_drivers/base/driver.c:driver_unregister()          | 161       | 60        | 109          |              |
| WARNING:CPU:PID:at_lib/debugobjects.c:debug_print_object()            | 161       | 60        | 109          |              |
| WARNING:CPU:PID:at_arch/x86/kernel/irq_64.c:handle_irq()              | 10        | 3         | 6            |              |
| BUG:unable_to_handle_kernel_NULL_pointer_dereference_at               | 158       | 59        | 109          |              |
| Oops:DEBUG_PAGEALLOC                                                  | 92        | 28        | 64           |              |
| WARNING:CPU:PID:at_lib/list_debug.c:__list_del_entry()                | 92        | 28        | 64           |              |
| BUG:scheduling_while_atomic                                           | 99        | 30        | 64           |              |
| INFO:lockdep_is_turned_off                                            | 99        | 30        | 64           |              |
| BUG:unable_to_handle_kernel_paging_request_at                         | 145       | 55        | 100          |              |
| kernel_BUG_at_kernel/smpboot.c                                        | 45        | 13        | 23           |              |
| invalid_opcode:DEBUG_PAGEALLOC                                        | 45        | 13        | 23           |              |
| general_protection_fault:DEBUG_PAGEALLOC                              | 10        | 2         | 3            |              |
| Kernel_panic-not_syncing:Fatal_exception_in_interrupt                 | 19        | 4         | 7            |              |
| BUG:kernel_boot_oops                                                  | 57        | 60        | 9            |              |
| WARNING:CPU:PID:at_kernel/workqueue.c:work_fixup_activate()           | 75        | 24        | 57           |              |
| WARNING:CPU:PID:at_kernel/workqueue.c:__queue_work()                  | 29        | 10        | 16           |              |
| BUG:unable_to_handle_kernel_NULL_pointer_dereference_at(null)         | 9         | 2         | 4            |              |
| BUG:unable_to_h                                                       | 1         |           |              |              |
| BUG:unable_to_handle_kernel_NULL_pointer_dereference                  | 5         | 4         | 2            |              |
| BUG:unable_to                                                         | 1         |           |              |              |
| BUG:unable_to_handle                                                  | 2         |           |              |              |
| BUG:unable_to_handle_kernel_NULL                                      | 1         |           |              |              |
| Kernel_panic-not_syncing:stack-protector:Kernel_stack_is_corrupted_in | 1         |           |              |              |
| BUG:unable_to_handle_kernel_NULL_pointer_de                           | 1         | 1         |              |              |
| BUG:unable_to_handle_kernel_NULL_po                                   | 2         |           |              |              |
| BUG:unable_to_ha                                                      | 1         |           |              |              |
| BUG:u                                                                 | 1         |           |              |              |
| BUG:unable_to_handle_kernel                                           | 0         | 1         | 3            |              |
| BUG:unable_to_handle_kernel_NULL_point                                | 0         | 1         |              |              |
| BUG:unable_to_handle_kernel_NULL_pointer_derefe                       | 0         | 1         |              |              |
| BUG:un                                                                | 0         | 1         | 1            |              |
| BUG:unable_to_handle_kernel_NULL_pointer_dere                         | 0         | 0         | 1            |              |
| BUG                                                                   | 0         | 0         | 1            |              |
| BUG:unable_to_handle_kernel_NULL_pointer                              | 0         | 0         | 1            |              |
| BUG:unable_to_hand                                                    | 0         | 0         | 1            |              |
| BUG:unable_to_handl                                                   | 0         | 0         | 1            |              |
| good_boots                                                            | 0         | 0         | 0            | 98           |
| Out_of_memory:Kill_process                                            | 0         | 0         | 0            | 3            |
+-----------------------------------------------------------------------+-----------+-----------+--------------+--------------+

/kernel/i386-randconfig-c3-1009/daeb5e37165e2ad745d1d2d5d7ab32ad9cb08f1a

+---------------------------------------------------------------+-----------+-----------+--------------+--------------+--------------+
|                                                               | v3.12-rc3 | v3.12-rc4 | 6aba5b6cf098 | b4dcbb3b9284 | daeb5e37165e |
+---------------------------------------------------------------+-----------+-----------+--------------+--------------+--------------+
| has_kernel_error_warning                                      | 364       | 63        | 1109         | 78           | 71           |
| BUG:kernel_early_hang_without_any_printk_output               | 13        | 7         | 44           | 62           | 58           |
| WARNING:CPU:PID:at_fs/sysfs/dir.c:sysfs_add_one()             | 351       | 56        | 1065         |              |              |
| WARNING:CPU:PID:at_lib/kobject.c:kobject_add_internal()       | 351       | 56        | 1065         |              |              |
| WARNING:CPU:PID:at_drivers/base/driver.c:driver_unregister()  | 351       | 56        | 1065         |              |              |
| WARNING:CPU:PID:at_lib/debugobjects.c:debug_print_object()    | 351       | 56        | 1065         |              |              |
| INFO:trying_to_register_non-static_key                        | 351       | 56        | 1065         |              |              |
| BUG:unable_to_handle_kernel_NULL_pointer_dereference_at(null) | 351       | 56        | 1065         |              |              |
| Oops:PREEMPT_SMP                                              | 351       | 56        | 1065         |              |              |
| Kernel_panic-not_syncing:Fatal_exception_in_interrupt         | 351       | 56        | 1065         |              |              |
| BUG:kernel_boot_oops                                          | 58        | 56        | 9            |              |              |
| good_boots                                                    | 0         | 0         | 0            | 922          | 1030         |
| BUG:Bad_page_map_in_process_killall5_pte:pmd                  | 0         | 0         | 0            | 15           | 13           |
| kernel_BUG_at_include/linux/mm.h                              | 0         | 0         | 0            | 1            |              |
| invalid_opcode:PREEMPT_SMP                                    | 0         | 0         | 0            | 1            |              |
| Kernel_panic-not_syncing:Fatal_exception                      | 0         | 0         | 0            | 1            |              |
+---------------------------------------------------------------+-----------+-----------+--------------+--------------+--------------+

/kernel/i386-randconfig-i003-1011/daeb5e37165e2ad745d1d2d5d7ab32ad9cb08f1a

+-------------------------------------------------+-----------+-----------+--------------+--------------+
|                                                 | v3.12-rc3 | v3.12-rc4 | 6aba5b6cf098 | daeb5e37165e |
+-------------------------------------------------+-----------+-----------+--------------+--------------+
| good_boots                                      | 1088      | 1092      | 1070         | 1043         |
| has_kernel_error_warning                        | 42        | 71        | 40           | 67           |
| BUG:kernel_early_hang_without_any_printk_output | 37        | 71        | 36           | 59           |
| BUG:Bad_page_map_in_process_killall5_pte:pmd    | 5         | 0         | 4            | 8            |
+-------------------------------------------------+-----------+-----------+--------------+--------------+
wfg at bee /kernel/i386-randconfig-r8-1011/daeb5e37165e2ad745d1d2d5d7ab32ad9cb08f1a%  


More information about the dri-devel mailing list