Date: Fri, 1 May 2020 02:36:12 -0700 From: Mark Millard <marklmi@yahoo.com> To: FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, FreeBSD Hackers <freebsd-hackers@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: 32-bit powerpc head -r360311: lock order reversal between: "PROC (UMA zone)" and "kernelpmap (kernelpmap)": Is this expected? Message-ID: <FC86DC3B-D1E9-4471-9AEF-B10A2984E0ED@yahoo.com> In-Reply-To: <013FB43E-7DB1-4A66-A6ED-12A891539788@yahoo.com> References: <013FB43E-7DB1-4A66-A6ED-12A891539788@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2020-Apr-30, at 18:30, Mark Millard <marklmi at yahoo.com> wrote: > Using artifact.ci's head -r360311 debug-kernel materials: >=20 > = https://artifact.ci.freebsd.org/snapshot/head/r360311/powerpc/powerpc/kern= el*.txz >=20 > I got the following notice: >=20 > lock order reversal: > 1st 0x1cbb680 PROC (UMA zone) @ /usr/src/sys/vm/uma_core.c:4387 > 2nd 0x113c99c kernelpmap (kernelpmap) @ = /usr/src/sys/powerpc/aim/mmu_oea.c:1524 > stack backtrace: > #0 0x5d1e5c at witness_debugger+0x94 > #1 0x5d1b34 at witness_checkorder+0xb50 > #2 0x51d774 at __mtx_lock_flags+0xcc > #3 0x90902c at moea_kextract+0x5c > #4 0x9462ac at pmap_kextract+0x98 > #5 0x8a417c at zone_release+0xf0 > #6 0x8abc14 at bucket_drain+0x2f0 > #7 0x8ab64c at bucket_free+0x54 > #8 0x8ab8bc at bucket_cache_reclaim+0x1bc > #9 0x8ab3c4 at zone_reclaim+0x128 > #10 0x8a7e60 at uma_reclaim+0x1d0 > #11 0x8d96ac at vm_pageout_worker+0x4d8 > #12 0x8d91c0 at vm_pageout+0x1b0 > #13 0x4f67a0 at fork_exit+0xb0 > #14 0x94892c at fork_trampoline+0xc >=20 > Is the above interesting or is it one of the > known-safe lock order reversals that should > be ignored? >=20 > (The notice is from something like 4.5 hours > before I noticed it.) >=20 While running kyua to see what it might run into . . . lock order reversal: 1st 0x1c34800 filedesc0 (UMA zone) @ /usr/src/sys/vm/uma_core.c:4387 2nd 0x113c99c kernelpmap (kernelpmap) @ = /usr/src/sys/powerpc/aim/mmu_oea.c:1524 stack backtrace: #0 0x5d1e5c at witness_debugger+0x94 #1 0x5d1b34 at witness_checkorder+0xb50 #2 0x51d774 at __mtx_lock_flags+0xcc #3 0x90902c at moea_kextract+0x5c #4 0x9462ac at pmap_kextract+0x98 #5 0x8a417c at zone_release+0xf0 #6 0x8abc14 at bucket_drain+0x2f0 #7 0x8ab64c at bucket_free+0x54 #8 0x8ab8bc at bucket_cache_reclaim+0x1bc #9 0x8ab3c4 at zone_reclaim+0x128 #10 0x8a7d58 at uma_reclaim+0xc8 #11 0x656d24 at vnlru_proc+0x908 #12 0x4f67a0 at fork_exit+0xb0 #13 0x94892c at fork_trampoline+0xc witness_debugger through zone_reclaim look the same as the prior report. uma_reclaim has different associated figures. There is also: lock order reversal: 1st 0xfbed24 allprison (allprison) @ /usr/src/sys/kern/kern_jail.c:984 2nd 0x10706c4 vnet_sysinit_sxlock (vnet_sysinit_sxlock) @ = /usr/src/sys/net/vnet.c:577 stack backtrace: #0 0x5d1e5c at witness_debugger+0x94 #1 0x5d1b34 at witness_checkorder+0xb50 #2 0x555300 at _sx_slock_int+0xa0 #3 0x555b10 at _sx_slock+0x28 #4 0x6b7d84 at vnet_alloc+0xf4 #5 0x4fd09c at kern_jail_set+0x1868 #6 0x4fe938 at sys_jail_set+0x70 #7 0x9492fc at trap+0x748 #8 0x93d1c0 at powerpc_interrupt+0x178 And: lock order reversal: 1st 0x106f5d8 ifnet_sx (ifnet_sx) @ /usr/src/sys/netinet/in.c:914 2nd 0x107071c in_control (in_control) @ /usr/src/sys/netinet/in.c:243 stack backtrace: #0 0x5d1e5c at witness_debugger+0x94 #1 0x5d1b34 at witness_checkorder+0xb50 #2 0x553ca4 at _sx_xlock+0x98 #3 0x6c45b8 at in_ifscrub_all+0xec #4 0x6dbbc4 at ip_destroy+0xb0 #5 0x6b81c0 at vnet_destroy+0x154 #6 0x4fefb0 at prison_deref+0x2cc #7 0x5007dc at prison_remove_one+0x148 #8 0x500658 at sys_jail_remove+0x2a4 #9 0x9492fc at trap+0x748 #10 0x93d1c0 at powerpc_interrupt+0x178 I also do not know about the below GEOM topology related lock order reversals . . . lock order reversal: 1st 0xfbca1c GEOM topology (GEOM topology) @ = /usr/src/sys/geom/eli/g_eli.c:746 2nd 0xd49000 allproc (allproc) @ /usr/src/sys/kern/kern_fork.c:382 stack backtrace: #0 0x5d1e5c at witness_debugger+0x94 #1 0x5d1b34 at witness_checkorder+0xb50 #2 0x553ca4 at _sx_xlock+0x98 #3 0x4f4fb4 at fork1+0x7dc #4 0x5041c8 at kproc_create+0xd4 #5 0xdd27c390 at g_eli_create+0x774 #6 0xdd281048 at g_eli_config+0x23fc #7 0x499188 at g_ctl_req+0x154 #8 0x49e784 at g_run_events+0x194 #9 0x4a1580 at g_event_procbody+0x74 #10 0x4f67a0 at fork_exit+0xb0 #11 0x94892c at fork_trampoline+0xc lock order reversal: 1st 0xfbca1c GEOM topology (GEOM topology) @ = /usr/src/sys/geom/eli/g_eli.c:746 2nd 0xd2baccc8 filedesc structure (filedesc structure) @ = /usr/src/sys/kern/kern_descrip.c:2064 stack backtrace: #0 0x5d1e5c at witness_debugger+0x94 #1 0x5d1b34 at witness_checkorder+0xb50 #2 0x555300 at _sx_slock_int+0xa0 #3 0x555b10 at _sx_slock+0x28 #4 0x4dc128 at fdinit+0xe8 #5 0x4dc638 at fdcopy+0x68 #6 0x4f52ac at fork1+0xad4 #7 0x5041c8 at kproc_create+0xd4 #8 0xdd27c390 at g_eli_create+0x774 #9 0xdd281048 at g_eli_config+0x23fc #10 0x499188 at g_ctl_req+0x154 #11 0x49e784 at g_run_events+0x194 #12 0x4a1580 at g_event_procbody+0x74 #13 0x4f67a0 at fork_exit+0xb0 #14 0x94892c at fork_trampoline+0xc lock order reversal: 1st 0xfbca1c GEOM topology (GEOM topology) @ = /usr/src/sys/geom/eli/g_eli.c:746 2nd 0xd49080 proctree (proctree) @ /usr/src/sys/kern/kern_fork.c:557 stack backtrace: #0 0x5d1e5c at witness_debugger+0x94 #1 0x5d1b34 at witness_checkorder+0xb50 #2 0x553ca4 at _sx_xlock+0x98 #3 0x4f5650 at fork1+0xe78 #4 0x5041c8 at kproc_create+0xd4 #5 0xdd27c390 at g_eli_create+0x774 #6 0xdd281048 at g_eli_config+0x23fc #7 0x499188 at g_ctl_req+0x154 #8 0x49e784 at g_run_events+0x194 #9 0x4a1580 at g_event_procbody+0x74 #10 0x4f67a0 at fork_exit+0xb0 #11 0x94892c at fork_trampoline+0xc =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FC86DC3B-D1E9-4471-9AEF-B10A2984E0ED>