i386/145664: Xen: mutex vm page queue mutex not owned
Florian Heigl
florian.heigl at gmail.com
Tue Apr 13 00:20:02 UTC 2010
>Number: 145664
>Category: i386
>Synopsis: Xen: mutex vm page queue mutex not owned
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-i386
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Apr 13 00:20:01 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator: Florian Heigl
>Release: 8.0-RELEASE-p2
>Organization:
wartungsfenster.de
>Environment:
FreeBSD waxu0014 8.0-RELEASE-p2 FreeBSD 8.0-RELEASE-p2 #0: Sun Apr 11 23:17:15 UTC 2010 root at waxu0013:/usr/obj/usr/src/sys/XEN i386
Xen Host:
Linux waxh0004 2.6.18-128.2.1.4.9.el5xen #1 SMP Fri Oct 9 14:57:31 EDT 2009 i686 i686 i386 GNU/Linux
xen_major : 3
xen_minor : 4
xen_extra : .0
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p
(this is oracle vm 2.2)
>Description:
FreeBSD 8 PV domU will panic when a certain port tries to call a function called mlock().
I have already installed a fresh world and kernel, but the problem persisted.
Right now I think I missed some updates, so I'll cvsup again.
Opening the PR anyway. If I see it's fixed by now I'll just close it.
Apparently the error is also reported here:
http://www.mail-archive.com/freebsd-xen@freebsd.org/msg00404.html
I feel it is NOT a random stray but related to this function. The system went through a whole buildworld & buildkernel w/o issue.
make install clean at /usr/ports/met-mgmt/jffnms
[... marches away till I think the following dependency]
===> Building for libgpg-error-1.7
[...]
checking for fcntl... yes
checking for ftruncate... yes
checking for mlock... yes
checking for sysconf... (cached) yes
checking for getpagesize... (cached) yes
checking whether mlock is broken... panic: mutex vm page queue mutex not owned at /usr/src/sys/i386/xen/xen_machdep.c:409
cpuid = 0
KDB: enter: panic
[thread pid 9635 tid 100074 ]
Stopped at kdb_enter+0x3a: movl $0,kdb_why
db> next
After 2 instructions (0 loads, 0 stores),
[thread pid 9635 tid 100074 ]
Stopped at kdb_enter+0x45: ret
db> trace
Tracing pid 9635 tid 100074 td 0xc38706c0
kdb_enter(c0357750,c037b11d,c0382fd9,199,e4cc3b18,...) at kdb_enter+0x45
_mtx_assert(c03ec844,4,c0382fd9,199,0,...) at _mtx_assert+0x87
_xen_queue_pt_update(34ce320,2,52e4000,2,c0384661,...) at _xen_queue_pt_update+0x4c
pmap_extract(c34f1d98,28202000,c00c92c6,c3c54660,c34f1d98,...) at pmap_extract+0x251
vm_fault_unwire(c34f1ce8,28202000,28203000,0,0,...) at vm_fault_unwire+0x32
vm_map_delete(c34f1ce8,1000,bf800000,1,c34f1ce8,...) at vm_map_delete+0x16f
vm_map_remove(c34f1ce8,1000,bf800000,0,c3568780,...) at vm_map_remove+0x51
vmspace_exit(c38706c0,0,c0354336,12d,c00da56e,...) at vmspace_exit+0xbf
exit1(c38706c0,0,e4cc3d3c,c032f993,c38706c0,...) at exit1+0x5bb
sys_exit(c38706c0,e4cc3d08,4,c,c039687c,...) at sys_exit+0x1d
syscall(e4cc3d48) at syscall+0x2a3
Xint0x80_syscall() at Xint0x80_syscall+0x22
--- syscall (1, FreeBSD ELF32, sys_exit), eip = 0x281000af, esp = 0xbf7fe88c, ebp = 0xbf7fe898 --
Problem is that this problem + softupdates always leads to quite massive inconsistencies.
(So far this is a 100% showstopper and forcing me to run a XenServer or VMWare host for FreeBSD)
>How-To-Repeat:
build jffnms (or maybe just call to mlock)
>Fix:
not known, but I saw changes for this problem in relation to Xen were made to pmap.c back in 6.3. Might be worth comparing, but this file is far above my head :)
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-i386
mailing list