From owner-svn-src-head@FreeBSD.ORG Wed May 27 14:32:04 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 53D3D1065696; Wed, 27 May 2009 14:32:04 +0000 (UTC) (envelope-from sson@freebsd.org) Received: from www.son.org (son.org [199.239.233.23]) by mx1.freebsd.org (Postfix) with ESMTP id 18B648FC23; Wed, 27 May 2009 14:32:03 +0000 (UTC) (envelope-from sson@freebsd.org) Received: from NextStepNG.son.org (adsl-76-203-228-11.dsl.rcsntx.sbcglobal.net [76.203.228.11]) (authenticated bits=0) by www.son.org (8.13.6.20060614/8.13.6) with ESMTP id n4REW1gv048660; Wed, 27 May 2009 09:32:01 -0500 (CDT) Message-ID: <4A1D4EE1.5040902@freebsd.org> Date: Wed, 27 May 2009 09:32:01 -0500 From: Stacey Son User-Agent: Thunderbird 2.0.0.21 (Macintosh/20090302) MIME-Version: 1.0 To: Kostik Belousov References: <200905262139.n4QLd9pI074530@svn.freebsd.org> <20090527111741.GH1927@deviant.kiev.zoral.com.ua> In-Reply-To: <20090527111741.GH1927@deviant.kiev.zoral.com.ua> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r192859 - in head: share/man/man4 sys/conf sys/dev/ksyms sys/kern sys/modules sys/modules/ksyms sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 May 2009 14:32:05 -0000 Kostik Belousov wrote: > On Tue, May 26, 2009 at 09:39:09PM +0000, Stacey Son wrote: > >> Author: sson >> Date: Tue May 26 21:39:09 2009 >> New Revision: 192859 >> URL: http://svn.freebsd.org/changeset/base/192859 >> >> Log: >> Add the ksyms(4) pseudo driver. The ksyms driver allows a process to >> get a quick snapshot of the kernel's symbol table including the symbols >> from any loaded modules (the symbols are all merged into one symbol >> table). Unlike like other implementations, this ksyms driver maps >> memory in the process memory space to store the snapshot at the time >> /dev/ksyms is opened. It also checks to see if the process has already >> a snapshot open and won't allow it to open /dev/ksyms it again until it >> closes first. This prevents kernel and process memory from being >> exhausted. Note that /dev/ksyms is used by the lockstat(1) command. >> >> Reviewed by: gallatin kib (freebsd-arch) >> Approved by: gnn (mentor) >> > > What is the reason to have ksyms_unmap() ? ksyms_unmap() is used to free the mapping of the memory when /dev/ksyms is closed or if the driver fails to create the symbol table snapshot. > Why do you think that checking > for the present mapping of the freed region is neccessary ? ksyms_unmap() does check to make sure the memory region is mapped since it is possible that the process could have unmap it or changed its protection before calling close(). I haven't looked at vm_map_delete() closely but maybe it make makes this check as well. If so, this check might be redundant. -stacey.