Date: Wed, 9 Jun 2004 19:29:18 +0000 From: Bosko Milekic <bmilekic@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/vm uma_core.c Message-ID: <20040609192918.GA44607@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
Please note: this only fixes the cluster case and not other types of ext bufs which do MEXTADD. Basically the refcounting method works well as long as the refcounts are type-stable. This could be made a requirement for all ext_bufs without problem, and for those who do not provide ref cnts, I will replace the malloc() of the refcnt with a uma zone allocation of the refcnt from a special UMA_ZONE_NOFREE refcnt zone. We need to use atomics here because there is no place where to put a mutex, so I can't fix this by just protecting the refcnt with a mutex. -Bosko bmilekic 2004-06-09 19:18:51 UTC FreeBSD src repository Modified files: sys/vm uma_core.c Log: Make the slabrefzone, the zone from which we allocated slabs with internal reference counters, UMA_ZONE_NOFREE. This way, those slabs (with their ref counts) will be effectively type-stable, then using a trick like this on the refcount is no longer dangerous: ...
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040609192918.GA44607>