Re: vm/map LOR
Bosko Milekic wrote: > > fakepg_zone should probably be UMA_ZONE_VM. Or the vm_object lock > needs to be dropped before allocating or freeing to that zone. > > What does Alan think? (cc'd) > Perhaps. Regardless, in this case, the lock-order reversal is a false positive. What it shows is the locking of a user-level vm map, followed by vm_object #1, followed by the kmem_map. If this had proceeded to conclusion, you would have seen the locking of vm_object #2, the kmem_object. So, to witness this appears as a lock-order reversal. Unless vm_object #1 and vm_object #2 are the same, there is no possibility of deadlock. Witness is simply unable to distinguish the two vm objects because they have the same label. If they were given unique labels, witness would be overwhelmed because there are simply too many vm objects. Regards, Alan > > On Thu, Jul 31, 2003 at 04:46:06PM -0700, Lars Eggert wrote: > > Hi, > > > > with yesterday's -current: > > > > 1st 0xc6dfd094 vm object (vm object) @ /usr/src/sys/vm/vm_object.c:434 > > 2nd 0xc082f110 system map (system map) @ /usr/src/sys/vm/vm_kern.c:323 > > > > Stack backtrace: > > backtrace(c032000b,c082f110,c033362f,c033362f,c03334c6) at backtrace+0x17 > > witness_lock(c082f110,8,c03334c6,143,c082f0b0) at witness_lock+0x686 > > _mtx_lock_flags(c082f110,0,c03334c6,143,101) at _mtx_lock_flags+0xb5 > > _vm_map_lock(c082f0b0,c03334c6,143,c0374778,c03747a0) at _vm_map_lock+0x36 > > kmem_malloc(c082f0b0,1000,101,eb44db14,c02b0433) at kmem_malloc+0x3a > > page_alloc(c083a240,1000,eb44db07,101,0) at page_alloc+0x27 > > slab_zalloc(c083a240,101,c083a254,8,c0334e1e) at slab_zalloc+0xc2 > > uma_zone_slab(c083a240,101,c0334e1e,663,165) at uma_zone_slab+0xd9 > > uma_zalloc_internal(c083a240,0,101,6e7,0) at uma_zalloc_internal+0x4f > > uma_zfree_arg(c083a900,c6e31000,0,eb44dbc4,c029884d) at uma_zfree_arg+0x2a6 > > dev_pager_putfake(c6e31000,0,c0332b9e,be,c6dfd094) at dev_pager_putfake+0x35 > > dev_pager_dealloc(c6dfd094,1,c0334dcf,10c,0) at dev_pager_dealloc+0xb9 > > vm_pager_deallocate(c6dfd094,0,c0333f6c,261,1b2) at vm_pager_deallocate+0x3d > > vm_object_terminate(c6dfd094,0,c0333f6c,1b2,c6b894ec) at > > vm_object_terminate+0x1e5 > > vm_object_deallocate(c6dfd094,c082bd20,c6dfd094,c082bd20,eb44dca0) at > > vm_object_deallocate+0x35e > > vm_map_entry_delete(c6593e00,c082bd20,c033369d,897,c019f843) at > > vm_map_entry_delete+0x3c > > vm_map_delete(c6593e00,282e2000,282e3000,1000,282e2000) at > > vm_map_delete+0x3c3 > > vm_map_remove(c6593e00,282e2000,282e3000,0,c6b8a618) at vm_map_remove+0x55 > > munmap(c6ae24c0,eb44dd14,c0339293,3ee,2) at munmap+0x9e > > syscall(2f,2f,2f,f8000,1000) at syscall+0x260 > > Xint0x80_syscall() at Xint0x80_syscall+0x1d > > --- syscall (73), eip = 0x28257aa7, esp = 0xbfbffc1c, ebp = 0xbfbffc48 --- > > > > Lars > > -- > > Lars Eggert <[EMAIL PROTECTED]> USC Information Sciences Institute > > -- > Bosko Milekic * [EMAIL PROTECTED] * [EMAIL PROTECTED] > TECHNOkRATIS Consulting Services * http://www.technokratis.com/ ___ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: vm/map LOR
Try the attached patch. On Fri, Aug 01, 2003 at 11:02:49AM +, Bosko Milekic wrote: > > fakepg_zone should probably be UMA_ZONE_VM. Or the vm_object lock > needs to be dropped before allocating or freeing to that zone. > > What does Alan think? (cc'd) > > -Bosko > > On Thu, Jul 31, 2003 at 04:46:06PM -0700, Lars Eggert wrote: > > Hi, > > > > with yesterday's -current: > > > > 1st 0xc6dfd094 vm object (vm object) @ /usr/src/sys/vm/vm_object.c:434 > > 2nd 0xc082f110 system map (system map) @ /usr/src/sys/vm/vm_kern.c:323 > > > > Stack backtrace: > > backtrace(c032000b,c082f110,c033362f,c033362f,c03334c6) at backtrace+0x17 > > witness_lock(c082f110,8,c03334c6,143,c082f0b0) at witness_lock+0x686 > > _mtx_lock_flags(c082f110,0,c03334c6,143,101) at _mtx_lock_flags+0xb5 > > _vm_map_lock(c082f0b0,c03334c6,143,c0374778,c03747a0) at _vm_map_lock+0x36 > > kmem_malloc(c082f0b0,1000,101,eb44db14,c02b0433) at kmem_malloc+0x3a > > page_alloc(c083a240,1000,eb44db07,101,0) at page_alloc+0x27 > > slab_zalloc(c083a240,101,c083a254,8,c0334e1e) at slab_zalloc+0xc2 > > uma_zone_slab(c083a240,101,c0334e1e,663,165) at uma_zone_slab+0xd9 > > uma_zalloc_internal(c083a240,0,101,6e7,0) at uma_zalloc_internal+0x4f > > uma_zfree_arg(c083a900,c6e31000,0,eb44dbc4,c029884d) at uma_zfree_arg+0x2a6 > > dev_pager_putfake(c6e31000,0,c0332b9e,be,c6dfd094) at dev_pager_putfake+0x35 > > dev_pager_dealloc(c6dfd094,1,c0334dcf,10c,0) at dev_pager_dealloc+0xb9 > > vm_pager_deallocate(c6dfd094,0,c0333f6c,261,1b2) at vm_pager_deallocate+0x3d > > vm_object_terminate(c6dfd094,0,c0333f6c,1b2,c6b894ec) at > > vm_object_terminate+0x1e5 > > vm_object_deallocate(c6dfd094,c082bd20,c6dfd094,c082bd20,eb44dca0) at > > vm_object_deallocate+0x35e > > vm_map_entry_delete(c6593e00,c082bd20,c033369d,897,c019f843) at > > vm_map_entry_delete+0x3c > > vm_map_delete(c6593e00,282e2000,282e3000,1000,282e2000) at > > vm_map_delete+0x3c3 > > vm_map_remove(c6593e00,282e2000,282e3000,0,c6b8a618) at vm_map_remove+0x55 > > munmap(c6ae24c0,eb44dd14,c0339293,3ee,2) at munmap+0x9e > > syscall(2f,2f,2f,f8000,1000) at syscall+0x260 > > Xint0x80_syscall() at Xint0x80_syscall+0x1d > > --- syscall (73), eip = 0x28257aa7, esp = 0xbfbffc1c, ebp = 0xbfbffc48 --- > > > > Lars > > -- > > Lars Eggert <[EMAIL PROTECTED]> USC Information Sciences Institute > > > > -- > Bosko Milekic * [EMAIL PROTECTED] * [EMAIL PROTECTED] > TECHNOkRATIS Consulting Services * http://www.technokratis.com/ > ___ > [EMAIL PROTECTED] mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "[EMAIL PROTECTED]" > -- Bosko Milekic * [EMAIL PROTECTED] * [EMAIL PROTECTED] TECHNOkRATIS Consulting Services * http://www.technokratis.com/ diff -ru vm.old/device_pager.c vm/device_pager.c --- vm.old/device_pager.c Fri Aug 1 11:20:26 2003 +++ vm/device_pager.c Fri Aug 1 11:36:03 2003 @@ -96,7 +96,7 @@ sx_init(&dev_pager_sx, "dev_pager create"); mtx_init(&dev_pager_mtx, "dev_pager list", NULL, MTX_DEF); fakepg_zone = uma_zcreate("DP fakepg", sizeof(struct vm_page), - NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE); + NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM|UMA_ZONE_NOFREE); } /* ___ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "[EMAIL PROTECTED]"
Re: vm/map LOR
fakepg_zone should probably be UMA_ZONE_VM. Or the vm_object lock needs to be dropped before allocating or freeing to that zone. What does Alan think? (cc'd) -Bosko On Thu, Jul 31, 2003 at 04:46:06PM -0700, Lars Eggert wrote: > Hi, > > with yesterday's -current: > > 1st 0xc6dfd094 vm object (vm object) @ /usr/src/sys/vm/vm_object.c:434 > 2nd 0xc082f110 system map (system map) @ /usr/src/sys/vm/vm_kern.c:323 > > Stack backtrace: > backtrace(c032000b,c082f110,c033362f,c033362f,c03334c6) at backtrace+0x17 > witness_lock(c082f110,8,c03334c6,143,c082f0b0) at witness_lock+0x686 > _mtx_lock_flags(c082f110,0,c03334c6,143,101) at _mtx_lock_flags+0xb5 > _vm_map_lock(c082f0b0,c03334c6,143,c0374778,c03747a0) at _vm_map_lock+0x36 > kmem_malloc(c082f0b0,1000,101,eb44db14,c02b0433) at kmem_malloc+0x3a > page_alloc(c083a240,1000,eb44db07,101,0) at page_alloc+0x27 > slab_zalloc(c083a240,101,c083a254,8,c0334e1e) at slab_zalloc+0xc2 > uma_zone_slab(c083a240,101,c0334e1e,663,165) at uma_zone_slab+0xd9 > uma_zalloc_internal(c083a240,0,101,6e7,0) at uma_zalloc_internal+0x4f > uma_zfree_arg(c083a900,c6e31000,0,eb44dbc4,c029884d) at uma_zfree_arg+0x2a6 > dev_pager_putfake(c6e31000,0,c0332b9e,be,c6dfd094) at dev_pager_putfake+0x35 > dev_pager_dealloc(c6dfd094,1,c0334dcf,10c,0) at dev_pager_dealloc+0xb9 > vm_pager_deallocate(c6dfd094,0,c0333f6c,261,1b2) at vm_pager_deallocate+0x3d > vm_object_terminate(c6dfd094,0,c0333f6c,1b2,c6b894ec) at > vm_object_terminate+0x1e5 > vm_object_deallocate(c6dfd094,c082bd20,c6dfd094,c082bd20,eb44dca0) at > vm_object_deallocate+0x35e > vm_map_entry_delete(c6593e00,c082bd20,c033369d,897,c019f843) at > vm_map_entry_delete+0x3c > vm_map_delete(c6593e00,282e2000,282e3000,1000,282e2000) at > vm_map_delete+0x3c3 > vm_map_remove(c6593e00,282e2000,282e3000,0,c6b8a618) at vm_map_remove+0x55 > munmap(c6ae24c0,eb44dd14,c0339293,3ee,2) at munmap+0x9e > syscall(2f,2f,2f,f8000,1000) at syscall+0x260 > Xint0x80_syscall() at Xint0x80_syscall+0x1d > --- syscall (73), eip = 0x28257aa7, esp = 0xbfbffc1c, ebp = 0xbfbffc48 --- > > Lars > -- > Lars Eggert <[EMAIL PROTECTED]> USC Information Sciences Institute -- Bosko Milekic * [EMAIL PROTECTED] * [EMAIL PROTECTED] TECHNOkRATIS Consulting Services * http://www.technokratis.com/ ___ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "[EMAIL PROTECTED]"
vm/map LOR
Hi, with yesterday's -current: 1st 0xc6dfd094 vm object (vm object) @ /usr/src/sys/vm/vm_object.c:434 2nd 0xc082f110 system map (system map) @ /usr/src/sys/vm/vm_kern.c:323 Stack backtrace: backtrace(c032000b,c082f110,c033362f,c033362f,c03334c6) at backtrace+0x17 witness_lock(c082f110,8,c03334c6,143,c082f0b0) at witness_lock+0x686 _mtx_lock_flags(c082f110,0,c03334c6,143,101) at _mtx_lock_flags+0xb5 _vm_map_lock(c082f0b0,c03334c6,143,c0374778,c03747a0) at _vm_map_lock+0x36 kmem_malloc(c082f0b0,1000,101,eb44db14,c02b0433) at kmem_malloc+0x3a page_alloc(c083a240,1000,eb44db07,101,0) at page_alloc+0x27 slab_zalloc(c083a240,101,c083a254,8,c0334e1e) at slab_zalloc+0xc2 uma_zone_slab(c083a240,101,c0334e1e,663,165) at uma_zone_slab+0xd9 uma_zalloc_internal(c083a240,0,101,6e7,0) at uma_zalloc_internal+0x4f uma_zfree_arg(c083a900,c6e31000,0,eb44dbc4,c029884d) at uma_zfree_arg+0x2a6 dev_pager_putfake(c6e31000,0,c0332b9e,be,c6dfd094) at dev_pager_putfake+0x35 dev_pager_dealloc(c6dfd094,1,c0334dcf,10c,0) at dev_pager_dealloc+0xb9 vm_pager_deallocate(c6dfd094,0,c0333f6c,261,1b2) at vm_pager_deallocate+0x3d vm_object_terminate(c6dfd094,0,c0333f6c,1b2,c6b894ec) at vm_object_terminate+0x1e5 vm_object_deallocate(c6dfd094,c082bd20,c6dfd094,c082bd20,eb44dca0) at vm_object_deallocate+0x35e vm_map_entry_delete(c6593e00,c082bd20,c033369d,897,c019f843) at vm_map_entry_delete+0x3c vm_map_delete(c6593e00,282e2000,282e3000,1000,282e2000) at vm_map_delete+0x3c3 vm_map_remove(c6593e00,282e2000,282e3000,0,c6b8a618) at vm_map_remove+0x55 munmap(c6ae24c0,eb44dd14,c0339293,3ee,2) at munmap+0x9e syscall(2f,2f,2f,f8000,1000) at syscall+0x260 Xint0x80_syscall() at Xint0x80_syscall+0x1d --- syscall (73), eip = 0x28257aa7, esp = 0xbfbffc1c, ebp = 0xbfbffc48 --- Lars -- Lars Eggert <[EMAIL PROTECTED]> USC Information Sciences Institute smime.p7s Description: S/MIME Cryptographic Signature