From owner-freebsd-fs@FreeBSD.ORG Tue Feb 22 21:14:50 2011 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0A5BE106566B; Tue, 22 Feb 2011 21:14:50 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id 772FE8FC18; Tue, 22 Feb 2011 21:14:48 +0000 (UTC) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id p1MLEi4x031910 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 22 Feb 2011 23:14:44 +0200 (EET) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4) with ESMTP id p1MLEiqx062487; Tue, 22 Feb 2011 23:14:44 +0200 (EET) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4/Submit) id p1MLEiAK062486; Tue, 22 Feb 2011 23:14:44 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 22 Feb 2011 23:14:44 +0200 From: Kostik Belousov To: Bob Friesenhahn Message-ID: <20110222211444.GD78089@deviant.kiev.zoral.com.ua> References: <201102211707.p1LH7c8n075660@lurza.secnetix.de> <476667.58379.qm@web121516.mail.ne1.yahoo.com> <20110222095211.GA96223@icarus.home.lan> <201102220931.17733.jhb@freebsd.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="hHivBRp+DJn3Iiyu" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i X-Spam-Status: No, score=-3.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00, DNS_FROM_OPENWHOIS autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: freebsd-fs@freebsd.org, Kelly Dean Subject: Re: Why is procfs deprecated in favor of procstat? X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Feb 2011 21:14:50 -0000 --hHivBRp+DJn3Iiyu Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Feb 22, 2011 at 01:10:57PM -0600, Bob Friesenhahn wrote: > On Tue, 22 Feb 2011, John Baldwin wrote: > > > >Actually, the replacement for procfs is not sysctl, but ptrace(2), and= =20 > >there >=20 > I have been following this discussion with my jaw agape. It seems=20 > that the many men standing around this elephant are all perceiving=20 > completely different things based on their own interests and=20 > experiences. >=20 > My own software is using procfs to efficiently determine the path to=20 > the currently running executable. I am sure that other software does=20 > the same since Linux procfs (and probably OS X) supports the same=20 > mechanism. It is difficult to imagine how this would be done via=20 > ptrace(2). Look at the PT_VM_TIMESTAMP + PT_VM_ENTRY. You would iterate over the the mappings in the address space and look at the binaries at pve_path, if any. The one that is elf object f the ET_EXEC type is the binary. It is somewhat clumsy but the end result is the same as if reading /proc//file. Or, you use sysctl kern.proc.vmmap and get essentially the same data. PT_VM_ENTRY was added long after the sysctl, I did not objected exactly because ptrace(2) looked more logical. The advantage of using procfs or sysctl instead of ptrace(2) is that you do not need to attach as debugger, causing the issues with signal delivery for the debugee. --hHivBRp+DJn3Iiyu Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (FreeBSD) iEYEARECAAYFAk1kJ0MACgkQC3+MBN1Mb4iqWACeKYKK7dE1WNqDs4lcG0Hubgvw V3MAn3gzso/6qkl9y/NMUOUrtWD402aX =b/TU -----END PGP SIGNATURE----- --hHivBRp+DJn3Iiyu--