vm/map LOR
Bosko Milekic
bmilekic at technokratis.com
Fri Aug 1 08:38:10 PDT 2003
Try the attached patch.
On Fri, Aug 01, 2003 at 11:02:49AM +0000, 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 <larse at isi.edu> USC Information Sciences Institute
>
>
>
> --
> Bosko Milekic * bmilekic at technokratis.com * bmilekic at FreeBSD.org
> TECHNOkRATIS Consulting Services * http://www.technokratis.com/
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
>
--
Bosko Milekic * bmilekic at technokratis.com * bmilekic at FreeBSD.org
TECHNOkRATIS Consulting Services * http://www.technokratis.com/
-------------- next part --------------
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);
}
/*
More information about the freebsd-current
mailing list