Re: vm/map LOR

2003-08-01 Thread Alan L. Cox
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

2003-08-01 Thread Bosko Milekic

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

2003-08-01 Thread Bosko Milekic

 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

2003-07-31 Thread Lars Eggert
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