[Bug 233414] [PowerPC64] OPTIONS DEBUG_MEMGUARD results in unbootable kernel

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Dec 3 17:00:01 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233414

--- Comment #6 from Leandro Lupori <leandro.lupori at gmail.com> ---
(In reply to Leandro Lupori from comment #5)

Unfortunately I hit the recursive call to kmem_back_domain() issue again.

root at ppcdevref:~ # panic: __rw_wlock_hard: recursing but non-recursive rw
kernel vm object @ /usr/src/sys/vm/vm_kern.c:472

cpuid = 70
time = 1543855595
KDB: stack backtrace:
0xe000000173207c10: at .kdb_backtrace+0x5c
0xe000000173207d40: at .vpanic+0x1b4
0xe000000173207e00: at .panic+0x38
0xe000000173207e90: at .__rw_wlock_hard+0x174
0xe000000173207fa0: at ._rw_wlock_cookie+0x110
0xe000000173208040: at .kmem_back_domain+0x134
0xe000000173208130: at .kmem_back_domain+0x438
0xe0000001732081f0: at .kmem_back+0x18
0xe000000173208270: at .memguard_alloc+0x188
0xe000000173208360: at .uma_zalloc_arg+0xe0
0xe000000173208420: at .uma_zalloc_pcpu_arg+0x174
0xe0000001732084c0: at .uma_zfree_arg+0x4c4
0xe000000173208570: at .uma_zfree_pcpu_arg+0xc4
0xe000000173208600: at .uma_zalloc_arg+0x3c0
0xe0000001732086c0: at .moea64_get_unique_vsid+0x2e4
0xe000000173208740: at .moea64_enter+0xac
0xe000000173208840: at .pmap_enter+0xb4
0xe0000001732088f0: at .kmem_back_domain+0x27c
0xe0000001732089e0: at .kmem_malloc_domainset+0xc8
0xe000000173208ad0: at .uma_large_malloc_domain+0xa4
0xe000000173208b60: at .uma_large_malloc+0x1c
0xe000000173208be0: at .malloc+0x134
0xe000000173208c90: at .zfs_kmem_alloc+0x34
0xe000000173208d10: at .zio_buf_alloc+0xec
0xe000000173208db0: at .abd_alloc_linear+0xec
0xe000000173208e50: at .abd_alloc_for_io+0x34
0xe000000173208ed0: at .vdev_queue_io_to_issue+0x8c4
0xe000000173209420: at .vdev_queue_io_done+0x20c
0xe0000001732094f0: at .zio_vdev_io_done+0x12c
0xe000000173209590: at .zio_execute+0x1c4
0xe000000173209670: at .taskq_run_ent+0x30
0xe0000001732096f0: at .taskqueue_poll_is_busy+0x250
0xe0000001732097c0: at .taskqueue_thread_loop+0xac
0xe000000173209850: at .fork_exit+0xd0
0xe0000001732098f0: at .fork_trampoline+0x10
0xe000000173209920: at -0x4
KDB: enter: panic
[ thread pid 0 tid 101000 ]
Stopped at      .kdb_enter+0x60:        ld      r2, r1, 0x28
db>  


It is interesting that this time memguard_alloc() was not called twice, but it
was called before the first call to kmem_back_domain() returned.

Any idea on how to work around this? Maybe force memguard to also guard malloc?

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-ppc mailing list