Date: Tue, 2 Apr 2002 13:26:46 -0800 From: Alfred Perlstein <bright@mu.org> To: hackers@freebsd.org Cc: dillon@freebsd.org, jeffr@freebsd.org Subject: mpsafe malloc Message-ID: <20020402212646.GV93885@elvis.mu.org>
next in thread | raw e-mail | index | archive | help
Started looking at making malloc mpsafe. First issue I came across was this brokenish code in uma_core.c:page_alloc(): if (lockstatus(&kernel_map->lock, NULL)) { *pflag = UMA_SLAB_KMEM; p = (void *) kmem_malloc(kmem_map, bytes, wait); } else { *pflag = UMA_SLAB_KMAP; p = (void *) kmem_alloc(kernel_map, bytes); } using lockstatus won't work for smp. I think a solution is to do a trylock on the kmem_map, then have kmem_malloc either recurse on the lock, or take a flag to tell it not to bother locking. ? -- -Alfred Perlstein [alfred@freebsd.org] 'Instead of asking why a piece of software is using "1970s technology," start asking why software is ignoring 30 years of accumulated wisdom.' Tax deductible donations for FreeBSD: http://www.freebsdfoundation.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020402212646.GV93885>