Date: Tue, 22 May 2001 14:27:47 -0700 (PDT) From: John Baldwin <jhb@FreeBSD.org> To: Matt Dillon <dillon@earth.backplane.com> Cc: "Brian F. Feldman" <green@FreeBSD.org>, hackers@FreeBSD.org Subject: Re: RE: vmspace leak (+ tentative fix) Message-ID: <XFMail.010522142747.jhb@FreeBSD.org> In-Reply-To: <200105222112.f4MLCh610392@earth.backplane.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 22-May-01 Matt Dillon wrote: > >: >: >:On 22-May-01 Matt Dillon wrote: >:>:Ok, then why not let the current shmexit() stay in exit1() as a hack to >:>:help >:>:free memory, but add in a check in vmspace_free() as well to catch any race >:>:conditions that may fall through the cracks? As long as we clear the shm >:>:pointer in struct vmspace when we free it then we won't be double free'ing, >:>:and >:>:will always free it eventually. That is also a much simpler change. :) >:>:Additionally, adding to the comment in exit1() clarifying that this is an >:>:attempt to free resources as soon as possible and that the race condition >:>:is >:>:known and that vmspace_free() is a catch-all might be nice as well. >:>: >:>:-- >:>: >:>:John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/ >:>:PGP Key: http://www.baldwin.cx/~john/pgpkey.asc >:> >:> It's not really good programming practice. Someone might trip over >:> it later on. >: >:Then the vmspace free()ing is also bad programming practice? It's the same >:exact algorithm used for the vmspace. >: >:> -Matt >: >:John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/ > > Huh? It doesn't look like the same algorithm to me. In exit1() we attempt to free resources early if we can. If we lose the race, we still clean it up in vmspace_free() called from cpu_wait(). If you check the shm pointer and do shmexit() in vmspace_free() just as is done in vmspace_free(), then you will catch any cases that fall through with the shm not being free'd using the same technique currently employed in releasing the vmspace and with a minimal amount of change to the code. -- John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.Baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.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?XFMail.010522142747.jhb>