From owner-freebsd-current@FreeBSD.ORG Fri Apr 30 07:37:50 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from green.homeunix.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 2165E16A4CF; Fri, 30 Apr 2004 07:37:50 -0700 (PDT) Received: from localhost (green@localhost [127.0.0.1]) by green.homeunix.org (8.12.11/8.12.11) with ESMTP id i3UEbnvM076898; Fri, 30 Apr 2004 10:37:49 -0400 (EDT) (envelope-from green@green.homeunix.org) Message-Id: <200404301437.i3UEbnvM076898@green.homeunix.org> X-Mailer: exmh version 2.6.3 04/04/2003 with nmh-1.0.4 To: Pawel Jakub Dawidek In-Reply-To: Message from Pawel Jakub Dawidek <20040430101733.GO24376@darkness.comp.waw.pl> From: Brian Fundakowski Feldman Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 30 Apr 2004 10:37:48 -0400 Sender: green@green.homeunix.org cc: freebsd-current@FreeBSD.org Subject: Re: LOR: /sys/ufs/ffs/ffs_snapshot.c:1893 /sys/vm/vm_map.c:2206 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Apr 2004 14:37:50 -0000 Pawel Jakub Dawidek wrote: > Known? > > lock order reversal > 1st 0xc63b811c vnode interlock (vnode interlock) @ /mnt/perf/src/sys/ufs/ffs/ffs_snapshot.c:1893 > 2nd 0xc1039118 system map (system map) @ /mnt/perf/src/sys/vm/vm_map.c:2206 > Stack backtrace: > backtrace(0,ffffffff,c0708c10,c0709ac0,c0608320) at backtrace+0x12 > witness_checkorder(c1039118,9,c05eed2c,89e) at witness_checkorder+0x593 > _mtx_lock_flags(c1039118,0,c05eed2c,89e) at _mtx_lock_flags+0x68 > _vm_map_lock(c10390b8,c05eed2c,89e) at _vm_map_lock+0x21 > vm_map_remove(c10390b8,c6727000,c6729000,e72b29ec,c0572341) at vm_map_remove+0x1f > kmem_free(c10390b8,c6727000,2000,e72b2a04,c05738b7) at kmem_free+0x25 > page_free(c6727000,2000,22,c0616380,e72b2a28) at page_free+0x31 > uma_large_free(c63d3f54) at uma_large_free+0x7b > free(c6727000,c0616380,c66e1100,a,c636d000) at free+0xfc > ffs_snapshot_unmount(c636d000) at ffs_snapshot_unmount+0xe7 > ffs_flushfiles(c636d000,4,c666cbd0) at ffs_flushfiles+0x3b > softdep_flushfiles(c636d000,4,c666cbd0,c636fb00,0) at softdep_flushfiles+0x1e > ffs_mount(c636d000,c669a900,bfbfdf90,e72b2bf4,c666cbd0) at ffs_mount+0x1c7 > vfs_domount(c666cbd0,c61c6c60,c669a900,10001,bfbfdf90) at vfs_domount+0x6e6 > mount(c666cbd0,e72b2d14,4,0,202) at mount+0x6c > syscall(2f,2f,2f,bfbfdf8c,2) at syscall+0x217 > Xint0x80_syscall() at Xint0x80_syscall+0x1f > --- syscall (21), eip = 0x280c0f4f, esp = 0xbfbfdf6c, ebp = 0xbfbfe018 --- I haven't seen it myself, but it seems like it's only going to happen sometimes (when a full page is freed). There's really no technical reason you'd ever want to do a free(9) with locks held, so I suggest fixing it in the straightforward way. -- Brian Fundakowski Feldman \'[ FreeBSD ]''''''''''\ <> green@FreeBSD.org \ The Power to Serve! \ Opinions expressed are my own. \,,,,,,,,,,,,,,,,,,,,,,\