From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 02:14:56 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 05F45106564A; Sun, 22 Apr 2012 02:14:56 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f44.google.com (mail-pz0-f44.google.com [209.85.210.44]) by mx1.freebsd.org (Postfix) with ESMTP id B45D58FC0A; Sun, 22 Apr 2012 02:14:55 +0000 (UTC) Received: by dadz14 with SMTP id z14so45617038dad.17 for ; Sat, 21 Apr 2012 19:14:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=HT2oWPz3LCzviZQj+UMqkqe4/UInhbXNcKbU1f06fBQ=; b=CPUshxn2alMC7pd+VKHDUzmvrL9gXa4SXOz32X6nAsuhTbAqUs5OuWSFO0B6OlIT5U Bn/mFbQ3U/H9yBWgX6+EsKTkQGH5egVDYdthATvO7bsFu/39Z4RuTCZ447ylZn72Txib PnU5ubVYXK/SzPmIHh8ZVUR/8+I20xfeF4Zoxu4BLkQzg5fi8MwET+nvPY4XDSJMYfN0 czX+LGf2c4fbw9NyitFznyBhmUkl4D9dzc0zLMOlY9P719zN4XNs87B/pxEwUlAv+nSY iqekPMRhDzSM0Are3rqT+AbOoJr6sWwMkOOapP4ghIPmCgVy3vPEHJKnvFWFaQiNQkIM 0Lag== MIME-Version: 1.0 Received: by 10.68.229.33 with SMTP id sn1mr25189039pbc.59.1335060895158; Sat, 21 Apr 2012 19:14:55 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.142.101.9 with HTTP; Sat, 21 Apr 2012 19:14:54 -0700 (PDT) In-Reply-To: <20120421155638.E982@besplex.bde.org> References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <20120419212224.GA95459@onelab2.iet.unipi.it> <20120420144410.GA3629@onelab2.iet.unipi.it> <20120421155638.E982@besplex.bde.org> Date: Sat, 21 Apr 2012 19:14:54 -0700 X-Google-Sender-Auth: TpLJaMqNtGbNhPK9AUpmPxb9mhg Message-ID: From: Adrian Chadd To: Bruce Evans Content-Type: text/plain; charset=ISO-8859-1 Cc: Luigi Rizzo , net@freebsd.org, Andre Oppermann , "K. Macy" , current@freebsd.org Subject: Re: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 02:14:56 -0000 Hi, This honestly sounds like it's begging for an instrumentation/analysis/optimisation project. What do we need to do? Adrian From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 06:55:12 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E4BFC106564A; Sun, 22 Apr 2012 06:55:12 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id 36E8E8FC0A; Sun, 22 Apr 2012 06:55:12 +0000 (UTC) Received: by lagv3 with SMTP id v3so10354941lag.13 for ; Sat, 21 Apr 2012 23:55:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=tCToEHa2aHRpLRYyBQ4OYAKx/PdKLG5VdGjZ7y+76wU=; b=wcKEsCbG1uFla5L8FBMlz+LzkDM2KMdHrQQ4dSc2hXEs6SQdwlN1VWfCd1qve5HTQW hVKEUpQ85fKetGGYSdlkj4ubBGZ+mK3nOQAL9cLVrNr3eB+t1dVDpE0K22S9N07Pi0Zm EzcoABKZAA1o9b0371Lujlm0Wm/qN3HIfJBMtq+p36yCMXiPyby2YtApMfvEn5EDgjDf EbasVqY5bgf1wbW0nwdFCHguXpizEC4oTID6gu35CcA0FMLpTEkGQvdZZuaqOQCrxcWT OuVZzGoOoyEns7aS9VicRpsgiLzepNx9aViz8HazWQiVYMbw1ZCgc8uF3h0PnBjJponJ TtRQ== MIME-Version: 1.0 Received: by 10.152.108.171 with SMTP id hl11mr11198662lab.29.1335077711212; Sat, 21 Apr 2012 23:55:11 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.112.106.71 with HTTP; Sat, 21 Apr 2012 23:55:11 -0700 (PDT) In-Reply-To: <4F919C50.70809@FreeBSD.org> References: <4F915384.6070308@semihalf.com> <4F919C50.70809@FreeBSD.org> Date: Sat, 21 Apr 2012 23:55:11 -0700 X-Google-Sender-Auth: b-BKLuWhEzGCG4-3G7kLVN6gbhk Message-ID: From: Adrian Chadd To: Doug Barton Content-Type: text/plain; charset=ISO-8859-1 Cc: Jan Sieka , freebsd-current@freebsd.org Subject: Re: buildworld fails on FreeBSD 7.x for HEAD from 19.04.2012 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 06:55:13 -0000 Not even a full crossbuild? adrian From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 10:19:14 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BFAAC106566C for ; Sun, 22 Apr 2012 10:19:14 +0000 (UTC) (envelope-from marco+freebsd-current@lordsith.net) Received: from cpsmtpb-ews07.kpnxchange.com (cpsmtpb-ews07.kpnxchange.com [213.75.39.10]) by mx1.freebsd.org (Postfix) with ESMTP id 413DB8FC12 for ; Sun, 22 Apr 2012 10:19:13 +0000 (UTC) Received: from cpsps-ews21.kpnxchange.com ([10.94.84.187]) by cpsmtpb-ews07.kpnxchange.com with Microsoft SMTPSVC(6.0.3790.4675); Sun, 22 Apr 2012 12:18:03 +0200 Received: from CPSMTPM-TLF103.kpnxchange.com ([195.121.3.6]) by cpsps-ews21.kpnxchange.com with Microsoft SMTPSVC(7.5.7601.17514); Sun, 22 Apr 2012 12:18:03 +0200 Received: from lordsith.net ([82.168.152.70]) by CPSMTPM-TLF103.kpnxchange.com with Microsoft SMTPSVC(7.5.7601.17514); Sun, 22 Apr 2012 12:18:02 +0200 Date: Sun, 22 Apr 2012 12:18:02 +0200 From: marco To: freebsd-current@freebsd.org Message-ID: <20120422101802.GA1747@lordsith.net> Mail-Followup-To: marco , freebsd-current@freebsd.org References: <20120421083502.GA4675@lordsith.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Organization: lordsith.net X-Operating-System: FreeBSD 10.0-CURRENT X-Unix: Use Unix or Die X-GPG-Fingerprint: A025 D8AA AC1B D2FC 380D 4FC1 8EA0 0BA8 8580 E6CB X-GPG-Key: http://lordsith.net/gpg.key.asc X-dmesg-current: http://lordsith.net/trinity-ahci-dmesg.txt X-Uptime: 12:15PM up 8 mins, 4 users, load averages: 0.88, 0.88, 0.54 User-Agent: Mutt/1.5.21 (2010-09-15) X-OriginalArrivalTime: 22 Apr 2012 10:18:03.0082 (UTC) FILETIME=[337CC2A0:01CD2071] X-RcptDomain: freebsd.org Subject: Re: gstat don't work after update to 10.0-CURRENT X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: marco List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 10:19:14 -0000 On Sat, Apr 21, 2012 at 09:33:58AM -0400, you (Ryan Stone) sent the following to [freebsd-current] : > I believe that this was fixed in r234107 I updated to r234515 today on amd64 and I can confirm gstat(8) works again. -- marco Proud recurring donor of the FreeBSD Foundation You can have any color you want, as long as it is black! From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 10:29:21 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 22217106564A for ; Sun, 22 Apr 2012 10:29:21 +0000 (UTC) (envelope-from marco+freebsd-current@lordsith.net) Received: from cpsmtpb-ews05.kpnxchange.com (cpsmtpb-ews05.kpnxchange.com [213.75.39.8]) by mx1.freebsd.org (Postfix) with ESMTP id 9F9FF8FC0A for ; Sun, 22 Apr 2012 10:29:20 +0000 (UTC) Received: from cpsps-ews08.kpnxchange.com ([10.94.84.175]) by cpsmtpb-ews05.kpnxchange.com with Microsoft SMTPSVC(6.0.3790.4675); Sun, 22 Apr 2012 12:28:13 +0200 Received: from CPSMTPM-TLF102.kpnxchange.com ([195.121.3.5]) by cpsps-ews08.kpnxchange.com with Microsoft SMTPSVC(7.5.7601.17514); Sun, 22 Apr 2012 12:28:13 +0200 Received: from lordsith.net ([82.168.152.70]) by CPSMTPM-TLF102.kpnxchange.com with Microsoft SMTPSVC(7.5.7601.17514); Sun, 22 Apr 2012 12:28:12 +0200 Date: Sun, 22 Apr 2012 12:28:12 +0200 From: marco To: freebsd-current Message-ID: <20120422102812.GB1747@lordsith.net> Mail-Followup-To: marco , freebsd-current MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Organization: lordsith.net X-Operating-System: FreeBSD 10.0-CURRENT X-Unix: Use Unix or Die X-GPG-Fingerprint: A025 D8AA AC1B D2FC 380D 4FC1 8EA0 0BA8 8580 E6CB X-GPG-Key: http://lordsith.net/gpg.key.asc X-dmesg-current: http://lordsith.net/trinity-ahci-dmesg.txt X-Uptime: 12:15PM up 8 mins, 4 users, load averages: 0.88, 0.88, 0.54 User-Agent: Mutt/1.5.21 (2010-09-15) X-OriginalArrivalTime: 22 Apr 2012 10:28:13.0159 (UTC) FILETIME=[9F1F1F70:01CD2072] X-RcptDomain: freebsd.org Subject: netstat: no namelist on amd64 (r234515) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: marco List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 10:29:21 -0000 On both r233779 and r234515 on my 10-CURRENT amd64 home box netstat returns: no namelist This is a Q9550 system and I rebuilt both world and kernel using clang with -j8 The last revision netstat was functioning for me was r230839. I went from r230839 to r233779 so no other updates went in between those 2 revisions. -- marco Proud recurring donor of the FreeBSD Foundation You can have any color you want, as long as it is black! From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 11:54:47 2012 Return-Path: Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 951891065686; Sun, 22 Apr 2012 11:54:47 +0000 (UTC) (envelope-from sgk@troutmask.apl.washington.edu) Received: from troutmask.apl.washington.edu (troutmask.apl.washington.edu [128.95.76.21]) by mx1.freebsd.org (Postfix) with ESMTP id 53BE78FC15; Sun, 22 Apr 2012 11:54:47 +0000 (UTC) Received: from troutmask.apl.washington.edu (localhost.apl.washington.edu [127.0.0.1]) by troutmask.apl.washington.edu (8.14.5/8.14.5) with ESMTP id q3MBsfFD083806; Sun, 22 Apr 2012 04:54:41 -0700 (PDT) (envelope-from sgk@troutmask.apl.washington.edu) Received: (from sgk@localhost) by troutmask.apl.washington.edu (8.14.5/8.14.5/Submit) id q3MBsf23083805; Sun, 22 Apr 2012 04:54:41 -0700 (PDT) (envelope-from sgk) Date: Sun, 22 Apr 2012 04:54:41 -0700 From: Steve Kargl To: Dimitry Andric Message-ID: <20120422115441.GA83791@troutmask.apl.washington.edu> References: <20120420004011.GA71597@troutmask.apl.washington.edu> <4F93405D.7060305@FreeBSD.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4F93405D.7060305@FreeBSD.org> User-Agent: Mutt/1.4.2.3i Cc: freebsd-current@FreeBSD.org Subject: Re: clang and 'config KERNFILE' error X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 11:54:47 -0000 On Sun, Apr 22, 2012 at 01:18:53AM +0200, Dimitry Andric wrote: > On 2012-04-20 02:40, Steve Kargl wrote: > >laptop:root[227] uname -a > >FreeBSD laptop 10.0-CURRENT FreeBSD 10.0-CURRENT #0 r230975M: Sat Feb 4 > >09:03:27 PST 2012 root@laptop:/usr/obj/usr/src/sys/MOBILE i386 > > > > > >laptop:root[224] config MOBILE > >Kernel build directory is ../compile/MOBILE > >Don't forget to do ``make cleandepend&& make depend'' > >laptop:root[225] cd ../compile/MOBILE > >laptop:root[226] make cleandepend&& make depend > >"../../../conf/kern.pre.mk", line 87: Malformed conditional > >(${MK_CLANG_IS_CC} == "no"&& ${CC:T:Mclang} != "clang") > >"../../../conf/kern.pre.mk", line 98: if-less endif > >"../../../conf/kern.pre.mk", line 104: Malformed conditional > >(${MK_CLANG_IS_CC} != "no" || ${CC:T:Mclang} == "clang") > >"../../../conf/kern.pre.mk", line 106: if-less endif > >"../../../conf/kern.mk", line 18: Malformed conditional (${MK_CLANG_IS_CC} > >!= "no" || ${CC:T:Mclang} == "clang") > >"../../../conf/kern.mk", line 31: if-less endif > >"../../../conf/kern.mk", line 53: Malformed conditional (${MK_CLANG_IS_CC} > >== "no"&& ${CC:T:Mclang} != "clang") > >"../../../conf/kern.mk", line 60: if-less endif > >make: fatal errors encountered -- cannot continue > > Hi Steve, > > This means your /usr/share/mk files are out of sync with your source > tree. When you build kernels in the old way, this will not work > properly. I guess the simplest solution is to set MAKESYSPATH to > /usr/src/share/mk, or just use "make buildkernel KERNCONF=MOBILE". Thanks for the explanation. I normally keep my src tree and installed system in sync. It appears that I may have done an 'svn update' without re-installing the system. One reason that I was baffled by the above error is that I have WITHOUT_CLANG in my /etc/src.conf file. I was under the impression that this would disable references to anything associated with clang. -- Steve From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 14:04:46 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 88DDD106564A; Sun, 22 Apr 2012 14:04:46 +0000 (UTC) (envelope-from kmacybsd@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 18F0C8FC0C; Sun, 22 Apr 2012 14:04:46 +0000 (UTC) Received: by iahk25 with SMTP id k25so20079244iah.13 for ; Sun, 22 Apr 2012 07:04:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=sDfQil1rKCiuwH/u3zqpGLfITZTizcL0/nwE92zYBvo=; b=ChoY7EPgV/MVwMxCeZsuS4o/y20LWJiMYCZvb62lKdPgZHMJAqlu+wCImgvBfbn554 aXyYZbXm4VrJwWYWChL86mpyhC4aUNHmVAeK1j2pQqniRSoixtIY3VWmvyeAMTPaBak2 S2UTD86x9rF/lPKuBBKMKOCnW2AbroMaZWly3vJ1Vzp9JtdoQjjh3N5ouaB3/8D2j+P+ eR3L0hDhz8XRJrb/cK3qbXmpFc39c7RRYgawscr2SFaKTLGiCxLIvNMS9URtv7w2Xlni 9XwalYw+mZxq+VZ4YMgLV2ZALZyK5x8IrJ+J814frhN0VQWLbuZYi2vcd6FVpv8/MUEj gHUQ== MIME-Version: 1.0 Received: by 10.50.168.67 with SMTP id zu3mr3990000igb.28.1335103485545; Sun, 22 Apr 2012 07:04:45 -0700 (PDT) Sender: kmacybsd@gmail.com Received: by 10.50.129.39 with HTTP; Sun, 22 Apr 2012 07:04:45 -0700 (PDT) In-Reply-To: References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <20120419212224.GA95459@onelab2.iet.unipi.it> <20120420144410.GA3629@onelab2.iet.unipi.it> <20120421155638.E982@besplex.bde.org> Date: Sun, 22 Apr 2012 16:04:45 +0200 X-Google-Sender-Auth: 1uW3UVFv3AMADeG0duidTGqTUwY Message-ID: From: "K. Macy" To: Adrian Chadd Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Cc: Luigi Rizzo , Andre Oppermann , current@freebsd.org, Bruce Evans , net@freebsd.org Subject: Re: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 14:04:46 -0000 Most of these issues are well known. Addressing the bottlenecks is simply time consuming due to the fact that any bugs introduced during development potentially impact many users. -Kip On Sun, Apr 22, 2012 at 4:14 AM, Adrian Chadd wrote: > Hi, > > This honestly sounds like it's begging for an > instrumentation/analysis/optimisation project. > > What do we need to do? > > > Adrian --=20 =A0 =A0=93The real damage is done by those millions who want to 'get by.' The ordinary men who just want to be left in peace. Those who don=92t want their little lives disturbed by anything bigger than themselves. Those with no sides and no causes. Those who won=92t take measure of their own strength, for fear of antagonizing their own weakness. Those who don=92t like to make waves=97or enemies. =A0 =A0Those for whom freedom, honour, truth, and principles are only literature. Those who live small, love small, die small. It=92s the reductionist approach to life: if you keep it small, you=92ll keep it under control. If you don=92t make any noise, the bogeyman won=92t find you. =A0 =A0But it=92s all an illusion, because they die too, those people who roll up their spirits into tiny little balls so as to be safe. Safe?! >From what? Life is always on the edge of death; narrow streets lead to the same place as wide avenues, and a little candle burns itself out just like a flaming torch does. =A0 =A0I choose my own way to burn.=94 =A0 =A0Sophie Scholl From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 14:52:02 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E001A106566C; Sun, 22 Apr 2012 14:52:02 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-ob0-f182.google.com (mail-ob0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id 9303B8FC0C; Sun, 22 Apr 2012 14:52:02 +0000 (UTC) Received: by obqv19 with SMTP id v19so16539239obq.13 for ; Sun, 22 Apr 2012 07:52:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to:x-mailer; bh=Me7/0FHDHH1Wn0BRpSYpAfLZlwx6CxHdx7frVbGy0hY=; b=zWgAhvUeNpBtQQq+i32Ao+hV0KksAWwuhJSeTLOOkd4z2CsqB78FHle4l7MGl2oC7y MSx7MnzzhRJXao/Glvm0lKao8/tH1yt08S+j5stGQOc/2bjF1OQhSz9CgcLwUwGiywiA tDuFehyA3R9TwHr1QeBYDvz+GM0OuKyjbSm1FSrgSxtam9euxr858i3K9y7PqHDnBT64 fXCUCQVGEWlIqDAQTJ6nWUkF87BNcMVnGF2lmeSaL0mN1CI/WyfOK5nqjwfuZ07uwNUZ iywW1KF6QZCE+uZ+N3Lz0AoOkDftlFQsRiX7psozWcDTH04qMYw5GLmV/031RZ9bxB7n pIsA== Received: by 10.60.3.6 with SMTP id 6mr18452825oey.35.1335106321914; Sun, 22 Apr 2012 07:52:01 -0700 (PDT) Received: from [192.168.2.5] (dpc691939029.direcpc.com. [69.19.39.29]) by mx.google.com with ESMTPS id a8sm10474785oea.8.2012.04.22.07.51.52 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 22 Apr 2012 07:52:00 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: text/plain; charset=iso-8859-1 From: Garrett Cooper In-Reply-To: <4F919C50.70809@FreeBSD.org> Date: Sun, 22 Apr 2012 07:51:41 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <9B9312D3-489E-4EF1-85CB-0353024F6B94@gmail.com> References: <4F915384.6070308@semihalf.com> <4F919C50.70809@FreeBSD.org> To: Doug Barton X-Mailer: Apple Mail (2.1257) Cc: Jan Sieka , Current FreeBSD Subject: Re: buildworld fails on FreeBSD 7.x for HEAD from 19.04.2012 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 14:52:03 -0000 On Apr 20, 2012, at 10:26 AM, Doug Barton wrote: > On 4/20/2012 5:16 AM, Jan Sieka wrote: >> I can't build world from recent sources (HEAD as of 2012.04.19 = 11:06:48 >> UTC) on a machine running FreeBSD 7.3. >=20 > That's not a supported configuration. We don't promise support for > $VERSION on anything less than the most recent version of $VERSION - = 1. I'm sorry, but given the error below shown by Jan I don't buy = this argument. It seems like file's objects are is trying to link = against an ABI incompatible libc and failing. The build system should = handle this properly if you invoke the top-level targets (buildworld, = buildkernel, distribution). Thanks, -Garrett= From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 15:51:13 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 09426106566B; Sun, 22 Apr 2012 15:51:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id B63958FC08; Sun, 22 Apr 2012 15:51:12 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:8150:2626:d6be:cca1] (unknown [IPv6:2001:7b8:3a7:0:8150:2626:d6be:cca1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 2CE6B5C37; Sun, 22 Apr 2012 17:51:11 +0200 (CEST) Message-ID: <4F9428ED.6060902@FreeBSD.org> Date: Sun, 22 Apr 2012 17:51:09 +0200 From: Dimitry Andric Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120410 Thunderbird/12.0 MIME-Version: 1.0 To: Garrett Cooper References: <4F915384.6070308@semihalf.com> <4F919C50.70809@FreeBSD.org> <9B9312D3-489E-4EF1-85CB-0353024F6B94@gmail.com> In-Reply-To: <9B9312D3-489E-4EF1-85CB-0353024F6B94@gmail.com> X-Enigmail-Version: 1.4.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Doug Barton , Current FreeBSD , Jan Sieka Subject: Re: buildworld fails on FreeBSD 7.x for HEAD from 19.04.2012 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 15:51:13 -0000 On 2012-04-22 16:51, Garrett Cooper wrote: > On Apr 20, 2012, at 10:26 AM, Doug Barton wrote: >> On 4/20/2012 5:16 AM, Jan Sieka wrote: >>> I can't build world from recent sources (HEAD as of 2012.04.19 11:06:48 >>> UTC) on a machine running FreeBSD 7.3. >> >> That's not a supported configuration. We don't promise support for >> $VERSION on anything less than the most recent version of $VERSION - 1. > > I'm sorry, but given the error below shown by Jan I don't buy this argument. It seems like file's objects are is trying to link against an ABI incompatible libc and failing. The build system should handle this properly if you invoke the top-level targets (buildworld, buildkernel, distribution). This is trickier than you think: the error occurs during the build-tools stage, where everything that builds still uses the host's toolchain and libraries (e.g. the 7.x versions). So if you try to build a program that uses getline(), it will not be able to link. This is what happens with the 'mkmagic' tool. However, this will have started failing just very recently, since obrien updated to a new file(1) version, and regenerated the config.h file: http://svnweb.freebsd.org/base/head/lib/libmagic/config.h?r1=208341&r2=234449 Maybe some hackery could be inserted in lib/libmagic/Makefile, so during the early stages a 'toned down' config.h file is used. The libmagic source has its own getline implementation in contrib/file/getline.c, so maybe that could be used instead. On the other hand, going from 7.x to HEAD via the 'official' route would go like: - Update 7.x to the latests 7-STABLE - Update 7-STABLE to 8-STABLE - Update 8-STABLE to 9-STABLE - Update 9-STABLE to 10-CURRENT It is *way* easier to just grab a recent 10-CURRENT snapshot ISO and just reinstall. :) From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 16:06:45 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3804F1065670; Sun, 22 Apr 2012 16:06:45 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-ob0-f182.google.com (mail-ob0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id CE5808FC08; Sun, 22 Apr 2012 16:06:44 +0000 (UTC) Received: by obqv19 with SMTP id v19so16606883obq.13 for ; Sun, 22 Apr 2012 09:06:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to:x-mailer; bh=8qwZzre/JL/3WgsweSdPWwEnHH5RMUNi3LzWkURLpL0=; b=SSHY42qWpdtuE8b/KmNsPP+smKD3HX1PMD7DZFDaJuqqW9SRWZdCMkYoPS04zM10aW NhhY4pVJ9Q2RQnk3zf/WVsDpjizXY8kJAUe8IZuOAiPCka0u0ckn6mKXntQUQ2cbeG2w Pi/fKolDaxD3lrjIbcO/iYAzqRbb1oKHHXe3Pi+k1z5uerozdDBNRJF/fg5WaNPG9r3N LUbSZOY2s8R2ePuYCeAUzlpfa7h2YEk2fOcXwQvrpnvVsmdPHIiFabNnqEdmmvLbs7pE XI8yW8HN+ACItxngULxKwU65dbAE1eiDwUK2uIl2Oc79PFX1B7ogdGY2i5sR30kAYRkO g58w== Received: by 10.182.72.5 with SMTP id z5mr18750317obu.61.1335110804206; Sun, 22 Apr 2012 09:06:44 -0700 (PDT) Received: from [192.168.2.5] (dpc691939029.direcpc.com. [69.19.39.29]) by mx.google.com with ESMTPS id b2sm13141378obo.22.2012.04.22.09.06.30 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 22 Apr 2012 09:06:43 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: text/plain; charset=iso-8859-1 From: Garrett Cooper In-Reply-To: <4F9428ED.6060902@FreeBSD.org> Date: Sun, 22 Apr 2012 09:06:18 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <3862F1CA-C1C8-49E6-B768-114A0A212496@gmail.com> References: <4F915384.6070308@semihalf.com> <4F919C50.70809@FreeBSD.org> <9B9312D3-489E-4EF1-85CB-0353024F6B94@gmail.com> <4F9428ED.6060902@FreeBSD.org> To: Dimitry Andric X-Mailer: Apple Mail (2.1257) Cc: Doug Barton , Current FreeBSD , Jan Sieka Subject: Re: buildworld fails on FreeBSD 7.x for HEAD from 19.04.2012 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 16:06:45 -0000 On Apr 22, 2012, at 8:51 AM, Dimitry Andric wrote: > On 2012-04-22 16:51, Garrett Cooper wrote: >> On Apr 20, 2012, at 10:26 AM, Doug Barton wrote: >>> On 4/20/2012 5:16 AM, Jan Sieka wrote: >>>> I can't build world from recent sources (HEAD as of 2012.04.19 = 11:06:48 >>>> UTC) on a machine running FreeBSD 7.3. >>>=20 >>> That's not a supported configuration. We don't promise support for >>> $VERSION on anything less than the most recent version of $VERSION - = 1. >>=20 >> I'm sorry, but given the error below shown by Jan I don't buy = this argument. It seems like file's objects are is trying to link = against an ABI incompatible libc and failing. The build system should = handle this properly if you invoke the top-level targets (buildworld, = buildkernel, distribution). >=20 > This is trickier than you think: the error occurs during the = build-tools > stage, where everything that builds still uses the host's toolchain = and > libraries (e.g. the 7.x versions). So if you try to build a program > that uses getline(), it will not be able to link. This is what = happens > with the 'mkmagic' tool. >=20 > However, this will have started failing just very recently, since = obrien > updated to a new file(1) version, and regenerated the config.h file: >=20 > = http://svnweb.freebsd.org/base/head/lib/libmagic/config.h?r1=3D208341&r2=3D= 234449 And this is why NetBSD runs autotools on their tree sources in their = build instead of dealing with stale config.h files -- which also brings = up the bug of what happens if support is available on one architecture, = but not the other? Doesn't happen often and I hope it wouldn't happen in = sources imported into FreeBSD, but I've seen it happen in the past with = various open source projects. > Maybe some hackery could be inserted in lib/libmagic/Makefile, so = during > the early stages a 'toned down' config.h file is used. The libmagic > source has its own getline implementation in contrib/file/getline.c, = so > maybe that could be used instead. That seems like a good idea for the time being. On the other hand (and this is probably a dumb question), but why is = libmagic required in the build-tools stage? > On the other hand, going from 7.x to HEAD via the 'official' route = would go like: >=20 > - Update 7.x to the latests 7-STABLE > - Update 7-STABLE to 8-STABLE > - Update 8-STABLE to 9-STABLE > - Update 9-STABLE to 10-CURRENT >=20 > It is *way* easier to just grab a recent 10-CURRENT snapshot ISO and > just reinstall. :) Ugh. The usecase (that's now broken) is that Jan from Semihalf might = have been running CURRENT builds on an older (stable) build machine. I = have done this a couple times in the past (but not regularly because I = usually follow the above prescribed method or just hop 1-2 major = versions). Other groups I've worked with use the same major version or higher than = the running build because of chroot hackery involved in the build = process. Thanks, -Garrett= From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 17:34:53 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 61515106566C; Sun, 22 Apr 2012 17:34:53 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id 197C78FC08; Sun, 22 Apr 2012 17:34:53 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:8150:2626:d6be:cca1] (unknown [IPv6:2001:7b8:3a7:0:8150:2626:d6be:cca1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 4A2755C37; Sun, 22 Apr 2012 19:34:52 +0200 (CEST) Message-ID: <4F944139.4070309@FreeBSD.org> Date: Sun, 22 Apr 2012 19:34:49 +0200 From: Dimitry Andric Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120410 Thunderbird/12.0 MIME-Version: 1.0 To: Garrett Cooper References: <4F915384.6070308@semihalf.com> <4F919C50.70809@FreeBSD.org> <9B9312D3-489E-4EF1-85CB-0353024F6B94@gmail.com> <4F9428ED.6060902@FreeBSD.org> <3862F1CA-C1C8-49E6-B768-114A0A212496@gmail.com> In-Reply-To: <3862F1CA-C1C8-49E6-B768-114A0A212496@gmail.com> X-Enigmail-Version: 1.4.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Jan Sieka , Doug Barton , Current FreeBSD Subject: Re: buildworld fails on FreeBSD 7.x for HEAD from 19.04.2012 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 17:34:53 -0000 On 2012-04-22 18:06, Garrett Cooper wrote: > On Apr 22, 2012, at 8:51 AM, Dimitry Andric wrote: ... >> However, this will have started failing just very recently, since obrien >> updated to a new file(1) version, and regenerated the config.h file: >> >> http://svnweb.freebsd.org/base/head/lib/libmagic/config.h?r1=208341&r2=234449 > > And this is why NetBSD runs autotools on their tree sources in their build instead of dealing with stale config.h files Well, I wouldn't want to run autoconf during build, firstly because it is horribly slow, and second because the results will be less predictable. Maybe during the bootstrap stage, it would be acceptable. But even then, one of the configure scripts could fail due to too-old system components, and you would be SOL. > which also brings up the bug of what happens if support is available on one architecture, but not the other? Doesn't happen often and I hope it wouldn't happen in sources imported into FreeBSD, but I've seen it happen in the past with various open source projects. Usually, if something is arch-dependent in a config.h file, we simply surround it with #ifdefs. >> Maybe some hackery could be inserted in lib/libmagic/Makefile, so during >> the early stages a 'toned down' config.h file is used. The libmagic >> source has its own getline implementation in contrib/file/getline.c, so >> maybe that could be used instead. > > That seems like a good idea for the time being. > > On the other hand (and this is probably a dumb question), but why is libmagic required in the build-tools stage? Apparently the file(1) build needs a 'mkmagic' tool, which generates .mgc files (the 'compiled' version of magic files). This requirement was originally added in r81845, more than 10 years ago. >> On the other hand, going from 7.x to HEAD via the 'official' route would go like: >> >> - Update 7.x to the latests 7-STABLE >> - Update 7-STABLE to 8-STABLE >> - Update 8-STABLE to 9-STABLE >> - Update 9-STABLE to 10-CURRENT >> >> It is *way* easier to just grab a recent 10-CURRENT snapshot ISO and >> just reinstall. :) > > Ugh. The usecase (that's now broken) is that Jan from Semihalf might have been running CURRENT builds on an older (stable) build machine. I have done this a couple times in the past (but not regularly because I usually follow the above prescribed method or just hop 1-2 major versions). Yes, it might work, but there is no guarantee. I'm not sure if there is enough incentive to change this policy. It would potentially require a lot effort to make it always work. > Other groups I've worked with use the same major version or higher than the running build because of chroot hackery involved in the build process. I wasn't aware of any chroot hackery? From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 18:01:05 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 32C3E10656AA for ; Sun, 22 Apr 2012 18:01:05 +0000 (UTC) (envelope-from rhurlin@gwdg.de) Received: from fmailer.gwdg.de (fmailer.gwdg.de [134.76.11.16]) by mx1.freebsd.org (Postfix) with ESMTP id E70B48FC12 for ; Sun, 22 Apr 2012 18:01:04 +0000 (UTC) Received: from p508c7c0e.dip.t-dialin.net ([80.140.124.14] helo=krabat.raven.hur) by mailer.gwdg.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1SM15l-0005sG-Gk for freebsd-current@freebsd.org; Sun, 22 Apr 2012 20:00:57 +0200 Message-ID: <4F944755.3000605@gwdg.de> Date: Sun, 22 Apr 2012 20:00:53 +0200 From: Rainer Hurling User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:11.0) Gecko/20120419 Thunderbird/11.0.1 MIME-Version: 1.0 To: freebsd-current@freebsd.org Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Authenticated: Id:rhurlin X-Spam-Level: - X-Virus-Scanned: (clean) by exiscan+sophie Subject: stat(1) - option doubled in manpage X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 18:01:05 -0000 Just a small note. In stat(1) the description of option -l doubles: -l Display output in ls -lT format. Perhaps someone with a commit bit is interested in correcting this? From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 18:11:55 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E99CC106566C for ; Sun, 22 Apr 2012 18:11:55 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-ob0-f182.google.com (mail-ob0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id AB3928FC08 for ; Sun, 22 Apr 2012 18:11:55 +0000 (UTC) Received: by obqv19 with SMTP id v19so16722525obq.13 for ; Sun, 22 Apr 2012 11:11:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to:x-mailer; bh=qFRNnXpMqlnSs6foPekp+ydvM0Gmx3aThi8Wsaf3bFs=; b=wIgcjpuN+OsvCcpkiH5sODfqAceK79BvlYwD5OZavlDJynOUxLffCWzdiMu6UBlnff sgojK4e1beozIzeEeJMnZD2htlB6mMCRQTHekEeRgUg4rt5uVx2D5SN+Y4a07usoeYea 6MvSSTquCAOZrwYE8xjqmYLwuKWDMPJTrlBckazTroa/p5XQ3ehnXyV0ZgPMdNytfVVu Xm1pgC6SLH72WFGV8bniOlbSdyHeNcINHJtqMNC0Ja7tIb2CSO3hzZ+HOfTUgfhrZMCS ZzENjUQvyOLfJx4Hua+tRB8OwQ6Npq/viVjy17TEtEyuO+/L1Ez0gzFgI3K+KUC7ScGE FVyA== Received: by 10.60.36.100 with SMTP id p4mr19214591oej.42.1335118315026; Sun, 22 Apr 2012 11:11:55 -0700 (PDT) Received: from [192.168.2.5] (dpc691939029.direcpc.com. [69.19.39.29]) by mx.google.com with ESMTPS id n9sm10834188oen.2.2012.04.22.11.11.47 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 22 Apr 2012 11:11:54 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: text/plain; charset=us-ascii From: Garrett Cooper In-Reply-To: <4F944755.3000605@gwdg.de> Date: Sun, 22 Apr 2012 11:11:35 -0700 Content-Transfer-Encoding: 7bit Message-Id: References: <4F944755.3000605@gwdg.de> To: Rainer Hurling X-Mailer: Apple Mail (2.1257) Cc: freebsd-current@freebsd.org Subject: Re: stat(1) - option doubled in manpage X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 18:11:56 -0000 On Apr 22, 2012, at 11:00 AM, Rainer Hurling wrote: > Just a small note. > > In stat(1) the description of option -l doubles: > > -l Display output in ls -lT format. > > > Perhaps someone with a commit bit is interested in correcting this? Please submit a PR so this doesn't get lost. Thanks! -Garrett From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 18:19:42 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 72AF91065670 for ; Sun, 22 Apr 2012 18:19:42 +0000 (UTC) (envelope-from SRS0=g81w=C4=FreeBSD.org=brueffer@srs.kundenserver.de) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.17.10]) by mx1.freebsd.org (Postfix) with ESMTP id F09848FC08 for ; Sun, 22 Apr 2012 18:19:41 +0000 (UTC) Received: from hd5b90bf1.sedadby.dyn.perspektivbredband.net (hd5b90bf1.sedadby.dyn.perspektivbredband.net [213.185.11.241]) by mrelayeu.kundenserver.de (node=mreu2) with ESMTP (Nemesis) id 0Lb6xp-1RyG913KMT-00khVu; Sun, 22 Apr 2012 20:19:35 +0200 Message-ID: <4F944BB5.8050702@FreeBSD.org> Date: Sun, 22 Apr 2012 20:19:33 +0200 From: Christian Brueffer User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 MIME-Version: 1.0 To: Rainer Hurling References: <4F944755.3000605@gwdg.de> In-Reply-To: <4F944755.3000605@gwdg.de> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V02:K0:UkquS5nuc7aQErl20ohF8Ap2EXlH6q6114BIvG8e9Ze 13rT8g7f+4JC2zKMIs9tSAbPJGh3xmf7ZbQ5uiupQNSCDnHhQK K/ZSfZmg7NmoEovm11qHYUzznSTOYVJCAavV/VI7jz7G5LWnsr PWZT+5vbGDgc6HilybJkRBcOydGRnJS7+yZdM2VDab/1jDZ3j3 4Aa9YASzZ4Mw89iSCL+3hWc/U8uVp/0GHlcNHTGwXzm1e5K1Vi f1mtTWzHq6IsvyVqaPqexnjZVC+/8juHGXNZOK+3mQdzbmFp2g RGsX1Cci6YVH7CO6s2SHwC2XWHl0MSKTI7wkMTlasZwbTgweWG 6wO2brWXpW7ugz8Klkr7brCkoZ5Y6qVlGZ052kmmcQfHcI2FIO Knx6il+OScuIs+BcZ/n28sBt4jaJVYVdwQ= Cc: freebsd-current@freebsd.org Subject: Re: stat(1) - option doubled in manpage X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 18:19:42 -0000 On 4/22/12 20:00 , Rainer Hurling wrote: > Just a small note. > > In stat(1) the description of option -l doubles: > > -l Display output in ls -lT format. > > > Perhaps someone with a commit bit is interested in correcting this? > _______________________________________________ Fixed, thanks! Christian From owner-freebsd-current@FreeBSD.ORG Sun Apr 22 19:07:57 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5951B106564A; Sun, 22 Apr 2012 19:07:57 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-ob0-f182.google.com (mail-ob0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id EF7F48FC14; Sun, 22 Apr 2012 19:07:56 +0000 (UTC) Received: by obqv19 with SMTP id v19so16772578obq.13 for ; Sun, 22 Apr 2012 12:07:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to:x-mailer; bh=sW10mCL8B8nFPifV5ecMQ588+MU/j3WbePP8jfg7qr0=; b=wJFakP3/hUp2mChk2JO1pcpuEToO4yFZdEEeC/kJNHe1UOIKcVv5UK6I6HhH05zr9e l40sWeFbSMg5/oddqBb30+yJL/CZLEt+Ny/b9exYfVppnWJvCagUPLRkpeiFo2M+hPAB PnDu/ssyytZVd/7VuBM0HUfPISHntIcFITMPMJykeYCC2dyU9vlg0qJ9PxSCmJOZ4RbF HcLPyTwFjbyiQ/Oh34ZXyHM/FwnzN9tmLUs79jFYikjJTn5WKXehWPMBnpreK70Dw6t/ BE/Xd0PxTJIALWH8vXphIurUt9R+J/UM1BJEdDbm5kKty0xS2LoGTPctsCT4thXWsxco ELPg== Received: by 10.60.27.170 with SMTP id u10mr9143053oeg.50.1335121676618; Sun, 22 Apr 2012 12:07:56 -0700 (PDT) Received: from [192.168.2.5] (dpc691939029.direcpc.com. [69.19.39.29]) by mx.google.com with ESMTPS id qa9sm7666532obc.17.2012.04.22.12.07.44 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 22 Apr 2012 12:07:56 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: text/plain; charset=windows-1252 From: Garrett Cooper In-Reply-To: <4F944139.4070309@FreeBSD.org> Date: Sun, 22 Apr 2012 12:07:29 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: References: <4F915384.6070308@semihalf.com> <4F919C50.70809@FreeBSD.org> <9B9312D3-489E-4EF1-85CB-0353024F6B94@gmail.com> <4F9428ED.6060902@FreeBSD.org> <3862F1CA-C1C8-49E6-B768-114A0A212496@gmail.com> <4F944139.4070309@FreeBSD.org> To: Dimitry Andric X-Mailer: Apple Mail (2.1257) Cc: Jan Sieka , Doug Barton , Current FreeBSD Subject: Re: buildworld fails on FreeBSD 7.x for HEAD from 19.04.2012 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Apr 2012 19:07:57 -0000 On Apr 22, 2012, at 10:34 AM, Dimitry Andric wrote: > Well, I wouldn't want to run autoconf during build, firstly because it > is horribly slow, and second because the results will be less > predictable. Maybe during the bootstrap stage, it would be = acceptable. Sure -- that seems reasonable. > But even then, one of the configure scripts could fail due to too-old > system components, and you would be SOL. =85 but it would be a step forward from where things are currently at. = I'm not sure how well tested "source upgrade" paths are, but being able = to upgrade from the lowest supported version to the latest supported = version, then upgrading to CURRENT (at the very least) would be nice. > Usually, if something is arch-dependent in a config.h file, we simply > surround it with #ifdefs. Makes sense (assumption being that it can be controlled via the = config.h/configure.{ac,in} file). However, jemalloc recently disproved = this >_<. > Apparently the file(1) build needs a 'mkmagic' tool, which generates > .mgc files (the 'compiled' version of magic files). This requirement > was originally added in r81845, more than 10 years ago. I tested out removing libmagic from Makefile.inc1 and see that there's = some dependency magic going on there where building the library failed. > Yes, it might work, but there is no guarantee. I'm not sure if there = is > enough incentive to change this policy. It would potentially require = a > lot effort to make it always work. Understood and I guess the ownness is upon the stakeholders to fix this, = but there are a lot of companies that depend on things like this working = (at least to reduce pain when doing source upgrades). This would = probably be less of an issue for developers that use freebsd-update or = for companies that roll their own freebsd-update (and servers). I have = yet to run into a company that does this though (not saying there aren't = groups that could or do do this, but it's not the standard path). > I wasn't aware of any chroot hackery? A publicly available example is available in FreeNAS ( = http://freenas.svn.sourceforge.net/viewvc/freenas?view=3Drevision&revision= =3D8193 ); the hangup is building packages for a target system that = doesn't match the build host. Cheers! -Garrett= From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 05:53:01 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D532C1065670; Mon, 23 Apr 2012 05:53:01 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id A431B8FC0C; Mon, 23 Apr 2012 05:53:01 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3N5qthi071455; Mon, 23 Apr 2012 01:52:55 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3N5qtLU071446; Mon, 23 Apr 2012 05:52:55 GMT (envelope-from tinderbox@freebsd.org) Date: Mon, 23 Apr 2012 05:52:55 GMT Message-Id: <201204230552.q3N5qtLU071446@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on powerpc/powerpc X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 05:53:01 -0000 TB --- 2012-04-23 02:59:03 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-23 02:59:03 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-23 02:59:03 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2012-04-23 02:59:03 - cleaning the object tree TB --- 2012-04-23 02:59:03 - cvsupping the source tree TB --- 2012-04-23 02:59:03 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc/powerpc/supfile TB --- 2012-04-23 02:59:47 - building world TB --- 2012-04-23 02:59:47 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 02:59:47 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 02:59:47 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 02:59:47 - SRCCONF=/dev/null TB --- 2012-04-23 02:59:47 - TARGET=powerpc TB --- 2012-04-23 02:59:47 - TARGET_ARCH=powerpc TB --- 2012-04-23 02:59:47 - TZ=UTC TB --- 2012-04-23 02:59:47 - __MAKE_CONF=/dev/null TB --- 2012-04-23 02:59:47 - cd /src TB --- 2012-04-23 02:59:47 - /usr/bin/make -B buildworld >>> World build started on Mon Apr 23 02:59:48 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Mon Apr 23 05:16:49 UTC 2012 TB --- 2012-04-23 05:16:49 - generating LINT kernel config TB --- 2012-04-23 05:16:49 - cd /src/sys/powerpc/conf TB --- 2012-04-23 05:16:49 - /usr/bin/make -B LINT TB --- 2012-04-23 05:16:49 - cd /src/sys/powerpc/conf TB --- 2012-04-23 05:16:49 - /usr/sbin/config -m LINT TB --- 2012-04-23 05:16:50 - building LINT kernel TB --- 2012-04-23 05:16:50 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 05:16:50 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 05:16:50 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 05:16:50 - SRCCONF=/dev/null TB --- 2012-04-23 05:16:50 - TARGET=powerpc TB --- 2012-04-23 05:16:50 - TARGET_ARCH=powerpc TB --- 2012-04-23 05:16:50 - TZ=UTC TB --- 2012-04-23 05:16:50 - __MAKE_CONF=/dev/null TB --- 2012-04-23 05:16:50 - cd /src TB --- 2012-04-23 05:16:50 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Mon Apr 23 05:16:50 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for LINT completed on Mon Apr 23 05:35:47 UTC 2012 TB --- 2012-04-23 05:35:47 - cd /src/sys/powerpc/conf TB --- 2012-04-23 05:35:47 - /usr/sbin/config -m GENERIC TB --- 2012-04-23 05:35:47 - building GENERIC kernel TB --- 2012-04-23 05:35:47 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 05:35:47 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 05:35:47 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 05:35:47 - SRCCONF=/dev/null TB --- 2012-04-23 05:35:47 - TARGET=powerpc TB --- 2012-04-23 05:35:47 - TARGET_ARCH=powerpc TB --- 2012-04-23 05:35:47 - TZ=UTC TB --- 2012-04-23 05:35:47 - __MAKE_CONF=/dev/null TB --- 2012-04-23 05:35:47 - cd /src TB --- 2012-04-23 05:35:47 - /usr/bin/make -B buildkernel KERNCONF=GENERIC >>> Kernel build for GENERIC started on Mon Apr 23 05:35:47 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for GENERIC completed on Mon Apr 23 05:50:09 UTC 2012 TB --- 2012-04-23 05:50:09 - cd /src/sys/powerpc/conf TB --- 2012-04-23 05:50:09 - /usr/sbin/config -m GENERIC64 TB --- 2012-04-23 05:50:09 - skipping GENERIC64 kernel TB --- 2012-04-23 05:50:09 - cd /src/sys/powerpc/conf TB --- 2012-04-23 05:50:09 - /usr/sbin/config -m MPC85XX TB --- 2012-04-23 05:50:09 - building MPC85XX kernel TB --- 2012-04-23 05:50:09 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 05:50:09 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 05:50:09 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 05:50:09 - SRCCONF=/dev/null TB --- 2012-04-23 05:50:09 - TARGET=powerpc TB --- 2012-04-23 05:50:09 - TARGET_ARCH=powerpc TB --- 2012-04-23 05:50:09 - TZ=UTC TB --- 2012-04-23 05:50:09 - __MAKE_CONF=/dev/null TB --- 2012-04-23 05:50:09 - cd /src TB --- 2012-04-23 05:50:09 - /usr/bin/make -B buildkernel KERNCONF=MPC85XX >>> Kernel build for MPC85XX started on Mon Apr 23 05:50:09 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O -pipe -std=c99 -Wa,-me500 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/powerpc/mpc85xx/ds1553_core.c cc -c -O -pipe -std=c99 -Wa,-me500 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/powerpc/mpc85xx/i2c.c cc -c -O -pipe -std=c99 -Wa,-me500 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/powerpc/mpc85xx/lbc.c cc -c -O -pipe -std=c99 -Wa,-me500 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/powerpc/mpc85xx/mpc85xx.c cc1: warnings being treated as errors /src/sys/powerpc/mpc85xx/mpc85xx.c: In function 'ccsr_write4': /src/sys/powerpc/mpc85xx/mpc85xx.c:63: warning: implicit declaration of function 'powerpc_iomb' /src/sys/powerpc/mpc85xx/mpc85xx.c:63: warning: nested extern declaration of 'powerpc_iomb' [-Wnested-externs] *** Error code 1 Stop in /obj/powerpc.powerpc/src/sys/MPC85XX. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-23 05:52:55 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-23 05:52:55 - ERROR: failed to build MPC85XX kernel TB --- 2012-04-23 05:52:55 - 8770.46 user 1112.98 system 10431.23 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-powerpc-powerpc.full From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 06:44:13 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BA3C5106564A; Mon, 23 Apr 2012 06:44:13 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com [209.85.160.54]) by mx1.freebsd.org (Postfix) with ESMTP id 7564C8FC17; Mon, 23 Apr 2012 06:44:13 +0000 (UTC) Received: by pbcwz17 with SMTP id wz17so3508430pbc.13 for ; Sun, 22 Apr 2012 23:44:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=6tFAuzL0rAjmI9DeLNDUSCMkSJUKInawARvehYCcK7I=; b=L364W86yqTer9OO8E0zYdHDFkF2p25aF6O4fPRY1q/XlKUlehu/LL3MRqCfoyY1rus GLRJA3HOE9oO7bsDYTLCNyh6vC0IYX0RbNwDPOdsd0TxQb3EFEdHHnlRsRSIv/0oVgKZ 9gSrkEKynEmxfGaLxDhLyKvFVrmMwC4acpvdLB8CWk2RGM3imoZXAqddX3YodUIQB8bq qe3SqM/nPtS9YdL68spm/+FGxxfuBjW+kwrqgeq9/1sC4PFTDw/GJ6lO+IWanM8K1mz/ whTytkD/hdlI1Lz936p3RpPSJR66Ib+Lrz/gzRIBE1uIZQK4vrBZ8GtdsJBrnA/zHyAb uL/w== MIME-Version: 1.0 Received: by 10.68.227.169 with SMTP id sb9mr15111833pbc.157.1335163453047; Sun, 22 Apr 2012 23:44:13 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.142.101.9 with HTTP; Sun, 22 Apr 2012 23:44:12 -0700 (PDT) In-Reply-To: <201203282058.q2SKwVsJ053900@svn.freebsd.org> References: <201203282058.q2SKwVsJ053900@svn.freebsd.org> Date: Sun, 22 Apr 2012 23:44:12 -0700 X-Google-Sender-Auth: O8xcBAcSPhNdovKe3gsfvvu5GIA Message-ID: From: Adrian Chadd To: Fabien Thomas , monthadar@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-current , freebsd-mips@freebsd.org Subject: Re: svn commit: r233628 - in head: lib/libpmc sys/amd64/amd64 sys/amd64/include sys/arm/include sys/conf sys/dev/hwpmc sys/i386/i386 sys/i386/include sys/kern sys/mips/include sys/modules/hwpmc sys/pow... X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 06:44:13 -0000 Hi Fabien, I've heard some rumours that this broke hwpmc support for mips24k. Monthadar, can you please provide some background info for this? Thanks, adrian On 28 March 2012 13:58, Fabien Thomas wrote: > Author: fabient > Date: Wed Mar 28 20:58:30 2012 > New Revision: 233628 > URL: http://svn.freebsd.org/changeset/base/233628 > > Log: > =A0Add software PMC support. > > =A0New kernel events can be added at various location for sampling or cou= nting. > =A0This will for example allow easy system profiling whatever the process= or is > =A0with known tools like pmcstat(8). > > =A0Simultaneous usage of software PMC and hardware PMC is possible, for e= xample > =A0looking at the lock acquire failure, page fault while sampling on > =A0instructions. > > =A0Sponsored by: NETASQ > =A0MFC after: =A0 =A01 month > > Added: > =A0head/lib/libpmc/pmc.soft.3 =A0 (contents, props changed) > =A0head/sys/dev/hwpmc/hwpmc_soft.c =A0 (contents, props changed) > =A0head/sys/dev/hwpmc/hwpmc_soft.h =A0 (contents, props changed) > Modified: > =A0head/lib/libpmc/Makefile > =A0head/lib/libpmc/libpmc.c > =A0head/lib/libpmc/pmc.3 > =A0head/lib/libpmc/pmc.atom.3 > =A0head/lib/libpmc/pmc.core.3 > =A0head/lib/libpmc/pmc.core2.3 > =A0head/lib/libpmc/pmc.corei7.3 > =A0head/lib/libpmc/pmc.corei7uc.3 > =A0head/lib/libpmc/pmc.iaf.3 > =A0head/lib/libpmc/pmc.k7.3 > =A0head/lib/libpmc/pmc.k8.3 > =A0head/lib/libpmc/pmc.mips24k.3 > =A0head/lib/libpmc/pmc.octeon.3 > =A0head/lib/libpmc/pmc.p4.3 > =A0head/lib/libpmc/pmc.p5.3 > =A0head/lib/libpmc/pmc.p6.3 > =A0head/lib/libpmc/pmc.sandybridge.3 > =A0head/lib/libpmc/pmc.sandybridgeuc.3 > =A0head/lib/libpmc/pmc.tsc.3 > =A0head/lib/libpmc/pmc.ucf.3 > =A0head/lib/libpmc/pmc.westmere.3 > =A0head/lib/libpmc/pmc.westmereuc.3 > =A0head/lib/libpmc/pmc.xscale.3 > =A0head/lib/libpmc/pmclog.c > =A0head/lib/libpmc/pmclog.h > =A0head/sys/amd64/amd64/trap.c > =A0head/sys/amd64/include/pmc_mdep.h > =A0head/sys/arm/include/pmc_mdep.h > =A0head/sys/conf/files > =A0head/sys/dev/hwpmc/hwpmc_amd.c > =A0head/sys/dev/hwpmc/hwpmc_core.c > =A0head/sys/dev/hwpmc/hwpmc_intel.c > =A0head/sys/dev/hwpmc/hwpmc_logging.c > =A0head/sys/dev/hwpmc/hwpmc_mips.c > =A0head/sys/dev/hwpmc/hwpmc_mod.c > =A0head/sys/dev/hwpmc/hwpmc_piv.c > =A0head/sys/dev/hwpmc/hwpmc_powerpc.c > =A0head/sys/dev/hwpmc/hwpmc_ppro.c > =A0head/sys/dev/hwpmc/hwpmc_tsc.c > =A0head/sys/dev/hwpmc/hwpmc_x86.c > =A0head/sys/dev/hwpmc/hwpmc_xscale.c > =A0head/sys/dev/hwpmc/pmc_events.h > =A0head/sys/i386/i386/trap.c > =A0head/sys/i386/include/pmc_mdep.h > =A0head/sys/kern/kern_clock.c > =A0head/sys/kern/kern_lock.c > =A0head/sys/kern/kern_mutex.c > =A0head/sys/kern/kern_pmc.c > =A0head/sys/kern/kern_rwlock.c > =A0head/sys/kern/kern_sx.c > =A0head/sys/kern/subr_trap.c > =A0head/sys/mips/include/pmc_mdep.h > =A0head/sys/modules/hwpmc/Makefile > =A0head/sys/powerpc/include/pmc_mdep.h > =A0head/sys/sys/pmc.h > =A0head/sys/sys/pmckern.h > =A0head/sys/sys/pmclog.h > =A0head/usr.sbin/pmcstat/pmcstat_log.c > > Modified: head/lib/libpmc/Makefile > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/Makefile =A0 =A0Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/Makefile =A0 =A0Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -20,6 +20,7 @@ MAN+=3D pmc_read.3 > =A0MAN+=3D =A0pmc_set.3 > =A0MAN+=3D =A0pmc_start.3 > =A0MAN+=3D =A0pmclog.3 > +MAN+=3D =A0pmc.soft.3 > > =A0# PMC-dependent manual pages > =A0.if ${MACHINE_CPUARCH} =3D=3D "i386" || ${MACHINE_CPUARCH} =3D=3D "amd= 64" > > Modified: head/lib/libpmc/libpmc.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/libpmc.c =A0 =A0Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/libpmc.c =A0 =A0Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -77,11 +77,12 @@ static int tsc_allocate_pmc(enum pmc_eve > =A0static int xscale_allocate_pmc(enum pmc_event _pe, char *_ctrspec, > =A0 =A0 struct pmc_op_pmcallocate *_pmc_config); > =A0#endif > - > =A0#if defined(__mips__) > =A0static int mips_allocate_pmc(enum pmc_event _pe, char* ctrspec, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 struct pmc_op_pmc= allocate *_pmc_config); > =A0#endif /* __mips__ */ > +static int soft_allocate_pmc(enum pmc_event _pe, char *_ctrspec, > + =A0 =A0struct pmc_op_pmcallocate *_pmc_config); > > =A0#if defined(__powerpc__) > =A0static int ppc7450_allocate_pmc(enum pmc_event _pe, char* ctrspec, > @@ -156,6 +157,8 @@ PMC_CLASSDEP_TABLE(octeon, OCTEON); > =A0PMC_CLASSDEP_TABLE(ucf, UCF); > =A0PMC_CLASSDEP_TABLE(ppc7450, PPC7450); > > +static struct pmc_event_descr soft_event_table[PMC_EV_DYN_COUNT]; > + > =A0#undef __PMC_EV_ALIAS > =A0#define =A0 =A0 =A0 =A0__PMC_EV_ALIAS(N,CODE) =A0{ N, PMC_EV_##CODE }, > > @@ -215,21 +218,22 @@ static const struct pmc_event_descr west > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0PMC_CLASS_##C, __VA_ARGS__ =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0 =A0 =A0\ > =A0 =A0 =A0 =A0} > > -PMC_MDEP_TABLE(atom, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC); > -PMC_MDEP_TABLE(core, IAP, PMC_CLASS_TSC); > -PMC_MDEP_TABLE(core2, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC); > -PMC_MDEP_TABLE(corei7, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, PMC_CLASS_UCF,= PMC_CLASS_UCP); > -PMC_MDEP_TABLE(sandybridge, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, PMC_CLASS= _UCF, PMC_CLASS_UCP); > -PMC_MDEP_TABLE(westmere, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, PMC_CLASS_UC= F, PMC_CLASS_UCP); > -PMC_MDEP_TABLE(k7, K7, PMC_CLASS_TSC); > -PMC_MDEP_TABLE(k8, K8, PMC_CLASS_TSC); > -PMC_MDEP_TABLE(p4, P4, PMC_CLASS_TSC); > -PMC_MDEP_TABLE(p5, P5, PMC_CLASS_TSC); > -PMC_MDEP_TABLE(p6, P6, PMC_CLASS_TSC); > -PMC_MDEP_TABLE(xscale, XSCALE, PMC_CLASS_XSCALE); > -PMC_MDEP_TABLE(mips24k, MIPS24K, PMC_CLASS_MIPS24K); > -PMC_MDEP_TABLE(octeon, OCTEON, PMC_CLASS_OCTEON); > -PMC_MDEP_TABLE(ppc7450, PPC7450, PMC_CLASS_PPC7450); > +PMC_MDEP_TABLE(atom, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLASS_TSC); > +PMC_MDEP_TABLE(core, IAP, PMC_CLASS_SOFT, PMC_CLASS_TSC); > +PMC_MDEP_TABLE(core2, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLASS_TSC)= ; > +PMC_MDEP_TABLE(corei7, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLASS_TSC= , PMC_CLASS_UCF, PMC_CLASS_UCP); > +PMC_MDEP_TABLE(sandybridge, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLAS= S_TSC, PMC_CLASS_UCF, PMC_CLASS_UCP); > +PMC_MDEP_TABLE(westmere, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLASS_T= SC, PMC_CLASS_UCF, PMC_CLASS_UCP); > +PMC_MDEP_TABLE(k7, K7, PMC_CLASS_SOFT, PMC_CLASS_TSC); > +PMC_MDEP_TABLE(k8, K8, PMC_CLASS_SOFT, PMC_CLASS_TSC); > +PMC_MDEP_TABLE(p4, P4, PMC_CLASS_SOFT, PMC_CLASS_TSC); > +PMC_MDEP_TABLE(p5, P5, PMC_CLASS_SOFT, PMC_CLASS_TSC); > +PMC_MDEP_TABLE(p6, P6, PMC_CLASS_SOFT, PMC_CLASS_TSC); > +PMC_MDEP_TABLE(xscale, XSCALE, PMC_CLASS_SOFT, PMC_CLASS_XSCALE); > +PMC_MDEP_TABLE(mips24k, MIPS24K, PMC_CLASS_SOFT, PMC_CLASS_MIPS24K); > +PMC_MDEP_TABLE(octeon, OCTEON, PMC_CLASS_SOFT, PMC_CLASS_OCTEON); > +PMC_MDEP_TABLE(ppc7450, PPC7450, PMC_CLASS_SOFT, PMC_CLASS_PPC7450); > +PMC_MDEP_TABLE(generic, SOFT, PMC_CLASS_SOFT); > > =A0static const struct pmc_event_descr tsc_event_table[] =3D > =A0{ > @@ -279,16 +283,24 @@ PMC_CLASS_TABLE_DESC(tsc, TSC, tsc, tsc) > =A0#if =A0 =A0defined(__XSCALE__) > =A0PMC_CLASS_TABLE_DESC(xscale, XSCALE, xscale, xscale); > =A0#endif > - > =A0#if defined(__mips__) > =A0PMC_CLASS_TABLE_DESC(mips24k, MIPS24K, mips24k, mips); > =A0PMC_CLASS_TABLE_DESC(octeon, OCTEON, octeon, mips); > =A0#endif /* __mips__ */ > - > =A0#if defined(__powerpc__) > =A0PMC_CLASS_TABLE_DESC(ppc7450, PPC7450, ppc7450, ppc7450); > =A0#endif > > +static struct pmc_class_descr soft_class_table_descr =3D > +{ > + =A0 =A0 =A0 .pm_evc_name =A0=3D "SOFT-", > + =A0 =A0 =A0 .pm_evc_name_size =3D sizeof("SOFT-") - 1, > + =A0 =A0 =A0 .pm_evc_class =3D PMC_CLASS_SOFT, > + =A0 =A0 =A0 .pm_evc_event_table =3D NULL, > + =A0 =A0 =A0 .pm_evc_event_table_size =3D 0, > + =A0 =A0 =A0 .pm_evc_allocate_pmc =3D soft_allocate_pmc > +}; > + > =A0#undef PMC_CLASS_TABLE_DESC > > =A0static const struct pmc_class_descr **pmc_class_table; > @@ -343,9 +355,12 @@ static const char * pmc_state_names[] =3D > =A0 =A0 =A0 =A0__PMC_STATES() > =A0}; > > -static int pmc_syscall =3D -1; =A0 =A0 =A0 =A0 =A0 /* filled in by pmc_i= nit() */ > - > -static struct pmc_cpuinfo cpu_info; =A0 =A0/* filled in by pmc_init() */ > +/* > + * Filled in by pmc_init(). > + */ > +static int pmc_syscall =3D -1; > +static struct pmc_cpuinfo cpu_info; > +static struct pmc_op_getdyneventinfo soft_event_info; > > =A0/* Event masks for events */ > =A0struct pmc_masks { > @@ -2179,6 +2194,25 @@ tsc_allocate_pmc(enum pmc_event pe, char > =A0} > =A0#endif > > +static struct pmc_event_alias generic_aliases[] =3D { > + =A0 =A0 =A0 EV_ALIAS("instructions", =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"SO= FT-CLOCK.HARD"), > + =A0 =A0 =A0 EV_ALIAS(NULL, NULL) > +}; > + > +static int > +soft_allocate_pmc(enum pmc_event pe, char *ctrspec, > + =A0 =A0struct pmc_op_pmcallocate *pmc_config) > +{ > + =A0 =A0 =A0 (void)ctrspec; > + =A0 =A0 =A0 (void)pmc_config; > + > + =A0 =A0 =A0 if (pe < PMC_EV_SOFT_FIRST || pe > PMC_EV_SOFT_LAST) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 return (-1); > + > + =A0 =A0 =A0 pmc_config->pm_caps |=3D (PMC_CAP_READ | PMC_CAP_WRITE); > + =A0 =A0 =A0 return (0); > +} > + > =A0#if =A0 =A0defined(__XSCALE__) > > =A0static struct pmc_event_alias xscale_aliases[] =3D { > @@ -2663,6 +2697,10 @@ pmc_event_names_of_class(enum pmc_class > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ev =3D ppc7450_event_table; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0count =3D PMC_EVENT_TABLE_SIZE(ppc7450); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; > + =A0 =A0 =A0 case PMC_CLASS_SOFT: > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 ev =3D soft_event_table; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 count =3D soft_event_info.pm_nevent; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 break; > =A0 =A0 =A0 =A0default: > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0errno =3D EINVAL; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (-1); > @@ -2676,6 +2714,7 @@ pmc_event_names_of_class(enum pmc_class > > =A0 =A0 =A0 =A0for (;count--; ev++, names++) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0*names =3D ev->pm_ev_name; > + > =A0 =A0 =A0 =A0return (0); > =A0} > > @@ -2780,11 +2819,34 @@ pmc_init(void) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0pmc_class_table[n] =3D NULL; > > =A0 =A0 =A0 =A0/* > + =A0 =A0 =A0 =A0* Get soft events list. > + =A0 =A0 =A0 =A0*/ > + =A0 =A0 =A0 soft_event_info.pm_class =3D PMC_CLASS_SOFT; > + =A0 =A0 =A0 if (PMC_CALL(GETDYNEVENTINFO, &soft_event_info) < 0) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 return (pmc_syscall =3D -1); > + > + =A0 =A0 =A0 /* Map soft events to static list. */ > + =A0 =A0 =A0 for (n =3D 0; n < soft_event_info.pm_nevent; n++) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 soft_event_table[n].pm_ev_name =3D > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 soft_event_info.pm_events[n].pm_ev_= name; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 soft_event_table[n].pm_ev_code =3D > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 soft_event_info.pm_events[n].pm_ev_= code; > + =A0 =A0 =A0 } > + =A0 =A0 =A0 soft_class_table_descr.pm_evc_event_table_size =3D \ > + =A0 =A0 =A0 =A0 =A0 soft_event_info.pm_nevent; > + =A0 =A0 =A0 soft_class_table_descr.pm_evc_event_table =3D \ > + =A0 =A0 =A0 =A0 =A0 soft_event_table; > + > + =A0 =A0 =A0 /* > =A0 =A0 =A0 =A0 * Fill in the class table. > =A0 =A0 =A0 =A0 */ > =A0 =A0 =A0 =A0n =3D 0; > + > + =A0 =A0 =A0 /* Fill soft events information. */ > + =A0 =A0 =A0 pmc_class_table[n++] =3D &soft_class_table_descr; > =A0#if defined(__amd64__) || defined(__i386__) > - =A0 =A0 =A0 pmc_class_table[n++] =3D &tsc_class_table_descr; > + =A0 =A0 =A0 if (cpu_info.pm_cputype !=3D PMC_CPU_GENERIC) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 pmc_class_table[n++] =3D &tsc_class_table_d= escr; > > =A0 =A0 =A0 =A0/* > =A0 =A0 =A0 =A0 * Check if this CPU has fixed function counters. > @@ -2867,6 +2929,9 @@ pmc_init(void) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0pmc_class_table[n] =3D &p4_class_table_des= cr; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; > =A0#endif > + =A0 =A0 =A0 case PMC_CPU_GENERIC: > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMC_MDEP_INIT(generic); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 break; > =A0#if defined(__XSCALE__) > =A0 =A0 =A0 =A0case PMC_CPU_INTEL_XSCALE: > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0PMC_MDEP_INIT(xscale); > @@ -3035,18 +3100,19 @@ _pmc_name_of_event(enum pmc_event pe, en > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0evfence =3D xscale_event_table + PMC_EVENT= _TABLE_SIZE(xscale); > =A0 =A0 =A0 =A0} else if (pe >=3D PMC_EV_MIPS24K_FIRST && pe <=3D PMC_EV_= MIPS24K_LAST) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ev =3D mips24k_event_table; > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 evfence =3D mips24k_event_table + PMC_EVENT= _TABLE_SIZE(mips24k > -); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 evfence =3D mips24k_event_table + PMC_EVENT= _TABLE_SIZE(mips24k); > =A0 =A0 =A0 =A0} else if (pe >=3D PMC_EV_OCTEON_FIRST && pe <=3D PMC_EV_O= CTEON_LAST) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ev =3D octeon_event_table; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0evfence =3D octeon_event_table + PMC_EVENT= _TABLE_SIZE(octeon); > =A0 =A0 =A0 =A0} else if (pe >=3D PMC_EV_PPC7450_FIRST && pe <=3D PMC_EV_= PPC7450_LAST) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ev =3D ppc7450_event_table; > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 evfence =3D ppc7450_event_table + PMC_EVENT= _TABLE_SIZE(ppc7450 > -); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 evfence =3D ppc7450_event_table + PMC_EVENT= _TABLE_SIZE(ppc7450); > =A0 =A0 =A0 =A0} else if (pe =3D=3D PMC_EV_TSC_TSC) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ev =3D tsc_event_table; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0evfence =3D tsc_event_table + PMC_EVENT_TA= BLE_SIZE(tsc); > + =A0 =A0 =A0 } else if (pe >=3D PMC_EV_SOFT_FIRST && pe <=3D PMC_EV_SOFT= _LAST) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 ev =3D soft_event_table; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 evfence =3D soft_event_table + soft_event_i= nfo.pm_nevent; > =A0 =A0 =A0 =A0} > > =A0 =A0 =A0 =A0for (; ev !=3D evfence; ev++) > > Modified: head/lib/libpmc/pmc.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.3 =A0 =A0 =A0 Wed Mar 28 20:49:11 2012 =A0 =A0 = =A0 =A0(r233627) > +++ head/lib/libpmc/pmc.3 =A0 =A0 =A0 Wed Mar 28 20:58:30 2012 =A0 =A0 = =A0 =A0(r233628) > @@ -223,6 +223,8 @@ and > =A0CPUs. > =A0.It Li PMC_CLASS_TSC > =A0The timestamp counter on i386 and amd64 architecture CPUs. > +.It Li PMC_CLASS_SOFT > +Software events. > =A0.El > =A0.Ss PMC Capabilities > =A0Capabilities of performance monitoring hardware are denoted using > @@ -525,6 +527,7 @@ API is > =A0.Xr pmc.p4 3 , > =A0.Xr pmc.p5 3 , > =A0.Xr pmc.p6 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmclog 3 , > =A0.Xr hwpmc 4 , > > Modified: head/lib/libpmc/pmc.atom.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.atom.3 =A0Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/pmc.atom.3 =A0Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -1176,6 +1176,7 @@ and the underlying hardware events used > =A0.Xr pmc.p4 3 , > =A0.Xr pmc.p5 3 , > =A0.Xr pmc.p6 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmc_cpuinfo 3 , > =A0.Xr pmclog 3 , > > Modified: head/lib/libpmc/pmc.core.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.core.3 =A0Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/pmc.core.3 =A0Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -792,6 +792,7 @@ may not count some transitions. > =A0.Xr pmc.p4 3 , > =A0.Xr pmc.p5 3 , > =A0.Xr pmc.p6 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmclog 3 , > =A0.Xr hwpmc 4 > > Modified: head/lib/libpmc/pmc.core2.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.core2.3 Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 =A0(= r233627) > +++ head/lib/libpmc/pmc.core2.3 Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 =A0(= r233628) > @@ -1107,6 +1107,7 @@ and the underlying hardware events used. > =A0.Xr pmc.p4 3 , > =A0.Xr pmc.p5 3 , > =A0.Xr pmc.p6 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmc_cpuinfo 3 , > =A0.Xr pmclog 3 , > > Modified: head/lib/libpmc/pmc.corei7.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.corei7.3 =A0 =A0 =A0 =A0Wed Mar 28 20:49:11 2012 = =A0 =A0 =A0 =A0(r233627) > +++ head/lib/libpmc/pmc.corei7.3 =A0 =A0 =A0 =A0Wed Mar 28 20:58:30 2012 = =A0 =A0 =A0 =A0(r233628) > @@ -1559,6 +1559,7 @@ Counts number of segment register loads. > =A0.Xr pmc.corei7uc 3 , > =A0.Xr pmc.westmere 3 , > =A0.Xr pmc.westmereuc 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmc_cpuinfo 3 , > =A0.Xr pmclog 3 , > > Modified: head/lib/libpmc/pmc.corei7uc.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.corei7uc.3 =A0 =A0 =A0Wed Mar 28 20:49:11 2012 = =A0 =A0 =A0 =A0(r233627) > +++ head/lib/libpmc/pmc.corei7uc.3 =A0 =A0 =A0Wed Mar 28 20:58:30 2012 = =A0 =A0 =A0 =A0(r233628) > @@ -863,6 +863,7 @@ refreshed or needs to go into a power do > =A0.Xr pmc.corei7 3 , > =A0.Xr pmc.westmere 3 , > =A0.Xr pmc.westmereuc 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmc_cpuinfo 3 , > =A0.Xr pmclog 3 , > > Modified: head/lib/libpmc/pmc.iaf.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.iaf.3 =A0 Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/pmc.iaf.3 =A0 Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -132,6 +132,7 @@ CPU, use the event specifier > =A0.Xr pmc.p4 3 , > =A0.Xr pmc.p5 3 , > =A0.Xr pmc.p6 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmc_cpuinfo 3 , > =A0.Xr pmclog 3 , > > Modified: head/lib/libpmc/pmc.k7.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.k7.3 =A0 =A0Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/pmc.k7.3 =A0 =A0Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -249,6 +249,7 @@ and the underlying hardware events used. > =A0.Xr pmc.p4 3 , > =A0.Xr pmc.p5 3 , > =A0.Xr pmc.p6 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmclog 3 , > =A0.Xr hwpmc 4 > > Modified: head/lib/libpmc/pmc.k8.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.k8.3 =A0 =A0Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/pmc.k8.3 =A0 =A0Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -783,6 +783,7 @@ and the underlying hardware events used. > =A0.Xr pmc.p4 3 , > =A0.Xr pmc.p5 3 , > =A0.Xr pmc.p6 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmclog 3 , > =A0.Xr hwpmc 4 > > Modified: head/lib/libpmc/pmc.mips24k.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.mips24k.3 =A0 =A0 =A0 Wed Mar 28 20:49:11 2012 = =A0 =A0 =A0 =A0(r233627) > +++ head/lib/libpmc/pmc.mips24k.3 =A0 =A0 =A0 Wed Mar 28 20:58:30 2012 = =A0 =A0 =A0 =A0(r233628) > @@ -392,6 +392,7 @@ and the underlying hardware events used. > =A0.Xr pmc.p4 3 , > =A0.Xr pmc.p5 3 , > =A0.Xr pmc.p6 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmc_cpuinfo 3 , > =A0.Xr pmclog 3 , > > Modified: head/lib/libpmc/pmc.octeon.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.octeon.3 =A0 =A0 =A0 =A0Wed Mar 28 20:49:11 2012 = =A0 =A0 =A0 =A0(r233627) > +++ head/lib/libpmc/pmc.octeon.3 =A0 =A0 =A0 =A0Wed Mar 28 20:58:30 2012 = =A0 =A0 =A0 =A0(r233628) > @@ -232,6 +232,7 @@ and the underlying hardware events used. > =A0.Xr pmc.p4 3 , > =A0.Xr pmc.p5 3 , > =A0.Xr pmc.p6 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmc_cpuinfo 3 , > =A0.Xr pmclog 3 , > > Modified: head/lib/libpmc/pmc.p4.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.p4.3 =A0 =A0Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/pmc.p4.3 =A0 =A0Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -1208,6 +1208,7 @@ and the underlying hardware events used. > =A0.Xr pmc.k8 3 , > =A0.Xr pmc.p5 3 , > =A0.Xr pmc.p6 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmclog 3 , > =A0.Xr hwpmc 4 > > Modified: head/lib/libpmc/pmc.p5.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.p5.3 =A0 =A0Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/pmc.p5.3 =A0 =A0Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -444,6 +444,7 @@ and the underlying hardware events used. > =A0.Xr pmc.k8 3 , > =A0.Xr pmc.p4 3 , > =A0.Xr pmc.p6 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmclog 3 , > =A0.Xr hwpmc 4 > > Modified: head/lib/libpmc/pmc.p6.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.p6.3 =A0 =A0Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/pmc.p6.3 =A0 =A0Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -1010,6 +1010,7 @@ and the underlying hardware events used. > =A0.Xr pmc.k8 3 , > =A0.Xr pmc.p4 3 , > =A0.Xr pmc.p5 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmclog 3 , > =A0.Xr hwpmc 4 > > Modified: head/lib/libpmc/pmc.sandybridge.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.sandybridge.3 =A0 Wed Mar 28 20:49:11 2012 =A0 = =A0 =A0 =A0(r233627) > +++ head/lib/libpmc/pmc.sandybridge.3 =A0 Wed Mar 28 20:58:30 2012 =A0 = =A0 =A0 =A0(r233628) > @@ -907,6 +907,7 @@ Split locks in SQ. > =A0.Xr pmc.p5 3 , > =A0.Xr pmc.p6 3 , > =A0.Xr pmc.sandybridgeuc 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmc.ucf 3 , > =A0.Xr pmc.westmere 3 , > > Modified: head/lib/libpmc/pmc.sandybridgeuc.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.sandybridgeuc.3 Wed Mar 28 20:49:11 2012 =A0 =A0 = =A0 =A0(r233627) > +++ head/lib/libpmc/pmc.sandybridgeuc.3 Wed Mar 28 20:58:30 2012 =A0 =A0 = =A0 =A0(r233628) > @@ -208,6 +208,7 @@ Counts the number of core-outgoing entri > =A0.Xr pmc.p5 3 , > =A0.Xr pmc.p6 3 , > =A0.Xr pmc.sandybridge 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmc.ucf 3 , > =A0.Xr pmc.westmere 3 , > > Added: head/lib/libpmc/pmc.soft.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- /dev/null =A0 00:00:00 1970 =A0 (empty, because file is newly added) > +++ head/lib/libpmc/pmc.soft.3 =A0Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -0,0 +1,104 @@ > +.\" Copyright (c) 2012 Fabien Thomas. =A0All rights reserved. > +.\" > +.\" Redistribution and use in source and binary forms, with or without > +.\" modification, are permitted provided that the following conditions > +.\" are met: > +.\" 1. Redistributions of source code must retain the above copyright > +.\" =A0 =A0notice, this list of conditions and the following disclaimer. > +.\" 2. Redistributions in binary form must reproduce the above copyright > +.\" =A0 =A0notice, this list of conditions and the following disclaimer = in the > +.\" =A0 =A0documentation and/or other materials provided with the distri= bution. > +.\" > +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' A= ND > +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, TH= E > +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR P= URPOSE > +.\" ARE DISCLAIMED. =A0IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE L= IABLE > +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQU= ENTIAL > +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GO= ODS > +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION= ) > +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, = STRICT > +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN AN= Y WAY > +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY = OF > +.\" SUCH DAMAGE. > +.\" > +.\" $FreeBSD$ > +.\" > +.Dd March 28, 2012 > +.Os > +.Dt PMC.SOFT 3 > +.Sh NAME > +.Nm pmc.soft > +.Nd measurements using software based events > +.Sh LIBRARY > +.Lb libpmc > +.Sh SYNOPSIS > +.In pmc.h > +.Sh DESCRIPTION > +Software events are used to collect various source of software events. > +.Ss PMC Features > +16 sampling counters using software events based on various sources. > +These PMCs support the following capabilities: > +.Bl -column "PMC_CAP_INTERRUPT" "Support" > +.It Em Capability Ta Em Support > +.It PMC_CAP_CASCADE Ta \&No > +.It PMC_CAP_EDGE Ta \&No > +.It PMC_CAP_INTERRUPT Ta Yes > +.It PMC_CAP_INVERT Ta \&No > +.It PMC_CAP_READ Ta Yes > +.It PMC_CAP_PRECISE Ta \&No > +.It PMC_CAP_SYSTEM Ta Yes > +.It PMC_CAP_TAGGING Ta \&No > +.It PMC_CAP_THRESHOLD Ta \&No > +.It PMC_CAP_USER Ta Yes > +.It PMC_CAP_WRITE Ta Yes > +.El > +.Ss Event Qualifiers > +There is no supported event qualifier. > +.Pp > +The event specifiers supported by software are: > +.Bl -tag -width indent > +.It Li CLOCK.HARD > +Hard clock ticks. > +.It Li CLOCK.STAT > +Stat clock ticks. > +.It Li LOCK.FAILED > +Lock acquisition failed. > +.It Li PAGE_FAULT.ALL > +All page fault type. > +.It Li PAGE_FAULT.READ > +Read page fault. > +.It Li PAGE_FAULT.WRITE > +Write page fault. > +.El > +.Sh SEE ALSO > +.Xr pmc 3 , > +.Xr pmc.atom 3 , > +.Xr pmc.core 3 , > +.Xr pmc.iaf 3 , > +.Xr pmc.ucf 3 , > +.Xr pmc.k7 3 , > +.Xr pmc.k8 3 , > +.Xr pmc.p4 3 , > +.Xr pmc.p5 3 , > +.Xr pmc.p6 3 , > +.Xr pmc.corei7 3 , > +.Xr pmc.corei7uc 3 , > +.Xr pmc.westmereuc 3 , > +.Xr pmc.tsc 3 , > +.Xr pmc_cpuinfo 3 , > +.Xr pmclog 3 , > +.Xr hwpmc 4 > +.Sh HISTORY > +The > +.Nm pmc > +library first appeared in > +.Fx 6.0 . > +.Sh AUTHORS > +The > +.Lb libpmc > +library was written by > +.An "Joseph Koshy" > +.Aq jkoshy@FreeBSD.org . > +Software PMC was written by > +.An "Fabien Thomas" > +.Aq fabient@FreeBSD.org . > > Modified: head/lib/libpmc/pmc.tsc.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.tsc.3 =A0 Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/pmc.tsc.3 =A0 Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -68,6 +68,7 @@ maps to the TSC. > =A0.Xr pmc.p4 3 , > =A0.Xr pmc.p5 3 , > =A0.Xr pmc.p6 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmclog 3 , > =A0.Xr hwpmc 4 > =A0.Sh HISTORY > > Modified: head/lib/libpmc/pmc.ucf.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.ucf.3 =A0 Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/pmc.ucf.3 =A0 Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -96,6 +96,7 @@ offset C0H under device number 0 and Fun > =A0.Xr pmc.corei7uc 3 , > =A0.Xr pmc.westmere 3 , > =A0.Xr pmc.westmereuc 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmc_cpuinfo 3 , > =A0.Xr pmclog 3 , > > Modified: head/lib/libpmc/pmc.westmere.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.westmere.3 =A0 =A0 =A0Wed Mar 28 20:49:11 2012 = =A0 =A0 =A0 =A0(r233627) > +++ head/lib/libpmc/pmc.westmere.3 =A0 =A0 =A0Wed Mar 28 20:58:30 2012 = =A0 =A0 =A0 =A0(r233628) > @@ -1381,6 +1381,7 @@ Counts number of SID integer 64 bit shif > =A0.Xr pmc.corei7 3 , > =A0.Xr pmc.corei7uc 3 , > =A0.Xr pmc.westmereuc 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmc_cpuinfo 3 , > =A0.Xr pmclog 3 , > > Modified: head/lib/libpmc/pmc.westmereuc.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.westmereuc.3 =A0 =A0Wed Mar 28 20:49:11 2012 =A0 = =A0 =A0 =A0(r233627) > +++ head/lib/libpmc/pmc.westmereuc.3 =A0 =A0Wed Mar 28 20:58:30 2012 =A0 = =A0 =A0 =A0(r233628) > @@ -1066,6 +1066,7 @@ disabled. > =A0.Xr pmc.corei7 3 , > =A0.Xr pmc.corei7uc 3 , > =A0.Xr pmc.westmere 3 , > +.Xr pmc.soft 3 , > =A0.Xr pmc.tsc 3 , > =A0.Xr pmc_cpuinfo 3 , > =A0.Xr pmclog 3 , > > Modified: head/lib/libpmc/pmc.xscale.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmc.xscale.3 =A0 =A0 =A0 =A0Wed Mar 28 20:49:11 2012 = =A0 =A0 =A0 =A0(r233627) > +++ head/lib/libpmc/pmc.xscale.3 =A0 =A0 =A0 =A0Wed Mar 28 20:58:30 2012 = =A0 =A0 =A0 =A0(r233628) > @@ -134,6 +134,7 @@ and the underlying hardware events used. > =A0.Xr pmc 3 , > =A0.Xr pmc_cpuinfo 3 , > =A0.Xr pmclog 3 , > +.Xr pmc.soft 3 , > =A0.Xr hwpmc 4 > =A0.Sh HISTORY > =A0The > > Modified: head/lib/libpmc/pmclog.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmclog.c =A0 =A0Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/pmclog.c =A0 =A0Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -369,6 +369,12 @@ pmclog_get_event(void *cookie, char **da > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=3D=3D NULL) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0goto error; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; > + =A0 =A0 =A0 case PMCLOG_TYPE_PMCALLOCATEDYN: > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_READ32(le,ev->pl_u.pl_ad.pl_pmcid); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_READ32(le,ev->pl_u.pl_ad.pl_event); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_READ32(le,ev->pl_u.pl_ad.pl_flags); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_READSTRING(le,ev->pl_u.pl_ad.pl_evna= me,PMC_NAME_MAX); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 break; > =A0 =A0 =A0 =A0case PMCLOG_TYPE_PMCATTACH: > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0PMCLOG_GET_PATHLEN(pathlen,evlen,pmclog_pm= cattach); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0PMCLOG_READ32(le,ev->pl_u.pl_t.pl_pmcid); > > Modified: head/lib/libpmc/pmclog.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/lib/libpmc/pmclog.h =A0 =A0Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 = =A0(r233627) > +++ head/lib/libpmc/pmclog.h =A0 =A0Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 = =A0(r233628) > @@ -88,6 +88,13 @@ struct pmclog_ev_pmcallocate { > =A0 =A0 =A0 =A0pmc_id_t =A0 =A0 =A0 =A0pl_pmcid; > =A0}; > > +struct pmclog_ev_pmcallocatedyn { > + =A0 =A0 =A0 uint32_t =A0 =A0 =A0 =A0pl_event; > + =A0 =A0 =A0 char =A0 =A0 =A0 =A0 =A0 =A0pl_evname[PMC_NAME_MAX]; > + =A0 =A0 =A0 uint32_t =A0 =A0 =A0 =A0pl_flags; > + =A0 =A0 =A0 pmc_id_t =A0 =A0 =A0 =A0pl_pmcid; > +}; > + > =A0struct pmclog_ev_pmcattach { > =A0 =A0 =A0 =A0pmc_id_t =A0 =A0 =A0 =A0pl_pmcid; > =A0 =A0 =A0 =A0pid_t =A0 =A0 =A0 =A0 =A0 pl_pid; > @@ -146,6 +153,7 @@ struct pmclog_ev { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0struct pmclog_ev_map_out =A0 =A0 =A0 =A0pl= _mo; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0struct pmclog_ev_pcsample =A0 =A0 =A0 pl_s= ; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0struct pmclog_ev_pmcallocate =A0 =A0pl_a; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 struct pmclog_ev_pmcallocatedyn pl_ad; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0struct pmclog_ev_pmcattach =A0 =A0 =A0pl_t= ; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0struct pmclog_ev_pmcdetach =A0 =A0 =A0pl_d= ; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0struct pmclog_ev_proccsw =A0 =A0 =A0 =A0pl= _c; > > Modified: head/sys/amd64/amd64/trap.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/amd64/amd64/trap.c Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 =A0(= r233627) > +++ head/sys/amd64/amd64/trap.c Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 =A0(= r233628) > @@ -71,6 +71,9 @@ __FBSDID("$FreeBSD$"); > =A0#include > =A0#ifdef HWPMC_HOOKS > =A0#include > +PMC_SOFT_DEFINE( , , page_fault, all); > +PMC_SOFT_DEFINE( , , page_fault, read); > +PMC_SOFT_DEFINE( , , page_fault, write); > =A0#endif > > =A0#include > @@ -743,8 +746,20 @@ trap_pfault(frame, usermode) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 */ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0rv =3D vm_fault(map, va, ftype, VM_FAULT_N= ORMAL); > =A0 =A0 =A0 =A0} > - =A0 =A0 =A0 if (rv =3D=3D KERN_SUCCESS) > + =A0 =A0 =A0 if (rv =3D=3D KERN_SUCCESS) { > +#ifdef HWPMC_HOOKS > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (ftype =3D=3D VM_PROT_READ || ftype =3D= =3D VM_PROT_WRITE) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMC_SOFT_CALL_TF( , , page_= fault, all, frame); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (ftype =3D=3D VM_PROT_RE= AD) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMC_SOFT_CA= LL_TF( , , page_fault, read, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 fra= me); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 else > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMC_SOFT_CA= LL_TF( , , page_fault, write, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 fra= me); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 } > +#endif > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (0); > + =A0 =A0 =A0 } > =A0nogo: > =A0 =A0 =A0 =A0if (!usermode) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (td->td_intr_nesting_level =3D=3D 0 && > > Modified: head/sys/amd64/include/pmc_mdep.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/amd64/include/pmc_mdep.h =A0 Wed Mar 28 20:49:11 2012 =A0 = =A0 =A0 =A0(r233627) > +++ head/sys/amd64/include/pmc_mdep.h =A0 Wed Mar 28 20:58:30 2012 =A0 = =A0 =A0 =A0(r233628) > @@ -50,13 +50,13 @@ struct pmc_mdep; > =A0* measurement architecture have PMCs of the following classes: TSC, > =A0* IAF, IAP, UCF and UCP. > =A0*/ > -#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_TSC =A0 =A0 =A0 =A00 > -#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_K8 =A0 =A0 =A0 =A0 1 > -#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_P4 =A0 =A0 =A0 =A0 1 > -#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_IAP =A0 =A0 =A0 =A01 > -#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_IAF =A0 =A0 =A0 =A02 > -#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_UCP =A0 =A0 =A0 =A03 > -#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_UCF =A0 =A0 =A0 =A04 > +#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_TSC =A0 =A0 =A0 =A01 > +#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_K8 =A0 =A0 =A0 =A0 2 > +#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_P4 =A0 =A0 =A0 =A0 2 > +#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_IAP =A0 =A0 =A0 =A02 > +#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_IAF =A0 =A0 =A0 =A03 > +#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_UCP =A0 =A0 =A0 =A04 > +#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_UCF =A0 =A0 =A0 =A05 > > =A0/* > =A0* On the amd64 platform we support the following PMCs. > @@ -119,6 +119,15 @@ union pmc_md_pmc { > > =A0#define =A0 =A0 =A0 =A0PMC_IN_USERSPACE(va) ((va) <=3D VM_MAXUSER_ADDR= ESS) > > +/* Build a fake kernel trapframe from current instruction pointer. */ > +#define PMC_FAKE_TRAPFRAME(TF) =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 \ > + =A0 =A0 =A0 do { =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0\ > + =A0 =A0 =A0 (TF)->tf_cs =3D 0; (TF)->tf_rflags =3D 0; =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 \ > + =A0 =A0 =A0 __asm __volatile("movq %%rbp,%0" : "=3Dr" ((TF)->tf_rbp)); = =A0 =A0 =A0 =A0\ > + =A0 =A0 =A0 __asm __volatile("movq %%rsp,%0" : "=3Dr" ((TF)->tf_rsp)); = =A0 =A0 =A0 =A0\ > + =A0 =A0 =A0 __asm __volatile("call 1f \n\t1: pop %0" : "=3Dr"((TF)->tf_= rip)); \ > + =A0 =A0 =A0 } while (0) > + > =A0/* > =A0* Prototypes > =A0*/ > > Modified: head/sys/arm/include/pmc_mdep.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/arm/include/pmc_mdep.h =A0 =A0 Wed Mar 28 20:49:11 2012 =A0 = =A0 =A0 =A0(r233627) > +++ head/sys/arm/include/pmc_mdep.h =A0 =A0 Wed Mar 28 20:58:30 2012 =A0 = =A0 =A0 =A0(r233628) > @@ -29,7 +29,7 @@ > =A0#ifndef _MACHINE_PMC_MDEP_H_ > =A0#define =A0 =A0 =A0 =A0_MACHINE_PMC_MDEP_H_ > > -#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_XSCALE =A0 =A0 0 > +#define =A0 =A0 =A0 =A0PMC_MDEP_CLASS_INDEX_XSCALE =A0 =A0 1 > =A0/* > =A0* On the ARM platform we support the following PMCs. > =A0* > > Modified: head/sys/conf/files > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/conf/files Wed Mar 28 20:49:11 2012 =A0 =A0 =A0 =A0(r233627) > +++ head/sys/conf/files Wed Mar 28 20:58:30 2012 =A0 =A0 =A0 =A0(r233628) > @@ -1260,6 +1260,7 @@ dev/hme/if_hme_sbus.c =A0 =A0 =A0 =A0 =A0 =A0 optio= nal hme sbus > =A0dev/hptiop/hptiop.c =A0 =A0 =A0 =A0 =A0 =A0optional hptiop scbus > =A0dev/hwpmc/hwpmc_logging.c =A0 =A0 =A0optional hwpmc > =A0dev/hwpmc/hwpmc_mod.c =A0 =A0 =A0 =A0 =A0optional hwpmc > +dev/hwpmc/hwpmc_soft.c =A0 =A0 =A0 =A0 optional hwpmc > =A0dev/ichsmb/ichsmb.c =A0 =A0 =A0 =A0 =A0 =A0optional ichsmb > =A0dev/ichsmb/ichsmb_pci.c =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0optional ichsmb= pci > =A0dev/ida/ida.c =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0optional ida > > Modified: head/sys/dev/hwpmc/hwpmc_amd.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/dev/hwpmc/hwpmc_amd.c =A0 =A0 =A0Wed Mar 28 20:49:11 2012 = =A0 =A0 =A0 =A0(r233627) > +++ head/sys/dev/hwpmc/hwpmc_amd.c =A0 =A0 =A0Wed Mar 28 20:58:30 2012 = =A0 =A0 =A0 =A0(r233628) > @@ -687,7 +687,8 @@ amd_intr(int cpu, struct trapframe *tf) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0wrmsr(perfctr, AMD_RELOAD_COUNT_TO_PERFCTR= _VALUE(v)); > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/* Restart the counter if logging succeede= d. */ > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D pmc_process_interrupt(cpu, pm, tf= , TRAPF_USERMODE(tf)); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D pmc_process_interrupt(cpu, PMC_HR= , pm, tf, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 TRAPF_USERMODE(tf)); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (error =3D=3D 0) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0wrmsr(evsel, config | AMD_= PMC_ENABLE); > =A0 =A0 =A0 =A0} > @@ -874,7 +875,7 @@ amd_pcpu_fini(struct pmc_mdep *md, int c > =A0struct pmc_mdep * > =A0pmc_amd_initialize(void) > =A0{ > - =A0 =A0 =A0 int classindex, error, i, nclasses, ncpus; > + =A0 =A0 =A0 int classindex, error, i, ncpus; > =A0 =A0 =A0 =A0struct pmc_classdep *pcd; > =A0 =A0 =A0 =A0enum pmc_cputype cputype; > =A0 =A0 =A0 =A0struct pmc_mdep *pmc_mdep; > @@ -926,12 +927,9 @@ pmc_amd_initialize(void) > =A0 =A0 =A0 =A0 * These processors have two classes of PMCs: the TSC and > =A0 =A0 =A0 =A0 * programmable PMCs. > =A0 =A0 =A0 =A0 */ > - =A0 =A0 =A0 nclasses =3D 2; > - =A0 =A0 =A0 pmc_mdep =3D malloc(sizeof(struct pmc_mdep) + nclasses * si= zeof (struct pmc_classdep), > - =A0 =A0 =A0 =A0 =A0 M_PMC, M_WAITOK|M_ZERO); > + =A0 =A0 =A0 pmc_mdep =3D pmc_mdep_alloc(2); > > =A0 =A0 =A0 =A0pmc_mdep->pmd_cputype =3D cputype; > - =A0 =A0 =A0 pmc_mdep->pmd_nclass =A0=3D nclasses; > > =A0 =A0 =A0 =A0ncpus =3D pmc_cpu_max(); > > > Modified: head/sys/dev/hwpmc/hwpmc_core.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/dev/hwpmc/hwpmc_core.c =A0 =A0 Wed Mar 28 20:49:11 2012 =A0 = =A0 =A0 =A0(r233627) > +++ head/sys/dev/hwpmc/hwpmc_core.c =A0 =A0 Wed Mar 28 20:58:30 2012 =A0 = =A0 =A0 =A0(r233628) > @@ -2239,7 +2239,7 @@ core_intr(int cpu, struct trapframe *tf) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (pm->pm_state !=3D PMC_STATE_RUNNING) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0continue; > > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D pmc_process_interrupt(cpu, pm, tf= , > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D pmc_process_interrupt(cpu, PMC_HR= , pm, tf, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0TRAPF_USERMODE(tf)); > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0v =3D pm->pm_sc.pm_reloadcount; > @@ -2326,7 +2326,7 @@ core2_intr(int cpu, struct trapframe *tf > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0!PMC_IS_SAMPLING_MODE(PMC_TO_MODE(= pm))) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0continue; > > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D pmc_process_interrupt(cpu, pm, tf= , > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D pmc_process_interrupt(cpu, PMC_HR= , pm, tf, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0TRAPF_USERMODE(tf)); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (error) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0intrenable &=3D ~flag; > @@ -2354,7 +2354,7 @@ core2_intr(int cpu, struct trapframe *tf > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0!PMC_IS_SAMPLING_MODE(PMC_TO_MODE(= pm))) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0continue; > > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D pmc_process_interrupt(cpu, pm, tf= , > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D pmc_process_interrupt(cpu, PMC_HR= , pm, tf, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0TRAPF_USERMODE(tf)); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (error) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0intrenable &=3D ~flag; > > Modified: head/sys/dev/hwpmc/hwpmc_intel.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/dev/hwpmc/hwpmc_intel.c =A0 =A0Wed Mar 28 20:49:11 2012 =A0 = =A0 =A0 =A0(r233627) > +++ head/sys/dev/hwpmc/hwpmc_intel.c =A0 =A0Wed Mar 28 20:58:30 2012 =A0 = =A0 =A0 =A0(r233628) > @@ -162,12 +162,10 @@ pmc_intel_initialize(void) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (NULL); > =A0 =A0 =A0 =A0} > > - =A0 =A0 =A0 pmc_mdep =3D malloc(sizeof(struct pmc_mdep) + nclasses * > - =A0 =A0 =A0 =A0 =A0 sizeof(struct pmc_classdep), M_PMC, M_WAITOK|M_ZERO= ); > + =A0 =A0 =A0 /* Allocate base class and initialize machine dependent str= uct */ > + =A0 =A0 =A0 pmc_mdep =3D pmc_mdep_alloc(nclasses); > > =A0 =A0 =A0 =A0pmc_mdep->pmd_cputype =A0 =A0=3D cputype; > - =A0 =A0 =A0 pmc_mdep->pmd_nclass =A0 =A0 =3D nclasses; > - > =A0 =A0 =A0 =A0pmc_mdep->pmd_switch_in =A0=3D intel_switch_in; > =A0 =A0 =A0 =A0pmc_mdep->pmd_switch_out =3D intel_switch_out; > > > Modified: head/sys/dev/hwpmc/hwpmc_logging.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/dev/hwpmc/hwpmc_logging.c =A0Wed Mar 28 20:49:11 2012 =A0 = =A0 =A0 =A0(r233627) > +++ head/sys/dev/hwpmc/hwpmc_logging.c =A0Wed Mar 28 20:58:30 2012 =A0 = =A0 =A0 =A0(r233628) > @@ -129,6 +129,7 @@ static struct mtx pmc_kthread_mtx; =A0/* sl > > =A0/* Emit a string. =A0Caution: does NOT update _le, so needs to be last= */ > =A0#define =A0 =A0 =A0 =A0PMCLOG_EMITSTRING(S,L) =A0do { bcopy((S), _le, = (L)); } while (0) > +#define =A0 =A0 =A0 =A0PMCLOG_EMITNULLSTRING(L) do { bzero(_le, (L)); } = while (0) > > =A0#define =A0 =A0 =A0 =A0PMCLOG_DESPATCH(PO) =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 \ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0pmclog_release((PO)); =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 \ > @@ -835,16 +836,33 @@ void > =A0pmclog_process_pmcallocate(struct pmc *pm) > =A0{ > =A0 =A0 =A0 =A0struct pmc_owner *po; > + =A0 =A0 =A0 struct pmc_soft *ps; > > =A0 =A0 =A0 =A0po =3D pm->pm_owner; > > =A0 =A0 =A0 =A0PMCDBG(LOG,ALL,1, "pm=3D%p", pm); > > - =A0 =A0 =A0 PMCLOG_RESERVE(po, PMCALLOCATE, sizeof(struct pmclog_pmcall= ocate)); > - =A0 =A0 =A0 PMCLOG_EMIT32(pm->pm_id); > - =A0 =A0 =A0 PMCLOG_EMIT32(pm->pm_event); > - =A0 =A0 =A0 PMCLOG_EMIT32(pm->pm_flags); > - =A0 =A0 =A0 PMCLOG_DESPATCH(po); > + =A0 =A0 =A0 if (PMC_TO_CLASS(pm) =3D=3D PMC_CLASS_SOFT) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_RESERVE(po, PMCALLOCATEDYN, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 sizeof(struct pmclog_pmcallocatedyn= )); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_EMIT32(pm->pm_id); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_EMIT32(pm->pm_event); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_EMIT32(pm->pm_flags); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 ps =3D pmc_soft_ev_acquire(pm->pm_event); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (ps !=3D NULL) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_EMITSTRING(ps->ps_ev= .pm_ev_name,PMC_NAME_MAX); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 else > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_EMITNULLSTRING(PMC_N= AME_MAX); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 pmc_soft_ev_release(ps); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_DESPATCH(po); > + =A0 =A0 =A0 } else { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_RESERVE(po, PMCALLOCATE, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 sizeof(struct pmclog_pmcallocate)); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_EMIT32(pm->pm_id); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_EMIT32(pm->pm_event); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_EMIT32(pm->pm_flags); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 PMCLOG_DESPATCH(po); > + =A0 =A0 =A0 } > =A0} > > =A0void > > Modified: head/sys/dev/hwpmc/hwpmc_mips.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/dev/hwpmc/hwpmc_mips.c =A0 =A0 Wed Mar 28 20:49:11 2012 =A0 = =A0 =A0 =A0(r233627) > +++ head/sys/dev/hwpmc/hwpmc_mips.c =A0 =A0 Wed Mar 28 20:58:30 2012 =A0 = =A0 =A0 =A0(r233628) > @@ -287,7 +287,7 @@ mips_pmc_intr(int cpu, struct trapframe > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0retval =3D 1; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (pm->pm_state !=3D PMC_STATE_RUNNING) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0continue; > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D pmc_process_interrupt(cpu, pm, tf= , > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D pmc_process_interrupt(cpu, PMC_HR= , pm, tf, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0TRAPF_USERMODE(tf)); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (error) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/* Clear/disable the relev= ant counter */ > > Modified: head/sys/dev/hwpmc/hwpmc_mod.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/dev/hwpmc/hwpmc_mod.c =A0 =A0 =A0Wed Mar 28 20:49:11 2012 = =A0 =A0 =A0 =A0(r233627) > +++ head/sys/dev/hwpmc/hwpmc_mod.c =A0 =A0 =A0Wed Mar 28 20:58:30 2012 = =A0 =A0 =A0 =A0(r233628) > @@ -70,6 +70,8 @@ __FBSDID("$FreeBSD$"); > =A0#include > =A0#include > > +#include "hwpmc_soft.h" > + > =A0/* > =A0* Types > =A0*/ > @@ -182,7 +184,7 @@ static int =A0pmc_attach_one_process(struct > =A0static int =A0 =A0 pmc_can_allocate_rowindex(struct proc *p, unsigned = int ri, > =A0 =A0 int cpu); > =A0static int =A0 =A0 pmc_can_attach(struct pmc *pm, struct proc *p); > -static void =A0 =A0pmc_capture_user_callchain(int cpu, struct trapframe = *tf); > +static void =A0 =A0pmc_capture_user_callchain(int cpu, int soft, struct = trapframe *tf); > =A0static void =A0 =A0pmc_cleanup(void); > =A0static int =A0 =A0 pmc_detach_process(struct proc *p, struct pmc *pm); > =A0static int =A0 =A0 pmc_detach_one_process(struct proc *p, struct pmc *= pm, > @@ -206,7 +208,7 @@ static void pmc_process_csw_out(struct t > =A0static void =A0 =A0pmc_process_exit(void *arg, struct proc *p); > =A0static void =A0 =A0pmc_process_fork(void *arg, struct proc *p1, > =A0 =A0 struct proc *p2, int n); > -static void =A0 =A0pmc_process_samples(int cpu); > +static void =A0 =A0pmc_process_samples(int cpu, int soft); > =A0static void =A0 =A0pmc_release_pmc_descriptor(struct pmc *pmc); > =A0static void =A0 =A0pmc_remove_owner(struct pmc_owner *po); > =A0static void =A0 =A0pmc_remove_process_descriptor(struct pmc_process *p= p); > @@ -218,12 +220,16 @@ static int =A0 =A0 =A0 =A0pmc_stop(struct pmc *pm); > =A0static int =A0 =A0 pmc_syscall_handler(struct thread *td, void *syscal= l_args); > =A0static void =A0 =A0pmc_unlink_target_process(struct pmc *pmc, > =A0 =A0 struct pmc_process *pp); > +static int generic_switch_in(struct pmc_cpu *pc, struct pmc_process *pp)= ; > +static int generic_switch_out(struct pmc_cpu *pc, struct pmc_process *pp= ); > +static struct pmc_mdep *pmc_generic_cpu_initialize(void); > +static void pmc_generic_cpu_finalize(struct pmc_mdep *md); > > =A0/* > =A0* Kernel tunables and sysctl(8) interface. > =A0*/ > > -SYSCTL_NODE(_kern, OID_AUTO, hwpmc, CTLFLAG_RW, 0, "HWPMC parameters"); > +SYSCTL_DECL(_kern_hwpmc); > > =A0static int pmc_callchaindepth =3D PMC_CALLCHAIN_DEPTH; > =A0TUNABLE_INT(PMC_SYSCTL_NAME_PREFIX "callchaindepth", &pmc_callchaindep= th); > @@ -1833,7 +1839,9 @@ const char *pmc_hooknames[] =3D { > =A0 =A0 =A0 =A0"KLDUNLOAD", > =A0 =A0 =A0 =A0"MMAP", > =A0 =A0 =A0 =A0"MUNMAP", > - =A0 =A0 =A0 "CALLCHAIN" > + =A0 =A0 =A0 "CALLCHAIN-NMI", > + =A0 =A0 =A0 "CALLCHAIN-SOFT", > + =A0 =A0 =A0 "SOFTSAMPLING" > =A0}; > =A0#endif > > @@ -1992,7 +2000,8 @@ pmc_hook_handler(struct thread *td, int > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 * lose the interrupt sample. > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 */ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0CPU_CLR_ATOMIC(PCPU_GET(cpuid), &pmc_cpuma= sk); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pmc_process_samples(PCPU_GET(cpuid)); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 pmc_process_samples(PCPU_GET(cpuid), PMC_HR= ); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 pmc_process_samples(PCPU_GET(cpuid), PMC_SR= ); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; > > > @@ -2022,11 +2031,30 @@ pmc_hook_handler(struct thread *td, int > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 */ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0KASSERT(td =3D=3D curthread, ("[pmc,%d] td= !=3D curthread", > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0__LINE__)); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pmc_capture_user_callchain(PCPU_GET(cpuid), > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 pmc_capture_user_callchain(PCPU_GET(cpuid),= PMC_HR, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(struct trapframe *) arg); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0td->td_pflags &=3D ~TDP_CALLCHAIN; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; > > + =A0 =A0 =A0 case PMC_FN_USER_CALLCHAIN_SOFT: > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0* Record a call chain. > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0*/ > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 KASSERT(td =3D=3D curthread, ("[pmc,%d] td = !=3D curthread", > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 __LINE__)); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 pmc_capture_user_callchain(PCPU_GET(cpuid),= PMC_SR, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (struct trapframe *) arg); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 td->td_pflags &=3D ~TDP_CALLCHAIN; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 break; > + > + =A0 =A0 =A0 case PMC_FN_SOFT_SAMPLING: > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0* Call soft PMC sampling intr. > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0*/ > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 pmc_soft_intr((struct pmckern_soft *) arg); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 break; > + > =A0 =A0 =A0 =A0default: > =A0#ifdef DEBUG > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0KASSERT(0, ("[pmc,%d] unknown hook %d\n", = __LINE__, function)); > @@ -2221,18 +2249,17 @@ pmc_destroy_pmc_descriptor(struct pmc *p > =A0static void > =A0pmc_wait_for_pmc_idle(struct pmc *pm) > =A0{ > -#ifdef DEBUG > +#ifdef DEBUG > =A0 =A0 =A0 =A0volatile int maxloop; > > =A0 =A0 =A0 =A0maxloop =3D 100 * pmc_cpu_max(); > =A0#endif > - > =A0 =A0 =A0 =A0/* > =A0 =A0 =A0 =A0 * Loop (with a forced context switch) till the PMC's runc= ount > =A0 =A0 =A0 =A0 * comes down to zero. > =A0 =A0 =A0 =A0 */ > =A0 =A0 =A0 =A0while (atomic_load_acq_32(&pm->pm_runcount) > 0) { > -#ifdef DEBUG > +#ifdef DEBUG > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0maxloop--; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0KASSERT(maxloop > 0, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0("[pmc,%d] (ri%d, rc%d) waiting to= o long for " > @@ -2972,6 +2999,53 @@ pmc_syscall_handler(struct thread *td, v > =A0 =A0 =A0 =A0} > =A0 =A0 =A0 =A0break; > > + =A0 =A0 =A0 /* > + =A0 =A0 =A0 =A0* Retrieve soft events list. > + =A0 =A0 =A0 =A0*/ > + =A0 =A0 =A0 case PMC_OP_GETDYNEVENTINFO: > + =A0 =A0 =A0 { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 enum pmc_class =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0cl; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 enum pmc_event =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0ev; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 struct pmc_op_getdyneventinfo =A0 *gei; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 struct pmc_dyn_event_descr =A0 =A0 =A0dev; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 struct pmc_soft =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 *ps; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 uint32_t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 =A0nevent; > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 sx_assert(&pmc_sx, SX_LOCKED); > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 gei =3D (struct pmc_op_getdyneventinfo *) a= rg; > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if ((error =3D copyin(&gei->pm_class, &cl, = sizeof(cl))) !=3D 0) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 break; > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Only SOFT class is dynamic. */ > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (cl !=3D PMC_CLASS_SOFT) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D EINVAL; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 break; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 } > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 nevent =3D 0; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 for (ev =3D PMC_EV_SOFT_FIRST; ev <=3D PMC_= EV_SOFT_LAST; ev++) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ps =3D pmc_soft_ev_acquire(= ev); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (ps =3D=3D NULL) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 continue; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 bcopy(&ps->ps_ev, &dev, siz= eof(dev)); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 pmc_soft_ev_release(ps); > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D copyout(&dev, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 &gei->pm_events[nev= ent], > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 sizeof(struct pmc_d= yn_event_descr)); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (error !=3D 0) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 break; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 nevent++; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 } > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (error !=3D 0) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 break; > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 error =3D copyout(&nevent, &gei->pm_nevent, > > *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 06:55:24 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C2F741065670; Mon, 23 Apr 2012 06:55:24 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-wg0-f50.google.com (mail-wg0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id 784E78FC08; Mon, 23 Apr 2012 06:55:23 +0000 (UTC) Received: by wgbds12 with SMTP id ds12so11068656wgb.31 for ; Sun, 22 Apr 2012 23:55:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=V8r6mflTXnVtBJLqdJEMhJHTZe/QheY36eMftn6YJIg=; b=y7esXWsdrhDtOvTCPV+KyCYBD+JQI3MHRxrGPEnzJldKj568DRVesGg/XCdlS07iWt Tj5REENj/EserMcu3f8AOhHpbw6z/n5qio2wbLebGHvhkmBWV7eQm5dvNCZZIwJAGNv5 WBvj41ROFdWzuAOBod2dvSTaoCxlX2S0Jz40lZQ54USB+Jvb3qul+2ReaXPxupQ/6ccX kIQlzV7oz3cDV/6IqqnEW4JqiJUagxY1HX0fXWrSugy8Js9PuItZa0G/TMNS2DQRVdrr KKoEfvcQY3WjaXaeO7vGu0sur1gHsuzSdDMZM28lcj7XBzgJKlfTPTa58g1lY9U3CuMq VS3Q== MIME-Version: 1.0 Received: by 10.180.101.8 with SMTP id fc8mr18599786wib.12.1335164122337; Sun, 22 Apr 2012 23:55:22 -0700 (PDT) Received: by 10.223.155.74 with HTTP; Sun, 22 Apr 2012 23:55:21 -0700 (PDT) In-Reply-To: References: <201203282058.q2SKwVsJ053900@svn.freebsd.org> Date: Mon, 23 Apr 2012 08:55:21 +0200 Message-ID: From: Monthadar Al Jaberi To: Adrian Chadd Content-Type: multipart/mixed; boundary=f46d0444044c3a938f04be531f69 Cc: monthadar@freebsd.org, freebsd-current , Fabien Thomas , freebsd-mips@freebsd.org Subject: Re: svn commit: r233628 - in head: lib/libpmc sys/amd64/amd64 sys/amd64/include sys/arm/include sys/conf sys/dev/hwpmc sys/i386/i386 sys/i386/include sys/kern sys/mips/include sys/modules/hwpmc sys/pow... X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 06:55:24 -0000 --f46d0444044c3a938f04be531f69 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Mon, Apr 23, 2012 at 8:44 AM, Adrian Chadd wrote: > Hi Fabien, > > I've heard some rumours that this broke hwpmc support for mips24k. > > Monthadar, can you please provide some background info for this? > This is the log output Using default protocol (TFTP) Entry point: 0x80050100, address range: 0x80050000-0x804f1dcc RedBoot> exec Now booting linux kernel: Base address 0x80050000 Entry 0x80050100 memsize=3D0x08000000 modetty0=3D0,n,8,1,hw board=3DRouterStation PRO ethaddr=3D00.15.6d.c8.c9.2e CPU platform: Atheros AR7161 rev 2 CPU Frequency=3D720 MHz CPU DDR Frequency=3D360 MHz CPU AHB Frequency=3D180 MHz platform frequency: 720000000 arguments: a0 =3D 00000002 a1 =3D 80050028 a2 =3D 80050000 a3 =3D 00000001 Cmd line: =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BDm= =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF= =BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD_}=EF=BF=BD=EF= =BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=DF=BEq=EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD= =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=7F=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD= =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF= =BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=DF=BF=EF=BF=BD=EF=BF=BD=EF=BF=BD= =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD_=EF=BF=BDw=EF=BF=BD= =EF=BF=BD=EF=BF=BD=EF=BF=BD=1F=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD= ?-=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD{=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD= =EF=BF=BD=EF=BF=BD~=EF=BF=BD=EF=BF=BD Environment: memsize =3D 0x08000000 modetty0 =3D 0,n,8,1,hw ethaddr =3D 00.15.6d.c8.c9.2e board =3D RouterStation PRO Cache info: picache_stride =3D 4096 picache_loopcount =3D 16 pdcache_stride =3D 4096 pdcache_loopcount =3D 8 cpu0: MIPS Technologies processor v116.147 MMU: Standard TLB, 16 entries L1 i-cache: 4 ways of 512 sets, 32 bytes per line L1 d-cache: 4 ways of 256 sets, 32 bytes per line Config1=3D0x9ee3519e Config3=3D0x20 KDB: debugger backends: ddb KDB: current backend: ddb Copyright (c) 1992-2012 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 10.0-CURRENT #12: Fri Apr 20 18:03:16 CEST 2012 root@freebsd-re-9:/usr/obj/mips.mips/usr/src/sys/RSPRO_USB_PROD mips WARNING: WITNESS option enabled, expect reduced performance. MEMGUARD DEBUGGING ALLOCATOR INITIALIZED: MEMGUARD map base: 0xc0800000 MEMGUARD map limit: 0xc1c00000 MEMGUARD map size: 20480 KBytes real memory =3D 134217728 (131072K bytes) avail memory =3D 123117568 (117MB) random device not loaded; using insecure entropy nexus0: clock0: on nexus0 Timecounter "MIPS32" frequency 360000000 Hz quality 800 Event timer "MIPS32" frequency 360000000 Hz quality 800 apb0 at irq 4 on nexus0 uart0: <16550 or compatible> on apb0 uart0: console (115200,n,8,1) gpio0: on apb0 gpio0: [GIANT-LOCKED] gpio0: gpio pinmask=3D0x0 gpioc0: on gpio0 gpiobus0: on gpio0 ehci0: at mem 0x1b000000-0x1bffffff irq 1 on nexus0 usbus0: set host controller mode usbus0: EHCI version 1.0 usbus0: set host controller mode usbus0 on ehci0 pcib0 at irq 0 on nexus0 pci0: on pcib0 pci0: at device 0.0 (no driver attached) ath0: irq 0 at device 17.0 on pci0 ath0: AR5413 mac 10.5 RF5413 phy 6.1 ath0: 2GHz radio: 0x0000; 5GHz radio: 0x0063 arge0: at mem 0x19000000-0x19000fff irq 2 on nexus0 arge0: No PHY specified, using mask 16 miibus0: on arge0 ukphy0: PHY 4 on miibus0 ukphy0: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto arge0: Ethernet address: 00:15:6d:c8:c9:2e arge1: at mem 0x1a000000-0x1a000fff irq 3 on nexus0 arge1: No PHY specified, using mask 15 arge1: Ethernet address: 00:15:6d:c8:c9:2f spi0: at mem 0x1f000000-0x1f00000f on nexus0 spibus0: on spi0 mx25l0: at cs 0 on spibus0 mx25l0: mx25ll128, sector 65536 bytes, 256 sectors ar71xx_wdog0: on nexus0 Timecounters tick every 1.000 msec usbus0: 480Mbps High Speed USB v2.0 ugen0.1: at usbus0 uhub0: on usbus0 panic: [pmc,4816] npmc miscomputed: ri=3D0, md->npmc=3D2 KDB: enter: panic [ thread pid 0 tid 100000 ] Stopped at kdb_enter+0x4c: lui at,0x8050 db> tr Tracing pid 0 tid 100000 td 0x804f76d0 db_trace_thread+30 (?,?,?,?) ra 8068b94800000018 sp 0 sz 0 80075adc+114 (0,?,ffffffff,?) ra 8068b96000000020 sp 100000000 sz 1 80074e24+388 (?,?,?,?) ra 8068b980000000a8 sp 0 sz 0 db_command_loop+70 (?,?,?,?) ra 8068ba2800000018 sp 0 sz 0 80077900+f4 (?,?,?,?) ra 8068ba40000001a8 sp 0 sz 0 kdb_trap+110 (?,?,?,?) ra 8068bbe800000030 sp 0 sz 0 trap+c7c (?,?,?,?) ra 8068bc18000000b8 sp 0 sz 0 MipsKernGenException+134 (0,4,8043b1d4,119) ra 8068bcd0000000c8 sp 100000001 sz 1 kdb_enter+4c (?,?,?,?) ra 8068bd9800000018 sp 0 sz 0 panic+11c (?,12d0,0,2) ra 8068bdb000000028 sp 1 sz 1 800e8ca8+274 (?,?,?,?) ra 8068bdd800000038 sp 0 sz 0 syscall_module_handler+b8 (?,?,?,?) ra 8068be1000000028 sp 0 sz 0 module_register_init+9c (?,?,?,?) ra 8068be3800000028 sp 0 sz 0 mi_startup+138 (?,?,?,?) ra 8068be6000000020 sp 0 sz 0 _start+90 (?,?,?,?) ra 8068be8000000000 sp 0 sz 0 pid 0 db> > Thanks, > > > > adrian > > On 28 March 2012 13:58, Fabien Thomas wrote: >> Author: fabient >> Date: Wed Mar 28 20:58:30 2012 >> New Revision: 233628 >> URL: http://svn.freebsd.org/changeset/base/233628 >> >> Log: >> =C2=A0Add software PMC support. >> >> =C2=A0New kernel events can be added at various location for sampling or= counting. >> =C2=A0This will for example allow easy system profiling whatever the pro= cessor is >> =C2=A0with known tools like pmcstat(8). >> >> =C2=A0Simultaneous usage of software PMC and hardware PMC is possible, f= or example >> =C2=A0looking at the lock acquire failure, page fault while sampling on >> =C2=A0instructions. >> >> =C2=A0Sponsored by: NETASQ >> =C2=A0MFC after: =C2=A0 =C2=A01 month >> >> Added: >> =C2=A0head/lib/libpmc/pmc.soft.3 =C2=A0 (contents, props changed) >> =C2=A0head/sys/dev/hwpmc/hwpmc_soft.c =C2=A0 (contents, props changed) >> =C2=A0head/sys/dev/hwpmc/hwpmc_soft.h =C2=A0 (contents, props changed) >> Modified: >> =C2=A0head/lib/libpmc/Makefile >> =C2=A0head/lib/libpmc/libpmc.c >> =C2=A0head/lib/libpmc/pmc.3 >> =C2=A0head/lib/libpmc/pmc.atom.3 >> =C2=A0head/lib/libpmc/pmc.core.3 >> =C2=A0head/lib/libpmc/pmc.core2.3 >> =C2=A0head/lib/libpmc/pmc.corei7.3 >> =C2=A0head/lib/libpmc/pmc.corei7uc.3 >> =C2=A0head/lib/libpmc/pmc.iaf.3 >> =C2=A0head/lib/libpmc/pmc.k7.3 >> =C2=A0head/lib/libpmc/pmc.k8.3 >> =C2=A0head/lib/libpmc/pmc.mips24k.3 >> =C2=A0head/lib/libpmc/pmc.octeon.3 >> =C2=A0head/lib/libpmc/pmc.p4.3 >> =C2=A0head/lib/libpmc/pmc.p5.3 >> =C2=A0head/lib/libpmc/pmc.p6.3 >> =C2=A0head/lib/libpmc/pmc.sandybridge.3 >> =C2=A0head/lib/libpmc/pmc.sandybridgeuc.3 >> =C2=A0head/lib/libpmc/pmc.tsc.3 >> =C2=A0head/lib/libpmc/pmc.ucf.3 >> =C2=A0head/lib/libpmc/pmc.westmere.3 >> =C2=A0head/lib/libpmc/pmc.westmereuc.3 >> =C2=A0head/lib/libpmc/pmc.xscale.3 >> =C2=A0head/lib/libpmc/pmclog.c >> =C2=A0head/lib/libpmc/pmclog.h >> =C2=A0head/sys/amd64/amd64/trap.c >> =C2=A0head/sys/amd64/include/pmc_mdep.h >> =C2=A0head/sys/arm/include/pmc_mdep.h >> =C2=A0head/sys/conf/files >> =C2=A0head/sys/dev/hwpmc/hwpmc_amd.c >> =C2=A0head/sys/dev/hwpmc/hwpmc_core.c >> =C2=A0head/sys/dev/hwpmc/hwpmc_intel.c >> =C2=A0head/sys/dev/hwpmc/hwpmc_logging.c >> =C2=A0head/sys/dev/hwpmc/hwpmc_mips.c >> =C2=A0head/sys/dev/hwpmc/hwpmc_mod.c >> =C2=A0head/sys/dev/hwpmc/hwpmc_piv.c >> =C2=A0head/sys/dev/hwpmc/hwpmc_powerpc.c >> =C2=A0head/sys/dev/hwpmc/hwpmc_ppro.c >> =C2=A0head/sys/dev/hwpmc/hwpmc_tsc.c >> =C2=A0head/sys/dev/hwpmc/hwpmc_x86.c >> =C2=A0head/sys/dev/hwpmc/hwpmc_xscale.c >> =C2=A0head/sys/dev/hwpmc/pmc_events.h >> =C2=A0head/sys/i386/i386/trap.c >> =C2=A0head/sys/i386/include/pmc_mdep.h >> =C2=A0head/sys/kern/kern_clock.c >> =C2=A0head/sys/kern/kern_lock.c >> =C2=A0head/sys/kern/kern_mutex.c >> =C2=A0head/sys/kern/kern_pmc.c >> =C2=A0head/sys/kern/kern_rwlock.c >> =C2=A0head/sys/kern/kern_sx.c >> =C2=A0head/sys/kern/subr_trap.c >> =C2=A0head/sys/mips/include/pmc_mdep.h >> =C2=A0head/sys/modules/hwpmc/Makefile >> =C2=A0head/sys/powerpc/include/pmc_mdep.h >> =C2=A0head/sys/sys/pmc.h >> =C2=A0head/sys/sys/pmckern.h >> =C2=A0head/sys/sys/pmclog.h >> =C2=A0head/usr.sbin/pmcstat/pmcstat_log.c >> >> Modified: head/lib/libpmc/Makefile >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/Makefile =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/Makefile =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -20,6 +20,7 @@ MAN+=3D pmc_read.3 >> =C2=A0MAN+=3D =C2=A0pmc_set.3 >> =C2=A0MAN+=3D =C2=A0pmc_start.3 >> =C2=A0MAN+=3D =C2=A0pmclog.3 >> +MAN+=3D =C2=A0pmc.soft.3 >> >> =C2=A0# PMC-dependent manual pages >> =C2=A0.if ${MACHINE_CPUARCH} =3D=3D "i386" || ${MACHINE_CPUARCH} =3D=3D = "amd64" >> >> Modified: head/lib/libpmc/libpmc.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/libpmc.c =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/libpmc.c =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -77,11 +77,12 @@ static int tsc_allocate_pmc(enum pmc_eve >> =C2=A0static int xscale_allocate_pmc(enum pmc_event _pe, char *_ctrspec, >> =C2=A0 =C2=A0 struct pmc_op_pmcallocate *_pmc_config); >> =C2=A0#endif >> - >> =C2=A0#if defined(__mips__) >> =C2=A0static int mips_allocate_pmc(enum pmc_event _pe, char* ctrspec, >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct pmc_op_pmcallocate *_pmc_config); >> =C2=A0#endif /* __mips__ */ >> +static int soft_allocate_pmc(enum pmc_event _pe, char *_ctrspec, >> + =C2=A0 =C2=A0struct pmc_op_pmcallocate *_pmc_config); >> >> =C2=A0#if defined(__powerpc__) >> =C2=A0static int ppc7450_allocate_pmc(enum pmc_event _pe, char* ctrspec, >> @@ -156,6 +157,8 @@ PMC_CLASSDEP_TABLE(octeon, OCTEON); >> =C2=A0PMC_CLASSDEP_TABLE(ucf, UCF); >> =C2=A0PMC_CLASSDEP_TABLE(ppc7450, PPC7450); >> >> +static struct pmc_event_descr soft_event_table[PMC_EV_DYN_COUNT]; >> + >> =C2=A0#undef __PMC_EV_ALIAS >> =C2=A0#define =C2=A0 =C2=A0 =C2=A0 =C2=A0__PMC_EV_ALIAS(N,CODE) =C2=A0{ = N, PMC_EV_##CODE }, >> >> @@ -215,21 +218,22 @@ static const struct pmc_event_descr west >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_CLASS_##C, __= VA_ARGS__ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0\ >> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >> >> -PMC_MDEP_TABLE(atom, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC); >> -PMC_MDEP_TABLE(core, IAP, PMC_CLASS_TSC); >> -PMC_MDEP_TABLE(core2, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC); >> -PMC_MDEP_TABLE(corei7, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, PMC_CLASS_UCF= , PMC_CLASS_UCP); >> -PMC_MDEP_TABLE(sandybridge, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, PMC_CLAS= S_UCF, PMC_CLASS_UCP); >> -PMC_MDEP_TABLE(westmere, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, PMC_CLASS_U= CF, PMC_CLASS_UCP); >> -PMC_MDEP_TABLE(k7, K7, PMC_CLASS_TSC); >> -PMC_MDEP_TABLE(k8, K8, PMC_CLASS_TSC); >> -PMC_MDEP_TABLE(p4, P4, PMC_CLASS_TSC); >> -PMC_MDEP_TABLE(p5, P5, PMC_CLASS_TSC); >> -PMC_MDEP_TABLE(p6, P6, PMC_CLASS_TSC); >> -PMC_MDEP_TABLE(xscale, XSCALE, PMC_CLASS_XSCALE); >> -PMC_MDEP_TABLE(mips24k, MIPS24K, PMC_CLASS_MIPS24K); >> -PMC_MDEP_TABLE(octeon, OCTEON, PMC_CLASS_OCTEON); >> -PMC_MDEP_TABLE(ppc7450, PPC7450, PMC_CLASS_PPC7450); >> +PMC_MDEP_TABLE(atom, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLASS_TSC)= ; >> +PMC_MDEP_TABLE(core, IAP, PMC_CLASS_SOFT, PMC_CLASS_TSC); >> +PMC_MDEP_TABLE(core2, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLASS_TSC= ); >> +PMC_MDEP_TABLE(corei7, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLASS_TS= C, PMC_CLASS_UCF, PMC_CLASS_UCP); >> +PMC_MDEP_TABLE(sandybridge, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLA= SS_TSC, PMC_CLASS_UCF, PMC_CLASS_UCP); >> +PMC_MDEP_TABLE(westmere, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLASS_= TSC, PMC_CLASS_UCF, PMC_CLASS_UCP); >> +PMC_MDEP_TABLE(k7, K7, PMC_CLASS_SOFT, PMC_CLASS_TSC); >> +PMC_MDEP_TABLE(k8, K8, PMC_CLASS_SOFT, PMC_CLASS_TSC); >> +PMC_MDEP_TABLE(p4, P4, PMC_CLASS_SOFT, PMC_CLASS_TSC); >> +PMC_MDEP_TABLE(p5, P5, PMC_CLASS_SOFT, PMC_CLASS_TSC); >> +PMC_MDEP_TABLE(p6, P6, PMC_CLASS_SOFT, PMC_CLASS_TSC); >> +PMC_MDEP_TABLE(xscale, XSCALE, PMC_CLASS_SOFT, PMC_CLASS_XSCALE); >> +PMC_MDEP_TABLE(mips24k, MIPS24K, PMC_CLASS_SOFT, PMC_CLASS_MIPS24K); >> +PMC_MDEP_TABLE(octeon, OCTEON, PMC_CLASS_SOFT, PMC_CLASS_OCTEON); >> +PMC_MDEP_TABLE(ppc7450, PPC7450, PMC_CLASS_SOFT, PMC_CLASS_PPC7450); >> +PMC_MDEP_TABLE(generic, SOFT, PMC_CLASS_SOFT); >> >> =C2=A0static const struct pmc_event_descr tsc_event_table[] =3D >> =C2=A0{ >> @@ -279,16 +283,24 @@ PMC_CLASS_TABLE_DESC(tsc, TSC, tsc, tsc) >> =C2=A0#if =C2=A0 =C2=A0defined(__XSCALE__) >> =C2=A0PMC_CLASS_TABLE_DESC(xscale, XSCALE, xscale, xscale); >> =C2=A0#endif >> - >> =C2=A0#if defined(__mips__) >> =C2=A0PMC_CLASS_TABLE_DESC(mips24k, MIPS24K, mips24k, mips); >> =C2=A0PMC_CLASS_TABLE_DESC(octeon, OCTEON, octeon, mips); >> =C2=A0#endif /* __mips__ */ >> - >> =C2=A0#if defined(__powerpc__) >> =C2=A0PMC_CLASS_TABLE_DESC(ppc7450, PPC7450, ppc7450, ppc7450); >> =C2=A0#endif >> >> +static struct pmc_class_descr soft_class_table_descr =3D >> +{ >> + =C2=A0 =C2=A0 =C2=A0 .pm_evc_name =C2=A0=3D "SOFT-", >> + =C2=A0 =C2=A0 =C2=A0 .pm_evc_name_size =3D sizeof("SOFT-") - 1, >> + =C2=A0 =C2=A0 =C2=A0 .pm_evc_class =3D PMC_CLASS_SOFT, >> + =C2=A0 =C2=A0 =C2=A0 .pm_evc_event_table =3D NULL, >> + =C2=A0 =C2=A0 =C2=A0 .pm_evc_event_table_size =3D 0, >> + =C2=A0 =C2=A0 =C2=A0 .pm_evc_allocate_pmc =3D soft_allocate_pmc >> +}; >> + >> =C2=A0#undef PMC_CLASS_TABLE_DESC >> >> =C2=A0static const struct pmc_class_descr **pmc_class_table; >> @@ -343,9 +355,12 @@ static const char * pmc_state_names[] =3D >> =C2=A0 =C2=A0 =C2=A0 =C2=A0__PMC_STATES() >> =C2=A0}; >> >> -static int pmc_syscall =3D -1; =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* fi= lled in by pmc_init() */ >> - >> -static struct pmc_cpuinfo cpu_info; =C2=A0 =C2=A0/* filled in by pmc_in= it() */ >> +/* >> + * Filled in by pmc_init(). >> + */ >> +static int pmc_syscall =3D -1; >> +static struct pmc_cpuinfo cpu_info; >> +static struct pmc_op_getdyneventinfo soft_event_info; >> >> =C2=A0/* Event masks for events */ >> =C2=A0struct pmc_masks { >> @@ -2179,6 +2194,25 @@ tsc_allocate_pmc(enum pmc_event pe, char >> =C2=A0} >> =C2=A0#endif >> >> +static struct pmc_event_alias generic_aliases[] =3D { >> + =C2=A0 =C2=A0 =C2=A0 EV_ALIAS("instructions", =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"SOFT-CLOCK.HARD"), >> + =C2=A0 =C2=A0 =C2=A0 EV_ALIAS(NULL, NULL) >> +}; >> + >> +static int >> +soft_allocate_pmc(enum pmc_event pe, char *ctrspec, >> + =C2=A0 =C2=A0struct pmc_op_pmcallocate *pmc_config) >> +{ >> + =C2=A0 =C2=A0 =C2=A0 (void)ctrspec; >> + =C2=A0 =C2=A0 =C2=A0 (void)pmc_config; >> + >> + =C2=A0 =C2=A0 =C2=A0 if (pe < PMC_EV_SOFT_FIRST || pe > PMC_EV_SOFT_LA= ST) >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return (-1); >> + >> + =C2=A0 =C2=A0 =C2=A0 pmc_config->pm_caps |=3D (PMC_CAP_READ | PMC_CAP_= WRITE); >> + =C2=A0 =C2=A0 =C2=A0 return (0); >> +} >> + >> =C2=A0#if =C2=A0 =C2=A0defined(__XSCALE__) >> >> =C2=A0static struct pmc_event_alias xscale_aliases[] =3D { >> @@ -2663,6 +2697,10 @@ pmc_event_names_of_class(enum pmc_class >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ev =3D ppc7450_ev= ent_table; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0count =3D PMC_EVE= NT_TABLE_SIZE(ppc7450); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break; >> + =C2=A0 =C2=A0 =C2=A0 case PMC_CLASS_SOFT: >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ev =3D soft_event_tab= le; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 count =3D soft_event_= info.pm_nevent; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0default: >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0errno =3D EINVAL; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (-1); >> @@ -2676,6 +2714,7 @@ pmc_event_names_of_class(enum pmc_class >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0for (;count--; ev++, names++) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*names =3D ev->pm= _ev_name; >> + >> =C2=A0 =C2=A0 =C2=A0 =C2=A0return (0); >> =C2=A0} >> >> @@ -2780,11 +2819,34 @@ pmc_init(void) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_class_table[n= ] =3D NULL; >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0/* >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0* Get soft events list. >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0*/ >> + =C2=A0 =C2=A0 =C2=A0 soft_event_info.pm_class =3D PMC_CLASS_SOFT; >> + =C2=A0 =C2=A0 =C2=A0 if (PMC_CALL(GETDYNEVENTINFO, &soft_event_info) <= 0) >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return (pmc_syscall = =3D -1); >> + >> + =C2=A0 =C2=A0 =C2=A0 /* Map soft events to static list. */ >> + =C2=A0 =C2=A0 =C2=A0 for (n =3D 0; n < soft_event_info.pm_nevent; n++)= { >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 soft_event_table[n].p= m_ev_name =3D >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 soft_ev= ent_info.pm_events[n].pm_ev_name; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 soft_event_table[n].p= m_ev_code =3D >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 soft_ev= ent_info.pm_events[n].pm_ev_code; >> + =C2=A0 =C2=A0 =C2=A0 } >> + =C2=A0 =C2=A0 =C2=A0 soft_class_table_descr.pm_evc_event_table_size = =3D \ >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 soft_event_info.pm_nevent; >> + =C2=A0 =C2=A0 =C2=A0 soft_class_table_descr.pm_evc_event_table =3D \ >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 soft_event_table; >> + >> + =C2=A0 =C2=A0 =C2=A0 /* >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 * Fill in the class table. >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 */ >> =C2=A0 =C2=A0 =C2=A0 =C2=A0n =3D 0; >> + >> + =C2=A0 =C2=A0 =C2=A0 /* Fill soft events information. */ >> + =C2=A0 =C2=A0 =C2=A0 pmc_class_table[n++] =3D &soft_class_table_descr; >> =C2=A0#if defined(__amd64__) || defined(__i386__) >> - =C2=A0 =C2=A0 =C2=A0 pmc_class_table[n++] =3D &tsc_class_table_descr; >> + =C2=A0 =C2=A0 =C2=A0 if (cpu_info.pm_cputype !=3D PMC_CPU_GENERIC) >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_class_table[n++] = =3D &tsc_class_table_descr; >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0/* >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 * Check if this CPU has fixed function count= ers. >> @@ -2867,6 +2929,9 @@ pmc_init(void) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_class_table[n= ] =3D &p4_class_table_descr; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break; >> =C2=A0#endif >> + =C2=A0 =C2=A0 =C2=A0 case PMC_CPU_GENERIC: >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMC_MDEP_INIT(generic= ); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break; >> =C2=A0#if defined(__XSCALE__) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0case PMC_CPU_INTEL_XSCALE: >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_INIT(xsc= ale); >> @@ -3035,18 +3100,19 @@ _pmc_name_of_event(enum pmc_event pe, en >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0evfence =3D xscal= e_event_table + PMC_EVENT_TABLE_SIZE(xscale); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0} else if (pe >=3D PMC_EV_MIPS24K_FIRST && pe= <=3D PMC_EV_MIPS24K_LAST) { >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ev =3D mips24k_ev= ent_table; >> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 evfence =3D mips24k_e= vent_table + PMC_EVENT_TABLE_SIZE(mips24k >> -); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 evfence =3D mips24k_e= vent_table + PMC_EVENT_TABLE_SIZE(mips24k); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0} else if (pe >=3D PMC_EV_OCTEON_FIRST && pe = <=3D PMC_EV_OCTEON_LAST) { >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ev =3D octeon_eve= nt_table; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0evfence =3D octeo= n_event_table + PMC_EVENT_TABLE_SIZE(octeon); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0} else if (pe >=3D PMC_EV_PPC7450_FIRST && pe= <=3D PMC_EV_PPC7450_LAST) { >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ev =3D ppc7450_ev= ent_table; >> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 evfence =3D ppc7450_e= vent_table + PMC_EVENT_TABLE_SIZE(ppc7450 >> -); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 evfence =3D ppc7450_e= vent_table + PMC_EVENT_TABLE_SIZE(ppc7450); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0} else if (pe =3D=3D PMC_EV_TSC_TSC) { >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ev =3D tsc_event_= table; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0evfence =3D tsc_e= vent_table + PMC_EVENT_TABLE_SIZE(tsc); >> + =C2=A0 =C2=A0 =C2=A0 } else if (pe >=3D PMC_EV_SOFT_FIRST && pe <=3D P= MC_EV_SOFT_LAST) { >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ev =3D soft_event_tab= le; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 evfence =3D soft_even= t_table + soft_event_info.pm_nevent; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0for (; ev !=3D evfence; ev++) >> >> Modified: head/lib/libpmc/pmc.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.3 =C2=A0 =C2=A0 =C2=A0 Wed Mar 28 20:49:11 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.3 =C2=A0 =C2=A0 =C2=A0 Wed Mar 28 20:58:30 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -223,6 +223,8 @@ and >> =C2=A0CPUs. >> =C2=A0.It Li PMC_CLASS_TSC >> =C2=A0The timestamp counter on i386 and amd64 architecture CPUs. >> +.It Li PMC_CLASS_SOFT >> +Software events. >> =C2=A0.El >> =C2=A0.Ss PMC Capabilities >> =C2=A0Capabilities of performance monitoring hardware are denoted using >> @@ -525,6 +527,7 @@ API is >> =C2=A0.Xr pmc.p4 3 , >> =C2=A0.Xr pmc.p5 3 , >> =C2=A0.Xr pmc.p6 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmclog 3 , >> =C2=A0.Xr hwpmc 4 , >> >> Modified: head/lib/libpmc/pmc.atom.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.atom.3 =C2=A0Wed Mar 28 20:49:11 2012 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.atom.3 =C2=A0Wed Mar 28 20:58:30 2012 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(r233628) >> @@ -1176,6 +1176,7 @@ and the underlying hardware events used >> =C2=A0.Xr pmc.p4 3 , >> =C2=A0.Xr pmc.p5 3 , >> =C2=A0.Xr pmc.p6 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmc_cpuinfo 3 , >> =C2=A0.Xr pmclog 3 , >> >> Modified: head/lib/libpmc/pmc.core.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.core.3 =C2=A0Wed Mar 28 20:49:11 2012 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.core.3 =C2=A0Wed Mar 28 20:58:30 2012 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(r233628) >> @@ -792,6 +792,7 @@ may not count some transitions. >> =C2=A0.Xr pmc.p4 3 , >> =C2=A0.Xr pmc.p5 3 , >> =C2=A0.Xr pmc.p6 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmclog 3 , >> =C2=A0.Xr hwpmc 4 >> >> Modified: head/lib/libpmc/pmc.core2.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.core2.3 Wed Mar 28 20:49:11 2012 =C2=A0 =C2=A0 = =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.core2.3 Wed Mar 28 20:58:30 2012 =C2=A0 =C2=A0 = =C2=A0 =C2=A0(r233628) >> @@ -1107,6 +1107,7 @@ and the underlying hardware events used. >> =C2=A0.Xr pmc.p4 3 , >> =C2=A0.Xr pmc.p5 3 , >> =C2=A0.Xr pmc.p6 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmc_cpuinfo 3 , >> =C2=A0.Xr pmclog 3 , >> >> Modified: head/lib/libpmc/pmc.corei7.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.corei7.3 =C2=A0 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 2= 0:49:11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.corei7.3 =C2=A0 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 2= 0:58:30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -1559,6 +1559,7 @@ Counts number of segment register loads. >> =C2=A0.Xr pmc.corei7uc 3 , >> =C2=A0.Xr pmc.westmere 3 , >> =C2=A0.Xr pmc.westmereuc 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmc_cpuinfo 3 , >> =C2=A0.Xr pmclog 3 , >> >> Modified: head/lib/libpmc/pmc.corei7uc.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.corei7uc.3 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:49:= 11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.corei7uc.3 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:58:= 30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -863,6 +863,7 @@ refreshed or needs to go into a power do >> =C2=A0.Xr pmc.corei7 3 , >> =C2=A0.Xr pmc.westmere 3 , >> =C2=A0.Xr pmc.westmereuc 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmc_cpuinfo 3 , >> =C2=A0.Xr pmclog 3 , >> >> Modified: head/lib/libpmc/pmc.iaf.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.iaf.3 =C2=A0 Wed Mar 28 20:49:11 2012 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.iaf.3 =C2=A0 Wed Mar 28 20:58:30 2012 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(r233628) >> @@ -132,6 +132,7 @@ CPU, use the event specifier >> =C2=A0.Xr pmc.p4 3 , >> =C2=A0.Xr pmc.p5 3 , >> =C2=A0.Xr pmc.p6 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmc_cpuinfo 3 , >> =C2=A0.Xr pmclog 3 , >> >> Modified: head/lib/libpmc/pmc.k7.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.k7.3 =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.k7.3 =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -249,6 +249,7 @@ and the underlying hardware events used. >> =C2=A0.Xr pmc.p4 3 , >> =C2=A0.Xr pmc.p5 3 , >> =C2=A0.Xr pmc.p6 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmclog 3 , >> =C2=A0.Xr hwpmc 4 >> >> Modified: head/lib/libpmc/pmc.k8.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.k8.3 =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.k8.3 =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -783,6 +783,7 @@ and the underlying hardware events used. >> =C2=A0.Xr pmc.p4 3 , >> =C2=A0.Xr pmc.p5 3 , >> =C2=A0.Xr pmc.p6 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmclog 3 , >> =C2=A0.Xr hwpmc 4 >> >> Modified: head/lib/libpmc/pmc.mips24k.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.mips24k.3 =C2=A0 =C2=A0 =C2=A0 Wed Mar 28 20:49:= 11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.mips24k.3 =C2=A0 =C2=A0 =C2=A0 Wed Mar 28 20:58:= 30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -392,6 +392,7 @@ and the underlying hardware events used. >> =C2=A0.Xr pmc.p4 3 , >> =C2=A0.Xr pmc.p5 3 , >> =C2=A0.Xr pmc.p6 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmc_cpuinfo 3 , >> =C2=A0.Xr pmclog 3 , >> >> Modified: head/lib/libpmc/pmc.octeon.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.octeon.3 =C2=A0 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 2= 0:49:11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.octeon.3 =C2=A0 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 2= 0:58:30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -232,6 +232,7 @@ and the underlying hardware events used. >> =C2=A0.Xr pmc.p4 3 , >> =C2=A0.Xr pmc.p5 3 , >> =C2=A0.Xr pmc.p6 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmc_cpuinfo 3 , >> =C2=A0.Xr pmclog 3 , >> >> Modified: head/lib/libpmc/pmc.p4.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.p4.3 =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.p4.3 =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -1208,6 +1208,7 @@ and the underlying hardware events used. >> =C2=A0.Xr pmc.k8 3 , >> =C2=A0.Xr pmc.p5 3 , >> =C2=A0.Xr pmc.p6 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmclog 3 , >> =C2=A0.Xr hwpmc 4 >> >> Modified: head/lib/libpmc/pmc.p5.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.p5.3 =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.p5.3 =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -444,6 +444,7 @@ and the underlying hardware events used. >> =C2=A0.Xr pmc.k8 3 , >> =C2=A0.Xr pmc.p4 3 , >> =C2=A0.Xr pmc.p6 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmclog 3 , >> =C2=A0.Xr hwpmc 4 >> >> Modified: head/lib/libpmc/pmc.p6.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.p6.3 =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.p6.3 =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -1010,6 +1010,7 @@ and the underlying hardware events used. >> =C2=A0.Xr pmc.k8 3 , >> =C2=A0.Xr pmc.p4 3 , >> =C2=A0.Xr pmc.p5 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmclog 3 , >> =C2=A0.Xr hwpmc 4 >> >> Modified: head/lib/libpmc/pmc.sandybridge.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.sandybridge.3 =C2=A0 Wed Mar 28 20:49:11 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.sandybridge.3 =C2=A0 Wed Mar 28 20:58:30 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -907,6 +907,7 @@ Split locks in SQ. >> =C2=A0.Xr pmc.p5 3 , >> =C2=A0.Xr pmc.p6 3 , >> =C2=A0.Xr pmc.sandybridgeuc 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmc.ucf 3 , >> =C2=A0.Xr pmc.westmere 3 , >> >> Modified: head/lib/libpmc/pmc.sandybridgeuc.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.sandybridgeuc.3 Wed Mar 28 20:49:11 2012 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.sandybridgeuc.3 Wed Mar 28 20:58:30 2012 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -208,6 +208,7 @@ Counts the number of core-outgoing entri >> =C2=A0.Xr pmc.p5 3 , >> =C2=A0.Xr pmc.p6 3 , >> =C2=A0.Xr pmc.sandybridge 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmc.ucf 3 , >> =C2=A0.Xr pmc.westmere 3 , >> >> Added: head/lib/libpmc/pmc.soft.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- /dev/null =C2=A0 00:00:00 1970 =C2=A0 (empty, because file is newly = added) >> +++ head/lib/libpmc/pmc.soft.3 =C2=A0Wed Mar 28 20:58:30 2012 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(r233628) >> @@ -0,0 +1,104 @@ >> +.\" Copyright (c) 2012 Fabien Thomas. =C2=A0All rights reserved. >> +.\" >> +.\" Redistribution and use in source and binary forms, with or without >> +.\" modification, are permitted provided that the following conditions >> +.\" are met: >> +.\" 1. Redistributions of source code must retain the above copyright >> +.\" =C2=A0 =C2=A0notice, this list of conditions and the following disc= laimer. >> +.\" 2. Redistributions in binary form must reproduce the above copyrigh= t >> +.\" =C2=A0 =C2=A0notice, this list of conditions and the following disc= laimer in the >> +.\" =C2=A0 =C2=A0documentation and/or other materials provided with the= distribution. >> +.\" >> +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' = AND >> +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, T= HE >> +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR = PURPOSE >> +.\" ARE DISCLAIMED. =C2=A0IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS = BE LIABLE >> +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQ= UENTIAL >> +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE G= OODS >> +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTIO= N) >> +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,= STRICT >> +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN A= NY WAY >> +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY= OF >> +.\" SUCH DAMAGE. >> +.\" >> +.\" $FreeBSD$ >> +.\" >> +.Dd March 28, 2012 >> +.Os >> +.Dt PMC.SOFT 3 >> +.Sh NAME >> +.Nm pmc.soft >> +.Nd measurements using software based events >> +.Sh LIBRARY >> +.Lb libpmc >> +.Sh SYNOPSIS >> +.In pmc.h >> +.Sh DESCRIPTION >> +Software events are used to collect various source of software events. >> +.Ss PMC Features >> +16 sampling counters using software events based on various sources. >> +These PMCs support the following capabilities: >> +.Bl -column "PMC_CAP_INTERRUPT" "Support" >> +.It Em Capability Ta Em Support >> +.It PMC_CAP_CASCADE Ta \&No >> +.It PMC_CAP_EDGE Ta \&No >> +.It PMC_CAP_INTERRUPT Ta Yes >> +.It PMC_CAP_INVERT Ta \&No >> +.It PMC_CAP_READ Ta Yes >> +.It PMC_CAP_PRECISE Ta \&No >> +.It PMC_CAP_SYSTEM Ta Yes >> +.It PMC_CAP_TAGGING Ta \&No >> +.It PMC_CAP_THRESHOLD Ta \&No >> +.It PMC_CAP_USER Ta Yes >> +.It PMC_CAP_WRITE Ta Yes >> +.El >> +.Ss Event Qualifiers >> +There is no supported event qualifier. >> +.Pp >> +The event specifiers supported by software are: >> +.Bl -tag -width indent >> +.It Li CLOCK.HARD >> +Hard clock ticks. >> +.It Li CLOCK.STAT >> +Stat clock ticks. >> +.It Li LOCK.FAILED >> +Lock acquisition failed. >> +.It Li PAGE_FAULT.ALL >> +All page fault type. >> +.It Li PAGE_FAULT.READ >> +Read page fault. >> +.It Li PAGE_FAULT.WRITE >> +Write page fault. >> +.El >> +.Sh SEE ALSO >> +.Xr pmc 3 , >> +.Xr pmc.atom 3 , >> +.Xr pmc.core 3 , >> +.Xr pmc.iaf 3 , >> +.Xr pmc.ucf 3 , >> +.Xr pmc.k7 3 , >> +.Xr pmc.k8 3 , >> +.Xr pmc.p4 3 , >> +.Xr pmc.p5 3 , >> +.Xr pmc.p6 3 , >> +.Xr pmc.corei7 3 , >> +.Xr pmc.corei7uc 3 , >> +.Xr pmc.westmereuc 3 , >> +.Xr pmc.tsc 3 , >> +.Xr pmc_cpuinfo 3 , >> +.Xr pmclog 3 , >> +.Xr hwpmc 4 >> +.Sh HISTORY >> +The >> +.Nm pmc >> +library first appeared in >> +.Fx 6.0 . >> +.Sh AUTHORS >> +The >> +.Lb libpmc >> +library was written by >> +.An "Joseph Koshy" >> +.Aq jkoshy@FreeBSD.org . >> +Software PMC was written by >> +.An "Fabien Thomas" >> +.Aq fabient@FreeBSD.org . >> >> Modified: head/lib/libpmc/pmc.tsc.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.tsc.3 =C2=A0 Wed Mar 28 20:49:11 2012 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.tsc.3 =C2=A0 Wed Mar 28 20:58:30 2012 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(r233628) >> @@ -68,6 +68,7 @@ maps to the TSC. >> =C2=A0.Xr pmc.p4 3 , >> =C2=A0.Xr pmc.p5 3 , >> =C2=A0.Xr pmc.p6 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmclog 3 , >> =C2=A0.Xr hwpmc 4 >> =C2=A0.Sh HISTORY >> >> Modified: head/lib/libpmc/pmc.ucf.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.ucf.3 =C2=A0 Wed Mar 28 20:49:11 2012 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.ucf.3 =C2=A0 Wed Mar 28 20:58:30 2012 =C2=A0 =C2= =A0 =C2=A0 =C2=A0(r233628) >> @@ -96,6 +96,7 @@ offset C0H under device number 0 and Fun >> =C2=A0.Xr pmc.corei7uc 3 , >> =C2=A0.Xr pmc.westmere 3 , >> =C2=A0.Xr pmc.westmereuc 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmc_cpuinfo 3 , >> =C2=A0.Xr pmclog 3 , >> >> Modified: head/lib/libpmc/pmc.westmere.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.westmere.3 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:49:= 11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.westmere.3 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:58:= 30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -1381,6 +1381,7 @@ Counts number of SID integer 64 bit shif >> =C2=A0.Xr pmc.corei7 3 , >> =C2=A0.Xr pmc.corei7uc 3 , >> =C2=A0.Xr pmc.westmereuc 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmc_cpuinfo 3 , >> =C2=A0.Xr pmclog 3 , >> >> Modified: head/lib/libpmc/pmc.westmereuc.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.westmereuc.3 =C2=A0 =C2=A0Wed Mar 28 20:49:11 20= 12 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.westmereuc.3 =C2=A0 =C2=A0Wed Mar 28 20:58:30 20= 12 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -1066,6 +1066,7 @@ disabled. >> =C2=A0.Xr pmc.corei7 3 , >> =C2=A0.Xr pmc.corei7uc 3 , >> =C2=A0.Xr pmc.westmere 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr pmc.tsc 3 , >> =C2=A0.Xr pmc_cpuinfo 3 , >> =C2=A0.Xr pmclog 3 , >> >> Modified: head/lib/libpmc/pmc.xscale.3 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmc.xscale.3 =C2=A0 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 2= 0:49:11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmc.xscale.3 =C2=A0 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 2= 0:58:30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -134,6 +134,7 @@ and the underlying hardware events used. >> =C2=A0.Xr pmc 3 , >> =C2=A0.Xr pmc_cpuinfo 3 , >> =C2=A0.Xr pmclog 3 , >> +.Xr pmc.soft 3 , >> =C2=A0.Xr hwpmc 4 >> =C2=A0.Sh HISTORY >> =C2=A0The >> >> Modified: head/lib/libpmc/pmclog.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmclog.c =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmclog.c =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -369,6 +369,12 @@ pmclog_get_event(void *cookie, char **da >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D= =3D NULL) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0goto error; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break; >> + =C2=A0 =C2=A0 =C2=A0 case PMCLOG_TYPE_PMCALLOCATEDYN: >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_READ32(le,ev->= pl_u.pl_ad.pl_pmcid); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_READ32(le,ev->= pl_u.pl_ad.pl_event); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_READ32(le,ev->= pl_u.pl_ad.pl_flags); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_READSTRING(le,= ev->pl_u.pl_ad.pl_evname,PMC_NAME_MAX); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0case PMCLOG_TYPE_PMCATTACH: >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PMCLOG_GET_PATHLE= N(pathlen,evlen,pmclog_pmcattach); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PMCLOG_READ32(le,= ev->pl_u.pl_t.pl_pmcid); >> >> Modified: head/lib/libpmc/pmclog.h >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/lib/libpmc/pmclog.h =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/lib/libpmc/pmclog.h =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -88,6 +88,13 @@ struct pmclog_ev_pmcallocate { >> =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_id_t =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_pmcid; >> =C2=A0}; >> >> +struct pmclog_ev_pmcallocatedyn { >> + =C2=A0 =C2=A0 =C2=A0 uint32_t =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_event; >> + =C2=A0 =C2=A0 =C2=A0 char =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_= evname[PMC_NAME_MAX]; >> + =C2=A0 =C2=A0 =C2=A0 uint32_t =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_flags; >> + =C2=A0 =C2=A0 =C2=A0 pmc_id_t =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_pmcid; >> +}; >> + >> =C2=A0struct pmclog_ev_pmcattach { >> =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_id_t =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_pmcid; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0pid_t =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pl_p= id; >> @@ -146,6 +153,7 @@ struct pmclog_ev { >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmclog_ev_= map_out =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_mo; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmclog_ev_= pcsample =C2=A0 =C2=A0 =C2=A0 pl_s; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmclog_ev_= pmcallocate =C2=A0 =C2=A0pl_a; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct pmclog_ev_pmca= llocatedyn pl_ad; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmclog_ev_= pmcattach =C2=A0 =C2=A0 =C2=A0pl_t; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmclog_ev_= pmcdetach =C2=A0 =C2=A0 =C2=A0pl_d; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmclog_ev_= proccsw =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_c; >> >> Modified: head/sys/amd64/amd64/trap.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/sys/amd64/amd64/trap.c Wed Mar 28 20:49:11 2012 =C2=A0 =C2=A0 = =C2=A0 =C2=A0(r233627) >> +++ head/sys/amd64/amd64/trap.c Wed Mar 28 20:58:30 2012 =C2=A0 =C2=A0 = =C2=A0 =C2=A0(r233628) >> @@ -71,6 +71,9 @@ __FBSDID("$FreeBSD$"); >> =C2=A0#include >> =C2=A0#ifdef HWPMC_HOOKS >> =C2=A0#include >> +PMC_SOFT_DEFINE( , , page_fault, all); >> +PMC_SOFT_DEFINE( , , page_fault, read); >> +PMC_SOFT_DEFINE( , , page_fault, write); >> =C2=A0#endif >> >> =C2=A0#include >> @@ -743,8 +746,20 @@ trap_pfault(frame, usermode) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */ >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0rv =3D vm_fault(m= ap, va, ftype, VM_FAULT_NORMAL); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >> - =C2=A0 =C2=A0 =C2=A0 if (rv =3D=3D KERN_SUCCESS) >> + =C2=A0 =C2=A0 =C2=A0 if (rv =3D=3D KERN_SUCCESS) { >> +#ifdef HWPMC_HOOKS >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (ftype =3D=3D VM_P= ROT_READ || ftype =3D=3D VM_PROT_WRITE) { >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 PMC_SOFT_CALL_TF( , , page_fault, all, frame); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 if (ftype =3D=3D VM_PROT_READ) >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMC_SOFT_CALL_TF( , , page_fault, read, >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 frame); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 else >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMC_SOFT_CALL_TF( , , page_fault, write, >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 frame); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 } >> +#endif >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (0); >> + =C2=A0 =C2=A0 =C2=A0 } >> =C2=A0nogo: >> =C2=A0 =C2=A0 =C2=A0 =C2=A0if (!usermode) { >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (td->td_intr_n= esting_level =3D=3D 0 && >> >> Modified: head/sys/amd64/include/pmc_mdep.h >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/sys/amd64/include/pmc_mdep.h =C2=A0 Wed Mar 28 20:49:11 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/sys/amd64/include/pmc_mdep.h =C2=A0 Wed Mar 28 20:58:30 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -50,13 +50,13 @@ struct pmc_mdep; >> =C2=A0* measurement architecture have PMCs of the following classes: TSC= , >> =C2=A0* IAF, IAP, UCF and UCP. >> =C2=A0*/ >> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_TSC =C2=A0 =C2= =A0 =C2=A0 =C2=A00 >> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_K8 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 1 >> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_P4 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 1 >> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_IAP =C2=A0 =C2= =A0 =C2=A0 =C2=A01 >> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_IAF =C2=A0 =C2= =A0 =C2=A0 =C2=A02 >> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_UCP =C2=A0 =C2= =A0 =C2=A0 =C2=A03 >> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_UCF =C2=A0 =C2= =A0 =C2=A0 =C2=A04 >> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_TSC =C2=A0 =C2= =A0 =C2=A0 =C2=A01 >> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_K8 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 2 >> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_P4 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 2 >> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_IAP =C2=A0 =C2= =A0 =C2=A0 =C2=A02 >> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_IAF =C2=A0 =C2= =A0 =C2=A0 =C2=A03 >> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_UCP =C2=A0 =C2= =A0 =C2=A0 =C2=A04 >> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_UCF =C2=A0 =C2= =A0 =C2=A0 =C2=A05 >> >> =C2=A0/* >> =C2=A0* On the amd64 platform we support the following PMCs. >> @@ -119,6 +119,15 @@ union pmc_md_pmc { >> >> =C2=A0#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_IN_USERSPACE(va) ((va) <=3D= VM_MAXUSER_ADDRESS) >> >> +/* Build a fake kernel trapframe from current instruction pointer. */ >> +#define PMC_FAKE_TRAPFRAME(TF) =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 \ >> + =C2=A0 =C2=A0 =C2=A0 do { =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0\ >> + =C2=A0 =C2=A0 =C2=A0 (TF)->tf_cs =3D 0; (TF)->tf_rflags =3D 0; =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 \ >> + =C2=A0 =C2=A0 =C2=A0 __asm __volatile("movq %%rbp,%0" : "=3Dr" ((TF)->= tf_rbp)); =C2=A0 =C2=A0 =C2=A0 =C2=A0\ >> + =C2=A0 =C2=A0 =C2=A0 __asm __volatile("movq %%rsp,%0" : "=3Dr" ((TF)->= tf_rsp)); =C2=A0 =C2=A0 =C2=A0 =C2=A0\ >> + =C2=A0 =C2=A0 =C2=A0 __asm __volatile("call 1f \n\t1: pop %0" : "=3Dr"= ((TF)->tf_rip)); \ >> + =C2=A0 =C2=A0 =C2=A0 } while (0) >> + >> =C2=A0/* >> =C2=A0* Prototypes >> =C2=A0*/ >> >> Modified: head/sys/arm/include/pmc_mdep.h >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/sys/arm/include/pmc_mdep.h =C2=A0 =C2=A0 Wed Mar 28 20:49:11 20= 12 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/sys/arm/include/pmc_mdep.h =C2=A0 =C2=A0 Wed Mar 28 20:58:30 20= 12 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -29,7 +29,7 @@ >> =C2=A0#ifndef _MACHINE_PMC_MDEP_H_ >> =C2=A0#define =C2=A0 =C2=A0 =C2=A0 =C2=A0_MACHINE_PMC_MDEP_H_ >> >> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_XSCALE =C2=A0 = =C2=A0 0 >> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_XSCALE =C2=A0 = =C2=A0 1 >> =C2=A0/* >> =C2=A0* On the ARM platform we support the following PMCs. >> =C2=A0* >> >> Modified: head/sys/conf/files >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/sys/conf/files Wed Mar 28 20:49:11 2012 =C2=A0 =C2=A0 =C2=A0 = =C2=A0(r233627) >> +++ head/sys/conf/files Wed Mar 28 20:58:30 2012 =C2=A0 =C2=A0 =C2=A0 = =C2=A0(r233628) >> @@ -1260,6 +1260,7 @@ dev/hme/if_hme_sbus.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 optional hme sbus >> =C2=A0dev/hptiop/hptiop.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0optio= nal hptiop scbus >> =C2=A0dev/hwpmc/hwpmc_logging.c =C2=A0 =C2=A0 =C2=A0optional hwpmc >> =C2=A0dev/hwpmc/hwpmc_mod.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0optional h= wpmc >> +dev/hwpmc/hwpmc_soft.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 optional hwpmc >> =C2=A0dev/ichsmb/ichsmb.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0optio= nal ichsmb >> =C2=A0dev/ichsmb/ichsmb_pci.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0optional ichsmb pci >> =C2=A0dev/ida/ida.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0optional ida >> >> Modified: head/sys/dev/hwpmc/hwpmc_amd.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/sys/dev/hwpmc/hwpmc_amd.c =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:49:= 11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/sys/dev/hwpmc/hwpmc_amd.c =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:58:= 30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -687,7 +687,8 @@ amd_intr(int cpu, struct trapframe *tf) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0wrmsr(perfctr, AM= D_RELOAD_COUNT_TO_PERFCTR_VALUE(v)); >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Restart the co= unter if logging succeeded. */ >> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_process= _interrupt(cpu, pm, tf, TRAPF_USERMODE(tf)); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_process= _interrupt(cpu, PMC_HR, pm, tf, >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 TRAPF_U= SERMODE(tf)); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (error =3D=3D = 0) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0wrmsr(evsel, config | AMD_PMC_ENABLE); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >> @@ -874,7 +875,7 @@ amd_pcpu_fini(struct pmc_mdep *md, int c >> =C2=A0struct pmc_mdep * >> =C2=A0pmc_amd_initialize(void) >> =C2=A0{ >> - =C2=A0 =C2=A0 =C2=A0 int classindex, error, i, nclasses, ncpus; >> + =C2=A0 =C2=A0 =C2=A0 int classindex, error, i, ncpus; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmc_classdep *pcd; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0enum pmc_cputype cputype; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmc_mdep *pmc_mdep; >> @@ -926,12 +927,9 @@ pmc_amd_initialize(void) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 * These processors have two classes of PMCs:= the TSC and >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 * programmable PMCs. >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 */ >> - =C2=A0 =C2=A0 =C2=A0 nclasses =3D 2; >> - =C2=A0 =C2=A0 =C2=A0 pmc_mdep =3D malloc(sizeof(struct pmc_mdep) + ncl= asses * sizeof (struct pmc_classdep), >> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 M_PMC, M_WAITOK|M_ZERO); >> + =C2=A0 =C2=A0 =C2=A0 pmc_mdep =3D pmc_mdep_alloc(2); >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_mdep->pmd_cputype =3D cputype; >> - =C2=A0 =C2=A0 =C2=A0 pmc_mdep->pmd_nclass =C2=A0=3D nclasses; >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0ncpus =3D pmc_cpu_max(); >> >> >> Modified: head/sys/dev/hwpmc/hwpmc_core.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/sys/dev/hwpmc/hwpmc_core.c =C2=A0 =C2=A0 Wed Mar 28 20:49:11 20= 12 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/sys/dev/hwpmc/hwpmc_core.c =C2=A0 =C2=A0 Wed Mar 28 20:58:30 20= 12 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -2239,7 +2239,7 @@ core_intr(int cpu, struct trapframe *tf) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (pm->pm_state = !=3D PMC_STATE_RUNNING) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0continue; >> >> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_process= _interrupt(cpu, pm, tf, >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_process= _interrupt(cpu, PMC_HR, pm, tf, >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0TRA= PF_USERMODE(tf)); >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0v =3D pm->pm_sc.p= m_reloadcount; >> @@ -2326,7 +2326,7 @@ core2_intr(int cpu, struct trapframe *tf >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0!PM= C_IS_SAMPLING_MODE(PMC_TO_MODE(pm))) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0continue; >> >> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_process= _interrupt(cpu, pm, tf, >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_process= _interrupt(cpu, PMC_HR, pm, tf, >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0TRA= PF_USERMODE(tf)); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (error) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0intrenable &=3D ~flag; >> @@ -2354,7 +2354,7 @@ core2_intr(int cpu, struct trapframe *tf >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0!PM= C_IS_SAMPLING_MODE(PMC_TO_MODE(pm))) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0continue; >> >> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_process= _interrupt(cpu, pm, tf, >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_process= _interrupt(cpu, PMC_HR, pm, tf, >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0TRA= PF_USERMODE(tf)); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (error) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0intrenable &=3D ~flag; >> >> Modified: head/sys/dev/hwpmc/hwpmc_intel.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/sys/dev/hwpmc/hwpmc_intel.c =C2=A0 =C2=A0Wed Mar 28 20:49:11 20= 12 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/sys/dev/hwpmc/hwpmc_intel.c =C2=A0 =C2=A0Wed Mar 28 20:58:30 20= 12 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -162,12 +162,10 @@ pmc_intel_initialize(void) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (NULL); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >> >> - =C2=A0 =C2=A0 =C2=A0 pmc_mdep =3D malloc(sizeof(struct pmc_mdep) + ncl= asses * >> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sizeof(struct pmc_classdep), M_PMC,= M_WAITOK|M_ZERO); >> + =C2=A0 =C2=A0 =C2=A0 /* Allocate base class and initialize machine dep= endent struct */ >> + =C2=A0 =C2=A0 =C2=A0 pmc_mdep =3D pmc_mdep_alloc(nclasses); >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_mdep->pmd_cputype =C2=A0 =C2=A0=3D cputyp= e; >> - =C2=A0 =C2=A0 =C2=A0 pmc_mdep->pmd_nclass =C2=A0 =C2=A0 =3D nclasses; >> - >> =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_mdep->pmd_switch_in =C2=A0=3D intel_switc= h_in; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_mdep->pmd_switch_out =3D intel_switch_out= ; >> >> >> Modified: head/sys/dev/hwpmc/hwpmc_logging.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/sys/dev/hwpmc/hwpmc_logging.c =C2=A0Wed Mar 28 20:49:11 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/sys/dev/hwpmc/hwpmc_logging.c =C2=A0Wed Mar 28 20:58:30 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -129,6 +129,7 @@ static struct mtx pmc_kthread_mtx; =C2=A0/* sl >> >> =C2=A0/* Emit a string. =C2=A0Caution: does NOT update _le, so needs to = be last */ >> =C2=A0#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMCLOG_EMITSTRING(S,L) =C2=A0do= { bcopy((S), _le, (L)); } while (0) >> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMCLOG_EMITNULLSTRING(L) do { bzero(= _le, (L)); } while (0) >> >> =C2=A0#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMCLOG_DESPATCH(PO) =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \ >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pmclog_release((P= O)); =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \ >> @@ -835,16 +836,33 @@ void >> =C2=A0pmclog_process_pmcallocate(struct pmc *pm) >> =C2=A0{ >> =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmc_owner *po; >> + =C2=A0 =C2=A0 =C2=A0 struct pmc_soft *ps; >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0po =3D pm->pm_owner; >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0PMCDBG(LOG,ALL,1, "pm=3D%p", pm); >> >> - =C2=A0 =C2=A0 =C2=A0 PMCLOG_RESERVE(po, PMCALLOCATE, sizeof(struct pmc= log_pmcallocate)); >> - =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->pm_id); >> - =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->pm_event); >> - =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->pm_flags); >> - =C2=A0 =C2=A0 =C2=A0 PMCLOG_DESPATCH(po); >> + =C2=A0 =C2=A0 =C2=A0 if (PMC_TO_CLASS(pm) =3D=3D PMC_CLASS_SOFT) { >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_RESERVE(po, PM= CALLOCATEDYN, >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sizeof(= struct pmclog_pmcallocatedyn)); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->pm_= id); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->pm_= event); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->pm_= flags); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ps =3D pmc_soft_ev_ac= quire(pm->pm_event); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (ps !=3D NULL) >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 PMCLOG_EMITSTRING(ps->ps_ev.pm_ev_name,PMC_NAME_MAX); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 else >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 PMCLOG_EMITNULLSTRING(PMC_NAME_MAX); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_soft_ev_release(p= s); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_DESPATCH(po); >> + =C2=A0 =C2=A0 =C2=A0 } else { >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_RESERVE(po, PM= CALLOCATE, >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sizeof(= struct pmclog_pmcallocate)); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->pm_= id); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->pm_= event); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->pm_= flags); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_DESPATCH(po); >> + =C2=A0 =C2=A0 =C2=A0 } >> =C2=A0} >> >> =C2=A0void >> >> Modified: head/sys/dev/hwpmc/hwpmc_mips.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/sys/dev/hwpmc/hwpmc_mips.c =C2=A0 =C2=A0 Wed Mar 28 20:49:11 20= 12 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/sys/dev/hwpmc/hwpmc_mips.c =C2=A0 =C2=A0 Wed Mar 28 20:58:30 20= 12 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -287,7 +287,7 @@ mips_pmc_intr(int cpu, struct trapframe >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0retval =3D 1; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (pm->pm_state = !=3D PMC_STATE_RUNNING) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0continue; >> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_process= _interrupt(cpu, pm, tf, >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_process= _interrupt(cpu, PMC_HR, pm, tf, >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0TRA= PF_USERMODE(tf)); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (error) { >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0/* Clear/disable the relevant counter */ >> >> Modified: head/sys/dev/hwpmc/hwpmc_mod.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/sys/dev/hwpmc/hwpmc_mod.c =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:49:= 11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >> +++ head/sys/dev/hwpmc/hwpmc_mod.c =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:58:= 30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >> @@ -70,6 +70,8 @@ __FBSDID("$FreeBSD$"); >> =C2=A0#include >> =C2=A0#include >> >> +#include "hwpmc_soft.h" >> + >> =C2=A0/* >> =C2=A0* Types >> =C2=A0*/ >> @@ -182,7 +184,7 @@ static int =C2=A0pmc_attach_one_process(struct >> =C2=A0static int =C2=A0 =C2=A0 pmc_can_allocate_rowindex(struct proc *p,= unsigned int ri, >> =C2=A0 =C2=A0 int cpu); >> =C2=A0static int =C2=A0 =C2=A0 pmc_can_attach(struct pmc *pm, struct pro= c *p); >> -static void =C2=A0 =C2=A0pmc_capture_user_callchain(int cpu, struct tra= pframe *tf); >> +static void =C2=A0 =C2=A0pmc_capture_user_callchain(int cpu, int soft, = struct trapframe *tf); >> =C2=A0static void =C2=A0 =C2=A0pmc_cleanup(void); >> =C2=A0static int =C2=A0 =C2=A0 pmc_detach_process(struct proc *p, struct= pmc *pm); >> =C2=A0static int =C2=A0 =C2=A0 pmc_detach_one_process(struct proc *p, st= ruct pmc *pm, >> @@ -206,7 +208,7 @@ static void pmc_process_csw_out(struct t >> =C2=A0static void =C2=A0 =C2=A0pmc_process_exit(void *arg, struct proc *= p); >> =C2=A0static void =C2=A0 =C2=A0pmc_process_fork(void *arg, struct proc *= p1, >> =C2=A0 =C2=A0 struct proc *p2, int n); >> -static void =C2=A0 =C2=A0pmc_process_samples(int cpu); >> +static void =C2=A0 =C2=A0pmc_process_samples(int cpu, int soft); >> =C2=A0static void =C2=A0 =C2=A0pmc_release_pmc_descriptor(struct pmc *pm= c); >> =C2=A0static void =C2=A0 =C2=A0pmc_remove_owner(struct pmc_owner *po); >> =C2=A0static void =C2=A0 =C2=A0pmc_remove_process_descriptor(struct pmc_= process *pp); >> @@ -218,12 +220,16 @@ static int =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_stop(str= uct pmc *pm); >> =C2=A0static int =C2=A0 =C2=A0 pmc_syscall_handler(struct thread *td, vo= id *syscall_args); >> =C2=A0static void =C2=A0 =C2=A0pmc_unlink_target_process(struct pmc *pmc= , >> =C2=A0 =C2=A0 struct pmc_process *pp); >> +static int generic_switch_in(struct pmc_cpu *pc, struct pmc_process *pp= ); >> +static int generic_switch_out(struct pmc_cpu *pc, struct pmc_process *p= p); >> +static struct pmc_mdep *pmc_generic_cpu_initialize(void); >> +static void pmc_generic_cpu_finalize(struct pmc_mdep *md); >> >> =C2=A0/* >> =C2=A0* Kernel tunables and sysctl(8) interface. >> =C2=A0*/ >> >> -SYSCTL_NODE(_kern, OID_AUTO, hwpmc, CTLFLAG_RW, 0, "HWPMC parameters"); >> +SYSCTL_DECL(_kern_hwpmc); >> >> =C2=A0static int pmc_callchaindepth =3D PMC_CALLCHAIN_DEPTH; >> =C2=A0TUNABLE_INT(PMC_SYSCTL_NAME_PREFIX "callchaindepth", &pmc_callchai= ndepth); >> @@ -1833,7 +1839,9 @@ const char *pmc_hooknames[] =3D { >> =C2=A0 =C2=A0 =C2=A0 =C2=A0"KLDUNLOAD", >> =C2=A0 =C2=A0 =C2=A0 =C2=A0"MMAP", >> =C2=A0 =C2=A0 =C2=A0 =C2=A0"MUNMAP", >> - =C2=A0 =C2=A0 =C2=A0 "CALLCHAIN" >> + =C2=A0 =C2=A0 =C2=A0 "CALLCHAIN-NMI", >> + =C2=A0 =C2=A0 =C2=A0 "CALLCHAIN-SOFT", >> + =C2=A0 =C2=A0 =C2=A0 "SOFTSAMPLING" >> =C2=A0}; >> =C2=A0#endif >> >> @@ -1992,7 +2000,8 @@ pmc_hook_handler(struct thread *td, int >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * lose the inter= rupt sample. >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */ >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CPU_CLR_ATOMIC(PC= PU_GET(cpuid), &pmc_cpumask); >> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_process_samples(P= CPU_GET(cpuid)); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_process_samples(P= CPU_GET(cpuid), PMC_HR); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_process_samples(P= CPU_GET(cpuid), PMC_SR); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break; >> >> >> @@ -2022,11 +2031,30 @@ pmc_hook_handler(struct thread *td, int >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */ >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0KASSERT(td =3D=3D= curthread, ("[pmc,%d] td !=3D curthread", >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0__L= INE__)); >> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_capture_user_call= chain(PCPU_GET(cpuid), >> + >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_capture_user_call= chain(PCPU_GET(cpuid), PMC_HR, >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(st= ruct trapframe *) arg); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0td->td_pflags &= =3D ~TDP_CALLCHAIN; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break; >> >> + =C2=A0 =C2=A0 =C2=A0 case PMC_FN_USER_CALLCHAIN_SOFT: >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* Record a call= chain. >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/ >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 KASSERT(td =3D=3D cur= thread, ("[pmc,%d] td !=3D curthread", >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 __LINE_= _)); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_capture_user_call= chain(PCPU_GET(cpuid), PMC_SR, >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (struct= trapframe *) arg); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 td->td_pflags &=3D ~T= DP_CALLCHAIN; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break; >> + >> + =C2=A0 =C2=A0 =C2=A0 case PMC_FN_SOFT_SAMPLING: >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* Call soft PMC= sampling intr. >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/ >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_soft_intr((struct= pmckern_soft *) arg); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break; >> + >> =C2=A0 =C2=A0 =C2=A0 =C2=A0default: >> =C2=A0#ifdef DEBUG >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0KASSERT(0, ("[pmc= ,%d] unknown hook %d\n", __LINE__, function)); >> @@ -2221,18 +2249,17 @@ pmc_destroy_pmc_descriptor(struct pmc *p >> =C2=A0static void >> =C2=A0pmc_wait_for_pmc_idle(struct pmc *pm) >> =C2=A0{ >> -#ifdef DEBUG >> +#ifdef DEBUG >> =C2=A0 =C2=A0 =C2=A0 =C2=A0volatile int maxloop; >> >> =C2=A0 =C2=A0 =C2=A0 =C2=A0maxloop =3D 100 * pmc_cpu_max(); >> =C2=A0#endif >> - >> =C2=A0 =C2=A0 =C2=A0 =C2=A0/* >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 * Loop (with a forced context switch) till t= he PMC's runcount >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 * comes down to zero. >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 */ >> =C2=A0 =C2=A0 =C2=A0 =C2=A0while (atomic_load_acq_32(&pm->pm_runcount) >= 0) { >> -#ifdef DEBUG >> +#ifdef DEBUG >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0maxloop--; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0KASSERT(maxloop >= 0, >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("[= pmc,%d] (ri%d, rc%d) waiting too long for " >> @@ -2972,6 +2999,53 @@ pmc_syscall_handler(struct thread *td, v >> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >> =C2=A0 =C2=A0 =C2=A0 =C2=A0break; >> >> + =C2=A0 =C2=A0 =C2=A0 /* >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0* Retrieve soft events list. >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0*/ >> + =C2=A0 =C2=A0 =C2=A0 case PMC_OP_GETDYNEVENTINFO: >> + =C2=A0 =C2=A0 =C2=A0 { >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 enum pmc_class =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cl; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 enum pmc_event =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ev; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct pmc_op_getdyne= ventinfo =C2=A0 *gei; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct pmc_dyn_event_= descr =C2=A0 =C2=A0 =C2=A0dev; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct pmc_soft =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 *ps; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 uint32_t =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ne= vent; >> + >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sx_assert(&pmc_sx, SX= _LOCKED); >> + >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 gei =3D (struct pmc_o= p_getdyneventinfo *) arg; >> + >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if ((error =3D copyin= (&gei->pm_class, &cl, sizeof(cl))) !=3D 0) >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 break; >> + >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* Only SOFT class is= dynamic. */ >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (cl !=3D PMC_CLASS= _SOFT) { >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 error =3D EINVAL; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 break; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 } >> + >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 nevent =3D 0; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 for (ev =3D PMC_EV_SO= FT_FIRST; ev <=3D PMC_EV_SOFT_LAST; ev++) { >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 ps =3D pmc_soft_ev_acquire(ev); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 if (ps =3D=3D NULL) >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 continue; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 bcopy(&ps->ps_ev, &dev, sizeof(dev)); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 pmc_soft_ev_release(ps); >> + >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 error =3D copyout(&dev, >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 &gei->pm_events[nevent], >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 sizeof(struct pmc_dyn_event_descr)); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 if (error !=3D 0) >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 nevent++; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 } >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (error !=3D 0) >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 break; >> + >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D copyout(&ne= vent, &gei->pm_nevent, >> >> *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** --=20 Monthadar Al Jaberi --f46d0444044c3a938f04be531f69 Content-Type: application/octet-stream; name=RSPRO_USB_PROD Content-Disposition: attachment; filename=RSPRO_USB_PROD Content-Transfer-Encoding: base64 X-Attachment-Id: f_h1d67xor0 IwojIFViaXF1aXRpIFJvdXRlcnN0YXRpb24gUHJvOiBib290IGZyb20gZmlyc3QgRE9TLXBhcnRp dGlvbmVkLCBCU0QKIyBzbGljZWQgZmxhc2ggZGlzay4KIwojICRGcmVlQlNEJAojCgojCiMgQVI3 MVhYIC0tIEtlcm5lbCBjb25maWd1cmF0aW9uIGZpbGUgZm9yIEZyZWVCU0QvTUlQUyBmb3IgQXRo ZXJvcyA3MXh4IHN5c3RlbXMKIwojIFRoaXMgaW5jbHVkZXMgYWxsIHRoZSBjb21tb24gZHJpdmVy cyBmb3IgdGhlIEFSNzFYWCBib2FyZHMgYWxvbmcgd2l0aAojIHRoZSB1c2IsIG5ldDgwMjExIGFu ZCBhdGhlcm9zIGRyaXZlciBjb2RlLgojCiMgJEZyZWVCU0QkCiMKCm1hY2hpbmUJCW1pcHMgbWlw cwppZGVudAkJUlNQUk9fVVNCX1BST0QKY3B1CQlDUFVfTUlQUzRLQwptYWtlb3B0aW9ucwlLRVJO TE9BREFERFI9MHg4MDA1MDAwMApvcHRpb25zCQlIWj0xMDAwCm9wdGlvbnMJCUhXUE1DX0hPT0tT CgpmaWxlcwkJIi4uL2F0aGVyb3MvZmlsZXMuYXI3MXh4IgoKIyBGb3Igbm93LCBoaW50cyBhcmUg cGVyLWJvYXJkLgoKaGludHMJCSJBUjcxWFhfQkFTRS5oaW50cyIKCm1ha2VvcHRpb25zCURFQlVH PS1nCQkjQnVpbGQga2VybmVsIHdpdGggZ2RiKDEpIGRlYnVnIHN5bWJvbHMKCiMgQnVpbGQgdGhl c2UgYXMgbW9kdWxlcyBzbyBzbWFsbCBwbGF0Zm9ybSBidWlsZHMgd2lsbCBoYXZlIHRoZQojIG1v ZHVsZXMgYWxyZWFkeSBidWlsdC4KbWFrZW9wdGlvbnMJTU9EVUxFU19PVkVSUklERT0icmFuZG9t IGdwaW8gYXI3MXh4IGlmX2dpZiBpZl9ncmUgaWZfYnJpZGdlIGJyaWRnZXN0cCB1c2Igd2xhbiB3 bGFuX3hhdXRoIHdsYW5fYWNsIHdsYW5fd2VwIHdsYW5fdGtpcCB3bGFuX2NjbXAgd2xhbl9yc3Nh ZGFwdCB3bGFuX2FtcnIgYXRoIGF0aF9wY2kiCgpvcHRpb25zCQlEREIKb3B0aW9ucwkJS0RCCgpv cHRpb25zIEhXUE1DX0hPT0tTCmRldmljZSBod3BtYwoKb3B0aW9ucwkJU0NIRURfNEJTRAkJIzRC U0Qgc2NoZWR1bGVyCiNvcHRpb25zCQlTQ0hFRF9VTEUJCSM0QlNEIHNjaGVkdWxlcgpvcHRpb25z CQlJTkVUCQkJI0ludGVyTkVUd29ya2luZwojb3B0aW9ucwkJSU5FVDYJCQkjIElQdjYKCiMgb3B0 aW9ucwkJTkZTX0NMCQkjTmV0d29yayBGaWxlc3lzdGVtIENsaWVudAoKb3B0aW9ucwkJUFNFVURP RlMJCSNQc2V1ZG8tZmlsZXN5c3RlbSBmcmFtZXdvcmsKb3B0aW9ucwkJX0tQT1NJWF9QUklPUklU WV9TQ0hFRFVMSU5HICNQb3NpeCBQMTAwM18xQiByZWFsLXRpbWUgZXh0ZW5zaW9ucwoKIyBvcHRp b25zCQlORlNfTEVHQUNZUlBDCiMgRGVidWdnaW5nIGZvciB1c2UgaW4gLWN1cnJlbnQKb3B0aW9u cwkJSU5WQVJJQU5UUwpvcHRpb25zCQlJTlZBUklBTlRfU1VQUE9SVApvcHRpb25zCQlXSVRORVNT Cm9wdGlvbnMJCVdJVE5FU1NfU0tJUFNQSU4Kb3B0aW9ucwkJREVCVUdfUkVEWk9ORQpvcHRpb25z CQlERUJVR19NRU1HVUFSRAoKb3B0aW9ucyAgICAgICAgIEZGUyAgICAgICAgICAgICAgICAgICAg ICNCZXJrZWxleSBGYXN0IEZpbGVzeXN0ZW0KIyBvcHRpb25zICAgICAgICAgU09GVFVQREFURVMg ICAgICAgICAgICAgI0VuYWJsZSBGRlMgc29mdCB1cGRhdGVzIHN1cHBvcnQKIyBvcHRpb25zICAg ICAgICAgVUZTX0FDTCAgICAgICAgICAgICAgICAgI1N1cHBvcnQgZm9yIGFjY2VzcyBjb250cm9s IGxpc3RzCiMgb3B0aW9ucyAgICAgICAgIFVGU19ESVJIQVNIICAgICAgICAgICAgICNJbXByb3Zl IHBlcmZvcm1hbmNlIG9uIGJpZyBkaXJlY3RvcmllcwojIG9wdGlvbnMJCU1TRE9TRlMJCQkjIFJl YWQgTVNET1MgZmlsZXN5c3RlbXM7IHVzZWZ1bCBmb3IgVVNCL0NGCgpkZXZpY2UJCXBjaQpkZXZp Y2UJCWFyNzF4eF9wY2kKCiMgODAyLjExIGZyYW1ld29yawpvcHRpb25zCQlJRUVFODAyMTFfREVC VUcKb3B0aW9ucwkJSUVFRTgwMjExX0FMUQpvcHRpb25zCQlJRUVFODAyMTFfU1VQUE9SVF9NRVNI CiMgVGhpcyBvcHRpb24gaXMgY3VycmVudGx5IGJyb2tlbiBmb3IgaWZfYXRoX3R4LgpvcHRpb25z CQlJRUVFODAyMTFfU1VQUE9SVF9URE1BCm9wdGlvbnMJCUlFRUU4MDIxMV9BTVBEVV9BR0UKZGV2 aWNlCQl3bGFuICAgICAgICAgICAgIyA4MDIuMTEgc3VwcG9ydApkZXZpY2UJCXdsYW5fd2VwICAg ICAgICAjIDgwMi4xMSBXRVAgc3VwcG9ydApkZXZpY2UJCXdsYW5fY2NtcCAgICAgICAjIDgwMi4x MSBDQ01QIHN1cHBvcnQKZGV2aWNlCQl3bGFuX3RraXAgICAgICAgIyA4MDIuMTEgVEtJUCBzdXBw b3J0CmRldmljZQkJd2xhbl94YXV0aAkjIDgwMi4xMSBob3N0YXAgc3VwcG9ydAoKIyBBdGhlcm9z IHdpcmVsZXNzIE5JQ3MKZGV2aWNlCQlhdGggICAgICAgICAgICAgIyBBdGhlcm9zIGludGVyZmFj ZSBzdXBwb3J0CmRldmljZQkJYXRoX3BjaQkJIyBBdGhlcm9zIFBDSS9DYXJkYnVzIGJ1cwpvcHRp b25zIAlBVEhfREVCVUcKb3B0aW9ucwkJQVRIX0RJQUdBUEkKb3B0aW9ucwkJQVRIX0VOQUJMRV8x MU4Kb3B0aW9ucwkJQUhfREVCVUcKb3B0aW9ucwkJQUhfREVCVUdfQUxRCm9wdGlvbnMJCUFMUQpk ZXZpY2UJCWF0aF9oYWwKb3B0aW9uCQlBSF9TVVBQT1JUX0FSNTQxNgpkZXZpY2UJCWF0aF9yYXRl X3NhbXBsZQpvcHRpb24JCUFIX1JYQ0ZHX1NETUFNV180QllURVMKb3B0aW9uCQlBSF9BUjU0MTZf SU5URVJSVVBUX01JVElHQVRJT04KIyBUaGVyZSdzIG5vIERGUyByYWRhciBkZXRlY3Rpb24gc3Vw cG9ydCB5ZXQgc28gdGhpcyB3b24ndCBhY3R1YWxseQojIGRldGVjdCByYWRhcnMuICBJdCBob3dl dmVyIGRvZXMgZW5hYmxlIHRoZSByZXN0IG9mIHRoZSBjaGFubmVsIGNoYW5nZQojIG1hY2hpbmVy eSBzbyBERlMgY2FuIGJlIGRlYnVnZ2VkLgpvcHRpb24JCUFUSF9FTkFCTEVfREZTCgpkZXZpY2UJ CW1paQpkZXZpY2UJCWFyZ2UKCmRldmljZQkJdXNiCm9wdGlvbnMJCVVTQl9FSENJX0JJR19FTkRJ QU5fREVTQyAgICAgICAgIyBoYW5kbGUgYmlnLWVuZGlhbiBieXRlIG9yZGVyCm9wdGlvbnMJCVVT Ql9ERUJVRwpvcHRpb25zCQlVU0JfSE9TVF9BTElHTj0zMgkJIyBBUjcxWFggKE1JUFMgaW4gZ2Vu ZXJhbD8pIHJlcXVpcmVzIHRoaXMKZGV2aWNlCQllaGNpCgpkZXZpY2UJCXNjYnVzCmRldmljZQkJ dW1hc3MKZGV2aWNlCQlkYQoKIyBPbi1ib2FyZCBTUEkgZmxhc2gKZGV2aWNlCQlzcGlidXMKZGV2 aWNlCQlhcjcxeHhfc3BpCmRldmljZQkJbXgyNWwKZGV2aWNlCQlhcjcxeHhfd2RvZwoKZGV2aWNl CQl1YXJ0CgpkZXZpY2UJCWxvb3AKZGV2aWNlCQlldGhlcgpkZXZpY2UJCW1kCmRldmljZQkJYnBm CmRldmljZQkJcmFuZG9tCmRldmljZQkJaWZfYnJpZGdlCmRldmljZQkJZ2lmCQkjIGlwWzQ2XSBp biBpcFs0Nl0gdHVubmVsaW5nIHByb3RvY29sCmRldmljZQkJZ3JlCQkjIGdlbmVyaWMgZW5jYXBz dWxhdGlvbiAtIG9ubHkgZm9yIElQdjQgaW4gSVB2NCB0aG91Z2ggYXRtCgpvcHRpb25zCQlBUkdF X0RFQlVHCSMgRW5hYmxlIGlmX2FyZ2UgZGVidWdnaW5nIGZvciBub3cKCiMgRW5hYmxlIEdQSU8K ZGV2aWNlCQlncGlvCmRldmljZQkJZ3Bpb2xlZAoKCiMgUlRDIC0gcmVxdWlyZXMgaGFja2VyeSBp biB0aGUgc3BpYnVzIGNvZGUgdG8gd29yawpkZXZpY2UJCXBjZjIxMjNfcnRjCgojIE5ldyBOZXR3 b3JrIEZpbGVzeXN0ZW0gQ2xpZW50Cm9wdGlvbnMJCU5GU0NMCgojIEdFT00gbW9kdWxlcwpkZXZp Y2UJCWdlb21fcmVkYm9vdAkjIHRvIGdldCBhY2Nlc3MgdG8gdGhlIFNQSSBmbGFzaCBwYXJ0aXRp b25zCmRldmljZQkJZ2VvbV91emlwCSMgY29tcHJlc3NlZCBpbi1tZW1vcnkgZmlsZXN5c3RlbSBz dXBwb3J0Cm9wdGlvbnMJCUdFT01fVVpJUAoKIyBGb3IgRE9TCm9wdGlvbnMJCUdFT01fUEFSVF9C U0QKb3B0aW9ucwkJR0VPTV9QQVJUX01CUgpvcHRpb25zCQlNU0RPU0ZTCgojIEZvciBHUFQKb3B0 aW9ucwkJR0VPTV9MQUJFTApvcHRpb25zCQlHRU9NX1BBUlRfR1BUCgojIC4uIGZpcnN0IERPUy1w YXJ0aXRpb25lZCwgQlNEIHNsaWNlZCBmbGFzaCBkaXNrCiNvcHRpb25zCQlST09UREVWTkFNRT1c InVmczpkYTBzMWFcIgpvcHRpb25zCQlST09UREVWTkFNRT1cInVmczovZGV2L2dwdC9yc3Byb290 ZnNcIgoK --f46d0444044c3a938f04be531f69-- From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 07:47:41 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 02257106566B; Mon, 23 Apr 2012 07:47:41 +0000 (UTC) (envelope-from fabien.thomas@netasq.com) Received: from work.netasq.com (gwlille.netasq.com [91.212.116.1]) by mx1.freebsd.org (Postfix) with ESMTP id 02E6C8FC12; Mon, 23 Apr 2012 07:47:39 +0000 (UTC) Received: from [10.2.1.1] (unknown [10.2.1.1]) by work.netasq.com (Postfix) with ESMTPSA id B1F0527030D4; Mon, 23 Apr 2012 09:48:11 +0200 (CEST) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: multipart/signed; boundary="Apple-Mail=_24EA901A-324C-4465-880C-9C948861B2D8"; protocol="application/pkcs7-signature"; micalg=sha1 From: Fabien Thomas In-Reply-To: Date: Mon, 23 Apr 2012 09:47:45 +0200 Message-Id: <25D59FAA-D52A-42FB-8120-66467863AB0B@netasq.com> References: <201203282058.q2SKwVsJ053900@svn.freebsd.org> To: Monthadar Al Jaberi X-Mailer: Apple Mail (2.1257) X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: monthadar@freebsd.org, Adrian Chadd , freebsd-current , Fabien Thomas , freebsd-mips@freebsd.org Subject: Re: svn commit: r233628 - in head: lib/libpmc sys/amd64/amd64 sys/amd64/include sys/arm/include sys/conf sys/dev/hwpmc sys/i386/i386 sys/i386/include sys/kern sys/mips/include sys/modules/hwpmc sys/pow... X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 07:47:41 -0000 --Apple-Mail=_24EA901A-324C-4465-880C-9C948861B2D8 Content-Type: multipart/mixed; boundary="Apple-Mail=_0FFE1445-1962-4A52-A902-4106C0401133" --Apple-Mail=_0FFE1445-1962-4A52-A902-4106C0401133 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii Hi, The rumors seems true :) Can you try the patch attached (I cannot test as i've no MIPS hardware) ? Thanks, Fabien --Apple-Mail=_0FFE1445-1962-4A52-A902-4106C0401133 Content-Disposition: attachment; filename=patch-fixsoft Content-Type: application/octet-stream; name="patch-fixsoft" Content-Transfer-Encoding: 7bit Index: dev/hwpmc/hwpmc_mips.c =================================================================== --- dev/hwpmc/hwpmc_mips.c (revision 233824) +++ dev/hwpmc/hwpmc_mips.c (working copy) @@ -431,11 +431,9 @@ M_WAITOK|M_ZERO); /* Just one class */ - pmc_mdep = malloc(sizeof(struct pmc_mdep) + sizeof(struct pmc_classdep), - M_PMC, M_WAITOK|M_ZERO); + pmc_mdep = pmc_mdep_alloc(1); pmc_mdep->pmd_cputype = mips_pmc_spec.ps_cputype; - pmc_mdep->pmd_nclass = 1; pcd = &pmc_mdep->pmd_classdep[PMC_MDEP_CLASS_INDEX_MIPS]; pcd->pcd_caps = mips_pmc_spec.ps_capabilities; Index: dev/hwpmc/hwpmc_powerpc.c =================================================================== --- dev/hwpmc/hwpmc_powerpc.c (revision 233824) +++ dev/hwpmc/hwpmc_powerpc.c (working copy) @@ -803,11 +803,9 @@ M_WAITOK|M_ZERO); /* Just one class */ - pmc_mdep = malloc(sizeof(struct pmc_mdep) + sizeof(struct pmc_classdep), - M_PMC, M_WAITOK|M_ZERO); + pmc_mdep = pmc_mdep_alloc(1); pmc_mdep->pmd_cputype = PMC_CPU_PPC_7450; - pmc_mdep->pmd_nclass = 1; pcd = &pmc_mdep->pmd_classdep[PMC_MDEP_CLASS_INDEX_PPC7450]; pcd->pcd_caps = POWERPC_PMC_CAPS; --Apple-Mail=_0FFE1445-1962-4A52-A902-4106C0401133 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Mon, Apr 23, 2012 at 8:44 AM, Adrian Chadd = wrote: >> Hi Fabien, >>=20 >> I've heard some rumours that this broke hwpmc support for mips24k. >>=20 >> Monthadar, can you please provide some background info for this? >>=20 >=20 > This is the log output >=20 > Using default protocol (TFTP) > Entry point: 0x80050100, address range: 0x80050000-0x804f1dcc > RedBoot> exec > Now booting linux kernel: > Base address 0x80050000 Entry 0x80050100 > memsize=3D0x08000000 > modetty0=3D0,n,8,1,hw > board=3DRouterStation PRO > ethaddr=3D00.15.6d.c8.c9.2e > CPU platform: Atheros AR7161 rev 2 > CPU Frequency=3D720 MHz > CPU DDR Frequency=3D360 MHz > CPU AHB Frequency=3D180 MHz > platform frequency: 720000000 > arguments: > a0 =3D 00000002 > a1 =3D 80050028 > a2 =3D 80050000 > a3 =3D 00000001 > Cmd line: = =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BDm=EF=BF=BD=EF= =BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD_}=EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=DF=BEq=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF= =BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD=EF=BF=BD=7F=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD= =EF=BF=BD=EF=BF=BD=EF=BF=BD=DF=BF=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD_=EF=BF=BDw=EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD=1F=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD?-=EF=BF=BD=EF= =BF=BD=EF=BF=BD=EF=BF=BD{=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF= =BD~=EF=BF=BD=EF=BF=BD > Environment: > memsize =3D 0x08000000 > modetty0 =3D 0,n,8,1,hw > ethaddr =3D 00.15.6d.c8.c9.2e > board =3D RouterStation PRO > Cache info: > picache_stride =3D 4096 > picache_loopcount =3D 16 > pdcache_stride =3D 4096 > pdcache_loopcount =3D 8 > cpu0: MIPS Technologies processor v116.147 > MMU: Standard TLB, 16 entries > L1 i-cache: 4 ways of 512 sets, 32 bytes per line > L1 d-cache: 4 ways of 256 sets, 32 bytes per line > Config1=3D0x9ee3519e > Config3=3D0x20 > KDB: debugger backends: ddb > KDB: current backend: ddb > Copyright (c) 1992-2012 The FreeBSD Project. > Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, = 1994 > The Regents of the University of California. All rights = reserved. > FreeBSD is a registered trademark of The FreeBSD Foundation. > FreeBSD 10.0-CURRENT #12: Fri Apr 20 18:03:16 CEST 2012 > root@freebsd-re-9:/usr/obj/mips.mips/usr/src/sys/RSPRO_USB_PROD = mips > WARNING: WITNESS option enabled, expect reduced performance. > MEMGUARD DEBUGGING ALLOCATOR INITIALIZED: > MEMGUARD map base: 0xc0800000 > MEMGUARD map limit: 0xc1c00000 > MEMGUARD map size: 20480 KBytes > real memory =3D 134217728 (131072K bytes) > avail memory =3D 123117568 (117MB) > random device not loaded; using insecure entropy > nexus0: > clock0: on nexus0 > Timecounter "MIPS32" frequency 360000000 Hz quality 800 > Event timer "MIPS32" frequency 360000000 Hz quality 800 > apb0 at irq 4 on nexus0 > uart0: <16550 or compatible> on apb0 > uart0: console (115200,n,8,1) > gpio0: on apb0 > gpio0: [GIANT-LOCKED] > gpio0: gpio pinmask=3D0x0 > gpioc0: on gpio0 > gpiobus0: on gpio0 > ehci0: at mem > 0x1b000000-0x1bffffff irq 1 on nexus0 > usbus0: set host controller mode > usbus0: EHCI version 1.0 > usbus0: set host controller mode > usbus0 on ehci0 > pcib0 at irq 0 on nexus0 > pci0: on pcib0 > pci0: at device 0.0 (no driver attached) > ath0: irq 0 at device 17.0 on pci0 > ath0: AR5413 mac 10.5 RF5413 phy 6.1 > ath0: 2GHz radio: 0x0000; 5GHz radio: 0x0063 > arge0: at mem > 0x19000000-0x19000fff irq 2 on nexus0 > arge0: No PHY specified, using mask 16 > miibus0: on arge0 > ukphy0: PHY 4 on miibus0 > ukphy0: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, > 1000baseT-FDX, 1000baseT-FDX-master, auto > arge0: Ethernet address: 00:15:6d:c8:c9:2e > arge1: at mem > 0x1a000000-0x1a000fff irq 3 on nexus0 > arge1: No PHY specified, using mask 15 > arge1: Ethernet address: 00:15:6d:c8:c9:2f > spi0: at mem 0x1f000000-0x1f00000f on nexus0 > spibus0: on spi0 > mx25l0: at cs 0 on spibus0 > mx25l0: mx25ll128, sector 65536 bytes, 256 sectors > ar71xx_wdog0: on nexus0 > Timecounters tick every 1.000 msec > usbus0: 480Mbps High Speed USB v2.0 > ugen0.1: at usbus0 > uhub0: on = usbus0 > panic: [pmc,4816] npmc miscomputed: ri=3D0, md->npmc=3D2 > KDB: enter: panic > [ thread pid 0 tid 100000 ] > Stopped at kdb_enter+0x4c: lui at,0x8050 > db> tr > Tracing pid 0 tid 100000 td 0x804f76d0 > db_trace_thread+30 (?,?,?,?) ra 8068b94800000018 sp 0 sz 0 > 80075adc+114 (0,?,ffffffff,?) ra 8068b96000000020 sp 100000000 sz 1 > 80074e24+388 (?,?,?,?) ra 8068b980000000a8 sp 0 sz 0 > db_command_loop+70 (?,?,?,?) ra 8068ba2800000018 sp 0 sz 0 > 80077900+f4 (?,?,?,?) ra 8068ba40000001a8 sp 0 sz 0 > kdb_trap+110 (?,?,?,?) ra 8068bbe800000030 sp 0 sz 0 > trap+c7c (?,?,?,?) ra 8068bc18000000b8 sp 0 sz 0 > MipsKernGenException+134 (0,4,8043b1d4,119) ra 8068bcd0000000c8 sp > 100000001 sz 1 > kdb_enter+4c (?,?,?,?) ra 8068bd9800000018 sp 0 sz 0 > panic+11c (?,12d0,0,2) ra 8068bdb000000028 sp 1 sz 1 > 800e8ca8+274 (?,?,?,?) ra 8068bdd800000038 sp 0 sz 0 > syscall_module_handler+b8 (?,?,?,?) ra 8068be1000000028 sp 0 sz 0 > module_register_init+9c (?,?,?,?) ra 8068be3800000028 sp 0 sz 0 > mi_startup+138 (?,?,?,?) ra 8068be6000000020 sp 0 sz 0 > _start+90 (?,?,?,?) ra 8068be8000000000 sp 0 sz 0 > pid 0 > db> >=20 >> Thanks, >>=20 >>=20 >>=20 >> adrian >>=20 >> On 28 March 2012 13:58, Fabien Thomas wrote: >>> Author: fabient >>> Date: Wed Mar 28 20:58:30 2012 >>> New Revision: 233628 >>> URL: http://svn.freebsd.org/changeset/base/233628 >>>=20 >>> Log: >>> Add software PMC support. >>>=20 >>> New kernel events can be added at various location for sampling or = counting. >>> This will for example allow easy system profiling whatever the = processor is >>> with known tools like pmcstat(8). >>>=20 >>> Simultaneous usage of software PMC and hardware PMC is possible, = for example >>> looking at the lock acquire failure, page fault while sampling on >>> instructions. >>>=20 >>> Sponsored by: NETASQ >>> MFC after: 1 month >>>=20 >>> Added: >>> head/lib/libpmc/pmc.soft.3 (contents, props changed) >>> head/sys/dev/hwpmc/hwpmc_soft.c (contents, props changed) >>> head/sys/dev/hwpmc/hwpmc_soft.h (contents, props changed) >>> Modified: >>> head/lib/libpmc/Makefile >>> head/lib/libpmc/libpmc.c >>> head/lib/libpmc/pmc.3 >>> head/lib/libpmc/pmc.atom.3 >>> head/lib/libpmc/pmc.core.3 >>> head/lib/libpmc/pmc.core2.3 >>> head/lib/libpmc/pmc.corei7.3 >>> head/lib/libpmc/pmc.corei7uc.3 >>> head/lib/libpmc/pmc.iaf.3 >>> head/lib/libpmc/pmc.k7.3 >>> head/lib/libpmc/pmc.k8.3 >>> head/lib/libpmc/pmc.mips24k.3 >>> head/lib/libpmc/pmc.octeon.3 >>> head/lib/libpmc/pmc.p4.3 >>> head/lib/libpmc/pmc.p5.3 >>> head/lib/libpmc/pmc.p6.3 >>> head/lib/libpmc/pmc.sandybridge.3 >>> head/lib/libpmc/pmc.sandybridgeuc.3 >>> head/lib/libpmc/pmc.tsc.3 >>> head/lib/libpmc/pmc.ucf.3 >>> head/lib/libpmc/pmc.westmere.3 >>> head/lib/libpmc/pmc.westmereuc.3 >>> head/lib/libpmc/pmc.xscale.3 >>> head/lib/libpmc/pmclog.c >>> head/lib/libpmc/pmclog.h >>> head/sys/amd64/amd64/trap.c >>> head/sys/amd64/include/pmc_mdep.h >>> head/sys/arm/include/pmc_mdep.h >>> head/sys/conf/files >>> head/sys/dev/hwpmc/hwpmc_amd.c >>> head/sys/dev/hwpmc/hwpmc_core.c >>> head/sys/dev/hwpmc/hwpmc_intel.c >>> head/sys/dev/hwpmc/hwpmc_logging.c >>> head/sys/dev/hwpmc/hwpmc_mips.c >>> head/sys/dev/hwpmc/hwpmc_mod.c >>> head/sys/dev/hwpmc/hwpmc_piv.c >>> head/sys/dev/hwpmc/hwpmc_powerpc.c >>> head/sys/dev/hwpmc/hwpmc_ppro.c >>> head/sys/dev/hwpmc/hwpmc_tsc.c >>> head/sys/dev/hwpmc/hwpmc_x86.c >>> head/sys/dev/hwpmc/hwpmc_xscale.c >>> head/sys/dev/hwpmc/pmc_events.h >>> head/sys/i386/i386/trap.c >>> head/sys/i386/include/pmc_mdep.h >>> head/sys/kern/kern_clock.c >>> head/sys/kern/kern_lock.c >>> head/sys/kern/kern_mutex.c >>> head/sys/kern/kern_pmc.c >>> head/sys/kern/kern_rwlock.c >>> head/sys/kern/kern_sx.c >>> head/sys/kern/subr_trap.c >>> head/sys/mips/include/pmc_mdep.h >>> head/sys/modules/hwpmc/Makefile >>> head/sys/powerpc/include/pmc_mdep.h >>> head/sys/sys/pmc.h >>> head/sys/sys/pmckern.h >>> head/sys/sys/pmclog.h >>> head/usr.sbin/pmcstat/pmcstat_log.c >>>=20 >>> Modified: head/lib/libpmc/Makefile >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/Makefile Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/Makefile Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -20,6 +20,7 @@ MAN+=3D pmc_read.3 >>> MAN+=3D pmc_set.3 >>> MAN+=3D pmc_start.3 >>> MAN+=3D pmclog.3 >>> +MAN+=3D pmc.soft.3 >>>=20 >>> # PMC-dependent manual pages >>> .if ${MACHINE_CPUARCH} =3D=3D "i386" || ${MACHINE_CPUARCH} =3D=3D = "amd64" >>>=20 >>> Modified: head/lib/libpmc/libpmc.c >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/libpmc.c Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/libpmc.c Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -77,11 +77,12 @@ static int tsc_allocate_pmc(enum pmc_eve >>> static int xscale_allocate_pmc(enum pmc_event _pe, char *_ctrspec, >>> struct pmc_op_pmcallocate *_pmc_config); >>> #endif >>> - >>> #if defined(__mips__) >>> static int mips_allocate_pmc(enum pmc_event _pe, char* ctrspec, >>> struct pmc_op_pmcallocate *_pmc_config); >>> #endif /* __mips__ */ >>> +static int soft_allocate_pmc(enum pmc_event _pe, char *_ctrspec, >>> + struct pmc_op_pmcallocate *_pmc_config); >>>=20 >>> #if defined(__powerpc__) >>> static int ppc7450_allocate_pmc(enum pmc_event _pe, char* ctrspec, >>> @@ -156,6 +157,8 @@ PMC_CLASSDEP_TABLE(octeon, OCTEON); >>> PMC_CLASSDEP_TABLE(ucf, UCF); >>> PMC_CLASSDEP_TABLE(ppc7450, PPC7450); >>>=20 >>> +static struct pmc_event_descr soft_event_table[PMC_EV_DYN_COUNT]; >>> + >>> #undef __PMC_EV_ALIAS >>> #define __PMC_EV_ALIAS(N,CODE) { N, PMC_EV_##CODE }, >>>=20 >>> @@ -215,21 +218,22 @@ static const struct pmc_event_descr west >>> PMC_CLASS_##C, __VA_ARGS__ \ >>> } >>>=20 >>> -PMC_MDEP_TABLE(atom, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC); >>> -PMC_MDEP_TABLE(core, IAP, PMC_CLASS_TSC); >>> -PMC_MDEP_TABLE(core2, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC); >>> -PMC_MDEP_TABLE(corei7, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, = PMC_CLASS_UCF, PMC_CLASS_UCP); >>> -PMC_MDEP_TABLE(sandybridge, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, = PMC_CLASS_UCF, PMC_CLASS_UCP); >>> -PMC_MDEP_TABLE(westmere, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, = PMC_CLASS_UCF, PMC_CLASS_UCP); >>> -PMC_MDEP_TABLE(k7, K7, PMC_CLASS_TSC); >>> -PMC_MDEP_TABLE(k8, K8, PMC_CLASS_TSC); >>> -PMC_MDEP_TABLE(p4, P4, PMC_CLASS_TSC); >>> -PMC_MDEP_TABLE(p5, P5, PMC_CLASS_TSC); >>> -PMC_MDEP_TABLE(p6, P6, PMC_CLASS_TSC); >>> -PMC_MDEP_TABLE(xscale, XSCALE, PMC_CLASS_XSCALE); >>> -PMC_MDEP_TABLE(mips24k, MIPS24K, PMC_CLASS_MIPS24K); >>> -PMC_MDEP_TABLE(octeon, OCTEON, PMC_CLASS_OCTEON); >>> -PMC_MDEP_TABLE(ppc7450, PPC7450, PMC_CLASS_PPC7450); >>> +PMC_MDEP_TABLE(atom, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, = PMC_CLASS_TSC); >>> +PMC_MDEP_TABLE(core, IAP, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>> +PMC_MDEP_TABLE(core2, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, = PMC_CLASS_TSC); >>> +PMC_MDEP_TABLE(corei7, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, = PMC_CLASS_TSC, PMC_CLASS_UCF, PMC_CLASS_UCP); >>> +PMC_MDEP_TABLE(sandybridge, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, = PMC_CLASS_TSC, PMC_CLASS_UCF, PMC_CLASS_UCP); >>> +PMC_MDEP_TABLE(westmere, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, = PMC_CLASS_TSC, PMC_CLASS_UCF, PMC_CLASS_UCP); >>> +PMC_MDEP_TABLE(k7, K7, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>> +PMC_MDEP_TABLE(k8, K8, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>> +PMC_MDEP_TABLE(p4, P4, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>> +PMC_MDEP_TABLE(p5, P5, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>> +PMC_MDEP_TABLE(p6, P6, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>> +PMC_MDEP_TABLE(xscale, XSCALE, PMC_CLASS_SOFT, PMC_CLASS_XSCALE); >>> +PMC_MDEP_TABLE(mips24k, MIPS24K, PMC_CLASS_SOFT, = PMC_CLASS_MIPS24K); >>> +PMC_MDEP_TABLE(octeon, OCTEON, PMC_CLASS_SOFT, PMC_CLASS_OCTEON); >>> +PMC_MDEP_TABLE(ppc7450, PPC7450, PMC_CLASS_SOFT, = PMC_CLASS_PPC7450); >>> +PMC_MDEP_TABLE(generic, SOFT, PMC_CLASS_SOFT); >>>=20 >>> static const struct pmc_event_descr tsc_event_table[] =3D >>> { >>> @@ -279,16 +283,24 @@ PMC_CLASS_TABLE_DESC(tsc, TSC, tsc, tsc) >>> #if defined(__XSCALE__) >>> PMC_CLASS_TABLE_DESC(xscale, XSCALE, xscale, xscale); >>> #endif >>> - >>> #if defined(__mips__) >>> PMC_CLASS_TABLE_DESC(mips24k, MIPS24K, mips24k, mips); >>> PMC_CLASS_TABLE_DESC(octeon, OCTEON, octeon, mips); >>> #endif /* __mips__ */ >>> - >>> #if defined(__powerpc__) >>> PMC_CLASS_TABLE_DESC(ppc7450, PPC7450, ppc7450, ppc7450); >>> #endif >>>=20 >>> +static struct pmc_class_descr soft_class_table_descr =3D >>> +{ >>> + .pm_evc_name =3D "SOFT-", >>> + .pm_evc_name_size =3D sizeof("SOFT-") - 1, >>> + .pm_evc_class =3D PMC_CLASS_SOFT, >>> + .pm_evc_event_table =3D NULL, >>> + .pm_evc_event_table_size =3D 0, >>> + .pm_evc_allocate_pmc =3D soft_allocate_pmc >>> +}; >>> + >>> #undef PMC_CLASS_TABLE_DESC >>>=20 >>> static const struct pmc_class_descr **pmc_class_table; >>> @@ -343,9 +355,12 @@ static const char * pmc_state_names[] =3D >>> __PMC_STATES() >>> }; >>>=20 >>> -static int pmc_syscall =3D -1; /* filled in by pmc_init() = */ >>> - >>> -static struct pmc_cpuinfo cpu_info; /* filled in by pmc_init() = */ >>> +/* >>> + * Filled in by pmc_init(). >>> + */ >>> +static int pmc_syscall =3D -1; >>> +static struct pmc_cpuinfo cpu_info; >>> +static struct pmc_op_getdyneventinfo soft_event_info; >>>=20 >>> /* Event masks for events */ >>> struct pmc_masks { >>> @@ -2179,6 +2194,25 @@ tsc_allocate_pmc(enum pmc_event pe, char >>> } >>> #endif >>>=20 >>> +static struct pmc_event_alias generic_aliases[] =3D { >>> + EV_ALIAS("instructions", "SOFT-CLOCK.HARD"), >>> + EV_ALIAS(NULL, NULL) >>> +}; >>> + >>> +static int >>> +soft_allocate_pmc(enum pmc_event pe, char *ctrspec, >>> + struct pmc_op_pmcallocate *pmc_config) >>> +{ >>> + (void)ctrspec; >>> + (void)pmc_config; >>> + >>> + if (pe < PMC_EV_SOFT_FIRST || pe > PMC_EV_SOFT_LAST) >>> + return (-1); >>> + >>> + pmc_config->pm_caps |=3D (PMC_CAP_READ | PMC_CAP_WRITE); >>> + return (0); >>> +} >>> + >>> #if defined(__XSCALE__) >>>=20 >>> static struct pmc_event_alias xscale_aliases[] =3D { >>> @@ -2663,6 +2697,10 @@ pmc_event_names_of_class(enum pmc_class >>> ev =3D ppc7450_event_table; >>> count =3D PMC_EVENT_TABLE_SIZE(ppc7450); >>> break; >>> + case PMC_CLASS_SOFT: >>> + ev =3D soft_event_table; >>> + count =3D soft_event_info.pm_nevent; >>> + break; >>> default: >>> errno =3D EINVAL; >>> return (-1); >>> @@ -2676,6 +2714,7 @@ pmc_event_names_of_class(enum pmc_class >>>=20 >>> for (;count--; ev++, names++) >>> *names =3D ev->pm_ev_name; >>> + >>> return (0); >>> } >>>=20 >>> @@ -2780,11 +2819,34 @@ pmc_init(void) >>> pmc_class_table[n] =3D NULL; >>>=20 >>> /* >>> + * Get soft events list. >>> + */ >>> + soft_event_info.pm_class =3D PMC_CLASS_SOFT; >>> + if (PMC_CALL(GETDYNEVENTINFO, &soft_event_info) < 0) >>> + return (pmc_syscall =3D -1); >>> + >>> + /* Map soft events to static list. */ >>> + for (n =3D 0; n < soft_event_info.pm_nevent; n++) { >>> + soft_event_table[n].pm_ev_name =3D >>> + soft_event_info.pm_events[n].pm_ev_name; >>> + soft_event_table[n].pm_ev_code =3D >>> + soft_event_info.pm_events[n].pm_ev_code; >>> + } >>> + soft_class_table_descr.pm_evc_event_table_size =3D \ >>> + soft_event_info.pm_nevent; >>> + soft_class_table_descr.pm_evc_event_table =3D \ >>> + soft_event_table; >>> + >>> + /* >>> * Fill in the class table. >>> */ >>> n =3D 0; >>> + >>> + /* Fill soft events information. */ >>> + pmc_class_table[n++] =3D &soft_class_table_descr; >>> #if defined(__amd64__) || defined(__i386__) >>> - pmc_class_table[n++] =3D &tsc_class_table_descr; >>> + if (cpu_info.pm_cputype !=3D PMC_CPU_GENERIC) >>> + pmc_class_table[n++] =3D &tsc_class_table_descr; >>>=20 >>> /* >>> * Check if this CPU has fixed function counters. >>> @@ -2867,6 +2929,9 @@ pmc_init(void) >>> pmc_class_table[n] =3D &p4_class_table_descr; >>> break; >>> #endif >>> + case PMC_CPU_GENERIC: >>> + PMC_MDEP_INIT(generic); >>> + break; >>> #if defined(__XSCALE__) >>> case PMC_CPU_INTEL_XSCALE: >>> PMC_MDEP_INIT(xscale); >>> @@ -3035,18 +3100,19 @@ _pmc_name_of_event(enum pmc_event pe, en >>> evfence =3D xscale_event_table + = PMC_EVENT_TABLE_SIZE(xscale); >>> } else if (pe >=3D PMC_EV_MIPS24K_FIRST && pe <=3D = PMC_EV_MIPS24K_LAST) { >>> ev =3D mips24k_event_table; >>> - evfence =3D mips24k_event_table + = PMC_EVENT_TABLE_SIZE(mips24k >>> -); >>> + evfence =3D mips24k_event_table + = PMC_EVENT_TABLE_SIZE(mips24k); >>> } else if (pe >=3D PMC_EV_OCTEON_FIRST && pe <=3D = PMC_EV_OCTEON_LAST) { >>> ev =3D octeon_event_table; >>> evfence =3D octeon_event_table + = PMC_EVENT_TABLE_SIZE(octeon); >>> } else if (pe >=3D PMC_EV_PPC7450_FIRST && pe <=3D = PMC_EV_PPC7450_LAST) { >>> ev =3D ppc7450_event_table; >>> - evfence =3D ppc7450_event_table + = PMC_EVENT_TABLE_SIZE(ppc7450 >>> -); >>> + evfence =3D ppc7450_event_table + = PMC_EVENT_TABLE_SIZE(ppc7450); >>> } else if (pe =3D=3D PMC_EV_TSC_TSC) { >>> ev =3D tsc_event_table; >>> evfence =3D tsc_event_table + = PMC_EVENT_TABLE_SIZE(tsc); >>> + } else if (pe >=3D PMC_EV_SOFT_FIRST && pe <=3D = PMC_EV_SOFT_LAST) { >>> + ev =3D soft_event_table; >>> + evfence =3D soft_event_table + = soft_event_info.pm_nevent; >>> } >>>=20 >>> for (; ev !=3D evfence; ev++) >>>=20 >>> Modified: head/lib/libpmc/pmc.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -223,6 +223,8 @@ and >>> CPUs. >>> .It Li PMC_CLASS_TSC >>> The timestamp counter on i386 and amd64 architecture CPUs. >>> +.It Li PMC_CLASS_SOFT >>> +Software events. >>> .El >>> .Ss PMC Capabilities >>> Capabilities of performance monitoring hardware are denoted using >>> @@ -525,6 +527,7 @@ API is >>> .Xr pmc.p4 3 , >>> .Xr pmc.p5 3 , >>> .Xr pmc.p6 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmclog 3 , >>> .Xr hwpmc 4 , >>>=20 >>> Modified: head/lib/libpmc/pmc.atom.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.atom.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.atom.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -1176,6 +1176,7 @@ and the underlying hardware events used >>> .Xr pmc.p4 3 , >>> .Xr pmc.p5 3 , >>> .Xr pmc.p6 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmc_cpuinfo 3 , >>> .Xr pmclog 3 , >>>=20 >>> Modified: head/lib/libpmc/pmc.core.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.core.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.core.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -792,6 +792,7 @@ may not count some transitions. >>> .Xr pmc.p4 3 , >>> .Xr pmc.p5 3 , >>> .Xr pmc.p6 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmclog 3 , >>> .Xr hwpmc 4 >>>=20 >>> Modified: head/lib/libpmc/pmc.core2.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.core2.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.core2.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -1107,6 +1107,7 @@ and the underlying hardware events used. >>> .Xr pmc.p4 3 , >>> .Xr pmc.p5 3 , >>> .Xr pmc.p6 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmc_cpuinfo 3 , >>> .Xr pmclog 3 , >>>=20 >>> Modified: head/lib/libpmc/pmc.corei7.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.corei7.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.corei7.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -1559,6 +1559,7 @@ Counts number of segment register loads. >>> .Xr pmc.corei7uc 3 , >>> .Xr pmc.westmere 3 , >>> .Xr pmc.westmereuc 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmc_cpuinfo 3 , >>> .Xr pmclog 3 , >>>=20 >>> Modified: head/lib/libpmc/pmc.corei7uc.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.corei7uc.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.corei7uc.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -863,6 +863,7 @@ refreshed or needs to go into a power do >>> .Xr pmc.corei7 3 , >>> .Xr pmc.westmere 3 , >>> .Xr pmc.westmereuc 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmc_cpuinfo 3 , >>> .Xr pmclog 3 , >>>=20 >>> Modified: head/lib/libpmc/pmc.iaf.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.iaf.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.iaf.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -132,6 +132,7 @@ CPU, use the event specifier >>> .Xr pmc.p4 3 , >>> .Xr pmc.p5 3 , >>> .Xr pmc.p6 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmc_cpuinfo 3 , >>> .Xr pmclog 3 , >>>=20 >>> Modified: head/lib/libpmc/pmc.k7.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.k7.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.k7.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -249,6 +249,7 @@ and the underlying hardware events used. >>> .Xr pmc.p4 3 , >>> .Xr pmc.p5 3 , >>> .Xr pmc.p6 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmclog 3 , >>> .Xr hwpmc 4 >>>=20 >>> Modified: head/lib/libpmc/pmc.k8.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.k8.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.k8.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -783,6 +783,7 @@ and the underlying hardware events used. >>> .Xr pmc.p4 3 , >>> .Xr pmc.p5 3 , >>> .Xr pmc.p6 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmclog 3 , >>> .Xr hwpmc 4 >>>=20 >>> Modified: head/lib/libpmc/pmc.mips24k.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.mips24k.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.mips24k.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -392,6 +392,7 @@ and the underlying hardware events used. >>> .Xr pmc.p4 3 , >>> .Xr pmc.p5 3 , >>> .Xr pmc.p6 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmc_cpuinfo 3 , >>> .Xr pmclog 3 , >>>=20 >>> Modified: head/lib/libpmc/pmc.octeon.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.octeon.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.octeon.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -232,6 +232,7 @@ and the underlying hardware events used. >>> .Xr pmc.p4 3 , >>> .Xr pmc.p5 3 , >>> .Xr pmc.p6 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmc_cpuinfo 3 , >>> .Xr pmclog 3 , >>>=20 >>> Modified: head/lib/libpmc/pmc.p4.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.p4.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.p4.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -1208,6 +1208,7 @@ and the underlying hardware events used. >>> .Xr pmc.k8 3 , >>> .Xr pmc.p5 3 , >>> .Xr pmc.p6 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmclog 3 , >>> .Xr hwpmc 4 >>>=20 >>> Modified: head/lib/libpmc/pmc.p5.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.p5.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.p5.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -444,6 +444,7 @@ and the underlying hardware events used. >>> .Xr pmc.k8 3 , >>> .Xr pmc.p4 3 , >>> .Xr pmc.p6 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmclog 3 , >>> .Xr hwpmc 4 >>>=20 >>> Modified: head/lib/libpmc/pmc.p6.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.p6.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.p6.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -1010,6 +1010,7 @@ and the underlying hardware events used. >>> .Xr pmc.k8 3 , >>> .Xr pmc.p4 3 , >>> .Xr pmc.p5 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmclog 3 , >>> .Xr hwpmc 4 >>>=20 >>> Modified: head/lib/libpmc/pmc.sandybridge.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.sandybridge.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.sandybridge.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -907,6 +907,7 @@ Split locks in SQ. >>> .Xr pmc.p5 3 , >>> .Xr pmc.p6 3 , >>> .Xr pmc.sandybridgeuc 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmc.ucf 3 , >>> .Xr pmc.westmere 3 , >>>=20 >>> Modified: head/lib/libpmc/pmc.sandybridgeuc.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.sandybridgeuc.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.sandybridgeuc.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -208,6 +208,7 @@ Counts the number of core-outgoing entri >>> .Xr pmc.p5 3 , >>> .Xr pmc.p6 3 , >>> .Xr pmc.sandybridge 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmc.ucf 3 , >>> .Xr pmc.westmere 3 , >>>=20 >>> Added: head/lib/libpmc/pmc.soft.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- /dev/null 00:00:00 1970 (empty, because file is newly added) >>> +++ head/lib/libpmc/pmc.soft.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -0,0 +1,104 @@ >>> +.\" Copyright (c) 2012 Fabien Thomas. All rights reserved. >>> +.\" >>> +.\" Redistribution and use in source and binary forms, with or = without >>> +.\" modification, are permitted provided that the following = conditions >>> +.\" are met: >>> +.\" 1. Redistributions of source code must retain the above = copyright >>> +.\" notice, this list of conditions and the following = disclaimer. >>> +.\" 2. Redistributions in binary form must reproduce the above = copyright >>> +.\" notice, this list of conditions and the following disclaimer = in the >>> +.\" documentation and/or other materials provided with the = distribution. >>> +.\" >>> +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS = IS'' AND >>> +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED = TO, THE >>> +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A = PARTICULAR PURPOSE >>> +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS = BE LIABLE >>> +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR = CONSEQUENTIAL >>> +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF = SUBSTITUTE GOODS >>> +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS = INTERRUPTION) >>> +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN = CONTRACT, STRICT >>> +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING = IN ANY WAY >>> +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE = POSSIBILITY OF >>> +.\" SUCH DAMAGE. >>> +.\" >>> +.\" $FreeBSD$ >>> +.\" >>> +.Dd March 28, 2012 >>> +.Os >>> +.Dt PMC.SOFT 3 >>> +.Sh NAME >>> +.Nm pmc.soft >>> +.Nd measurements using software based events >>> +.Sh LIBRARY >>> +.Lb libpmc >>> +.Sh SYNOPSIS >>> +.In pmc.h >>> +.Sh DESCRIPTION >>> +Software events are used to collect various source of software = events. >>> +.Ss PMC Features >>> +16 sampling counters using software events based on various = sources. >>> +These PMCs support the following capabilities: >>> +.Bl -column "PMC_CAP_INTERRUPT" "Support" >>> +.It Em Capability Ta Em Support >>> +.It PMC_CAP_CASCADE Ta \&No >>> +.It PMC_CAP_EDGE Ta \&No >>> +.It PMC_CAP_INTERRUPT Ta Yes >>> +.It PMC_CAP_INVERT Ta \&No >>> +.It PMC_CAP_READ Ta Yes >>> +.It PMC_CAP_PRECISE Ta \&No >>> +.It PMC_CAP_SYSTEM Ta Yes >>> +.It PMC_CAP_TAGGING Ta \&No >>> +.It PMC_CAP_THRESHOLD Ta \&No >>> +.It PMC_CAP_USER Ta Yes >>> +.It PMC_CAP_WRITE Ta Yes >>> +.El >>> +.Ss Event Qualifiers >>> +There is no supported event qualifier. >>> +.Pp >>> +The event specifiers supported by software are: >>> +.Bl -tag -width indent >>> +.It Li CLOCK.HARD >>> +Hard clock ticks. >>> +.It Li CLOCK.STAT >>> +Stat clock ticks. >>> +.It Li LOCK.FAILED >>> +Lock acquisition failed. >>> +.It Li PAGE_FAULT.ALL >>> +All page fault type. >>> +.It Li PAGE_FAULT.READ >>> +Read page fault. >>> +.It Li PAGE_FAULT.WRITE >>> +Write page fault. >>> +.El >>> +.Sh SEE ALSO >>> +.Xr pmc 3 , >>> +.Xr pmc.atom 3 , >>> +.Xr pmc.core 3 , >>> +.Xr pmc.iaf 3 , >>> +.Xr pmc.ucf 3 , >>> +.Xr pmc.k7 3 , >>> +.Xr pmc.k8 3 , >>> +.Xr pmc.p4 3 , >>> +.Xr pmc.p5 3 , >>> +.Xr pmc.p6 3 , >>> +.Xr pmc.corei7 3 , >>> +.Xr pmc.corei7uc 3 , >>> +.Xr pmc.westmereuc 3 , >>> +.Xr pmc.tsc 3 , >>> +.Xr pmc_cpuinfo 3 , >>> +.Xr pmclog 3 , >>> +.Xr hwpmc 4 >>> +.Sh HISTORY >>> +The >>> +.Nm pmc >>> +library first appeared in >>> +.Fx 6.0 . >>> +.Sh AUTHORS >>> +The >>> +.Lb libpmc >>> +library was written by >>> +.An "Joseph Koshy" >>> +.Aq jkoshy@FreeBSD.org . >>> +Software PMC was written by >>> +.An "Fabien Thomas" >>> +.Aq fabient@FreeBSD.org . >>>=20 >>> Modified: head/lib/libpmc/pmc.tsc.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.tsc.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.tsc.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -68,6 +68,7 @@ maps to the TSC. >>> .Xr pmc.p4 3 , >>> .Xr pmc.p5 3 , >>> .Xr pmc.p6 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmclog 3 , >>> .Xr hwpmc 4 >>> .Sh HISTORY >>>=20 >>> Modified: head/lib/libpmc/pmc.ucf.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.ucf.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.ucf.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -96,6 +96,7 @@ offset C0H under device number 0 and Fun >>> .Xr pmc.corei7uc 3 , >>> .Xr pmc.westmere 3 , >>> .Xr pmc.westmereuc 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmc_cpuinfo 3 , >>> .Xr pmclog 3 , >>>=20 >>> Modified: head/lib/libpmc/pmc.westmere.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.westmere.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.westmere.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -1381,6 +1381,7 @@ Counts number of SID integer 64 bit shif >>> .Xr pmc.corei7 3 , >>> .Xr pmc.corei7uc 3 , >>> .Xr pmc.westmereuc 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmc_cpuinfo 3 , >>> .Xr pmclog 3 , >>>=20 >>> Modified: head/lib/libpmc/pmc.westmereuc.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.westmereuc.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.westmereuc.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -1066,6 +1066,7 @@ disabled. >>> .Xr pmc.corei7 3 , >>> .Xr pmc.corei7uc 3 , >>> .Xr pmc.westmere 3 , >>> +.Xr pmc.soft 3 , >>> .Xr pmc.tsc 3 , >>> .Xr pmc_cpuinfo 3 , >>> .Xr pmclog 3 , >>>=20 >>> Modified: head/lib/libpmc/pmc.xscale.3 >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmc.xscale.3 Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmc.xscale.3 Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -134,6 +134,7 @@ and the underlying hardware events used. >>> .Xr pmc 3 , >>> .Xr pmc_cpuinfo 3 , >>> .Xr pmclog 3 , >>> +.Xr pmc.soft 3 , >>> .Xr hwpmc 4 >>> .Sh HISTORY >>> The >>>=20 >>> Modified: head/lib/libpmc/pmclog.c >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmclog.c Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmclog.c Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -369,6 +369,12 @@ pmclog_get_event(void *cookie, char **da >>> =3D=3D NULL) >>> goto error; >>> break; >>> + case PMCLOG_TYPE_PMCALLOCATEDYN: >>> + PMCLOG_READ32(le,ev->pl_u.pl_ad.pl_pmcid); >>> + PMCLOG_READ32(le,ev->pl_u.pl_ad.pl_event); >>> + PMCLOG_READ32(le,ev->pl_u.pl_ad.pl_flags); >>> + = PMCLOG_READSTRING(le,ev->pl_u.pl_ad.pl_evname,PMC_NAME_MAX); >>> + break; >>> case PMCLOG_TYPE_PMCATTACH: >>> PMCLOG_GET_PATHLEN(pathlen,evlen,pmclog_pmcattach); >>> PMCLOG_READ32(le,ev->pl_u.pl_t.pl_pmcid); >>>=20 >>> Modified: head/lib/libpmc/pmclog.h >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/lib/libpmc/pmclog.h Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/lib/libpmc/pmclog.h Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -88,6 +88,13 @@ struct pmclog_ev_pmcallocate { >>> pmc_id_t pl_pmcid; >>> }; >>>=20 >>> +struct pmclog_ev_pmcallocatedyn { >>> + uint32_t pl_event; >>> + char pl_evname[PMC_NAME_MAX]; >>> + uint32_t pl_flags; >>> + pmc_id_t pl_pmcid; >>> +}; >>> + >>> struct pmclog_ev_pmcattach { >>> pmc_id_t pl_pmcid; >>> pid_t pl_pid; >>> @@ -146,6 +153,7 @@ struct pmclog_ev { >>> struct pmclog_ev_map_out pl_mo; >>> struct pmclog_ev_pcsample pl_s; >>> struct pmclog_ev_pmcallocate pl_a; >>> + struct pmclog_ev_pmcallocatedyn pl_ad; >>> struct pmclog_ev_pmcattach pl_t; >>> struct pmclog_ev_pmcdetach pl_d; >>> struct pmclog_ev_proccsw pl_c; >>>=20 >>> Modified: head/sys/amd64/amd64/trap.c >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/amd64/amd64/trap.c Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/sys/amd64/amd64/trap.c Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -71,6 +71,9 @@ __FBSDID("$FreeBSD$"); >>> #include >>> #ifdef HWPMC_HOOKS >>> #include >>> +PMC_SOFT_DEFINE( , , page_fault, all); >>> +PMC_SOFT_DEFINE( , , page_fault, read); >>> +PMC_SOFT_DEFINE( , , page_fault, write); >>> #endif >>>=20 >>> #include >>> @@ -743,8 +746,20 @@ trap_pfault(frame, usermode) >>> */ >>> rv =3D vm_fault(map, va, ftype, VM_FAULT_NORMAL); >>> } >>> - if (rv =3D=3D KERN_SUCCESS) >>> + if (rv =3D=3D KERN_SUCCESS) { >>> +#ifdef HWPMC_HOOKS >>> + if (ftype =3D=3D VM_PROT_READ || ftype =3D=3D = VM_PROT_WRITE) { >>> + PMC_SOFT_CALL_TF( , , page_fault, all, = frame); >>> + if (ftype =3D=3D VM_PROT_READ) >>> + PMC_SOFT_CALL_TF( , , page_fault, = read, >>> + frame); >>> + else >>> + PMC_SOFT_CALL_TF( , , page_fault, = write, >>> + frame); >>> + } >>> +#endif >>> return (0); >>> + } >>> nogo: >>> if (!usermode) { >>> if (td->td_intr_nesting_level =3D=3D 0 && >>>=20 >>> Modified: head/sys/amd64/include/pmc_mdep.h >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/amd64/include/pmc_mdep.h Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/sys/amd64/include/pmc_mdep.h Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -50,13 +50,13 @@ struct pmc_mdep; >>> * measurement architecture have PMCs of the following classes: TSC, >>> * IAF, IAP, UCF and UCP. >>> */ >>> -#define PMC_MDEP_CLASS_INDEX_TSC 0 >>> -#define PMC_MDEP_CLASS_INDEX_K8 1 >>> -#define PMC_MDEP_CLASS_INDEX_P4 1 >>> -#define PMC_MDEP_CLASS_INDEX_IAP 1 >>> -#define PMC_MDEP_CLASS_INDEX_IAF 2 >>> -#define PMC_MDEP_CLASS_INDEX_UCP 3 >>> -#define PMC_MDEP_CLASS_INDEX_UCF 4 >>> +#define PMC_MDEP_CLASS_INDEX_TSC 1 >>> +#define PMC_MDEP_CLASS_INDEX_K8 2 >>> +#define PMC_MDEP_CLASS_INDEX_P4 2 >>> +#define PMC_MDEP_CLASS_INDEX_IAP 2 >>> +#define PMC_MDEP_CLASS_INDEX_IAF 3 >>> +#define PMC_MDEP_CLASS_INDEX_UCP 4 >>> +#define PMC_MDEP_CLASS_INDEX_UCF 5 >>>=20 >>> /* >>> * On the amd64 platform we support the following PMCs. >>> @@ -119,6 +119,15 @@ union pmc_md_pmc { >>>=20 >>> #define PMC_IN_USERSPACE(va) ((va) <=3D VM_MAXUSER_ADDRESS) >>>=20 >>> +/* Build a fake kernel trapframe from current instruction pointer. = */ >>> +#define PMC_FAKE_TRAPFRAME(TF) = \ >>> + do { = \ >>> + (TF)->tf_cs =3D 0; (TF)->tf_rflags =3D 0; = \ >>> + __asm __volatile("movq %%rbp,%0" : "=3Dr" ((TF)->tf_rbp)); = \ >>> + __asm __volatile("movq %%rsp,%0" : "=3Dr" ((TF)->tf_rsp)); = \ >>> + __asm __volatile("call 1f \n\t1: pop %0" : = "=3Dr"((TF)->tf_rip)); \ >>> + } while (0) >>> + >>> /* >>> * Prototypes >>> */ >>>=20 >>> Modified: head/sys/arm/include/pmc_mdep.h >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/arm/include/pmc_mdep.h Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/sys/arm/include/pmc_mdep.h Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -29,7 +29,7 @@ >>> #ifndef _MACHINE_PMC_MDEP_H_ >>> #define _MACHINE_PMC_MDEP_H_ >>>=20 >>> -#define PMC_MDEP_CLASS_INDEX_XSCALE 0 >>> +#define PMC_MDEP_CLASS_INDEX_XSCALE 1 >>> /* >>> * On the ARM platform we support the following PMCs. >>> * >>>=20 >>> Modified: head/sys/conf/files >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/conf/files Wed Mar 28 20:49:11 2012 (r233627) >>> +++ head/sys/conf/files Wed Mar 28 20:58:30 2012 (r233628) >>> @@ -1260,6 +1260,7 @@ dev/hme/if_hme_sbus.c optional hme = sbus >>> dev/hptiop/hptiop.c optional hptiop scbus >>> dev/hwpmc/hwpmc_logging.c optional hwpmc >>> dev/hwpmc/hwpmc_mod.c optional hwpmc >>> +dev/hwpmc/hwpmc_soft.c optional hwpmc >>> dev/ichsmb/ichsmb.c optional ichsmb >>> dev/ichsmb/ichsmb_pci.c optional ichsmb pci >>> dev/ida/ida.c optional ida >>>=20 >>> Modified: head/sys/dev/hwpmc/hwpmc_amd.c >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/dev/hwpmc/hwpmc_amd.c Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/sys/dev/hwpmc/hwpmc_amd.c Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -687,7 +687,8 @@ amd_intr(int cpu, struct trapframe *tf) >>> wrmsr(perfctr, AMD_RELOAD_COUNT_TO_PERFCTR_VALUE(v)); >>>=20 >>> /* Restart the counter if logging succeeded. */ >>> - error =3D pmc_process_interrupt(cpu, pm, tf, = TRAPF_USERMODE(tf)); >>> + error =3D pmc_process_interrupt(cpu, PMC_HR, pm, tf, >>> + TRAPF_USERMODE(tf)); >>> if (error =3D=3D 0) >>> wrmsr(evsel, config | AMD_PMC_ENABLE); >>> } >>> @@ -874,7 +875,7 @@ amd_pcpu_fini(struct pmc_mdep *md, int c >>> struct pmc_mdep * >>> pmc_amd_initialize(void) >>> { >>> - int classindex, error, i, nclasses, ncpus; >>> + int classindex, error, i, ncpus; >>> struct pmc_classdep *pcd; >>> enum pmc_cputype cputype; >>> struct pmc_mdep *pmc_mdep; >>> @@ -926,12 +927,9 @@ pmc_amd_initialize(void) >>> * These processors have two classes of PMCs: the TSC and >>> * programmable PMCs. >>> */ >>> - nclasses =3D 2; >>> - pmc_mdep =3D malloc(sizeof(struct pmc_mdep) + nclasses * = sizeof (struct pmc_classdep), >>> - M_PMC, M_WAITOK|M_ZERO); >>> + pmc_mdep =3D pmc_mdep_alloc(2); >>>=20 >>> pmc_mdep->pmd_cputype =3D cputype; >>> - pmc_mdep->pmd_nclass =3D nclasses; >>>=20 >>> ncpus =3D pmc_cpu_max(); >>>=20 >>>=20 >>> Modified: head/sys/dev/hwpmc/hwpmc_core.c >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/dev/hwpmc/hwpmc_core.c Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/sys/dev/hwpmc/hwpmc_core.c Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -2239,7 +2239,7 @@ core_intr(int cpu, struct trapframe *tf) >>> if (pm->pm_state !=3D PMC_STATE_RUNNING) >>> continue; >>>=20 >>> - error =3D pmc_process_interrupt(cpu, pm, tf, >>> + error =3D pmc_process_interrupt(cpu, PMC_HR, pm, tf, >>> TRAPF_USERMODE(tf)); >>>=20 >>> v =3D pm->pm_sc.pm_reloadcount; >>> @@ -2326,7 +2326,7 @@ core2_intr(int cpu, struct trapframe *tf >>> !PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm))) >>> continue; >>>=20 >>> - error =3D pmc_process_interrupt(cpu, pm, tf, >>> + error =3D pmc_process_interrupt(cpu, PMC_HR, pm, tf, >>> TRAPF_USERMODE(tf)); >>> if (error) >>> intrenable &=3D ~flag; >>> @@ -2354,7 +2354,7 @@ core2_intr(int cpu, struct trapframe *tf >>> !PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm))) >>> continue; >>>=20 >>> - error =3D pmc_process_interrupt(cpu, pm, tf, >>> + error =3D pmc_process_interrupt(cpu, PMC_HR, pm, tf, >>> TRAPF_USERMODE(tf)); >>> if (error) >>> intrenable &=3D ~flag; >>>=20 >>> Modified: head/sys/dev/hwpmc/hwpmc_intel.c >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/dev/hwpmc/hwpmc_intel.c Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/sys/dev/hwpmc/hwpmc_intel.c Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -162,12 +162,10 @@ pmc_intel_initialize(void) >>> return (NULL); >>> } >>>=20 >>> - pmc_mdep =3D malloc(sizeof(struct pmc_mdep) + nclasses * >>> - sizeof(struct pmc_classdep), M_PMC, M_WAITOK|M_ZERO); >>> + /* Allocate base class and initialize machine dependent = struct */ >>> + pmc_mdep =3D pmc_mdep_alloc(nclasses); >>>=20 >>> pmc_mdep->pmd_cputype =3D cputype; >>> - pmc_mdep->pmd_nclass =3D nclasses; >>> - >>> pmc_mdep->pmd_switch_in =3D intel_switch_in; >>> pmc_mdep->pmd_switch_out =3D intel_switch_out; >>>=20 >>>=20 >>> Modified: head/sys/dev/hwpmc/hwpmc_logging.c >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/dev/hwpmc/hwpmc_logging.c Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/sys/dev/hwpmc/hwpmc_logging.c Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -129,6 +129,7 @@ static struct mtx pmc_kthread_mtx; /* sl >>>=20 >>> /* Emit a string. Caution: does NOT update _le, so needs to be = last */ >>> #define PMCLOG_EMITSTRING(S,L) do { bcopy((S), _le, (L)); } = while (0) >>> +#define PMCLOG_EMITNULLSTRING(L) do { bzero(_le, (L)); } = while (0) >>>=20 >>> #define PMCLOG_DESPATCH(PO) = \ >>> pmclog_release((PO)); = \ >>> @@ -835,16 +836,33 @@ void >>> pmclog_process_pmcallocate(struct pmc *pm) >>> { >>> struct pmc_owner *po; >>> + struct pmc_soft *ps; >>>=20 >>> po =3D pm->pm_owner; >>>=20 >>> PMCDBG(LOG,ALL,1, "pm=3D%p", pm); >>>=20 >>> - PMCLOG_RESERVE(po, PMCALLOCATE, sizeof(struct = pmclog_pmcallocate)); >>> - PMCLOG_EMIT32(pm->pm_id); >>> - PMCLOG_EMIT32(pm->pm_event); >>> - PMCLOG_EMIT32(pm->pm_flags); >>> - PMCLOG_DESPATCH(po); >>> + if (PMC_TO_CLASS(pm) =3D=3D PMC_CLASS_SOFT) { >>> + PMCLOG_RESERVE(po, PMCALLOCATEDYN, >>> + sizeof(struct pmclog_pmcallocatedyn)); >>> + PMCLOG_EMIT32(pm->pm_id); >>> + PMCLOG_EMIT32(pm->pm_event); >>> + PMCLOG_EMIT32(pm->pm_flags); >>> + ps =3D pmc_soft_ev_acquire(pm->pm_event); >>> + if (ps !=3D NULL) >>> + = PMCLOG_EMITSTRING(ps->ps_ev.pm_ev_name,PMC_NAME_MAX); >>> + else >>> + PMCLOG_EMITNULLSTRING(PMC_NAME_MAX); >>> + pmc_soft_ev_release(ps); >>> + PMCLOG_DESPATCH(po); >>> + } else { >>> + PMCLOG_RESERVE(po, PMCALLOCATE, >>> + sizeof(struct pmclog_pmcallocate)); >>> + PMCLOG_EMIT32(pm->pm_id); >>> + PMCLOG_EMIT32(pm->pm_event); >>> + PMCLOG_EMIT32(pm->pm_flags); >>> + PMCLOG_DESPATCH(po); >>> + } >>> } >>>=20 >>> void >>>=20 >>> Modified: head/sys/dev/hwpmc/hwpmc_mips.c >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/dev/hwpmc/hwpmc_mips.c Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/sys/dev/hwpmc/hwpmc_mips.c Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -287,7 +287,7 @@ mips_pmc_intr(int cpu, struct trapframe >>> retval =3D 1; >>> if (pm->pm_state !=3D PMC_STATE_RUNNING) >>> continue; >>> - error =3D pmc_process_interrupt(cpu, pm, tf, >>> + error =3D pmc_process_interrupt(cpu, PMC_HR, pm, tf, >>> TRAPF_USERMODE(tf)); >>> if (error) { >>> /* Clear/disable the relevant counter */ >>>=20 >>> Modified: head/sys/dev/hwpmc/hwpmc_mod.c >>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>> --- head/sys/dev/hwpmc/hwpmc_mod.c Wed Mar 28 20:49:11 2012 = (r233627) >>> +++ head/sys/dev/hwpmc/hwpmc_mod.c Wed Mar 28 20:58:30 2012 = (r233628) >>> @@ -70,6 +70,8 @@ __FBSDID("$FreeBSD$"); >>> #include >>> #include >>>=20 >>> +#include "hwpmc_soft.h" >>> + >>> /* >>> * Types >>> */ >>> @@ -182,7 +184,7 @@ static int pmc_attach_one_process(struct >>> static int pmc_can_allocate_rowindex(struct proc *p, unsigned = int ri, >>> int cpu); >>> static int pmc_can_attach(struct pmc *pm, struct proc *p); >>> -static void pmc_capture_user_callchain(int cpu, struct trapframe = *tf); >>> +static void pmc_capture_user_callchain(int cpu, int soft, struct = trapframe *tf); >>> static void pmc_cleanup(void); >>> static int pmc_detach_process(struct proc *p, struct pmc *pm); >>> static int pmc_detach_one_process(struct proc *p, struct pmc = *pm, >>> @@ -206,7 +208,7 @@ static void pmc_process_csw_out(struct t >>> static void pmc_process_exit(void *arg, struct proc *p); >>> static void pmc_process_fork(void *arg, struct proc *p1, >>> struct proc *p2, int n); >>> -static void pmc_process_samples(int cpu); >>> +static void pmc_process_samples(int cpu, int soft); >>> static void pmc_release_pmc_descriptor(struct pmc *pmc); >>> static void pmc_remove_owner(struct pmc_owner *po); >>> static void pmc_remove_process_descriptor(struct pmc_process = *pp); >>> @@ -218,12 +220,16 @@ static int pmc_stop(struct pmc *pm); >>> static int pmc_syscall_handler(struct thread *td, void = *syscall_args); >>> static void pmc_unlink_target_process(struct pmc *pmc, >>> struct pmc_process *pp); >>> +static int generic_switch_in(struct pmc_cpu *pc, struct pmc_process = *pp); >>> +static int generic_switch_out(struct pmc_cpu *pc, struct = pmc_process *pp); >>> +static struct pmc_mdep *pmc_generic_cpu_initialize(void); >>> +static void pmc_generic_cpu_finalize(struct pmc_mdep *md); >>>=20 >>> /* >>> * Kernel tunables and sysctl(8) interface. >>> */ >>>=20 >>> -SYSCTL_NODE(_kern, OID_AUTO, hwpmc, CTLFLAG_RW, 0, "HWPMC = parameters"); >>> +SYSCTL_DECL(_kern_hwpmc); >>>=20 >>> static int pmc_callchaindepth =3D PMC_CALLCHAIN_DEPTH; >>> TUNABLE_INT(PMC_SYSCTL_NAME_PREFIX "callchaindepth", = &pmc_callchaindepth); >>> @@ -1833,7 +1839,9 @@ const char *pmc_hooknames[] =3D { >>> "KLDUNLOAD", >>> "MMAP", >>> "MUNMAP", >>> - "CALLCHAIN" >>> + "CALLCHAIN-NMI", >>> + "CALLCHAIN-SOFT", >>> + "SOFTSAMPLING" >>> }; >>> #endif >>>=20 >>> @@ -1992,7 +2000,8 @@ pmc_hook_handler(struct thread *td, int >>> * lose the interrupt sample. >>> */ >>> CPU_CLR_ATOMIC(PCPU_GET(cpuid), &pmc_cpumask); >>> - pmc_process_samples(PCPU_GET(cpuid)); >>> + pmc_process_samples(PCPU_GET(cpuid), PMC_HR); >>> + pmc_process_samples(PCPU_GET(cpuid), PMC_SR); >>> break; >>>=20 >>>=20 >>> @@ -2022,11 +2031,30 @@ pmc_hook_handler(struct thread *td, int >>> */ >>> KASSERT(td =3D=3D curthread, ("[pmc,%d] td !=3D = curthread", >>> __LINE__)); >>> - pmc_capture_user_callchain(PCPU_GET(cpuid), >>> + >>> + pmc_capture_user_callchain(PCPU_GET(cpuid), PMC_HR, >>> (struct trapframe *) arg); >>> td->td_pflags &=3D ~TDP_CALLCHAIN; >>> break; >>>=20 >>> + case PMC_FN_USER_CALLCHAIN_SOFT: >>> + /* >>> + * Record a call chain. >>> + */ >>> + KASSERT(td =3D=3D curthread, ("[pmc,%d] td !=3D = curthread", >>> + __LINE__)); >>> + pmc_capture_user_callchain(PCPU_GET(cpuid), PMC_SR, >>> + (struct trapframe *) arg); >>> + td->td_pflags &=3D ~TDP_CALLCHAIN; >>> + break; >>> + >>> + case PMC_FN_SOFT_SAMPLING: >>> + /* >>> + * Call soft PMC sampling intr. >>> + */ >>> + pmc_soft_intr((struct pmckern_soft *) arg); >>> + break; >>> + >>> default: >>> #ifdef DEBUG >>> KASSERT(0, ("[pmc,%d] unknown hook %d\n", __LINE__, = function)); >>> @@ -2221,18 +2249,17 @@ pmc_destroy_pmc_descriptor(struct pmc *p >>> static void >>> pmc_wait_for_pmc_idle(struct pmc *pm) >>> { >>> -#ifdef DEBUG >>> +#ifdef DEBUG >>> volatile int maxloop; >>>=20 >>> maxloop =3D 100 * pmc_cpu_max(); >>> #endif >>> - >>> /* >>> * Loop (with a forced context switch) till the PMC's = runcount >>> * comes down to zero. >>> */ >>> while (atomic_load_acq_32(&pm->pm_runcount) > 0) { >>> -#ifdef DEBUG >>> +#ifdef DEBUG >>> maxloop--; >>> KASSERT(maxloop > 0, >>> ("[pmc,%d] (ri%d, rc%d) waiting too long for " >>> @@ -2972,6 +2999,53 @@ pmc_syscall_handler(struct thread *td, v >>> } >>> break; >>>=20 >>> + /* >>> + * Retrieve soft events list. >>> + */ >>> + case PMC_OP_GETDYNEVENTINFO: >>> + { >>> + enum pmc_class cl; >>> + enum pmc_event ev; >>> + struct pmc_op_getdyneventinfo *gei; >>> + struct pmc_dyn_event_descr dev; >>> + struct pmc_soft *ps; >>> + uint32_t nevent; >>> + >>> + sx_assert(&pmc_sx, SX_LOCKED); >>> + >>> + gei =3D (struct pmc_op_getdyneventinfo *) arg; >>> + >>> + if ((error =3D copyin(&gei->pm_class, &cl, = sizeof(cl))) !=3D 0) >>> + break; >>> + >>> + /* Only SOFT class is dynamic. */ >>> + if (cl !=3D PMC_CLASS_SOFT) { >>> + error =3D EINVAL; >>> + break; >>> + } >>> + >>> + nevent =3D 0; >>> + for (ev =3D PMC_EV_SOFT_FIRST; ev <=3D = PMC_EV_SOFT_LAST; ev++) { >>> + ps =3D pmc_soft_ev_acquire(ev); >>> + if (ps =3D=3D NULL) >>> + continue; >>> + bcopy(&ps->ps_ev, &dev, sizeof(dev)); >>> + pmc_soft_ev_release(ps); >>> + >>> + error =3D copyout(&dev, >>> + &gei->pm_events[nevent], >>> + sizeof(struct pmc_dyn_event_descr)); >>> + if (error !=3D 0) >>> + break; >>> + nevent++; >>> + } >>> + if (error !=3D 0) >>> + break; >>> + >>> + error =3D copyout(&nevent, &gei->pm_nevent, >>>=20 >>> *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** >=20 >=20 >=20 > --=20 > Monthadar Al Jaberi > --Apple-Mail=_0FFE1445-1962-4A52-A902-4106C0401133-- --Apple-Mail=_24EA901A-324C-4465-880C-9C948861B2D8-- From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 08:06:44 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E320D106564A; Mon, 23 Apr 2012 08:06:44 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id 7409D8FC12; Mon, 23 Apr 2012 08:06:43 +0000 (UTC) Received: by weyt57 with SMTP id t57so736767wey.13 for ; Mon, 23 Apr 2012 01:06:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=TRmRQFOPcbm0jOjVEA5z98WYI/6AgEpsL4qftn+/ES4=; b=Ah8RP20px8Umq6zozUuYg10y4TVRsUIh4ozdiqljoHN7iuePaJvmLjCBbIZi50qyMO FYh3iXtHnKsl3AgoxbeQDhBfA6JUhEzUqQ3yWTPprNTpYKce8wPGxsfqCoFg3s74Zac2 +sDmvgVqgAi0DIdPrR3L7xwfBigZj6EIjvgji4QWpRtB4RNnN1a1+roD1K+hZ5bT9oKI adragkIpPI4TRpvVGjvrBX57qOApHa2LGy0zActWSc84BtYCbsl/IOPaUOs1KyHKRfNX wc4HOKDcER5W4EbXwImlnPgV7bEWz2F62E3tirjfyEMOKomaMfxSFIef9UYRZ/33jRJM /t6w== MIME-Version: 1.0 Received: by 10.216.135.219 with SMTP id u69mr9025316wei.89.1335168402280; Mon, 23 Apr 2012 01:06:42 -0700 (PDT) Received: by 10.223.155.74 with HTTP; Mon, 23 Apr 2012 01:06:42 -0700 (PDT) In-Reply-To: <25D59FAA-D52A-42FB-8120-66467863AB0B@netasq.com> References: <201203282058.q2SKwVsJ053900@svn.freebsd.org> <25D59FAA-D52A-42FB-8120-66467863AB0B@netasq.com> Date: Mon, 23 Apr 2012 10:06:42 +0200 Message-ID: From: Monthadar Al Jaberi To: Fabien Thomas Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: monthadar@freebsd.org, Adrian Chadd , freebsd-current , Fabien Thomas , freebsd-mips@freebsd.org Subject: Re: svn commit: r233628 - in head: lib/libpmc sys/amd64/amd64 sys/amd64/include sys/arm/include sys/conf sys/dev/hwpmc sys/i386/i386 sys/i386/include sys/kern sys/mips/include sys/modules/hwpmc sys/pow... X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 08:06:45 -0000 On Mon, Apr 23, 2012 at 9:47 AM, Fabien Thomas w= rote: > Hi, > > The rumors seems true :) > Can you try the patch attached (I cannot test as i've no MIPS hardware) ? my RSPRO boots fine now, thank you :) > > Thanks, > Fabien > > >> On Mon, Apr 23, 2012 at 8:44 AM, Adrian Chadd wrote= : >>> Hi Fabien, >>> >>> I've heard some rumours that this broke hwpmc support for mips24k. >>> >>> Monthadar, can you please provide some background info for this? >>> >> >> This is the log output >> >> Using default protocol (TFTP) >> Entry point: 0x80050100, address range: 0x80050000-0x804f1dcc >> RedBoot> exec >> Now booting linux kernel: >> Base address 0x80050000 Entry 0x80050100 >> memsize=3D0x08000000 >> modetty0=3D0,n,8,1,hw >> board=3DRouterStation PRO >> ethaddr=3D00.15.6d.c8.c9.2e >> CPU platform: Atheros AR7161 rev 2 >> CPU Frequency=3D720 MHz >> CPU DDR Frequency=3D360 MHz >> CPU AHB Frequency=3D180 MHz >> platform frequency: 720000000 >> arguments: >> =C2=A0a0 =3D 00000002 >> =C2=A0a1 =3D 80050028 >> =C2=A0a2 =3D 80050000 >> =C2=A0a3 =3D 00000001 >> Cmd line: =C2=A0=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD= =EF=BF=BDm=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD= =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD_}= =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=DF=BEq=EF=BF=BD=EF= =BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD =EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD= =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=DF=BF=EF=BF=BD=EF=BF= =BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD_=EF=BF= =BDw=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD?-=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD{=EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD=EF=BF=BD=EF=BF=BD~=EF=BF=BD=EF=BF=BD >> Environment: >> =C2=A0memsize =3D 0x08000000 >> =C2=A0modetty0 =3D 0,n,8,1,hw >> =C2=A0ethaddr =3D 00.15.6d.c8.c9.2e >> =C2=A0board =3D RouterStation PRO >> Cache info: >> =C2=A0picache_stride =C2=A0 =C2=A0=3D 4096 >> =C2=A0picache_loopcount =3D 16 >> =C2=A0pdcache_stride =C2=A0 =C2=A0=3D 4096 >> =C2=A0pdcache_loopcount =3D 8 >> cpu0: MIPS Technologies processor v116.147 >> =C2=A0MMU: Standard TLB, 16 entries >> =C2=A0L1 i-cache: 4 ways of 512 sets, 32 bytes per line >> =C2=A0L1 d-cache: 4 ways of 256 sets, 32 bytes per line >> =C2=A0Config1=3D0x9ee3519e >> =C2=A0Config3=3D0x20 >> KDB: debugger backends: ddb >> KDB: current backend: ddb >> Copyright (c) 1992-2012 The FreeBSD Project. >> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 >> =C2=A0 =C2=A0 =C2=A0 The Regents of the University of California. All ri= ghts reserved. >> FreeBSD is a registered trademark of The FreeBSD Foundation. >> FreeBSD 10.0-CURRENT #12: Fri Apr 20 18:03:16 CEST 2012 >> =C2=A0 =C2=A0root@freebsd-re-9:/usr/obj/mips.mips/usr/src/sys/RSPRO_USB_= PROD mips >> WARNING: WITNESS option enabled, expect reduced performance. >> MEMGUARD DEBUGGING ALLOCATOR INITIALIZED: >> =C2=A0 =C2=A0 =C2=A0 MEMGUARD map base: 0xc0800000 >> =C2=A0 =C2=A0 =C2=A0 MEMGUARD map limit: 0xc1c00000 >> =C2=A0 =C2=A0 =C2=A0 MEMGUARD map size: 20480 KBytes >> real memory =C2=A0=3D 134217728 (131072K bytes) >> avail memory =3D 123117568 (117MB) >> random device not loaded; using insecure entropy >> nexus0: >> clock0: on nexus0 >> Timecounter "MIPS32" frequency 360000000 Hz quality 800 >> Event timer "MIPS32" frequency 360000000 Hz quality 800 >> apb0 at irq 4 on nexus0 >> uart0: <16550 or compatible> on apb0 >> uart0: console (115200,n,8,1) >> gpio0: on apb0 >> gpio0: [GIANT-LOCKED] >> gpio0: gpio pinmask=3D0x0 >> gpioc0: on gpio0 >> gpiobus0: on gpio0 >> ehci0: at mem >> 0x1b000000-0x1bffffff irq 1 on nexus0 >> usbus0: set host controller mode >> usbus0: EHCI version 1.0 >> usbus0: set host controller mode >> usbus0 on ehci0 >> pcib0 at irq 0 on nexus0 >> pci0: on pcib0 >> pci0: at device 0.0 (no driver attached) >> ath0: irq 0 at device 17.0 on pci0 >> ath0: AR5413 mac 10.5 RF5413 phy 6.1 >> ath0: 2GHz radio: 0x0000; 5GHz radio: 0x0063 >> arge0: at mem >> 0x19000000-0x19000fff irq 2 on nexus0 >> arge0: No PHY specified, using mask 16 >> miibus0: on arge0 >> ukphy0: PHY 4 on miibus0 >> ukphy0: =C2=A0none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, >> 1000baseT-FDX, 1000baseT-FDX-master, auto >> arge0: Ethernet address: 00:15:6d:c8:c9:2e >> arge1: at mem >> 0x1a000000-0x1a000fff irq 3 on nexus0 >> arge1: No PHY specified, using mask 15 >> arge1: Ethernet address: 00:15:6d:c8:c9:2f >> spi0: at mem 0x1f000000-0x1f00000f on nexus0 >> spibus0: on spi0 >> mx25l0: at cs 0 on spibus0 >> mx25l0: mx25ll128, sector 65536 bytes, 256 sectors >> ar71xx_wdog0: on nexus0 >> Timecounters tick every 1.000 msec >> usbus0: 480Mbps High Speed USB v2.0 >> ugen0.1: at usbus0 >> uhub0: on usbu= s0 >> panic: [pmc,4816] npmc miscomputed: ri=3D0, md->npmc=3D2 >> KDB: enter: panic >> [ thread pid 0 tid 100000 ] >> Stopped at =C2=A0 =C2=A0 =C2=A0kdb_enter+0x4c: lui =C2=A0 =C2=A0 at,0x80= 50 >> db> tr >> Tracing pid 0 tid 100000 td 0x804f76d0 >> db_trace_thread+30 (?,?,?,?) ra 8068b94800000018 sp 0 sz 0 >> 80075adc+114 (0,?,ffffffff,?) ra 8068b96000000020 sp 100000000 sz 1 >> 80074e24+388 (?,?,?,?) ra 8068b980000000a8 sp 0 sz 0 >> db_command_loop+70 (?,?,?,?) ra 8068ba2800000018 sp 0 sz 0 >> 80077900+f4 (?,?,?,?) ra 8068ba40000001a8 sp 0 sz 0 >> kdb_trap+110 (?,?,?,?) ra 8068bbe800000030 sp 0 sz 0 >> trap+c7c (?,?,?,?) ra 8068bc18000000b8 sp 0 sz 0 >> MipsKernGenException+134 (0,4,8043b1d4,119) ra 8068bcd0000000c8 sp >> 100000001 sz 1 >> kdb_enter+4c (?,?,?,?) ra 8068bd9800000018 sp 0 sz 0 >> panic+11c (?,12d0,0,2) ra 8068bdb000000028 sp 1 sz 1 >> 800e8ca8+274 (?,?,?,?) ra 8068bdd800000038 sp 0 sz 0 >> syscall_module_handler+b8 (?,?,?,?) ra 8068be1000000028 sp 0 sz 0 >> module_register_init+9c (?,?,?,?) ra 8068be3800000028 sp 0 sz 0 >> mi_startup+138 (?,?,?,?) ra 8068be6000000020 sp 0 sz 0 >> _start+90 (?,?,?,?) ra 8068be8000000000 sp 0 sz 0 >> pid 0 >> db> >> >>> Thanks, >>> >>> >>> >>> adrian >>> >>> On 28 March 2012 13:58, Fabien Thomas wrote: >>>> Author: fabient >>>> Date: Wed Mar 28 20:58:30 2012 >>>> New Revision: 233628 >>>> URL: http://svn.freebsd.org/changeset/base/233628 >>>> >>>> Log: >>>> =C2=A0Add software PMC support. >>>> >>>> =C2=A0New kernel events can be added at various location for sampling = or counting. >>>> =C2=A0This will for example allow easy system profiling whatever the p= rocessor is >>>> =C2=A0with known tools like pmcstat(8). >>>> >>>> =C2=A0Simultaneous usage of software PMC and hardware PMC is possible,= for example >>>> =C2=A0looking at the lock acquire failure, page fault while sampling o= n >>>> =C2=A0instructions. >>>> >>>> =C2=A0Sponsored by: NETASQ >>>> =C2=A0MFC after: =C2=A0 =C2=A01 month >>>> >>>> Added: >>>> =C2=A0head/lib/libpmc/pmc.soft.3 =C2=A0 (contents, props changed) >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_soft.c =C2=A0 (contents, props changed) >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_soft.h =C2=A0 (contents, props changed) >>>> Modified: >>>> =C2=A0head/lib/libpmc/Makefile >>>> =C2=A0head/lib/libpmc/libpmc.c >>>> =C2=A0head/lib/libpmc/pmc.3 >>>> =C2=A0head/lib/libpmc/pmc.atom.3 >>>> =C2=A0head/lib/libpmc/pmc.core.3 >>>> =C2=A0head/lib/libpmc/pmc.core2.3 >>>> =C2=A0head/lib/libpmc/pmc.corei7.3 >>>> =C2=A0head/lib/libpmc/pmc.corei7uc.3 >>>> =C2=A0head/lib/libpmc/pmc.iaf.3 >>>> =C2=A0head/lib/libpmc/pmc.k7.3 >>>> =C2=A0head/lib/libpmc/pmc.k8.3 >>>> =C2=A0head/lib/libpmc/pmc.mips24k.3 >>>> =C2=A0head/lib/libpmc/pmc.octeon.3 >>>> =C2=A0head/lib/libpmc/pmc.p4.3 >>>> =C2=A0head/lib/libpmc/pmc.p5.3 >>>> =C2=A0head/lib/libpmc/pmc.p6.3 >>>> =C2=A0head/lib/libpmc/pmc.sandybridge.3 >>>> =C2=A0head/lib/libpmc/pmc.sandybridgeuc.3 >>>> =C2=A0head/lib/libpmc/pmc.tsc.3 >>>> =C2=A0head/lib/libpmc/pmc.ucf.3 >>>> =C2=A0head/lib/libpmc/pmc.westmere.3 >>>> =C2=A0head/lib/libpmc/pmc.westmereuc.3 >>>> =C2=A0head/lib/libpmc/pmc.xscale.3 >>>> =C2=A0head/lib/libpmc/pmclog.c >>>> =C2=A0head/lib/libpmc/pmclog.h >>>> =C2=A0head/sys/amd64/amd64/trap.c >>>> =C2=A0head/sys/amd64/include/pmc_mdep.h >>>> =C2=A0head/sys/arm/include/pmc_mdep.h >>>> =C2=A0head/sys/conf/files >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_amd.c >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_core.c >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_intel.c >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_logging.c >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_mips.c >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_mod.c >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_piv.c >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_powerpc.c >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_ppro.c >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_tsc.c >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_x86.c >>>> =C2=A0head/sys/dev/hwpmc/hwpmc_xscale.c >>>> =C2=A0head/sys/dev/hwpmc/pmc_events.h >>>> =C2=A0head/sys/i386/i386/trap.c >>>> =C2=A0head/sys/i386/include/pmc_mdep.h >>>> =C2=A0head/sys/kern/kern_clock.c >>>> =C2=A0head/sys/kern/kern_lock.c >>>> =C2=A0head/sys/kern/kern_mutex.c >>>> =C2=A0head/sys/kern/kern_pmc.c >>>> =C2=A0head/sys/kern/kern_rwlock.c >>>> =C2=A0head/sys/kern/kern_sx.c >>>> =C2=A0head/sys/kern/subr_trap.c >>>> =C2=A0head/sys/mips/include/pmc_mdep.h >>>> =C2=A0head/sys/modules/hwpmc/Makefile >>>> =C2=A0head/sys/powerpc/include/pmc_mdep.h >>>> =C2=A0head/sys/sys/pmc.h >>>> =C2=A0head/sys/sys/pmckern.h >>>> =C2=A0head/sys/sys/pmclog.h >>>> =C2=A0head/usr.sbin/pmcstat/pmcstat_log.c >>>> >>>> Modified: head/lib/libpmc/Makefile >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/Makefile =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/Makefile =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -20,6 +20,7 @@ MAN+=3D pmc_read.3 >>>> =C2=A0MAN+=3D =C2=A0pmc_set.3 >>>> =C2=A0MAN+=3D =C2=A0pmc_start.3 >>>> =C2=A0MAN+=3D =C2=A0pmclog.3 >>>> +MAN+=3D =C2=A0pmc.soft.3 >>>> >>>> =C2=A0# PMC-dependent manual pages >>>> =C2=A0.if ${MACHINE_CPUARCH} =3D=3D "i386" || ${MACHINE_CPUARCH} =3D= =3D "amd64" >>>> >>>> Modified: head/lib/libpmc/libpmc.c >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/libpmc.c =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/libpmc.c =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -77,11 +77,12 @@ static int tsc_allocate_pmc(enum pmc_eve >>>> =C2=A0static int xscale_allocate_pmc(enum pmc_event _pe, char *_ctrspe= c, >>>> =C2=A0 =C2=A0 struct pmc_op_pmcallocate *_pmc_config); >>>> =C2=A0#endif >>>> - >>>> =C2=A0#if defined(__mips__) >>>> =C2=A0static int mips_allocate_pmc(enum pmc_event _pe, char* ctrspec, >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct pmc_op_pmcallocate *_pmc_config); >>>> =C2=A0#endif /* __mips__ */ >>>> +static int soft_allocate_pmc(enum pmc_event _pe, char *_ctrspec, >>>> + =C2=A0 =C2=A0struct pmc_op_pmcallocate *_pmc_config); >>>> >>>> =C2=A0#if defined(__powerpc__) >>>> =C2=A0static int ppc7450_allocate_pmc(enum pmc_event _pe, char* ctrspe= c, >>>> @@ -156,6 +157,8 @@ PMC_CLASSDEP_TABLE(octeon, OCTEON); >>>> =C2=A0PMC_CLASSDEP_TABLE(ucf, UCF); >>>> =C2=A0PMC_CLASSDEP_TABLE(ppc7450, PPC7450); >>>> >>>> +static struct pmc_event_descr soft_event_table[PMC_EV_DYN_COUNT]; >>>> + >>>> =C2=A0#undef __PMC_EV_ALIAS >>>> =C2=A0#define =C2=A0 =C2=A0 =C2=A0 =C2=A0__PMC_EV_ALIAS(N,CODE) =C2=A0= { N, PMC_EV_##CODE }, >>>> >>>> @@ -215,21 +218,22 @@ static const struct pmc_event_descr west >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_CLASS_##C, = __VA_ARGS__ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0\ >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >>>> >>>> -PMC_MDEP_TABLE(atom, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC); >>>> -PMC_MDEP_TABLE(core, IAP, PMC_CLASS_TSC); >>>> -PMC_MDEP_TABLE(core2, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC); >>>> -PMC_MDEP_TABLE(corei7, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, PMC_CLASS_U= CF, PMC_CLASS_UCP); >>>> -PMC_MDEP_TABLE(sandybridge, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, PMC_CL= ASS_UCF, PMC_CLASS_UCP); >>>> -PMC_MDEP_TABLE(westmere, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, PMC_CLASS= _UCF, PMC_CLASS_UCP); >>>> -PMC_MDEP_TABLE(k7, K7, PMC_CLASS_TSC); >>>> -PMC_MDEP_TABLE(k8, K8, PMC_CLASS_TSC); >>>> -PMC_MDEP_TABLE(p4, P4, PMC_CLASS_TSC); >>>> -PMC_MDEP_TABLE(p5, P5, PMC_CLASS_TSC); >>>> -PMC_MDEP_TABLE(p6, P6, PMC_CLASS_TSC); >>>> -PMC_MDEP_TABLE(xscale, XSCALE, PMC_CLASS_XSCALE); >>>> -PMC_MDEP_TABLE(mips24k, MIPS24K, PMC_CLASS_MIPS24K); >>>> -PMC_MDEP_TABLE(octeon, OCTEON, PMC_CLASS_OCTEON); >>>> -PMC_MDEP_TABLE(ppc7450, PPC7450, PMC_CLASS_PPC7450); >>>> +PMC_MDEP_TABLE(atom, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLASS_TS= C); >>>> +PMC_MDEP_TABLE(core, IAP, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>>> +PMC_MDEP_TABLE(core2, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLASS_T= SC); >>>> +PMC_MDEP_TABLE(corei7, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLASS_= TSC, PMC_CLASS_UCF, PMC_CLASS_UCP); >>>> +PMC_MDEP_TABLE(sandybridge, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_C= LASS_TSC, PMC_CLASS_UCF, PMC_CLASS_UCP); >>>> +PMC_MDEP_TABLE(westmere, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, PMC_CLAS= S_TSC, PMC_CLASS_UCF, PMC_CLASS_UCP); >>>> +PMC_MDEP_TABLE(k7, K7, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>>> +PMC_MDEP_TABLE(k8, K8, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>>> +PMC_MDEP_TABLE(p4, P4, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>>> +PMC_MDEP_TABLE(p5, P5, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>>> +PMC_MDEP_TABLE(p6, P6, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>>> +PMC_MDEP_TABLE(xscale, XSCALE, PMC_CLASS_SOFT, PMC_CLASS_XSCALE); >>>> +PMC_MDEP_TABLE(mips24k, MIPS24K, PMC_CLASS_SOFT, PMC_CLASS_MIPS24K); >>>> +PMC_MDEP_TABLE(octeon, OCTEON, PMC_CLASS_SOFT, PMC_CLASS_OCTEON); >>>> +PMC_MDEP_TABLE(ppc7450, PPC7450, PMC_CLASS_SOFT, PMC_CLASS_PPC7450); >>>> +PMC_MDEP_TABLE(generic, SOFT, PMC_CLASS_SOFT); >>>> >>>> =C2=A0static const struct pmc_event_descr tsc_event_table[] =3D >>>> =C2=A0{ >>>> @@ -279,16 +283,24 @@ PMC_CLASS_TABLE_DESC(tsc, TSC, tsc, tsc) >>>> =C2=A0#if =C2=A0 =C2=A0defined(__XSCALE__) >>>> =C2=A0PMC_CLASS_TABLE_DESC(xscale, XSCALE, xscale, xscale); >>>> =C2=A0#endif >>>> - >>>> =C2=A0#if defined(__mips__) >>>> =C2=A0PMC_CLASS_TABLE_DESC(mips24k, MIPS24K, mips24k, mips); >>>> =C2=A0PMC_CLASS_TABLE_DESC(octeon, OCTEON, octeon, mips); >>>> =C2=A0#endif /* __mips__ */ >>>> - >>>> =C2=A0#if defined(__powerpc__) >>>> =C2=A0PMC_CLASS_TABLE_DESC(ppc7450, PPC7450, ppc7450, ppc7450); >>>> =C2=A0#endif >>>> >>>> +static struct pmc_class_descr soft_class_table_descr =3D >>>> +{ >>>> + =C2=A0 =C2=A0 =C2=A0 .pm_evc_name =C2=A0=3D "SOFT-", >>>> + =C2=A0 =C2=A0 =C2=A0 .pm_evc_name_size =3D sizeof("SOFT-") - 1, >>>> + =C2=A0 =C2=A0 =C2=A0 .pm_evc_class =3D PMC_CLASS_SOFT, >>>> + =C2=A0 =C2=A0 =C2=A0 .pm_evc_event_table =3D NULL, >>>> + =C2=A0 =C2=A0 =C2=A0 .pm_evc_event_table_size =3D 0, >>>> + =C2=A0 =C2=A0 =C2=A0 .pm_evc_allocate_pmc =3D soft_allocate_pmc >>>> +}; >>>> + >>>> =C2=A0#undef PMC_CLASS_TABLE_DESC >>>> >>>> =C2=A0static const struct pmc_class_descr **pmc_class_table; >>>> @@ -343,9 +355,12 @@ static const char * pmc_state_names[] =3D >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0__PMC_STATES() >>>> =C2=A0}; >>>> >>>> -static int pmc_syscall =3D -1; =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* = filled in by pmc_init() */ >>>> - >>>> -static struct pmc_cpuinfo cpu_info; =C2=A0 =C2=A0/* filled in by pmc_= init() */ >>>> +/* >>>> + * Filled in by pmc_init(). >>>> + */ >>>> +static int pmc_syscall =3D -1; >>>> +static struct pmc_cpuinfo cpu_info; >>>> +static struct pmc_op_getdyneventinfo soft_event_info; >>>> >>>> =C2=A0/* Event masks for events */ >>>> =C2=A0struct pmc_masks { >>>> @@ -2179,6 +2194,25 @@ tsc_allocate_pmc(enum pmc_event pe, char >>>> =C2=A0} >>>> =C2=A0#endif >>>> >>>> +static struct pmc_event_alias generic_aliases[] =3D { >>>> + =C2=A0 =C2=A0 =C2=A0 EV_ALIAS("instructions", =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"SOFT-CLOCK.HARD"), >>>> + =C2=A0 =C2=A0 =C2=A0 EV_ALIAS(NULL, NULL) >>>> +}; >>>> + >>>> +static int >>>> +soft_allocate_pmc(enum pmc_event pe, char *ctrspec, >>>> + =C2=A0 =C2=A0struct pmc_op_pmcallocate *pmc_config) >>>> +{ >>>> + =C2=A0 =C2=A0 =C2=A0 (void)ctrspec; >>>> + =C2=A0 =C2=A0 =C2=A0 (void)pmc_config; >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 if (pe < PMC_EV_SOFT_FIRST || pe > PMC_EV_SOFT_= LAST) >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return (-1); >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 pmc_config->pm_caps |=3D (PMC_CAP_READ | PMC_CA= P_WRITE); >>>> + =C2=A0 =C2=A0 =C2=A0 return (0); >>>> +} >>>> + >>>> =C2=A0#if =C2=A0 =C2=A0defined(__XSCALE__) >>>> >>>> =C2=A0static struct pmc_event_alias xscale_aliases[] =3D { >>>> @@ -2663,6 +2697,10 @@ pmc_event_names_of_class(enum pmc_class >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ev =3D ppc7450_= event_table; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0count =3D PMC_E= VENT_TABLE_SIZE(ppc7450); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break; >>>> + =C2=A0 =C2=A0 =C2=A0 case PMC_CLASS_SOFT: >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ev =3D soft_event_t= able; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 count =3D soft_even= t_info.pm_nevent; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0default: >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0errno =3D EINVA= L; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (-1); >>>> @@ -2676,6 +2714,7 @@ pmc_event_names_of_class(enum pmc_class >>>> >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0for (;count--; ev++, names++) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*names =3D ev->= pm_ev_name; >>>> + >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0return (0); >>>> =C2=A0} >>>> >>>> @@ -2780,11 +2819,34 @@ pmc_init(void) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_class_table= [n] =3D NULL; >>>> >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0/* >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0* Get soft events list. >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0*/ >>>> + =C2=A0 =C2=A0 =C2=A0 soft_event_info.pm_class =3D PMC_CLASS_SOFT; >>>> + =C2=A0 =C2=A0 =C2=A0 if (PMC_CALL(GETDYNEVENTINFO, &soft_event_info)= < 0) >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return (pmc_syscall= =3D -1); >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 /* Map soft events to static list. */ >>>> + =C2=A0 =C2=A0 =C2=A0 for (n =3D 0; n < soft_event_info.pm_nevent; n+= +) { >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 soft_event_table[n]= .pm_ev_name =3D >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 soft_= event_info.pm_events[n].pm_ev_name; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 soft_event_table[n]= .pm_ev_code =3D >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 soft_= event_info.pm_events[n].pm_ev_code; >>>> + =C2=A0 =C2=A0 =C2=A0 } >>>> + =C2=A0 =C2=A0 =C2=A0 soft_class_table_descr.pm_evc_event_table_size = =3D \ >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 soft_event_info.pm_nevent; >>>> + =C2=A0 =C2=A0 =C2=A0 soft_class_table_descr.pm_evc_event_table =3D \ >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 soft_event_table; >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 /* >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 * Fill in the class table. >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 */ >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0n =3D 0; >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 /* Fill soft events information. */ >>>> + =C2=A0 =C2=A0 =C2=A0 pmc_class_table[n++] =3D &soft_class_table_desc= r; >>>> =C2=A0#if defined(__amd64__) || defined(__i386__) >>>> - =C2=A0 =C2=A0 =C2=A0 pmc_class_table[n++] =3D &tsc_class_table_descr= ; >>>> + =C2=A0 =C2=A0 =C2=A0 if (cpu_info.pm_cputype !=3D PMC_CPU_GENERIC) >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_class_table[n++= ] =3D &tsc_class_table_descr; >>>> >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0/* >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 * Check if this CPU has fixed function cou= nters. >>>> @@ -2867,6 +2929,9 @@ pmc_init(void) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_class_table= [n] =3D &p4_class_table_descr; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break; >>>> =C2=A0#endif >>>> + =C2=A0 =C2=A0 =C2=A0 case PMC_CPU_GENERIC: >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMC_MDEP_INIT(gener= ic); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break; >>>> =C2=A0#if defined(__XSCALE__) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0case PMC_CPU_INTEL_XSCALE: >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_INIT(x= scale); >>>> @@ -3035,18 +3100,19 @@ _pmc_name_of_event(enum pmc_event pe, en >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0evfence =3D xsc= ale_event_table + PMC_EVENT_TABLE_SIZE(xscale); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0} else if (pe >=3D PMC_EV_MIPS24K_FIRST && = pe <=3D PMC_EV_MIPS24K_LAST) { >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ev =3D mips24k_= event_table; >>>> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 evfence =3D mips24k= _event_table + PMC_EVENT_TABLE_SIZE(mips24k >>>> -); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 evfence =3D mips24k= _event_table + PMC_EVENT_TABLE_SIZE(mips24k); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0} else if (pe >=3D PMC_EV_OCTEON_FIRST && p= e <=3D PMC_EV_OCTEON_LAST) { >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ev =3D octeon_e= vent_table; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0evfence =3D oct= eon_event_table + PMC_EVENT_TABLE_SIZE(octeon); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0} else if (pe >=3D PMC_EV_PPC7450_FIRST && = pe <=3D PMC_EV_PPC7450_LAST) { >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ev =3D ppc7450_= event_table; >>>> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 evfence =3D ppc7450= _event_table + PMC_EVENT_TABLE_SIZE(ppc7450 >>>> -); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 evfence =3D ppc7450= _event_table + PMC_EVENT_TABLE_SIZE(ppc7450); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0} else if (pe =3D=3D PMC_EV_TSC_TSC) { >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ev =3D tsc_even= t_table; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0evfence =3D tsc= _event_table + PMC_EVENT_TABLE_SIZE(tsc); >>>> + =C2=A0 =C2=A0 =C2=A0 } else if (pe >=3D PMC_EV_SOFT_FIRST && pe <=3D= PMC_EV_SOFT_LAST) { >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ev =3D soft_event_t= able; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 evfence =3D soft_ev= ent_table + soft_event_info.pm_nevent; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >>>> >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0for (; ev !=3D evfence; ev++) >>>> >>>> Modified: head/lib/libpmc/pmc.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.3 =C2=A0 =C2=A0 =C2=A0 Wed Mar 28 20:49:11 201= 2 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.3 =C2=A0 =C2=A0 =C2=A0 Wed Mar 28 20:58:30 201= 2 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -223,6 +223,8 @@ and >>>> =C2=A0CPUs. >>>> =C2=A0.It Li PMC_CLASS_TSC >>>> =C2=A0The timestamp counter on i386 and amd64 architecture CPUs. >>>> +.It Li PMC_CLASS_SOFT >>>> +Software events. >>>> =C2=A0.El >>>> =C2=A0.Ss PMC Capabilities >>>> =C2=A0Capabilities of performance monitoring hardware are denoted usin= g >>>> @@ -525,6 +527,7 @@ API is >>>> =C2=A0.Xr pmc.p4 3 , >>>> =C2=A0.Xr pmc.p5 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> =C2=A0.Xr hwpmc 4 , >>>> >>>> Modified: head/lib/libpmc/pmc.atom.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.atom.3 =C2=A0Wed Mar 28 20:49:11 2012 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.atom.3 =C2=A0Wed Mar 28 20:58:30 2012 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -1176,6 +1176,7 @@ and the underlying hardware events used >>>> =C2=A0.Xr pmc.p4 3 , >>>> =C2=A0.Xr pmc.p5 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmc_cpuinfo 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> >>>> Modified: head/lib/libpmc/pmc.core.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.core.3 =C2=A0Wed Mar 28 20:49:11 2012 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.core.3 =C2=A0Wed Mar 28 20:58:30 2012 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -792,6 +792,7 @@ may not count some transitions. >>>> =C2=A0.Xr pmc.p4 3 , >>>> =C2=A0.Xr pmc.p5 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> =C2=A0.Xr hwpmc 4 >>>> >>>> Modified: head/lib/libpmc/pmc.core2.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.core2.3 Wed Mar 28 20:49:11 2012 =C2=A0 =C2=A0= =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.core2.3 Wed Mar 28 20:58:30 2012 =C2=A0 =C2=A0= =C2=A0 =C2=A0(r233628) >>>> @@ -1107,6 +1107,7 @@ and the underlying hardware events used. >>>> =C2=A0.Xr pmc.p4 3 , >>>> =C2=A0.Xr pmc.p5 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmc_cpuinfo 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> >>>> Modified: head/lib/libpmc/pmc.corei7.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.corei7.3 =C2=A0 =C2=A0 =C2=A0 =C2=A0Wed Mar 28= 20:49:11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.corei7.3 =C2=A0 =C2=A0 =C2=A0 =C2=A0Wed Mar 28= 20:58:30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -1559,6 +1559,7 @@ Counts number of segment register loads. >>>> =C2=A0.Xr pmc.corei7uc 3 , >>>> =C2=A0.Xr pmc.westmere 3 , >>>> =C2=A0.Xr pmc.westmereuc 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmc_cpuinfo 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> >>>> Modified: head/lib/libpmc/pmc.corei7uc.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.corei7uc.3 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:4= 9:11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.corei7uc.3 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:5= 8:30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -863,6 +863,7 @@ refreshed or needs to go into a power do >>>> =C2=A0.Xr pmc.corei7 3 , >>>> =C2=A0.Xr pmc.westmere 3 , >>>> =C2=A0.Xr pmc.westmereuc 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmc_cpuinfo 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> >>>> Modified: head/lib/libpmc/pmc.iaf.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.iaf.3 =C2=A0 Wed Mar 28 20:49:11 2012 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.iaf.3 =C2=A0 Wed Mar 28 20:58:30 2012 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -132,6 +132,7 @@ CPU, use the event specifier >>>> =C2=A0.Xr pmc.p4 3 , >>>> =C2=A0.Xr pmc.p5 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmc_cpuinfo 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> >>>> Modified: head/lib/libpmc/pmc.k7.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.k7.3 =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.k7.3 =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -249,6 +249,7 @@ and the underlying hardware events used. >>>> =C2=A0.Xr pmc.p4 3 , >>>> =C2=A0.Xr pmc.p5 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> =C2=A0.Xr hwpmc 4 >>>> >>>> Modified: head/lib/libpmc/pmc.k8.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.k8.3 =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.k8.3 =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -783,6 +783,7 @@ and the underlying hardware events used. >>>> =C2=A0.Xr pmc.p4 3 , >>>> =C2=A0.Xr pmc.p5 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> =C2=A0.Xr hwpmc 4 >>>> >>>> Modified: head/lib/libpmc/pmc.mips24k.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.mips24k.3 =C2=A0 =C2=A0 =C2=A0 Wed Mar 28 20:4= 9:11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.mips24k.3 =C2=A0 =C2=A0 =C2=A0 Wed Mar 28 20:5= 8:30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -392,6 +392,7 @@ and the underlying hardware events used. >>>> =C2=A0.Xr pmc.p4 3 , >>>> =C2=A0.Xr pmc.p5 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmc_cpuinfo 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> >>>> Modified: head/lib/libpmc/pmc.octeon.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.octeon.3 =C2=A0 =C2=A0 =C2=A0 =C2=A0Wed Mar 28= 20:49:11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.octeon.3 =C2=A0 =C2=A0 =C2=A0 =C2=A0Wed Mar 28= 20:58:30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -232,6 +232,7 @@ and the underlying hardware events used. >>>> =C2=A0.Xr pmc.p4 3 , >>>> =C2=A0.Xr pmc.p5 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmc_cpuinfo 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> >>>> Modified: head/lib/libpmc/pmc.p4.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.p4.3 =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.p4.3 =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -1208,6 +1208,7 @@ and the underlying hardware events used. >>>> =C2=A0.Xr pmc.k8 3 , >>>> =C2=A0.Xr pmc.p5 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> =C2=A0.Xr hwpmc 4 >>>> >>>> Modified: head/lib/libpmc/pmc.p5.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.p5.3 =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.p5.3 =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -444,6 +444,7 @@ and the underlying hardware events used. >>>> =C2=A0.Xr pmc.k8 3 , >>>> =C2=A0.Xr pmc.p4 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> =C2=A0.Xr hwpmc 4 >>>> >>>> Modified: head/lib/libpmc/pmc.p6.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.p6.3 =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.p6.3 =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -1010,6 +1010,7 @@ and the underlying hardware events used. >>>> =C2=A0.Xr pmc.k8 3 , >>>> =C2=A0.Xr pmc.p4 3 , >>>> =C2=A0.Xr pmc.p5 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> =C2=A0.Xr hwpmc 4 >>>> >>>> Modified: head/lib/libpmc/pmc.sandybridge.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.sandybridge.3 =C2=A0 Wed Mar 28 20:49:11 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.sandybridge.3 =C2=A0 Wed Mar 28 20:58:30 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -907,6 +907,7 @@ Split locks in SQ. >>>> =C2=A0.Xr pmc.p5 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> =C2=A0.Xr pmc.sandybridgeuc 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmc.ucf 3 , >>>> =C2=A0.Xr pmc.westmere 3 , >>>> >>>> Modified: head/lib/libpmc/pmc.sandybridgeuc.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.sandybridgeuc.3 Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.sandybridgeuc.3 Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -208,6 +208,7 @@ Counts the number of core-outgoing entri >>>> =C2=A0.Xr pmc.p5 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> =C2=A0.Xr pmc.sandybridge 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmc.ucf 3 , >>>> =C2=A0.Xr pmc.westmere 3 , >>>> >>>> Added: head/lib/libpmc/pmc.soft.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- /dev/null =C2=A0 00:00:00 1970 =C2=A0 (empty, because file is newl= y added) >>>> +++ head/lib/libpmc/pmc.soft.3 =C2=A0Wed Mar 28 20:58:30 2012 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -0,0 +1,104 @@ >>>> +.\" Copyright (c) 2012 Fabien Thomas. =C2=A0All rights reserved. >>>> +.\" >>>> +.\" Redistribution and use in source and binary forms, with or withou= t >>>> +.\" modification, are permitted provided that the following condition= s >>>> +.\" are met: >>>> +.\" 1. Redistributions of source code must retain the above copyright >>>> +.\" =C2=A0 =C2=A0notice, this list of conditions and the following di= sclaimer. >>>> +.\" 2. Redistributions in binary form must reproduce the above copyri= ght >>>> +.\" =C2=A0 =C2=A0notice, this list of conditions and the following di= sclaimer in the >>>> +.\" =C2=A0 =C2=A0documentation and/or other materials provided with t= he distribution. >>>> +.\" >>>> +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'= ' AND >>>> +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,= THE >>>> +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULA= R PURPOSE >>>> +.\" ARE DISCLAIMED. =C2=A0IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTOR= S BE LIABLE >>>> +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONS= EQUENTIAL >>>> +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE= GOODS >>>> +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPT= ION) >>>> +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRAC= T, STRICT >>>> +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN= ANY WAY >>>> +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILI= TY OF >>>> +.\" SUCH DAMAGE. >>>> +.\" >>>> +.\" $FreeBSD$ >>>> +.\" >>>> +.Dd March 28, 2012 >>>> +.Os >>>> +.Dt PMC.SOFT 3 >>>> +.Sh NAME >>>> +.Nm pmc.soft >>>> +.Nd measurements using software based events >>>> +.Sh LIBRARY >>>> +.Lb libpmc >>>> +.Sh SYNOPSIS >>>> +.In pmc.h >>>> +.Sh DESCRIPTION >>>> +Software events are used to collect various source of software events= . >>>> +.Ss PMC Features >>>> +16 sampling counters using software events based on various sources. >>>> +These PMCs support the following capabilities: >>>> +.Bl -column "PMC_CAP_INTERRUPT" "Support" >>>> +.It Em Capability Ta Em Support >>>> +.It PMC_CAP_CASCADE Ta \&No >>>> +.It PMC_CAP_EDGE Ta \&No >>>> +.It PMC_CAP_INTERRUPT Ta Yes >>>> +.It PMC_CAP_INVERT Ta \&No >>>> +.It PMC_CAP_READ Ta Yes >>>> +.It PMC_CAP_PRECISE Ta \&No >>>> +.It PMC_CAP_SYSTEM Ta Yes >>>> +.It PMC_CAP_TAGGING Ta \&No >>>> +.It PMC_CAP_THRESHOLD Ta \&No >>>> +.It PMC_CAP_USER Ta Yes >>>> +.It PMC_CAP_WRITE Ta Yes >>>> +.El >>>> +.Ss Event Qualifiers >>>> +There is no supported event qualifier. >>>> +.Pp >>>> +The event specifiers supported by software are: >>>> +.Bl -tag -width indent >>>> +.It Li CLOCK.HARD >>>> +Hard clock ticks. >>>> +.It Li CLOCK.STAT >>>> +Stat clock ticks. >>>> +.It Li LOCK.FAILED >>>> +Lock acquisition failed. >>>> +.It Li PAGE_FAULT.ALL >>>> +All page fault type. >>>> +.It Li PAGE_FAULT.READ >>>> +Read page fault. >>>> +.It Li PAGE_FAULT.WRITE >>>> +Write page fault. >>>> +.El >>>> +.Sh SEE ALSO >>>> +.Xr pmc 3 , >>>> +.Xr pmc.atom 3 , >>>> +.Xr pmc.core 3 , >>>> +.Xr pmc.iaf 3 , >>>> +.Xr pmc.ucf 3 , >>>> +.Xr pmc.k7 3 , >>>> +.Xr pmc.k8 3 , >>>> +.Xr pmc.p4 3 , >>>> +.Xr pmc.p5 3 , >>>> +.Xr pmc.p6 3 , >>>> +.Xr pmc.corei7 3 , >>>> +.Xr pmc.corei7uc 3 , >>>> +.Xr pmc.westmereuc 3 , >>>> +.Xr pmc.tsc 3 , >>>> +.Xr pmc_cpuinfo 3 , >>>> +.Xr pmclog 3 , >>>> +.Xr hwpmc 4 >>>> +.Sh HISTORY >>>> +The >>>> +.Nm pmc >>>> +library first appeared in >>>> +.Fx 6.0 . >>>> +.Sh AUTHORS >>>> +The >>>> +.Lb libpmc >>>> +library was written by >>>> +.An "Joseph Koshy" >>>> +.Aq jkoshy@FreeBSD.org . >>>> +Software PMC was written by >>>> +.An "Fabien Thomas" >>>> +.Aq fabient@FreeBSD.org . >>>> >>>> Modified: head/lib/libpmc/pmc.tsc.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.tsc.3 =C2=A0 Wed Mar 28 20:49:11 2012 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.tsc.3 =C2=A0 Wed Mar 28 20:58:30 2012 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -68,6 +68,7 @@ maps to the TSC. >>>> =C2=A0.Xr pmc.p4 3 , >>>> =C2=A0.Xr pmc.p5 3 , >>>> =C2=A0.Xr pmc.p6 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> =C2=A0.Xr hwpmc 4 >>>> =C2=A0.Sh HISTORY >>>> >>>> Modified: head/lib/libpmc/pmc.ucf.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.ucf.3 =C2=A0 Wed Mar 28 20:49:11 2012 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.ucf.3 =C2=A0 Wed Mar 28 20:58:30 2012 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -96,6 +96,7 @@ offset C0H under device number 0 and Fun >>>> =C2=A0.Xr pmc.corei7uc 3 , >>>> =C2=A0.Xr pmc.westmere 3 , >>>> =C2=A0.Xr pmc.westmereuc 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmc_cpuinfo 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> >>>> Modified: head/lib/libpmc/pmc.westmere.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.westmere.3 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:4= 9:11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.westmere.3 =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:5= 8:30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -1381,6 +1381,7 @@ Counts number of SID integer 64 bit shif >>>> =C2=A0.Xr pmc.corei7 3 , >>>> =C2=A0.Xr pmc.corei7uc 3 , >>>> =C2=A0.Xr pmc.westmereuc 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmc_cpuinfo 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> >>>> Modified: head/lib/libpmc/pmc.westmereuc.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.westmereuc.3 =C2=A0 =C2=A0Wed Mar 28 20:49:11 = 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.westmereuc.3 =C2=A0 =C2=A0Wed Mar 28 20:58:30 = 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -1066,6 +1066,7 @@ disabled. >>>> =C2=A0.Xr pmc.corei7 3 , >>>> =C2=A0.Xr pmc.corei7uc 3 , >>>> =C2=A0.Xr pmc.westmere 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr pmc.tsc 3 , >>>> =C2=A0.Xr pmc_cpuinfo 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> >>>> Modified: head/lib/libpmc/pmc.xscale.3 >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmc.xscale.3 =C2=A0 =C2=A0 =C2=A0 =C2=A0Wed Mar 28= 20:49:11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmc.xscale.3 =C2=A0 =C2=A0 =C2=A0 =C2=A0Wed Mar 28= 20:58:30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -134,6 +134,7 @@ and the underlying hardware events used. >>>> =C2=A0.Xr pmc 3 , >>>> =C2=A0.Xr pmc_cpuinfo 3 , >>>> =C2=A0.Xr pmclog 3 , >>>> +.Xr pmc.soft 3 , >>>> =C2=A0.Xr hwpmc 4 >>>> =C2=A0.Sh HISTORY >>>> =C2=A0The >>>> >>>> Modified: head/lib/libpmc/pmclog.c >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmclog.c =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmclog.c =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -369,6 +369,12 @@ pmclog_get_event(void *cookie, char **da >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =3D=3D NULL) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0goto error; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break; >>>> + =C2=A0 =C2=A0 =C2=A0 case PMCLOG_TYPE_PMCALLOCATEDYN: >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_READ32(le,ev= ->pl_u.pl_ad.pl_pmcid); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_READ32(le,ev= ->pl_u.pl_ad.pl_event); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_READ32(le,ev= ->pl_u.pl_ad.pl_flags); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_READSTRING(l= e,ev->pl_u.pl_ad.pl_evname,PMC_NAME_MAX); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0case PMCLOG_TYPE_PMCATTACH: >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PMCLOG_GET_PATH= LEN(pathlen,evlen,pmclog_pmcattach); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0PMCLOG_READ32(l= e,ev->pl_u.pl_t.pl_pmcid); >>>> >>>> Modified: head/lib/libpmc/pmclog.h >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/lib/libpmc/pmclog.h =C2=A0 =C2=A0Wed Mar 28 20:49:11 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/lib/libpmc/pmclog.h =C2=A0 =C2=A0Wed Mar 28 20:58:30 2012 =C2= =A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -88,6 +88,13 @@ struct pmclog_ev_pmcallocate { >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_id_t =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_pmci= d; >>>> =C2=A0}; >>>> >>>> +struct pmclog_ev_pmcallocatedyn { >>>> + =C2=A0 =C2=A0 =C2=A0 uint32_t =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_event; >>>> + =C2=A0 =C2=A0 =C2=A0 char =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0p= l_evname[PMC_NAME_MAX]; >>>> + =C2=A0 =C2=A0 =C2=A0 uint32_t =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_flags; >>>> + =C2=A0 =C2=A0 =C2=A0 pmc_id_t =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_pmcid; >>>> +}; >>>> + >>>> =C2=A0struct pmclog_ev_pmcattach { >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_id_t =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_pmci= d; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0pid_t =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pl= _pid; >>>> @@ -146,6 +153,7 @@ struct pmclog_ev { >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmclog_e= v_map_out =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_mo; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmclog_e= v_pcsample =C2=A0 =C2=A0 =C2=A0 pl_s; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmclog_e= v_pmcallocate =C2=A0 =C2=A0pl_a; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct pmclog_ev_pm= callocatedyn pl_ad; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmclog_e= v_pmcattach =C2=A0 =C2=A0 =C2=A0pl_t; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmclog_e= v_pmcdetach =C2=A0 =C2=A0 =C2=A0pl_d; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmclog_e= v_proccsw =C2=A0 =C2=A0 =C2=A0 =C2=A0pl_c; >>>> >>>> Modified: head/sys/amd64/amd64/trap.c >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/sys/amd64/amd64/trap.c Wed Mar 28 20:49:11 2012 =C2=A0 =C2=A0= =C2=A0 =C2=A0(r233627) >>>> +++ head/sys/amd64/amd64/trap.c Wed Mar 28 20:58:30 2012 =C2=A0 =C2=A0= =C2=A0 =C2=A0(r233628) >>>> @@ -71,6 +71,9 @@ __FBSDID("$FreeBSD$"); >>>> =C2=A0#include >>>> =C2=A0#ifdef HWPMC_HOOKS >>>> =C2=A0#include >>>> +PMC_SOFT_DEFINE( , , page_fault, all); >>>> +PMC_SOFT_DEFINE( , , page_fault, read); >>>> +PMC_SOFT_DEFINE( , , page_fault, write); >>>> =C2=A0#endif >>>> >>>> =C2=A0#include >>>> @@ -743,8 +746,20 @@ trap_pfault(frame, usermode) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */ >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0rv =3D vm_fault= (map, va, ftype, VM_FAULT_NORMAL); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >>>> - =C2=A0 =C2=A0 =C2=A0 if (rv =3D=3D KERN_SUCCESS) >>>> + =C2=A0 =C2=A0 =C2=A0 if (rv =3D=3D KERN_SUCCESS) { >>>> +#ifdef HWPMC_HOOKS >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (ftype =3D=3D VM= _PROT_READ || ftype =3D=3D VM_PROT_WRITE) { >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 PMC_SOFT_CALL_TF( , , page_fault, all, frame); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 if (ftype =3D=3D VM_PROT_READ) >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMC_SOFT_CALL_TF( , , page_fault, re= ad, >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 frame); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 else >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMC_SOFT_CALL_TF( , , page_fault, wr= ite, >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 frame); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 } >>>> +#endif >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (0); >>>> + =C2=A0 =C2=A0 =C2=A0 } >>>> =C2=A0nogo: >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0if (!usermode) { >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (td->td_intr= _nesting_level =3D=3D 0 && >>>> >>>> Modified: head/sys/amd64/include/pmc_mdep.h >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/sys/amd64/include/pmc_mdep.h =C2=A0 Wed Mar 28 20:49:11 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/sys/amd64/include/pmc_mdep.h =C2=A0 Wed Mar 28 20:58:30 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -50,13 +50,13 @@ struct pmc_mdep; >>>> =C2=A0* measurement architecture have PMCs of the following classes: T= SC, >>>> =C2=A0* IAF, IAP, UCF and UCP. >>>> =C2=A0*/ >>>> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_TSC =C2=A0 = =C2=A0 =C2=A0 =C2=A00 >>>> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_K8 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 1 >>>> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_P4 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 1 >>>> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_IAP =C2=A0 = =C2=A0 =C2=A0 =C2=A01 >>>> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_IAF =C2=A0 = =C2=A0 =C2=A0 =C2=A02 >>>> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_UCP =C2=A0 = =C2=A0 =C2=A0 =C2=A03 >>>> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_UCF =C2=A0 = =C2=A0 =C2=A0 =C2=A04 >>>> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_TSC =C2=A0 = =C2=A0 =C2=A0 =C2=A01 >>>> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_K8 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 2 >>>> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_P4 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 2 >>>> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_IAP =C2=A0 = =C2=A0 =C2=A0 =C2=A02 >>>> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_IAF =C2=A0 = =C2=A0 =C2=A0 =C2=A03 >>>> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_UCP =C2=A0 = =C2=A0 =C2=A0 =C2=A04 >>>> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_UCF =C2=A0 = =C2=A0 =C2=A0 =C2=A05 >>>> >>>> =C2=A0/* >>>> =C2=A0* On the amd64 platform we support the following PMCs. >>>> @@ -119,6 +119,15 @@ union pmc_md_pmc { >>>> >>>> =C2=A0#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_IN_USERSPACE(va) ((va) <= =3D VM_MAXUSER_ADDRESS) >>>> >>>> +/* Build a fake kernel trapframe from current instruction pointer. */ >>>> +#define PMC_FAKE_TRAPFRAME(TF) =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 \ >>>> + =C2=A0 =C2=A0 =C2=A0 do { =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0\ >>>> + =C2=A0 =C2=A0 =C2=A0 (TF)->tf_cs =3D 0; (TF)->tf_rflags =3D 0; =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 \ >>>> + =C2=A0 =C2=A0 =C2=A0 __asm __volatile("movq %%rbp,%0" : "=3Dr" ((TF)= ->tf_rbp)); =C2=A0 =C2=A0 =C2=A0 =C2=A0\ >>>> + =C2=A0 =C2=A0 =C2=A0 __asm __volatile("movq %%rsp,%0" : "=3Dr" ((TF)= ->tf_rsp)); =C2=A0 =C2=A0 =C2=A0 =C2=A0\ >>>> + =C2=A0 =C2=A0 =C2=A0 __asm __volatile("call 1f \n\t1: pop %0" : "=3D= r"((TF)->tf_rip)); \ >>>> + =C2=A0 =C2=A0 =C2=A0 } while (0) >>>> + >>>> =C2=A0/* >>>> =C2=A0* Prototypes >>>> =C2=A0*/ >>>> >>>> Modified: head/sys/arm/include/pmc_mdep.h >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/sys/arm/include/pmc_mdep.h =C2=A0 =C2=A0 Wed Mar 28 20:49:11 = 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/sys/arm/include/pmc_mdep.h =C2=A0 =C2=A0 Wed Mar 28 20:58:30 = 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -29,7 +29,7 @@ >>>> =C2=A0#ifndef _MACHINE_PMC_MDEP_H_ >>>> =C2=A0#define =C2=A0 =C2=A0 =C2=A0 =C2=A0_MACHINE_PMC_MDEP_H_ >>>> >>>> -#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_XSCALE =C2=A0= =C2=A0 0 >>>> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMC_MDEP_CLASS_INDEX_XSCALE =C2=A0= =C2=A0 1 >>>> =C2=A0/* >>>> =C2=A0* On the ARM platform we support the following PMCs. >>>> =C2=A0* >>>> >>>> Modified: head/sys/conf/files >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/sys/conf/files Wed Mar 28 20:49:11 2012 =C2=A0 =C2=A0 =C2=A0 = =C2=A0(r233627) >>>> +++ head/sys/conf/files Wed Mar 28 20:58:30 2012 =C2=A0 =C2=A0 =C2=A0 = =C2=A0(r233628) >>>> @@ -1260,6 +1260,7 @@ dev/hme/if_hme_sbus.c =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 optional hme sbus >>>> =C2=A0dev/hptiop/hptiop.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0opt= ional hptiop scbus >>>> =C2=A0dev/hwpmc/hwpmc_logging.c =C2=A0 =C2=A0 =C2=A0optional hwpmc >>>> =C2=A0dev/hwpmc/hwpmc_mod.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0optional= hwpmc >>>> +dev/hwpmc/hwpmc_soft.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 optional hwpmc >>>> =C2=A0dev/ichsmb/ichsmb.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0opt= ional ichsmb >>>> =C2=A0dev/ichsmb/ichsmb_pci.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0optional ichsmb pci >>>> =C2=A0dev/ida/ida.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0optional ida >>>> >>>> Modified: head/sys/dev/hwpmc/hwpmc_amd.c >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/sys/dev/hwpmc/hwpmc_amd.c =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:4= 9:11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/sys/dev/hwpmc/hwpmc_amd.c =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:5= 8:30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -687,7 +687,8 @@ amd_intr(int cpu, struct trapframe *tf) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0wrmsr(perfctr, = AMD_RELOAD_COUNT_TO_PERFCTR_VALUE(v)); >>>> >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/* Restart the = counter if logging succeeded. */ >>>> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_proce= ss_interrupt(cpu, pm, tf, TRAPF_USERMODE(tf)); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_proce= ss_interrupt(cpu, PMC_HR, pm, tf, >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 TRAPF= _USERMODE(tf)); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (error =3D= =3D 0) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0wrmsr(evsel, config | AMD_PMC_ENABLE); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >>>> @@ -874,7 +875,7 @@ amd_pcpu_fini(struct pmc_mdep *md, int c >>>> =C2=A0struct pmc_mdep * >>>> =C2=A0pmc_amd_initialize(void) >>>> =C2=A0{ >>>> - =C2=A0 =C2=A0 =C2=A0 int classindex, error, i, nclasses, ncpus; >>>> + =C2=A0 =C2=A0 =C2=A0 int classindex, error, i, ncpus; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmc_classdep *pcd; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0enum pmc_cputype cputype; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmc_mdep *pmc_mdep; >>>> @@ -926,12 +927,9 @@ pmc_amd_initialize(void) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 * These processors have two classes of PMC= s: the TSC and >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 * programmable PMCs. >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 */ >>>> - =C2=A0 =C2=A0 =C2=A0 nclasses =3D 2; >>>> - =C2=A0 =C2=A0 =C2=A0 pmc_mdep =3D malloc(sizeof(struct pmc_mdep) + n= classes * sizeof (struct pmc_classdep), >>>> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 M_PMC, M_WAITOK|M_ZERO); >>>> + =C2=A0 =C2=A0 =C2=A0 pmc_mdep =3D pmc_mdep_alloc(2); >>>> >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_mdep->pmd_cputype =3D cputype; >>>> - =C2=A0 =C2=A0 =C2=A0 pmc_mdep->pmd_nclass =C2=A0=3D nclasses; >>>> >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0ncpus =3D pmc_cpu_max(); >>>> >>>> >>>> Modified: head/sys/dev/hwpmc/hwpmc_core.c >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/sys/dev/hwpmc/hwpmc_core.c =C2=A0 =C2=A0 Wed Mar 28 20:49:11 = 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/sys/dev/hwpmc/hwpmc_core.c =C2=A0 =C2=A0 Wed Mar 28 20:58:30 = 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -2239,7 +2239,7 @@ core_intr(int cpu, struct trapframe *tf) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (pm->pm_stat= e !=3D PMC_STATE_RUNNING) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0continue; >>>> >>>> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_proce= ss_interrupt(cpu, pm, tf, >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_proce= ss_interrupt(cpu, PMC_HR, pm, tf, >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0T= RAPF_USERMODE(tf)); >>>> >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0v =3D pm->pm_sc= .pm_reloadcount; >>>> @@ -2326,7 +2326,7 @@ core2_intr(int cpu, struct trapframe *tf >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0!= PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm))) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0continue; >>>> >>>> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_proce= ss_interrupt(cpu, pm, tf, >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_proce= ss_interrupt(cpu, PMC_HR, pm, tf, >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0T= RAPF_USERMODE(tf)); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (error) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0intrenable &=3D ~flag; >>>> @@ -2354,7 +2354,7 @@ core2_intr(int cpu, struct trapframe *tf >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0!= PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm))) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0continue; >>>> >>>> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_proce= ss_interrupt(cpu, pm, tf, >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_proce= ss_interrupt(cpu, PMC_HR, pm, tf, >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0T= RAPF_USERMODE(tf)); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (error) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0intrenable &=3D ~flag; >>>> >>>> Modified: head/sys/dev/hwpmc/hwpmc_intel.c >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/sys/dev/hwpmc/hwpmc_intel.c =C2=A0 =C2=A0Wed Mar 28 20:49:11 = 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/sys/dev/hwpmc/hwpmc_intel.c =C2=A0 =C2=A0Wed Mar 28 20:58:30 = 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -162,12 +162,10 @@ pmc_intel_initialize(void) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return (NULL); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >>>> >>>> - =C2=A0 =C2=A0 =C2=A0 pmc_mdep =3D malloc(sizeof(struct pmc_mdep) + n= classes * >>>> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sizeof(struct pmc_classdep), M_PM= C, M_WAITOK|M_ZERO); >>>> + =C2=A0 =C2=A0 =C2=A0 /* Allocate base class and initialize machine d= ependent struct */ >>>> + =C2=A0 =C2=A0 =C2=A0 pmc_mdep =3D pmc_mdep_alloc(nclasses); >>>> >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_mdep->pmd_cputype =C2=A0 =C2=A0=3D cput= ype; >>>> - =C2=A0 =C2=A0 =C2=A0 pmc_mdep->pmd_nclass =C2=A0 =C2=A0 =3D nclasses= ; >>>> - >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_mdep->pmd_switch_in =C2=A0=3D intel_swi= tch_in; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_mdep->pmd_switch_out =3D intel_switch_o= ut; >>>> >>>> >>>> Modified: head/sys/dev/hwpmc/hwpmc_logging.c >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/sys/dev/hwpmc/hwpmc_logging.c =C2=A0Wed Mar 28 20:49:11 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/sys/dev/hwpmc/hwpmc_logging.c =C2=A0Wed Mar 28 20:58:30 2012 = =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -129,6 +129,7 @@ static struct mtx pmc_kthread_mtx; =C2=A0/* sl >>>> >>>> =C2=A0/* Emit a string. =C2=A0Caution: does NOT update _le, so needs t= o be last */ >>>> =C2=A0#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMCLOG_EMITSTRING(S,L) =C2=A0= do { bcopy((S), _le, (L)); } while (0) >>>> +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMCLOG_EMITNULLSTRING(L) do { bzer= o(_le, (L)); } while (0) >>>> >>>> =C2=A0#define =C2=A0 =C2=A0 =C2=A0 =C2=A0PMCLOG_DESPATCH(PO) =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \ >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pmclog_release(= (PO)); =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \ >>>> @@ -835,16 +836,33 @@ void >>>> =C2=A0pmclog_process_pmcallocate(struct pmc *pm) >>>> =C2=A0{ >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0struct pmc_owner *po; >>>> + =C2=A0 =C2=A0 =C2=A0 struct pmc_soft *ps; >>>> >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0po =3D pm->pm_owner; >>>> >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0PMCDBG(LOG,ALL,1, "pm=3D%p", pm); >>>> >>>> - =C2=A0 =C2=A0 =C2=A0 PMCLOG_RESERVE(po, PMCALLOCATE, sizeof(struct p= mclog_pmcallocate)); >>>> - =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->pm_id); >>>> - =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->pm_event); >>>> - =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->pm_flags); >>>> - =C2=A0 =C2=A0 =C2=A0 PMCLOG_DESPATCH(po); >>>> + =C2=A0 =C2=A0 =C2=A0 if (PMC_TO_CLASS(pm) =3D=3D PMC_CLASS_SOFT) { >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_RESERVE(po, = PMCALLOCATEDYN, >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sizeo= f(struct pmclog_pmcallocatedyn)); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->p= m_id); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->p= m_event); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->p= m_flags); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ps =3D pmc_soft_ev_= acquire(pm->pm_event); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (ps !=3D NULL) >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 PMCLOG_EMITSTRING(ps->ps_ev.pm_ev_name,PMC_NAME_MAX); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 else >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 PMCLOG_EMITNULLSTRING(PMC_NAME_MAX); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_soft_ev_release= (ps); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_DESPATCH(po)= ; >>>> + =C2=A0 =C2=A0 =C2=A0 } else { >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_RESERVE(po, = PMCALLOCATE, >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sizeo= f(struct pmclog_pmcallocate)); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->p= m_id); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->p= m_event); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_EMIT32(pm->p= m_flags); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PMCLOG_DESPATCH(po)= ; >>>> + =C2=A0 =C2=A0 =C2=A0 } >>>> =C2=A0} >>>> >>>> =C2=A0void >>>> >>>> Modified: head/sys/dev/hwpmc/hwpmc_mips.c >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/sys/dev/hwpmc/hwpmc_mips.c =C2=A0 =C2=A0 Wed Mar 28 20:49:11 = 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/sys/dev/hwpmc/hwpmc_mips.c =C2=A0 =C2=A0 Wed Mar 28 20:58:30 = 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -287,7 +287,7 @@ mips_pmc_intr(int cpu, struct trapframe >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0retval =3D 1; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (pm->pm_stat= e !=3D PMC_STATE_RUNNING) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0continue; >>>> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_proce= ss_interrupt(cpu, pm, tf, >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D pmc_proce= ss_interrupt(cpu, PMC_HR, pm, tf, >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0T= RAPF_USERMODE(tf)); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (error) { >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0/* Clear/disable the relevant counter */ >>>> >>>> Modified: head/sys/dev/hwpmc/hwpmc_mod.c >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>>> --- head/sys/dev/hwpmc/hwpmc_mod.c =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:4= 9:11 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233627) >>>> +++ head/sys/dev/hwpmc/hwpmc_mod.c =C2=A0 =C2=A0 =C2=A0Wed Mar 28 20:5= 8:30 2012 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r233628) >>>> @@ -70,6 +70,8 @@ __FBSDID("$FreeBSD$"); >>>> =C2=A0#include >>>> =C2=A0#include >>>> >>>> +#include "hwpmc_soft.h" >>>> + >>>> =C2=A0/* >>>> =C2=A0* Types >>>> =C2=A0*/ >>>> @@ -182,7 +184,7 @@ static int =C2=A0pmc_attach_one_process(struct >>>> =C2=A0static int =C2=A0 =C2=A0 pmc_can_allocate_rowindex(struct proc *= p, unsigned int ri, >>>> =C2=A0 =C2=A0 int cpu); >>>> =C2=A0static int =C2=A0 =C2=A0 pmc_can_attach(struct pmc *pm, struct p= roc *p); >>>> -static void =C2=A0 =C2=A0pmc_capture_user_callchain(int cpu, struct t= rapframe *tf); >>>> +static void =C2=A0 =C2=A0pmc_capture_user_callchain(int cpu, int soft= , struct trapframe *tf); >>>> =C2=A0static void =C2=A0 =C2=A0pmc_cleanup(void); >>>> =C2=A0static int =C2=A0 =C2=A0 pmc_detach_process(struct proc *p, stru= ct pmc *pm); >>>> =C2=A0static int =C2=A0 =C2=A0 pmc_detach_one_process(struct proc *p, = struct pmc *pm, >>>> @@ -206,7 +208,7 @@ static void pmc_process_csw_out(struct t >>>> =C2=A0static void =C2=A0 =C2=A0pmc_process_exit(void *arg, struct proc= *p); >>>> =C2=A0static void =C2=A0 =C2=A0pmc_process_fork(void *arg, struct proc= *p1, >>>> =C2=A0 =C2=A0 struct proc *p2, int n); >>>> -static void =C2=A0 =C2=A0pmc_process_samples(int cpu); >>>> +static void =C2=A0 =C2=A0pmc_process_samples(int cpu, int soft); >>>> =C2=A0static void =C2=A0 =C2=A0pmc_release_pmc_descriptor(struct pmc *= pmc); >>>> =C2=A0static void =C2=A0 =C2=A0pmc_remove_owner(struct pmc_owner *po); >>>> =C2=A0static void =C2=A0 =C2=A0pmc_remove_process_descriptor(struct pm= c_process *pp); >>>> @@ -218,12 +220,16 @@ static int =C2=A0 =C2=A0 =C2=A0 =C2=A0pmc_stop(s= truct pmc *pm); >>>> =C2=A0static int =C2=A0 =C2=A0 pmc_syscall_handler(struct thread *td, = void *syscall_args); >>>> =C2=A0static void =C2=A0 =C2=A0pmc_unlink_target_process(struct pmc *p= mc, >>>> =C2=A0 =C2=A0 struct pmc_process *pp); >>>> +static int generic_switch_in(struct pmc_cpu *pc, struct pmc_process *= pp); >>>> +static int generic_switch_out(struct pmc_cpu *pc, struct pmc_process = *pp); >>>> +static struct pmc_mdep *pmc_generic_cpu_initialize(void); >>>> +static void pmc_generic_cpu_finalize(struct pmc_mdep *md); >>>> >>>> =C2=A0/* >>>> =C2=A0* Kernel tunables and sysctl(8) interface. >>>> =C2=A0*/ >>>> >>>> -SYSCTL_NODE(_kern, OID_AUTO, hwpmc, CTLFLAG_RW, 0, "HWPMC parameters"= ); >>>> +SYSCTL_DECL(_kern_hwpmc); >>>> >>>> =C2=A0static int pmc_callchaindepth =3D PMC_CALLCHAIN_DEPTH; >>>> =C2=A0TUNABLE_INT(PMC_SYSCTL_NAME_PREFIX "callchaindepth", &pmc_callch= aindepth); >>>> @@ -1833,7 +1839,9 @@ const char *pmc_hooknames[] =3D { >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0"KLDUNLOAD", >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0"MMAP", >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0"MUNMAP", >>>> - =C2=A0 =C2=A0 =C2=A0 "CALLCHAIN" >>>> + =C2=A0 =C2=A0 =C2=A0 "CALLCHAIN-NMI", >>>> + =C2=A0 =C2=A0 =C2=A0 "CALLCHAIN-SOFT", >>>> + =C2=A0 =C2=A0 =C2=A0 "SOFTSAMPLING" >>>> =C2=A0}; >>>> =C2=A0#endif >>>> >>>> @@ -1992,7 +2000,8 @@ pmc_hook_handler(struct thread *td, int >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * lose the int= errupt sample. >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */ >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CPU_CLR_ATOMIC(= PCPU_GET(cpuid), &pmc_cpumask); >>>> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_process_samples= (PCPU_GET(cpuid)); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_process_samples= (PCPU_GET(cpuid), PMC_HR); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_process_samples= (PCPU_GET(cpuid), PMC_SR); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break; >>>> >>>> >>>> @@ -2022,11 +2031,30 @@ pmc_hook_handler(struct thread *td, int >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */ >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0KASSERT(td =3D= =3D curthread, ("[pmc,%d] td !=3D curthread", >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0_= _LINE__)); >>>> - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_capture_user_ca= llchain(PCPU_GET(cpuid), >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_capture_user_ca= llchain(PCPU_GET(cpuid), PMC_HR, >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(= struct trapframe *) arg); >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0td->td_pflags &= =3D ~TDP_CALLCHAIN; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break; >>>> >>>> + =C2=A0 =C2=A0 =C2=A0 case PMC_FN_USER_CALLCHAIN_SOFT: >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* Record a ca= ll chain. >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/ >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 KASSERT(td =3D=3D c= urthread, ("[pmc,%d] td !=3D curthread", >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 __LIN= E__)); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_capture_user_ca= llchain(PCPU_GET(cpuid), PMC_SR, >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (stru= ct trapframe *) arg); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 td->td_pflags &=3D = ~TDP_CALLCHAIN; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break; >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 case PMC_FN_SOFT_SAMPLING: >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* Call soft P= MC sampling intr. >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/ >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pmc_soft_intr((stru= ct pmckern_soft *) arg); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break; >>>> + >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0default: >>>> =C2=A0#ifdef DEBUG >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0KASSERT(0, ("[p= mc,%d] unknown hook %d\n", __LINE__, function)); >>>> @@ -2221,18 +2249,17 @@ pmc_destroy_pmc_descriptor(struct pmc *p >>>> =C2=A0static void >>>> =C2=A0pmc_wait_for_pmc_idle(struct pmc *pm) >>>> =C2=A0{ >>>> -#ifdef DEBUG >>>> +#ifdef DEBUG >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0volatile int maxloop; >>>> >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0maxloop =3D 100 * pmc_cpu_max(); >>>> =C2=A0#endif >>>> - >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0/* >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 * Loop (with a forced context switch) till= the PMC's runcount >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 * comes down to zero. >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 */ >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0while (atomic_load_acq_32(&pm->pm_runcount)= > 0) { >>>> -#ifdef DEBUG >>>> +#ifdef DEBUG >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0maxloop--; >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0KASSERT(maxloop= > 0, >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(= "[pmc,%d] (ri%d, rc%d) waiting too long for " >>>> @@ -2972,6 +2999,53 @@ pmc_syscall_handler(struct thread *td, v >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0} >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0break; >>>> >>>> + =C2=A0 =C2=A0 =C2=A0 /* >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0* Retrieve soft events list. >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0*/ >>>> + =C2=A0 =C2=A0 =C2=A0 case PMC_OP_GETDYNEVENTINFO: >>>> + =C2=A0 =C2=A0 =C2=A0 { >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 enum pmc_class =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cl; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 enum pmc_event =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ev; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct pmc_op_getdy= neventinfo =C2=A0 *gei; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct pmc_dyn_even= t_descr =C2=A0 =C2=A0 =C2=A0dev; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct pmc_soft =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 *ps; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 uint32_t =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ne= vent; >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sx_assert(&pmc_sx, = SX_LOCKED); >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 gei =3D (struct pmc= _op_getdyneventinfo *) arg; >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if ((error =3D copy= in(&gei->pm_class, &cl, sizeof(cl))) !=3D 0) >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 break; >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* Only SOFT class = is dynamic. */ >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (cl !=3D PMC_CLA= SS_SOFT) { >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 error =3D EINVAL; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 break; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 } >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 nevent =3D 0; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 for (ev =3D PMC_EV_= SOFT_FIRST; ev <=3D PMC_EV_SOFT_LAST; ev++) { >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 ps =3D pmc_soft_ev_acquire(ev); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 if (ps =3D=3D NULL) >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 continue; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 bcopy(&ps->ps_ev, &dev, sizeof(dev)); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 pmc_soft_ev_release(ps); >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 error =3D copyout(&dev, >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 &gei->pm_events[nevent], >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 sizeof(struct pmc_dyn_event_descr)); >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 if (error !=3D 0) >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 nevent++; >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 } >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (error !=3D 0) >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 break; >>>> + >>>> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D copyout(&= nevent, &gei->pm_nevent, >>>> >>>> *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** >> >> >> >> -- >> Monthadar Al Jaberi >> > > --=20 Monthadar Al Jaberi From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 08:16:23 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9181B106566B for ; Mon, 23 Apr 2012 08:16:23 +0000 (UTC) (envelope-from martymac@FreeBSD.org) Received: from lmtp.galacsys.net (webmail.galacsys.net [IPv6:2001:1b78:0:1:d918:51d7:0:1]) by mx1.freebsd.org (Postfix) with ESMTP id 5162B8FC0A for ; Mon, 23 Apr 2012 08:16:23 +0000 (UTC) Received: from martymac.org (webmail.galacsys.net [217.24.81.215]) by lmtp.galacsys.net (Postfix) with ESMTP id 768E41FA5CEC; Mon, 23 Apr 2012 10:16:22 +0200 (CEST) From: "Ganael LAPLANCHE" To: freebsd-current@freebsd.org X-Openwebmail-Date: Mon, 23 Apr 2012 11:16:22 +0200 Message-Id: <20120423081404.M46823@martymac.org> In-Reply-To: <20120420061417.GP37811@e-new.0x20.net> References: <201204200701.08507.erichfreebsdlist@ovitrap.com> <4F90AE77.2020408@gmail.com> <201204200825.42651.erichfreebsdlist@ovitrap.com> <20120420061417.GP37811@e-new.0x20.net> X-Mailer: Open WebMail 2.01 20030425 X-OriginatingIP: 157.99.64.43 (ganael.laplanche@martymac.org) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Date: Mon, 23 Apr 2012 08:16:23 +0000 (UTC) Cc: Erich Dollansky , matt , Lars Engels Subject: Re: Status on X220 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 08:16:23 -0000 On Fri, 20 Apr 2012 08:14:17 +0200, Lars Engels wrote Hi everyone, > This is the same for my x200, but you can make it work: > On 9.0-RELEASE you have to configure through device.hints(5), > in CURRENT you can configure it on thy fly. See snd_hda(4) > how to do this. FYI, this is what I had to put in /boot/devices.hint to have headset working properly on my x220 (on 10-CURRENT) : # Out : speaker + headphones # hint.hdac.0.cad0.nid31.config="as=1" hint.hdac.0.cad0.nid25.config="as=1 seq=15" # In : mic + external mic hint.hdac.0.cad0.nid35.config="as=2" hint.hdac.0.cad0.nid27.config="as=2 seq=15" Best regards, -- Ganael LAPLANCHE http://www.martymac.org | http://contribs.martymac.org FreeBSD: martymac , http://www.FreeBSD.org From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 08:59:02 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 319F51065675; Mon, 23 Apr 2012 08:59:02 +0000 (UTC) (envelope-from fabien.thomas@netasq.com) Received: from work.netasq.com (gwlille.netasq.com [91.212.116.1]) by mx1.freebsd.org (Postfix) with ESMTP id 35BFE8FC08; Mon, 23 Apr 2012 08:59:01 +0000 (UTC) Received: from [10.2.1.1] (unknown [10.2.1.1]) by work.netasq.com (Postfix) with ESMTPSA id 32F1427038E2; Mon, 23 Apr 2012 10:59:33 +0200 (CEST) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: multipart/signed; boundary="Apple-Mail=_AA16D944-B364-4C83-BE40-AEE3A01B5AB1"; protocol="application/pkcs7-signature"; micalg=sha1 From: Fabien Thomas In-Reply-To: Date: Mon, 23 Apr 2012 10:59:07 +0200 Message-Id: <2DB1BD7C-D909-4D36-90F4-8F19CD27412B@netasq.com> References: <201203282058.q2SKwVsJ053900@svn.freebsd.org> <25D59FAA-D52A-42FB-8120-66467863AB0B@netasq.com> To: Monthadar Al Jaberi X-Mailer: Apple Mail (2.1257) X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: monthadar@freebsd.org, Adrian Chadd , freebsd-current , Fabien Thomas , freebsd-mips@freebsd.org Subject: Re: svn commit: r233628 - in head: lib/libpmc sys/amd64/amd64 sys/amd64/include sys/arm/include sys/conf sys/dev/hwpmc sys/i386/i386 sys/i386/include sys/kern sys/mips/include sys/modules/hwpmc sys/pow... X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 08:59:02 -0000 --Apple-Mail=_AA16D944-B364-4C83-BE40-AEE3A01B5AB1 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Le 23 avr. 2012 =C3=A0 10:06, Monthadar Al Jaberi a =C3=A9crit : > On Mon, Apr 23, 2012 at 9:47 AM, Fabien Thomas = wrote: >> Hi, >>=20 >> The rumors seems true :) >> Can you try the patch attached (I cannot test as i've no MIPS = hardware) ? >=20 > my RSPRO boots fine now, thank you :) >=20 commited as r234598. Thanks! >>=20 >> Thanks, >> Fabien >>=20 >>=20 >>> On Mon, Apr 23, 2012 at 8:44 AM, Adrian Chadd = wrote: >>>> Hi Fabien, >>>>=20 >>>> I've heard some rumours that this broke hwpmc support for mips24k. >>>>=20 >>>> Monthadar, can you please provide some background info for this? >>>>=20 >>>=20 >>> This is the log output >>>=20 >>> Using default protocol (TFTP) >>> Entry point: 0x80050100, address range: 0x80050000-0x804f1dcc >>> RedBoot> exec >>> Now booting linux kernel: >>> Base address 0x80050000 Entry 0x80050100 >>> memsize=3D0x08000000 >>> modetty0=3D0,n,8,1,hw >>> board=3DRouterStation PRO >>> ethaddr=3D00.15.6d.c8.c9.2e >>> CPU platform: Atheros AR7161 rev 2 >>> CPU Frequency=3D720 MHz >>> CPU DDR Frequency=3D360 MHz >>> CPU AHB Frequency=3D180 MHz >>> platform frequency: 720000000 >>> arguments: >>> a0 =3D 00000002 >>> a1 =3D 80050028 >>> a2 =3D 80050000 >>> a3 =3D 00000001 >>> Cmd line: = =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BDm=EF=BF=BD=EF= =BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD_}=EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=DF=BEq=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF= =BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF= =BD=EF=BF=BD=EF=BF=BD = =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF= =BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF= =BD=DF=BF=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF= =BF=BD=EF=BF=BD_=EF=BF=BDw=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD = =EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD?-=EF=BF=BD=EF=BF=BD=EF=BF=BD= =EF=BF=BD{=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD=EF=BF=BD~=EF=BF=BD= =EF=BF=BD >>> Environment: >>> memsize =3D 0x08000000 >>> modetty0 =3D 0,n,8,1,hw >>> ethaddr =3D 00.15.6d.c8.c9.2e >>> board =3D RouterStation PRO >>> Cache info: >>> picache_stride =3D 4096 >>> picache_loopcount =3D 16 >>> pdcache_stride =3D 4096 >>> pdcache_loopcount =3D 8 >>> cpu0: MIPS Technologies processor v116.147 >>> MMU: Standard TLB, 16 entries >>> L1 i-cache: 4 ways of 512 sets, 32 bytes per line >>> L1 d-cache: 4 ways of 256 sets, 32 bytes per line >>> Config1=3D0x9ee3519e >>> Config3=3D0x20 >>> KDB: debugger backends: ddb >>> KDB: current backend: ddb >>> Copyright (c) 1992-2012 The FreeBSD Project. >>> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, = 1994 >>> The Regents of the University of California. All rights = reserved. >>> FreeBSD is a registered trademark of The FreeBSD Foundation. >>> FreeBSD 10.0-CURRENT #12: Fri Apr 20 18:03:16 CEST 2012 >>> root@freebsd-re-9:/usr/obj/mips.mips/usr/src/sys/RSPRO_USB_PROD = mips >>> WARNING: WITNESS option enabled, expect reduced performance. >>> MEMGUARD DEBUGGING ALLOCATOR INITIALIZED: >>> MEMGUARD map base: 0xc0800000 >>> MEMGUARD map limit: 0xc1c00000 >>> MEMGUARD map size: 20480 KBytes >>> real memory =3D 134217728 (131072K bytes) >>> avail memory =3D 123117568 (117MB) >>> random device not loaded; using insecure entropy >>> nexus0: >>> clock0: on nexus0 >>> Timecounter "MIPS32" frequency 360000000 Hz quality 800 >>> Event timer "MIPS32" frequency 360000000 Hz quality 800 >>> apb0 at irq 4 on nexus0 >>> uart0: <16550 or compatible> on apb0 >>> uart0: console (115200,n,8,1) >>> gpio0: on apb0 >>> gpio0: [GIANT-LOCKED] >>> gpio0: gpio pinmask=3D0x0 >>> gpioc0: on gpio0 >>> gpiobus0: on gpio0 >>> ehci0: at mem >>> 0x1b000000-0x1bffffff irq 1 on nexus0 >>> usbus0: set host controller mode >>> usbus0: EHCI version 1.0 >>> usbus0: set host controller mode >>> usbus0 on ehci0 >>> pcib0 at irq 0 on nexus0 >>> pci0: on pcib0 >>> pci0: at device 0.0 (no driver = attached) >>> ath0: irq 0 at device 17.0 on pci0 >>> ath0: AR5413 mac 10.5 RF5413 phy 6.1 >>> ath0: 2GHz radio: 0x0000; 5GHz radio: 0x0063 >>> arge0: at mem >>> 0x19000000-0x19000fff irq 2 on nexus0 >>> arge0: No PHY specified, using mask 16 >>> miibus0: on arge0 >>> ukphy0: PHY 4 on miibus0 >>> ukphy0: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, >>> 1000baseT-FDX, 1000baseT-FDX-master, auto >>> arge0: Ethernet address: 00:15:6d:c8:c9:2e >>> arge1: at mem >>> 0x1a000000-0x1a000fff irq 3 on nexus0 >>> arge1: No PHY specified, using mask 15 >>> arge1: Ethernet address: 00:15:6d:c8:c9:2f >>> spi0: at mem 0x1f000000-0x1f00000f on nexus0 >>> spibus0: on spi0 >>> mx25l0: at cs 0 on spibus0 >>> mx25l0: mx25ll128, sector 65536 bytes, 256 sectors >>> ar71xx_wdog0: on nexus0 >>> Timecounters tick every 1.000 msec >>> usbus0: 480Mbps High Speed USB v2.0 >>> ugen0.1: at usbus0 >>> uhub0: on = usbus0 >>> panic: [pmc,4816] npmc miscomputed: ri=3D0, md->npmc=3D2 >>> KDB: enter: panic >>> [ thread pid 0 tid 100000 ] >>> Stopped at kdb_enter+0x4c: lui at,0x8050 >>> db> tr >>> Tracing pid 0 tid 100000 td 0x804f76d0 >>> db_trace_thread+30 (?,?,?,?) ra 8068b94800000018 sp 0 sz 0 >>> 80075adc+114 (0,?,ffffffff,?) ra 8068b96000000020 sp 100000000 sz 1 >>> 80074e24+388 (?,?,?,?) ra 8068b980000000a8 sp 0 sz 0 >>> db_command_loop+70 (?,?,?,?) ra 8068ba2800000018 sp 0 sz 0 >>> 80077900+f4 (?,?,?,?) ra 8068ba40000001a8 sp 0 sz 0 >>> kdb_trap+110 (?,?,?,?) ra 8068bbe800000030 sp 0 sz 0 >>> trap+c7c (?,?,?,?) ra 8068bc18000000b8 sp 0 sz 0 >>> MipsKernGenException+134 (0,4,8043b1d4,119) ra 8068bcd0000000c8 sp >>> 100000001 sz 1 >>> kdb_enter+4c (?,?,?,?) ra 8068bd9800000018 sp 0 sz 0 >>> panic+11c (?,12d0,0,2) ra 8068bdb000000028 sp 1 sz 1 >>> 800e8ca8+274 (?,?,?,?) ra 8068bdd800000038 sp 0 sz 0 >>> syscall_module_handler+b8 (?,?,?,?) ra 8068be1000000028 sp 0 sz 0 >>> module_register_init+9c (?,?,?,?) ra 8068be3800000028 sp 0 sz 0 >>> mi_startup+138 (?,?,?,?) ra 8068be6000000020 sp 0 sz 0 >>> _start+90 (?,?,?,?) ra 8068be8000000000 sp 0 sz 0 >>> pid 0 >>> db> >>>=20 >>>> Thanks, >>>>=20 >>>>=20 >>>>=20 >>>> adrian >>>>=20 >>>> On 28 March 2012 13:58, Fabien Thomas wrote: >>>>> Author: fabient >>>>> Date: Wed Mar 28 20:58:30 2012 >>>>> New Revision: 233628 >>>>> URL: http://svn.freebsd.org/changeset/base/233628 >>>>>=20 >>>>> Log: >>>>> Add software PMC support. >>>>>=20 >>>>> New kernel events can be added at various location for sampling = or counting. >>>>> This will for example allow easy system profiling whatever the = processor is >>>>> with known tools like pmcstat(8). >>>>>=20 >>>>> Simultaneous usage of software PMC and hardware PMC is possible, = for example >>>>> looking at the lock acquire failure, page fault while sampling on >>>>> instructions. >>>>>=20 >>>>> Sponsored by: NETASQ >>>>> MFC after: 1 month >>>>>=20 >>>>> Added: >>>>> head/lib/libpmc/pmc.soft.3 (contents, props changed) >>>>> head/sys/dev/hwpmc/hwpmc_soft.c (contents, props changed) >>>>> head/sys/dev/hwpmc/hwpmc_soft.h (contents, props changed) >>>>> Modified: >>>>> head/lib/libpmc/Makefile >>>>> head/lib/libpmc/libpmc.c >>>>> head/lib/libpmc/pmc.3 >>>>> head/lib/libpmc/pmc.atom.3 >>>>> head/lib/libpmc/pmc.core.3 >>>>> head/lib/libpmc/pmc.core2.3 >>>>> head/lib/libpmc/pmc.corei7.3 >>>>> head/lib/libpmc/pmc.corei7uc.3 >>>>> head/lib/libpmc/pmc.iaf.3 >>>>> head/lib/libpmc/pmc.k7.3 >>>>> head/lib/libpmc/pmc.k8.3 >>>>> head/lib/libpmc/pmc.mips24k.3 >>>>> head/lib/libpmc/pmc.octeon.3 >>>>> head/lib/libpmc/pmc.p4.3 >>>>> head/lib/libpmc/pmc.p5.3 >>>>> head/lib/libpmc/pmc.p6.3 >>>>> head/lib/libpmc/pmc.sandybridge.3 >>>>> head/lib/libpmc/pmc.sandybridgeuc.3 >>>>> head/lib/libpmc/pmc.tsc.3 >>>>> head/lib/libpmc/pmc.ucf.3 >>>>> head/lib/libpmc/pmc.westmere.3 >>>>> head/lib/libpmc/pmc.westmereuc.3 >>>>> head/lib/libpmc/pmc.xscale.3 >>>>> head/lib/libpmc/pmclog.c >>>>> head/lib/libpmc/pmclog.h >>>>> head/sys/amd64/amd64/trap.c >>>>> head/sys/amd64/include/pmc_mdep.h >>>>> head/sys/arm/include/pmc_mdep.h >>>>> head/sys/conf/files >>>>> head/sys/dev/hwpmc/hwpmc_amd.c >>>>> head/sys/dev/hwpmc/hwpmc_core.c >>>>> head/sys/dev/hwpmc/hwpmc_intel.c >>>>> head/sys/dev/hwpmc/hwpmc_logging.c >>>>> head/sys/dev/hwpmc/hwpmc_mips.c >>>>> head/sys/dev/hwpmc/hwpmc_mod.c >>>>> head/sys/dev/hwpmc/hwpmc_piv.c >>>>> head/sys/dev/hwpmc/hwpmc_powerpc.c >>>>> head/sys/dev/hwpmc/hwpmc_ppro.c >>>>> head/sys/dev/hwpmc/hwpmc_tsc.c >>>>> head/sys/dev/hwpmc/hwpmc_x86.c >>>>> head/sys/dev/hwpmc/hwpmc_xscale.c >>>>> head/sys/dev/hwpmc/pmc_events.h >>>>> head/sys/i386/i386/trap.c >>>>> head/sys/i386/include/pmc_mdep.h >>>>> head/sys/kern/kern_clock.c >>>>> head/sys/kern/kern_lock.c >>>>> head/sys/kern/kern_mutex.c >>>>> head/sys/kern/kern_pmc.c >>>>> head/sys/kern/kern_rwlock.c >>>>> head/sys/kern/kern_sx.c >>>>> head/sys/kern/subr_trap.c >>>>> head/sys/mips/include/pmc_mdep.h >>>>> head/sys/modules/hwpmc/Makefile >>>>> head/sys/powerpc/include/pmc_mdep.h >>>>> head/sys/sys/pmc.h >>>>> head/sys/sys/pmckern.h >>>>> head/sys/sys/pmclog.h >>>>> head/usr.sbin/pmcstat/pmcstat_log.c >>>>>=20 >>>>> Modified: head/lib/libpmc/Makefile >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/Makefile Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/Makefile Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -20,6 +20,7 @@ MAN+=3D pmc_read.3 >>>>> MAN+=3D pmc_set.3 >>>>> MAN+=3D pmc_start.3 >>>>> MAN+=3D pmclog.3 >>>>> +MAN+=3D pmc.soft.3 >>>>>=20 >>>>> # PMC-dependent manual pages >>>>> .if ${MACHINE_CPUARCH} =3D=3D "i386" || ${MACHINE_CPUARCH} =3D=3D = "amd64" >>>>>=20 >>>>> Modified: head/lib/libpmc/libpmc.c >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/libpmc.c Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/libpmc.c Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -77,11 +77,12 @@ static int tsc_allocate_pmc(enum pmc_eve >>>>> static int xscale_allocate_pmc(enum pmc_event _pe, char = *_ctrspec, >>>>> struct pmc_op_pmcallocate *_pmc_config); >>>>> #endif >>>>> - >>>>> #if defined(__mips__) >>>>> static int mips_allocate_pmc(enum pmc_event _pe, char* ctrspec, >>>>> struct pmc_op_pmcallocate = *_pmc_config); >>>>> #endif /* __mips__ */ >>>>> +static int soft_allocate_pmc(enum pmc_event _pe, char *_ctrspec, >>>>> + struct pmc_op_pmcallocate *_pmc_config); >>>>>=20 >>>>> #if defined(__powerpc__) >>>>> static int ppc7450_allocate_pmc(enum pmc_event _pe, char* = ctrspec, >>>>> @@ -156,6 +157,8 @@ PMC_CLASSDEP_TABLE(octeon, OCTEON); >>>>> PMC_CLASSDEP_TABLE(ucf, UCF); >>>>> PMC_CLASSDEP_TABLE(ppc7450, PPC7450); >>>>>=20 >>>>> +static struct pmc_event_descr soft_event_table[PMC_EV_DYN_COUNT]; >>>>> + >>>>> #undef __PMC_EV_ALIAS >>>>> #define __PMC_EV_ALIAS(N,CODE) { N, PMC_EV_##CODE }, >>>>>=20 >>>>> @@ -215,21 +218,22 @@ static const struct pmc_event_descr west >>>>> PMC_CLASS_##C, __VA_ARGS__ \ >>>>> } >>>>>=20 >>>>> -PMC_MDEP_TABLE(atom, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC); >>>>> -PMC_MDEP_TABLE(core, IAP, PMC_CLASS_TSC); >>>>> -PMC_MDEP_TABLE(core2, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC); >>>>> -PMC_MDEP_TABLE(corei7, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, = PMC_CLASS_UCF, PMC_CLASS_UCP); >>>>> -PMC_MDEP_TABLE(sandybridge, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, = PMC_CLASS_UCF, PMC_CLASS_UCP); >>>>> -PMC_MDEP_TABLE(westmere, IAP, PMC_CLASS_IAF, PMC_CLASS_TSC, = PMC_CLASS_UCF, PMC_CLASS_UCP); >>>>> -PMC_MDEP_TABLE(k7, K7, PMC_CLASS_TSC); >>>>> -PMC_MDEP_TABLE(k8, K8, PMC_CLASS_TSC); >>>>> -PMC_MDEP_TABLE(p4, P4, PMC_CLASS_TSC); >>>>> -PMC_MDEP_TABLE(p5, P5, PMC_CLASS_TSC); >>>>> -PMC_MDEP_TABLE(p6, P6, PMC_CLASS_TSC); >>>>> -PMC_MDEP_TABLE(xscale, XSCALE, PMC_CLASS_XSCALE); >>>>> -PMC_MDEP_TABLE(mips24k, MIPS24K, PMC_CLASS_MIPS24K); >>>>> -PMC_MDEP_TABLE(octeon, OCTEON, PMC_CLASS_OCTEON); >>>>> -PMC_MDEP_TABLE(ppc7450, PPC7450, PMC_CLASS_PPC7450); >>>>> +PMC_MDEP_TABLE(atom, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, = PMC_CLASS_TSC); >>>>> +PMC_MDEP_TABLE(core, IAP, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>>>> +PMC_MDEP_TABLE(core2, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, = PMC_CLASS_TSC); >>>>> +PMC_MDEP_TABLE(corei7, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, = PMC_CLASS_TSC, PMC_CLASS_UCF, PMC_CLASS_UCP); >>>>> +PMC_MDEP_TABLE(sandybridge, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, = PMC_CLASS_TSC, PMC_CLASS_UCF, PMC_CLASS_UCP); >>>>> +PMC_MDEP_TABLE(westmere, IAP, PMC_CLASS_SOFT, PMC_CLASS_IAF, = PMC_CLASS_TSC, PMC_CLASS_UCF, PMC_CLASS_UCP); >>>>> +PMC_MDEP_TABLE(k7, K7, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>>>> +PMC_MDEP_TABLE(k8, K8, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>>>> +PMC_MDEP_TABLE(p4, P4, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>>>> +PMC_MDEP_TABLE(p5, P5, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>>>> +PMC_MDEP_TABLE(p6, P6, PMC_CLASS_SOFT, PMC_CLASS_TSC); >>>>> +PMC_MDEP_TABLE(xscale, XSCALE, PMC_CLASS_SOFT, PMC_CLASS_XSCALE); >>>>> +PMC_MDEP_TABLE(mips24k, MIPS24K, PMC_CLASS_SOFT, = PMC_CLASS_MIPS24K); >>>>> +PMC_MDEP_TABLE(octeon, OCTEON, PMC_CLASS_SOFT, PMC_CLASS_OCTEON); >>>>> +PMC_MDEP_TABLE(ppc7450, PPC7450, PMC_CLASS_SOFT, = PMC_CLASS_PPC7450); >>>>> +PMC_MDEP_TABLE(generic, SOFT, PMC_CLASS_SOFT); >>>>>=20 >>>>> static const struct pmc_event_descr tsc_event_table[] =3D >>>>> { >>>>> @@ -279,16 +283,24 @@ PMC_CLASS_TABLE_DESC(tsc, TSC, tsc, tsc) >>>>> #if defined(__XSCALE__) >>>>> PMC_CLASS_TABLE_DESC(xscale, XSCALE, xscale, xscale); >>>>> #endif >>>>> - >>>>> #if defined(__mips__) >>>>> PMC_CLASS_TABLE_DESC(mips24k, MIPS24K, mips24k, mips); >>>>> PMC_CLASS_TABLE_DESC(octeon, OCTEON, octeon, mips); >>>>> #endif /* __mips__ */ >>>>> - >>>>> #if defined(__powerpc__) >>>>> PMC_CLASS_TABLE_DESC(ppc7450, PPC7450, ppc7450, ppc7450); >>>>> #endif >>>>>=20 >>>>> +static struct pmc_class_descr soft_class_table_descr =3D >>>>> +{ >>>>> + .pm_evc_name =3D "SOFT-", >>>>> + .pm_evc_name_size =3D sizeof("SOFT-") - 1, >>>>> + .pm_evc_class =3D PMC_CLASS_SOFT, >>>>> + .pm_evc_event_table =3D NULL, >>>>> + .pm_evc_event_table_size =3D 0, >>>>> + .pm_evc_allocate_pmc =3D soft_allocate_pmc >>>>> +}; >>>>> + >>>>> #undef PMC_CLASS_TABLE_DESC >>>>>=20 >>>>> static const struct pmc_class_descr **pmc_class_table; >>>>> @@ -343,9 +355,12 @@ static const char * pmc_state_names[] =3D >>>>> __PMC_STATES() >>>>> }; >>>>>=20 >>>>> -static int pmc_syscall =3D -1; /* filled in by = pmc_init() */ >>>>> - >>>>> -static struct pmc_cpuinfo cpu_info; /* filled in by pmc_init() = */ >>>>> +/* >>>>> + * Filled in by pmc_init(). >>>>> + */ >>>>> +static int pmc_syscall =3D -1; >>>>> +static struct pmc_cpuinfo cpu_info; >>>>> +static struct pmc_op_getdyneventinfo soft_event_info; >>>>>=20 >>>>> /* Event masks for events */ >>>>> struct pmc_masks { >>>>> @@ -2179,6 +2194,25 @@ tsc_allocate_pmc(enum pmc_event pe, char >>>>> } >>>>> #endif >>>>>=20 >>>>> +static struct pmc_event_alias generic_aliases[] =3D { >>>>> + EV_ALIAS("instructions", = "SOFT-CLOCK.HARD"), >>>>> + EV_ALIAS(NULL, NULL) >>>>> +}; >>>>> + >>>>> +static int >>>>> +soft_allocate_pmc(enum pmc_event pe, char *ctrspec, >>>>> + struct pmc_op_pmcallocate *pmc_config) >>>>> +{ >>>>> + (void)ctrspec; >>>>> + (void)pmc_config; >>>>> + >>>>> + if (pe < PMC_EV_SOFT_FIRST || pe > PMC_EV_SOFT_LAST) >>>>> + return (-1); >>>>> + >>>>> + pmc_config->pm_caps |=3D (PMC_CAP_READ | PMC_CAP_WRITE); >>>>> + return (0); >>>>> +} >>>>> + >>>>> #if defined(__XSCALE__) >>>>>=20 >>>>> static struct pmc_event_alias xscale_aliases[] =3D { >>>>> @@ -2663,6 +2697,10 @@ pmc_event_names_of_class(enum pmc_class >>>>> ev =3D ppc7450_event_table; >>>>> count =3D PMC_EVENT_TABLE_SIZE(ppc7450); >>>>> break; >>>>> + case PMC_CLASS_SOFT: >>>>> + ev =3D soft_event_table; >>>>> + count =3D soft_event_info.pm_nevent; >>>>> + break; >>>>> default: >>>>> errno =3D EINVAL; >>>>> return (-1); >>>>> @@ -2676,6 +2714,7 @@ pmc_event_names_of_class(enum pmc_class >>>>>=20 >>>>> for (;count--; ev++, names++) >>>>> *names =3D ev->pm_ev_name; >>>>> + >>>>> return (0); >>>>> } >>>>>=20 >>>>> @@ -2780,11 +2819,34 @@ pmc_init(void) >>>>> pmc_class_table[n] =3D NULL; >>>>>=20 >>>>> /* >>>>> + * Get soft events list. >>>>> + */ >>>>> + soft_event_info.pm_class =3D PMC_CLASS_SOFT; >>>>> + if (PMC_CALL(GETDYNEVENTINFO, &soft_event_info) < 0) >>>>> + return (pmc_syscall =3D -1); >>>>> + >>>>> + /* Map soft events to static list. */ >>>>> + for (n =3D 0; n < soft_event_info.pm_nevent; n++) { >>>>> + soft_event_table[n].pm_ev_name =3D >>>>> + soft_event_info.pm_events[n].pm_ev_name; >>>>> + soft_event_table[n].pm_ev_code =3D >>>>> + soft_event_info.pm_events[n].pm_ev_code; >>>>> + } >>>>> + soft_class_table_descr.pm_evc_event_table_size =3D \ >>>>> + soft_event_info.pm_nevent; >>>>> + soft_class_table_descr.pm_evc_event_table =3D \ >>>>> + soft_event_table; >>>>> + >>>>> + /* >>>>> * Fill in the class table. >>>>> */ >>>>> n =3D 0; >>>>> + >>>>> + /* Fill soft events information. */ >>>>> + pmc_class_table[n++] =3D &soft_class_table_descr; >>>>> #if defined(__amd64__) || defined(__i386__) >>>>> - pmc_class_table[n++] =3D &tsc_class_table_descr; >>>>> + if (cpu_info.pm_cputype !=3D PMC_CPU_GENERIC) >>>>> + pmc_class_table[n++] =3D &tsc_class_table_descr; >>>>>=20 >>>>> /* >>>>> * Check if this CPU has fixed function counters. >>>>> @@ -2867,6 +2929,9 @@ pmc_init(void) >>>>> pmc_class_table[n] =3D &p4_class_table_descr; >>>>> break; >>>>> #endif >>>>> + case PMC_CPU_GENERIC: >>>>> + PMC_MDEP_INIT(generic); >>>>> + break; >>>>> #if defined(__XSCALE__) >>>>> case PMC_CPU_INTEL_XSCALE: >>>>> PMC_MDEP_INIT(xscale); >>>>> @@ -3035,18 +3100,19 @@ _pmc_name_of_event(enum pmc_event pe, en >>>>> evfence =3D xscale_event_table + = PMC_EVENT_TABLE_SIZE(xscale); >>>>> } else if (pe >=3D PMC_EV_MIPS24K_FIRST && pe <=3D = PMC_EV_MIPS24K_LAST) { >>>>> ev =3D mips24k_event_table; >>>>> - evfence =3D mips24k_event_table + = PMC_EVENT_TABLE_SIZE(mips24k >>>>> -); >>>>> + evfence =3D mips24k_event_table + = PMC_EVENT_TABLE_SIZE(mips24k); >>>>> } else if (pe >=3D PMC_EV_OCTEON_FIRST && pe <=3D = PMC_EV_OCTEON_LAST) { >>>>> ev =3D octeon_event_table; >>>>> evfence =3D octeon_event_table + = PMC_EVENT_TABLE_SIZE(octeon); >>>>> } else if (pe >=3D PMC_EV_PPC7450_FIRST && pe <=3D = PMC_EV_PPC7450_LAST) { >>>>> ev =3D ppc7450_event_table; >>>>> - evfence =3D ppc7450_event_table + = PMC_EVENT_TABLE_SIZE(ppc7450 >>>>> -); >>>>> + evfence =3D ppc7450_event_table + = PMC_EVENT_TABLE_SIZE(ppc7450); >>>>> } else if (pe =3D=3D PMC_EV_TSC_TSC) { >>>>> ev =3D tsc_event_table; >>>>> evfence =3D tsc_event_table + = PMC_EVENT_TABLE_SIZE(tsc); >>>>> + } else if (pe >=3D PMC_EV_SOFT_FIRST && pe <=3D = PMC_EV_SOFT_LAST) { >>>>> + ev =3D soft_event_table; >>>>> + evfence =3D soft_event_table + = soft_event_info.pm_nevent; >>>>> } >>>>>=20 >>>>> for (; ev !=3D evfence; ev++) >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -223,6 +223,8 @@ and >>>>> CPUs. >>>>> .It Li PMC_CLASS_TSC >>>>> The timestamp counter on i386 and amd64 architecture CPUs. >>>>> +.It Li PMC_CLASS_SOFT >>>>> +Software events. >>>>> .El >>>>> .Ss PMC Capabilities >>>>> Capabilities of performance monitoring hardware are denoted using >>>>> @@ -525,6 +527,7 @@ API is >>>>> .Xr pmc.p4 3 , >>>>> .Xr pmc.p5 3 , >>>>> .Xr pmc.p6 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmclog 3 , >>>>> .Xr hwpmc 4 , >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.atom.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.atom.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.atom.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -1176,6 +1176,7 @@ and the underlying hardware events used >>>>> .Xr pmc.p4 3 , >>>>> .Xr pmc.p5 3 , >>>>> .Xr pmc.p6 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmc_cpuinfo 3 , >>>>> .Xr pmclog 3 , >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.core.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.core.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.core.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -792,6 +792,7 @@ may not count some transitions. >>>>> .Xr pmc.p4 3 , >>>>> .Xr pmc.p5 3 , >>>>> .Xr pmc.p6 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmclog 3 , >>>>> .Xr hwpmc 4 >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.core2.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.core2.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.core2.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -1107,6 +1107,7 @@ and the underlying hardware events used. >>>>> .Xr pmc.p4 3 , >>>>> .Xr pmc.p5 3 , >>>>> .Xr pmc.p6 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmc_cpuinfo 3 , >>>>> .Xr pmclog 3 , >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.corei7.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.corei7.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.corei7.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -1559,6 +1559,7 @@ Counts number of segment register loads. >>>>> .Xr pmc.corei7uc 3 , >>>>> .Xr pmc.westmere 3 , >>>>> .Xr pmc.westmereuc 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmc_cpuinfo 3 , >>>>> .Xr pmclog 3 , >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.corei7uc.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.corei7uc.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.corei7uc.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -863,6 +863,7 @@ refreshed or needs to go into a power do >>>>> .Xr pmc.corei7 3 , >>>>> .Xr pmc.westmere 3 , >>>>> .Xr pmc.westmereuc 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmc_cpuinfo 3 , >>>>> .Xr pmclog 3 , >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.iaf.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.iaf.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.iaf.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -132,6 +132,7 @@ CPU, use the event specifier >>>>> .Xr pmc.p4 3 , >>>>> .Xr pmc.p5 3 , >>>>> .Xr pmc.p6 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmc_cpuinfo 3 , >>>>> .Xr pmclog 3 , >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.k7.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.k7.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.k7.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -249,6 +249,7 @@ and the underlying hardware events used. >>>>> .Xr pmc.p4 3 , >>>>> .Xr pmc.p5 3 , >>>>> .Xr pmc.p6 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmclog 3 , >>>>> .Xr hwpmc 4 >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.k8.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.k8.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.k8.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -783,6 +783,7 @@ and the underlying hardware events used. >>>>> .Xr pmc.p4 3 , >>>>> .Xr pmc.p5 3 , >>>>> .Xr pmc.p6 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmclog 3 , >>>>> .Xr hwpmc 4 >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.mips24k.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.mips24k.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.mips24k.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -392,6 +392,7 @@ and the underlying hardware events used. >>>>> .Xr pmc.p4 3 , >>>>> .Xr pmc.p5 3 , >>>>> .Xr pmc.p6 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmc_cpuinfo 3 , >>>>> .Xr pmclog 3 , >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.octeon.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.octeon.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.octeon.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -232,6 +232,7 @@ and the underlying hardware events used. >>>>> .Xr pmc.p4 3 , >>>>> .Xr pmc.p5 3 , >>>>> .Xr pmc.p6 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmc_cpuinfo 3 , >>>>> .Xr pmclog 3 , >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.p4.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.p4.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.p4.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -1208,6 +1208,7 @@ and the underlying hardware events used. >>>>> .Xr pmc.k8 3 , >>>>> .Xr pmc.p5 3 , >>>>> .Xr pmc.p6 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmclog 3 , >>>>> .Xr hwpmc 4 >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.p5.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.p5.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.p5.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -444,6 +444,7 @@ and the underlying hardware events used. >>>>> .Xr pmc.k8 3 , >>>>> .Xr pmc.p4 3 , >>>>> .Xr pmc.p6 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmclog 3 , >>>>> .Xr hwpmc 4 >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.p6.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.p6.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.p6.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -1010,6 +1010,7 @@ and the underlying hardware events used. >>>>> .Xr pmc.k8 3 , >>>>> .Xr pmc.p4 3 , >>>>> .Xr pmc.p5 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmclog 3 , >>>>> .Xr hwpmc 4 >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.sandybridge.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.sandybridge.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.sandybridge.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -907,6 +907,7 @@ Split locks in SQ. >>>>> .Xr pmc.p5 3 , >>>>> .Xr pmc.p6 3 , >>>>> .Xr pmc.sandybridgeuc 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmc.ucf 3 , >>>>> .Xr pmc.westmere 3 , >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.sandybridgeuc.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.sandybridgeuc.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.sandybridgeuc.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -208,6 +208,7 @@ Counts the number of core-outgoing entri >>>>> .Xr pmc.p5 3 , >>>>> .Xr pmc.p6 3 , >>>>> .Xr pmc.sandybridge 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmc.ucf 3 , >>>>> .Xr pmc.westmere 3 , >>>>>=20 >>>>> Added: head/lib/libpmc/pmc.soft.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- /dev/null 00:00:00 1970 (empty, because file is newly = added) >>>>> +++ head/lib/libpmc/pmc.soft.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -0,0 +1,104 @@ >>>>> +.\" Copyright (c) 2012 Fabien Thomas. All rights reserved. >>>>> +.\" >>>>> +.\" Redistribution and use in source and binary forms, with or = without >>>>> +.\" modification, are permitted provided that the following = conditions >>>>> +.\" are met: >>>>> +.\" 1. Redistributions of source code must retain the above = copyright >>>>> +.\" notice, this list of conditions and the following = disclaimer. >>>>> +.\" 2. Redistributions in binary form must reproduce the above = copyright >>>>> +.\" notice, this list of conditions and the following = disclaimer in the >>>>> +.\" documentation and/or other materials provided with the = distribution. >>>>> +.\" >>>>> +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS = IS'' AND >>>>> +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED = TO, THE >>>>> +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A = PARTICULAR PURPOSE >>>>> +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS = BE LIABLE >>>>> +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR = CONSEQUENTIAL >>>>> +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF = SUBSTITUTE GOODS >>>>> +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS = INTERRUPTION) >>>>> +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN = CONTRACT, STRICT >>>>> +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) = ARISING IN ANY WAY >>>>> +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE = POSSIBILITY OF >>>>> +.\" SUCH DAMAGE. >>>>> +.\" >>>>> +.\" $FreeBSD$ >>>>> +.\" >>>>> +.Dd March 28, 2012 >>>>> +.Os >>>>> +.Dt PMC.SOFT 3 >>>>> +.Sh NAME >>>>> +.Nm pmc.soft >>>>> +.Nd measurements using software based events >>>>> +.Sh LIBRARY >>>>> +.Lb libpmc >>>>> +.Sh SYNOPSIS >>>>> +.In pmc.h >>>>> +.Sh DESCRIPTION >>>>> +Software events are used to collect various source of software = events. >>>>> +.Ss PMC Features >>>>> +16 sampling counters using software events based on various = sources. >>>>> +These PMCs support the following capabilities: >>>>> +.Bl -column "PMC_CAP_INTERRUPT" "Support" >>>>> +.It Em Capability Ta Em Support >>>>> +.It PMC_CAP_CASCADE Ta \&No >>>>> +.It PMC_CAP_EDGE Ta \&No >>>>> +.It PMC_CAP_INTERRUPT Ta Yes >>>>> +.It PMC_CAP_INVERT Ta \&No >>>>> +.It PMC_CAP_READ Ta Yes >>>>> +.It PMC_CAP_PRECISE Ta \&No >>>>> +.It PMC_CAP_SYSTEM Ta Yes >>>>> +.It PMC_CAP_TAGGING Ta \&No >>>>> +.It PMC_CAP_THRESHOLD Ta \&No >>>>> +.It PMC_CAP_USER Ta Yes >>>>> +.It PMC_CAP_WRITE Ta Yes >>>>> +.El >>>>> +.Ss Event Qualifiers >>>>> +There is no supported event qualifier. >>>>> +.Pp >>>>> +The event specifiers supported by software are: >>>>> +.Bl -tag -width indent >>>>> +.It Li CLOCK.HARD >>>>> +Hard clock ticks. >>>>> +.It Li CLOCK.STAT >>>>> +Stat clock ticks. >>>>> +.It Li LOCK.FAILED >>>>> +Lock acquisition failed. >>>>> +.It Li PAGE_FAULT.ALL >>>>> +All page fault type. >>>>> +.It Li PAGE_FAULT.READ >>>>> +Read page fault. >>>>> +.It Li PAGE_FAULT.WRITE >>>>> +Write page fault. >>>>> +.El >>>>> +.Sh SEE ALSO >>>>> +.Xr pmc 3 , >>>>> +.Xr pmc.atom 3 , >>>>> +.Xr pmc.core 3 , >>>>> +.Xr pmc.iaf 3 , >>>>> +.Xr pmc.ucf 3 , >>>>> +.Xr pmc.k7 3 , >>>>> +.Xr pmc.k8 3 , >>>>> +.Xr pmc.p4 3 , >>>>> +.Xr pmc.p5 3 , >>>>> +.Xr pmc.p6 3 , >>>>> +.Xr pmc.corei7 3 , >>>>> +.Xr pmc.corei7uc 3 , >>>>> +.Xr pmc.westmereuc 3 , >>>>> +.Xr pmc.tsc 3 , >>>>> +.Xr pmc_cpuinfo 3 , >>>>> +.Xr pmclog 3 , >>>>> +.Xr hwpmc 4 >>>>> +.Sh HISTORY >>>>> +The >>>>> +.Nm pmc >>>>> +library first appeared in >>>>> +.Fx 6.0 . >>>>> +.Sh AUTHORS >>>>> +The >>>>> +.Lb libpmc >>>>> +library was written by >>>>> +.An "Joseph Koshy" >>>>> +.Aq jkoshy@FreeBSD.org . >>>>> +Software PMC was written by >>>>> +.An "Fabien Thomas" >>>>> +.Aq fabient@FreeBSD.org . >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.tsc.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.tsc.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.tsc.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -68,6 +68,7 @@ maps to the TSC. >>>>> .Xr pmc.p4 3 , >>>>> .Xr pmc.p5 3 , >>>>> .Xr pmc.p6 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmclog 3 , >>>>> .Xr hwpmc 4 >>>>> .Sh HISTORY >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.ucf.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.ucf.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.ucf.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -96,6 +96,7 @@ offset C0H under device number 0 and Fun >>>>> .Xr pmc.corei7uc 3 , >>>>> .Xr pmc.westmere 3 , >>>>> .Xr pmc.westmereuc 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmc_cpuinfo 3 , >>>>> .Xr pmclog 3 , >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.westmere.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.westmere.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.westmere.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -1381,6 +1381,7 @@ Counts number of SID integer 64 bit shif >>>>> .Xr pmc.corei7 3 , >>>>> .Xr pmc.corei7uc 3 , >>>>> .Xr pmc.westmereuc 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmc_cpuinfo 3 , >>>>> .Xr pmclog 3 , >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.westmereuc.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.westmereuc.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.westmereuc.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -1066,6 +1066,7 @@ disabled. >>>>> .Xr pmc.corei7 3 , >>>>> .Xr pmc.corei7uc 3 , >>>>> .Xr pmc.westmere 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr pmc.tsc 3 , >>>>> .Xr pmc_cpuinfo 3 , >>>>> .Xr pmclog 3 , >>>>>=20 >>>>> Modified: head/lib/libpmc/pmc.xscale.3 >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmc.xscale.3 Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmc.xscale.3 Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -134,6 +134,7 @@ and the underlying hardware events used. >>>>> .Xr pmc 3 , >>>>> .Xr pmc_cpuinfo 3 , >>>>> .Xr pmclog 3 , >>>>> +.Xr pmc.soft 3 , >>>>> .Xr hwpmc 4 >>>>> .Sh HISTORY >>>>> The >>>>>=20 >>>>> Modified: head/lib/libpmc/pmclog.c >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmclog.c Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmclog.c Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -369,6 +369,12 @@ pmclog_get_event(void *cookie, char **da >>>>> =3D=3D NULL) >>>>> goto error; >>>>> break; >>>>> + case PMCLOG_TYPE_PMCALLOCATEDYN: >>>>> + PMCLOG_READ32(le,ev->pl_u.pl_ad.pl_pmcid); >>>>> + PMCLOG_READ32(le,ev->pl_u.pl_ad.pl_event); >>>>> + PMCLOG_READ32(le,ev->pl_u.pl_ad.pl_flags); >>>>> + = PMCLOG_READSTRING(le,ev->pl_u.pl_ad.pl_evname,PMC_NAME_MAX); >>>>> + break; >>>>> case PMCLOG_TYPE_PMCATTACH: >>>>> PMCLOG_GET_PATHLEN(pathlen,evlen,pmclog_pmcattach); >>>>> PMCLOG_READ32(le,ev->pl_u.pl_t.pl_pmcid); >>>>>=20 >>>>> Modified: head/lib/libpmc/pmclog.h >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/lib/libpmc/pmclog.h Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/lib/libpmc/pmclog.h Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -88,6 +88,13 @@ struct pmclog_ev_pmcallocate { >>>>> pmc_id_t pl_pmcid; >>>>> }; >>>>>=20 >>>>> +struct pmclog_ev_pmcallocatedyn { >>>>> + uint32_t pl_event; >>>>> + char pl_evname[PMC_NAME_MAX]; >>>>> + uint32_t pl_flags; >>>>> + pmc_id_t pl_pmcid; >>>>> +}; >>>>> + >>>>> struct pmclog_ev_pmcattach { >>>>> pmc_id_t pl_pmcid; >>>>> pid_t pl_pid; >>>>> @@ -146,6 +153,7 @@ struct pmclog_ev { >>>>> struct pmclog_ev_map_out pl_mo; >>>>> struct pmclog_ev_pcsample pl_s; >>>>> struct pmclog_ev_pmcallocate pl_a; >>>>> + struct pmclog_ev_pmcallocatedyn pl_ad; >>>>> struct pmclog_ev_pmcattach pl_t; >>>>> struct pmclog_ev_pmcdetach pl_d; >>>>> struct pmclog_ev_proccsw pl_c; >>>>>=20 >>>>> Modified: head/sys/amd64/amd64/trap.c >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/amd64/amd64/trap.c Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/sys/amd64/amd64/trap.c Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -71,6 +71,9 @@ __FBSDID("$FreeBSD$"); >>>>> #include >>>>> #ifdef HWPMC_HOOKS >>>>> #include >>>>> +PMC_SOFT_DEFINE( , , page_fault, all); >>>>> +PMC_SOFT_DEFINE( , , page_fault, read); >>>>> +PMC_SOFT_DEFINE( , , page_fault, write); >>>>> #endif >>>>>=20 >>>>> #include >>>>> @@ -743,8 +746,20 @@ trap_pfault(frame, usermode) >>>>> */ >>>>> rv =3D vm_fault(map, va, ftype, VM_FAULT_NORMAL); >>>>> } >>>>> - if (rv =3D=3D KERN_SUCCESS) >>>>> + if (rv =3D=3D KERN_SUCCESS) { >>>>> +#ifdef HWPMC_HOOKS >>>>> + if (ftype =3D=3D VM_PROT_READ || ftype =3D=3D = VM_PROT_WRITE) { >>>>> + PMC_SOFT_CALL_TF( , , page_fault, all, = frame); >>>>> + if (ftype =3D=3D VM_PROT_READ) >>>>> + PMC_SOFT_CALL_TF( , , page_fault, = read, >>>>> + frame); >>>>> + else >>>>> + PMC_SOFT_CALL_TF( , , page_fault, = write, >>>>> + frame); >>>>> + } >>>>> +#endif >>>>> return (0); >>>>> + } >>>>> nogo: >>>>> if (!usermode) { >>>>> if (td->td_intr_nesting_level =3D=3D 0 && >>>>>=20 >>>>> Modified: head/sys/amd64/include/pmc_mdep.h >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/amd64/include/pmc_mdep.h Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/sys/amd64/include/pmc_mdep.h Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -50,13 +50,13 @@ struct pmc_mdep; >>>>> * measurement architecture have PMCs of the following classes: = TSC, >>>>> * IAF, IAP, UCF and UCP. >>>>> */ >>>>> -#define PMC_MDEP_CLASS_INDEX_TSC 0 >>>>> -#define PMC_MDEP_CLASS_INDEX_K8 1 >>>>> -#define PMC_MDEP_CLASS_INDEX_P4 1 >>>>> -#define PMC_MDEP_CLASS_INDEX_IAP 1 >>>>> -#define PMC_MDEP_CLASS_INDEX_IAF 2 >>>>> -#define PMC_MDEP_CLASS_INDEX_UCP 3 >>>>> -#define PMC_MDEP_CLASS_INDEX_UCF 4 >>>>> +#define PMC_MDEP_CLASS_INDEX_TSC 1 >>>>> +#define PMC_MDEP_CLASS_INDEX_K8 2 >>>>> +#define PMC_MDEP_CLASS_INDEX_P4 2 >>>>> +#define PMC_MDEP_CLASS_INDEX_IAP 2 >>>>> +#define PMC_MDEP_CLASS_INDEX_IAF 3 >>>>> +#define PMC_MDEP_CLASS_INDEX_UCP 4 >>>>> +#define PMC_MDEP_CLASS_INDEX_UCF 5 >>>>>=20 >>>>> /* >>>>> * On the amd64 platform we support the following PMCs. >>>>> @@ -119,6 +119,15 @@ union pmc_md_pmc { >>>>>=20 >>>>> #define PMC_IN_USERSPACE(va) ((va) <=3D = VM_MAXUSER_ADDRESS) >>>>>=20 >>>>> +/* Build a fake kernel trapframe from current instruction = pointer. */ >>>>> +#define PMC_FAKE_TRAPFRAME(TF) = \ >>>>> + do { = \ >>>>> + (TF)->tf_cs =3D 0; (TF)->tf_rflags =3D 0; = \ >>>>> + __asm __volatile("movq %%rbp,%0" : "=3Dr" ((TF)->tf_rbp)); = \ >>>>> + __asm __volatile("movq %%rsp,%0" : "=3Dr" ((TF)->tf_rsp)); = \ >>>>> + __asm __volatile("call 1f \n\t1: pop %0" : = "=3Dr"((TF)->tf_rip)); \ >>>>> + } while (0) >>>>> + >>>>> /* >>>>> * Prototypes >>>>> */ >>>>>=20 >>>>> Modified: head/sys/arm/include/pmc_mdep.h >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/arm/include/pmc_mdep.h Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/sys/arm/include/pmc_mdep.h Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -29,7 +29,7 @@ >>>>> #ifndef _MACHINE_PMC_MDEP_H_ >>>>> #define _MACHINE_PMC_MDEP_H_ >>>>>=20 >>>>> -#define PMC_MDEP_CLASS_INDEX_XSCALE 0 >>>>> +#define PMC_MDEP_CLASS_INDEX_XSCALE 1 >>>>> /* >>>>> * On the ARM platform we support the following PMCs. >>>>> * >>>>>=20 >>>>> Modified: head/sys/conf/files >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/conf/files Wed Mar 28 20:49:11 2012 (r233627) >>>>> +++ head/sys/conf/files Wed Mar 28 20:58:30 2012 (r233628) >>>>> @@ -1260,6 +1260,7 @@ dev/hme/if_hme_sbus.c optional = hme sbus >>>>> dev/hptiop/hptiop.c optional hptiop scbus >>>>> dev/hwpmc/hwpmc_logging.c optional hwpmc >>>>> dev/hwpmc/hwpmc_mod.c optional hwpmc >>>>> +dev/hwpmc/hwpmc_soft.c optional hwpmc >>>>> dev/ichsmb/ichsmb.c optional ichsmb >>>>> dev/ichsmb/ichsmb_pci.c optional ichsmb pci >>>>> dev/ida/ida.c optional ida >>>>>=20 >>>>> Modified: head/sys/dev/hwpmc/hwpmc_amd.c >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/dev/hwpmc/hwpmc_amd.c Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/sys/dev/hwpmc/hwpmc_amd.c Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -687,7 +687,8 @@ amd_intr(int cpu, struct trapframe *tf) >>>>> wrmsr(perfctr, = AMD_RELOAD_COUNT_TO_PERFCTR_VALUE(v)); >>>>>=20 >>>>> /* Restart the counter if logging succeeded. */ >>>>> - error =3D pmc_process_interrupt(cpu, pm, tf, = TRAPF_USERMODE(tf)); >>>>> + error =3D pmc_process_interrupt(cpu, PMC_HR, pm, = tf, >>>>> + TRAPF_USERMODE(tf)); >>>>> if (error =3D=3D 0) >>>>> wrmsr(evsel, config | AMD_PMC_ENABLE); >>>>> } >>>>> @@ -874,7 +875,7 @@ amd_pcpu_fini(struct pmc_mdep *md, int c >>>>> struct pmc_mdep * >>>>> pmc_amd_initialize(void) >>>>> { >>>>> - int classindex, error, i, nclasses, ncpus; >>>>> + int classindex, error, i, ncpus; >>>>> struct pmc_classdep *pcd; >>>>> enum pmc_cputype cputype; >>>>> struct pmc_mdep *pmc_mdep; >>>>> @@ -926,12 +927,9 @@ pmc_amd_initialize(void) >>>>> * These processors have two classes of PMCs: the TSC and >>>>> * programmable PMCs. >>>>> */ >>>>> - nclasses =3D 2; >>>>> - pmc_mdep =3D malloc(sizeof(struct pmc_mdep) + nclasses * = sizeof (struct pmc_classdep), >>>>> - M_PMC, M_WAITOK|M_ZERO); >>>>> + pmc_mdep =3D pmc_mdep_alloc(2); >>>>>=20 >>>>> pmc_mdep->pmd_cputype =3D cputype; >>>>> - pmc_mdep->pmd_nclass =3D nclasses; >>>>>=20 >>>>> ncpus =3D pmc_cpu_max(); >>>>>=20 >>>>>=20 >>>>> Modified: head/sys/dev/hwpmc/hwpmc_core.c >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/dev/hwpmc/hwpmc_core.c Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/sys/dev/hwpmc/hwpmc_core.c Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -2239,7 +2239,7 @@ core_intr(int cpu, struct trapframe *tf) >>>>> if (pm->pm_state !=3D PMC_STATE_RUNNING) >>>>> continue; >>>>>=20 >>>>> - error =3D pmc_process_interrupt(cpu, pm, tf, >>>>> + error =3D pmc_process_interrupt(cpu, PMC_HR, pm, = tf, >>>>> TRAPF_USERMODE(tf)); >>>>>=20 >>>>> v =3D pm->pm_sc.pm_reloadcount; >>>>> @@ -2326,7 +2326,7 @@ core2_intr(int cpu, struct trapframe *tf >>>>> !PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm))) >>>>> continue; >>>>>=20 >>>>> - error =3D pmc_process_interrupt(cpu, pm, tf, >>>>> + error =3D pmc_process_interrupt(cpu, PMC_HR, pm, = tf, >>>>> TRAPF_USERMODE(tf)); >>>>> if (error) >>>>> intrenable &=3D ~flag; >>>>> @@ -2354,7 +2354,7 @@ core2_intr(int cpu, struct trapframe *tf >>>>> !PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm))) >>>>> continue; >>>>>=20 >>>>> - error =3D pmc_process_interrupt(cpu, pm, tf, >>>>> + error =3D pmc_process_interrupt(cpu, PMC_HR, pm, = tf, >>>>> TRAPF_USERMODE(tf)); >>>>> if (error) >>>>> intrenable &=3D ~flag; >>>>>=20 >>>>> Modified: head/sys/dev/hwpmc/hwpmc_intel.c >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/dev/hwpmc/hwpmc_intel.c Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/sys/dev/hwpmc/hwpmc_intel.c Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -162,12 +162,10 @@ pmc_intel_initialize(void) >>>>> return (NULL); >>>>> } >>>>>=20 >>>>> - pmc_mdep =3D malloc(sizeof(struct pmc_mdep) + nclasses * >>>>> - sizeof(struct pmc_classdep), M_PMC, M_WAITOK|M_ZERO); >>>>> + /* Allocate base class and initialize machine dependent = struct */ >>>>> + pmc_mdep =3D pmc_mdep_alloc(nclasses); >>>>>=20 >>>>> pmc_mdep->pmd_cputype =3D cputype; >>>>> - pmc_mdep->pmd_nclass =3D nclasses; >>>>> - >>>>> pmc_mdep->pmd_switch_in =3D intel_switch_in; >>>>> pmc_mdep->pmd_switch_out =3D intel_switch_out; >>>>>=20 >>>>>=20 >>>>> Modified: head/sys/dev/hwpmc/hwpmc_logging.c >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/dev/hwpmc/hwpmc_logging.c Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/sys/dev/hwpmc/hwpmc_logging.c Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -129,6 +129,7 @@ static struct mtx pmc_kthread_mtx; /* sl >>>>>=20 >>>>> /* Emit a string. Caution: does NOT update _le, so needs to be = last */ >>>>> #define PMCLOG_EMITSTRING(S,L) do { bcopy((S), _le, (L)); = } while (0) >>>>> +#define PMCLOG_EMITNULLSTRING(L) do { bzero(_le, (L)); } = while (0) >>>>>=20 >>>>> #define PMCLOG_DESPATCH(PO) = \ >>>>> pmclog_release((PO)); = \ >>>>> @@ -835,16 +836,33 @@ void >>>>> pmclog_process_pmcallocate(struct pmc *pm) >>>>> { >>>>> struct pmc_owner *po; >>>>> + struct pmc_soft *ps; >>>>>=20 >>>>> po =3D pm->pm_owner; >>>>>=20 >>>>> PMCDBG(LOG,ALL,1, "pm=3D%p", pm); >>>>>=20 >>>>> - PMCLOG_RESERVE(po, PMCALLOCATE, sizeof(struct = pmclog_pmcallocate)); >>>>> - PMCLOG_EMIT32(pm->pm_id); >>>>> - PMCLOG_EMIT32(pm->pm_event); >>>>> - PMCLOG_EMIT32(pm->pm_flags); >>>>> - PMCLOG_DESPATCH(po); >>>>> + if (PMC_TO_CLASS(pm) =3D=3D PMC_CLASS_SOFT) { >>>>> + PMCLOG_RESERVE(po, PMCALLOCATEDYN, >>>>> + sizeof(struct pmclog_pmcallocatedyn)); >>>>> + PMCLOG_EMIT32(pm->pm_id); >>>>> + PMCLOG_EMIT32(pm->pm_event); >>>>> + PMCLOG_EMIT32(pm->pm_flags); >>>>> + ps =3D pmc_soft_ev_acquire(pm->pm_event); >>>>> + if (ps !=3D NULL) >>>>> + = PMCLOG_EMITSTRING(ps->ps_ev.pm_ev_name,PMC_NAME_MAX); >>>>> + else >>>>> + PMCLOG_EMITNULLSTRING(PMC_NAME_MAX); >>>>> + pmc_soft_ev_release(ps); >>>>> + PMCLOG_DESPATCH(po); >>>>> + } else { >>>>> + PMCLOG_RESERVE(po, PMCALLOCATE, >>>>> + sizeof(struct pmclog_pmcallocate)); >>>>> + PMCLOG_EMIT32(pm->pm_id); >>>>> + PMCLOG_EMIT32(pm->pm_event); >>>>> + PMCLOG_EMIT32(pm->pm_flags); >>>>> + PMCLOG_DESPATCH(po); >>>>> + } >>>>> } >>>>>=20 >>>>> void >>>>>=20 >>>>> Modified: head/sys/dev/hwpmc/hwpmc_mips.c >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/dev/hwpmc/hwpmc_mips.c Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/sys/dev/hwpmc/hwpmc_mips.c Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -287,7 +287,7 @@ mips_pmc_intr(int cpu, struct trapframe >>>>> retval =3D 1; >>>>> if (pm->pm_state !=3D PMC_STATE_RUNNING) >>>>> continue; >>>>> - error =3D pmc_process_interrupt(cpu, pm, tf, >>>>> + error =3D pmc_process_interrupt(cpu, PMC_HR, pm, = tf, >>>>> TRAPF_USERMODE(tf)); >>>>> if (error) { >>>>> /* Clear/disable the relevant counter */ >>>>>=20 >>>>> Modified: head/sys/dev/hwpmc/hwpmc_mod.c >>>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>>> --- head/sys/dev/hwpmc/hwpmc_mod.c Wed Mar 28 20:49:11 2012 = (r233627) >>>>> +++ head/sys/dev/hwpmc/hwpmc_mod.c Wed Mar 28 20:58:30 2012 = (r233628) >>>>> @@ -70,6 +70,8 @@ __FBSDID("$FreeBSD$"); >>>>> #include >>>>> #include >>>>>=20 >>>>> +#include "hwpmc_soft.h" >>>>> + >>>>> /* >>>>> * Types >>>>> */ >>>>> @@ -182,7 +184,7 @@ static int pmc_attach_one_process(struct >>>>> static int pmc_can_allocate_rowindex(struct proc *p, unsigned = int ri, >>>>> int cpu); >>>>> static int pmc_can_attach(struct pmc *pm, struct proc *p); >>>>> -static void pmc_capture_user_callchain(int cpu, struct = trapframe *tf); >>>>> +static void pmc_capture_user_callchain(int cpu, int soft, = struct trapframe *tf); >>>>> static void pmc_cleanup(void); >>>>> static int pmc_detach_process(struct proc *p, struct pmc = *pm); >>>>> static int pmc_detach_one_process(struct proc *p, struct pmc = *pm, >>>>> @@ -206,7 +208,7 @@ static void pmc_process_csw_out(struct t >>>>> static void pmc_process_exit(void *arg, struct proc *p); >>>>> static void pmc_process_fork(void *arg, struct proc *p1, >>>>> struct proc *p2, int n); >>>>> -static void pmc_process_samples(int cpu); >>>>> +static void pmc_process_samples(int cpu, int soft); >>>>> static void pmc_release_pmc_descriptor(struct pmc *pmc); >>>>> static void pmc_remove_owner(struct pmc_owner *po); >>>>> static void pmc_remove_process_descriptor(struct pmc_process = *pp); >>>>> @@ -218,12 +220,16 @@ static int pmc_stop(struct pmc *pm); >>>>> static int pmc_syscall_handler(struct thread *td, void = *syscall_args); >>>>> static void pmc_unlink_target_process(struct pmc *pmc, >>>>> struct pmc_process *pp); >>>>> +static int generic_switch_in(struct pmc_cpu *pc, struct = pmc_process *pp); >>>>> +static int generic_switch_out(struct pmc_cpu *pc, struct = pmc_process *pp); >>>>> +static struct pmc_mdep *pmc_generic_cpu_initialize(void); >>>>> +static void pmc_generic_cpu_finalize(struct pmc_mdep *md); >>>>>=20 >>>>> /* >>>>> * Kernel tunables and sysctl(8) interface. >>>>> */ >>>>>=20 >>>>> -SYSCTL_NODE(_kern, OID_AUTO, hwpmc, CTLFLAG_RW, 0, "HWPMC = parameters"); >>>>> +SYSCTL_DECL(_kern_hwpmc); >>>>>=20 >>>>> static int pmc_callchaindepth =3D PMC_CALLCHAIN_DEPTH; >>>>> TUNABLE_INT(PMC_SYSCTL_NAME_PREFIX "callchaindepth", = &pmc_callchaindepth); >>>>> @@ -1833,7 +1839,9 @@ const char *pmc_hooknames[] =3D { >>>>> "KLDUNLOAD", >>>>> "MMAP", >>>>> "MUNMAP", >>>>> - "CALLCHAIN" >>>>> + "CALLCHAIN-NMI", >>>>> + "CALLCHAIN-SOFT", >>>>> + "SOFTSAMPLING" >>>>> }; >>>>> #endif >>>>>=20 >>>>> @@ -1992,7 +2000,8 @@ pmc_hook_handler(struct thread *td, int >>>>> * lose the interrupt sample. >>>>> */ >>>>> CPU_CLR_ATOMIC(PCPU_GET(cpuid), &pmc_cpumask); >>>>> - pmc_process_samples(PCPU_GET(cpuid)); >>>>> + pmc_process_samples(PCPU_GET(cpuid), PMC_HR); >>>>> + pmc_process_samples(PCPU_GET(cpuid), PMC_SR); >>>>> break; >>>>>=20 >>>>>=20 >>>>> @@ -2022,11 +2031,30 @@ pmc_hook_handler(struct thread *td, int >>>>> */ >>>>> KASSERT(td =3D=3D curthread, ("[pmc,%d] td !=3D = curthread", >>>>> __LINE__)); >>>>> - pmc_capture_user_callchain(PCPU_GET(cpuid), >>>>> + >>>>> + pmc_capture_user_callchain(PCPU_GET(cpuid), = PMC_HR, >>>>> (struct trapframe *) arg); >>>>> td->td_pflags &=3D ~TDP_CALLCHAIN; >>>>> break; >>>>>=20 >>>>> + case PMC_FN_USER_CALLCHAIN_SOFT: >>>>> + /* >>>>> + * Record a call chain. >>>>> + */ >>>>> + KASSERT(td =3D=3D curthread, ("[pmc,%d] td !=3D = curthread", >>>>> + __LINE__)); >>>>> + pmc_capture_user_callchain(PCPU_GET(cpuid), = PMC_SR, >>>>> + (struct trapframe *) arg); >>>>> + td->td_pflags &=3D ~TDP_CALLCHAIN; >>>>> + break; >>>>> + >>>>> + case PMC_FN_SOFT_SAMPLING: >>>>> + /* >>>>> + * Call soft PMC sampling intr. >>>>> + */ >>>>> + pmc_soft_intr((struct pmckern_soft *) arg); >>>>> + break; >>>>> + >>>>> default: >>>>> #ifdef DEBUG >>>>> KASSERT(0, ("[pmc,%d] unknown hook %d\n", __LINE__, = function)); >>>>> @@ -2221,18 +2249,17 @@ pmc_destroy_pmc_descriptor(struct pmc *p >>>>> static void >>>>> pmc_wait_for_pmc_idle(struct pmc *pm) >>>>> { >>>>> -#ifdef DEBUG >>>>> +#ifdef DEBUG >>>>> volatile int maxloop; >>>>>=20 >>>>> maxloop =3D 100 * pmc_cpu_max(); >>>>> #endif >>>>> - >>>>> /* >>>>> * Loop (with a forced context switch) till the PMC's = runcount >>>>> * comes down to zero. >>>>> */ >>>>> while (atomic_load_acq_32(&pm->pm_runcount) > 0) { >>>>> -#ifdef DEBUG >>>>> +#ifdef DEBUG >>>>> maxloop--; >>>>> KASSERT(maxloop > 0, >>>>> ("[pmc,%d] (ri%d, rc%d) waiting too long for " >>>>> @@ -2972,6 +2999,53 @@ pmc_syscall_handler(struct thread *td, v >>>>> } >>>>> break; >>>>>=20 >>>>> + /* >>>>> + * Retrieve soft events list. >>>>> + */ >>>>> + case PMC_OP_GETDYNEVENTINFO: >>>>> + { >>>>> + enum pmc_class cl; >>>>> + enum pmc_event ev; >>>>> + struct pmc_op_getdyneventinfo *gei; >>>>> + struct pmc_dyn_event_descr dev; >>>>> + struct pmc_soft *ps; >>>>> + uint32_t nevent; >>>>> + >>>>> + sx_assert(&pmc_sx, SX_LOCKED); >>>>> + >>>>> + gei =3D (struct pmc_op_getdyneventinfo *) arg; >>>>> + >>>>> + if ((error =3D copyin(&gei->pm_class, &cl, = sizeof(cl))) !=3D 0) >>>>> + break; >>>>> + >>>>> + /* Only SOFT class is dynamic. */ >>>>> + if (cl !=3D PMC_CLASS_SOFT) { >>>>> + error =3D EINVAL; >>>>> + break; >>>>> + } >>>>> + >>>>> + nevent =3D 0; >>>>> + for (ev =3D PMC_EV_SOFT_FIRST; ev <=3D = PMC_EV_SOFT_LAST; ev++) { >>>>> + ps =3D pmc_soft_ev_acquire(ev); >>>>> + if (ps =3D=3D NULL) >>>>> + continue; >>>>> + bcopy(&ps->ps_ev, &dev, sizeof(dev)); >>>>> + pmc_soft_ev_release(ps); >>>>> + >>>>> + error =3D copyout(&dev, >>>>> + &gei->pm_events[nevent], >>>>> + sizeof(struct pmc_dyn_event_descr)); >>>>> + if (error !=3D 0) >>>>> + break; >>>>> + nevent++; >>>>> + } >>>>> + if (error !=3D 0) >>>>> + break; >>>>> + >>>>> + error =3D copyout(&nevent, &gei->pm_nevent, >>>>>=20 >>>>> *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** >>>=20 >>>=20 >>>=20 >>> -- >>> Monthadar Al Jaberi >>> >>=20 >>=20 >=20 >=20 >=20 > --=20 > Monthadar Al Jaberi --Apple-Mail=_AA16D944-B364-4C83-BE40-AEE3A01B5AB1-- From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 12:17:44 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 996A91065672 for ; Mon, 23 Apr 2012 12:17:44 +0000 (UTC) (envelope-from root@9du.org) Received: from mail-pz0-f44.google.com (mail-pz0-f44.google.com [209.85.210.44]) by mx1.freebsd.org (Postfix) with ESMTP id 666968FC1C for ; Mon, 23 Apr 2012 12:17:44 +0000 (UTC) Received: by dadz14 with SMTP id z14so50314779dad.17 for ; Mon, 23 Apr 2012 05:17:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=date:from:to:cc:reply-to:subject:x-priority:x-guid:x-has-attach :x-mailer:mime-version:message-id:content-type:x-gm-message-state; bh=FXyn8aOoriVrpE6Mh5QsJIjVnAQLN5TRRJkP/v/IwQM=; b=i8gwmC6al6xtBNc/NKxL/tbsz3BLJB8+UFDZZ9zy5RgUvmbS0VIwav/Pms5T8pfdhz Q1KNCSrlhS5OxytH7gdkXZBdVtRjAT+F8RQ+5OY0KbuQAx6T/5/rW210XzDVtbW5rbxr kUdJMpPigFx1Sb4pdVwlHQW3awjkAHJ5UykpQY211DEdXYnNfpoLYGd8Tt/M52Lgas1e bIj6P1ZMJTWEv9H5fILvAUcwxLtXkW3G7+J4a9AJ/y5xPxia0udd5fMwrXHe++nX+xaS 0ZUov+VMvmPCkIIbkAXMHyQFxizwg1/0YdO2RESz4VZoavDOQ7uqn2HIo3sJe1XfswHx uv4g== Received: by 10.68.231.8 with SMTP id tc8mr5572874pbc.67.1335183458097; Mon, 23 Apr 2012 05:17:38 -0700 (PDT) Received: from yong-office-man ([125.34.53.0]) by mx.google.com with ESMTPS id ha8sm2252161pbc.45.2012.04.23.05.17.34 (version=SSLv3 cipher=OTHER); Mon, 23 Apr 2012 05:17:36 -0700 (PDT) Date: Mon, 23 Apr 2012 20:17:40 +0800 From: "root@9du.org" To: freebsd-current X-Priority: 3 X-GUID: 7A0B0B1F-6D05-4AC9-A7DB-2464650F29F8 X-Has-Attach: no X-Mailer: Foxmail 7.0.1.90[cn] Mime-Version: 1.0 Message-ID: <201204232016029060073@9du.org> X-Gm-Message-State: ALoCoQl+50jV7JZr4AehaYB/4+idNOzFeWE1awE110U/AGsZMl4X7hT3Th16DZjctXBVuenpW1MU Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: rizzo Subject: about /sys/dev/netmap/head.diff X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: root List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 12:17:44 -0000 aSB0aGluayB0aGlzICJoZWFkLmRpZmYiIG1heSBiZSBpcyBvbGQhDQoNCg0KaW4gZGlmZg0KKyNp ZmRlZiBERVZfTkVUTUFQDQorIGlmIChzbG90KSB7DQorIG5ldG1hcF9sb2FkX21hcCh0eHItPnR4 dGFnLCB0eGJ1Zi0+bWFwLA0KKyBOTUIoc2xvdCksIGFkYXB0ZXItPnJ4X21idWZfc3opOw0KKyBz bG90Kys7DQorIH0NCisjZW5kaWYgLyogREVWX05FVE1BUCAqLw0KDQppbiBuZXRtYXBfa2Vybi5o DQoNCnN0YXRpYyBpbmxpbmUgdm9pZA0KbmV0bWFwX2xvYWRfbWFwKGJ1c19kbWFfdGFnX3QgdGFn LCBidXNfZG1hbWFwX3QgbWFwLCB2b2lkICpidWYpDQp7DQppZiAobWFwKQ0KYnVzX2RtYW1hcF9s b2FkKHRhZywgbWFwLCBidWYsIE5FVE1BUF9CVUZfU0laRSwNCiAgICBuZXRtYXBfZG1hbWFwX2Ni LCBOVUxMLCBCVVNfRE1BX05PV0FJVCk7DQp9DQoNCg0KDQoNCnlvbmcNCnJvb3RAOWR1Lm9yZw== From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 14:09:07 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A7BE0106564A; Mon, 23 Apr 2012 14:09:07 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 76FC78FC12; Mon, 23 Apr 2012 14:09:07 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3NE96cB067131; Mon, 23 Apr 2012 10:09:06 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3NE9658067130; Mon, 23 Apr 2012 14:09:06 GMT (envelope-from tinderbox@freebsd.org) Date: Mon, 23 Apr 2012 14:09:06 GMT Message-Id: <201204231409.q3NE9658067130@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on powerpc/powerpc X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 14:09:07 -0000 TB --- 2012-04-23 11:59:50 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-23 11:59:50 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-23 11:59:50 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2012-04-23 11:59:50 - cleaning the object tree TB --- 2012-04-23 12:01:36 - cvsupping the source tree TB --- 2012-04-23 12:01:36 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc/powerpc/supfile TB --- 2012-04-23 12:02:22 - building world TB --- 2012-04-23 12:02:22 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 12:02:22 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 12:02:22 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 12:02:22 - SRCCONF=/dev/null TB --- 2012-04-23 12:02:22 - TARGET=powerpc TB --- 2012-04-23 12:02:22 - TARGET_ARCH=powerpc TB --- 2012-04-23 12:02:22 - TZ=UTC TB --- 2012-04-23 12:02:22 - __MAKE_CONF=/dev/null TB --- 2012-04-23 12:02:22 - cd /src TB --- 2012-04-23 12:02:22 - /usr/bin/make -B buildworld >>> World build started on Mon Apr 23 12:02:23 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything [...] cc1_main.cpp:(.text+0x78): relocation truncated to fit: R_PPC_REL24 against symbol `pthread_mutex_lock@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x88): relocation truncated to fit: R_PPC_REL24 against symbol `pthread_once@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x90): relocation truncated to fit: R_PPC_REL24 against symbol `pthread_mutex_unlock@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.o: In function `__static_initialization_and_destruction_0(int, int)': cc1_main.cpp:(.text+0x130): relocation truncated to fit: R_PPC_REL24 against symbol `getenv@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x31c): relocation truncated to fit: R_PPC_REL24 against symbol `std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&)@@GLIBCXX_3.4' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x358): relocation truncated to fit: R_PPC_REL24 against symbol `std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&)@@GLIBCXX_3.4' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x3b8): additional relocation overflows omitted from the output *** Error code 1 Stop in /src/usr.bin/clang/clang. *** Error code 1 Stop in /src/usr.bin/clang. *** Error code 1 Stop in /src/usr.bin. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-23 14:09:06 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-23 14:09:06 - ERROR: failed to build world TB --- 2012-04-23 14:09:06 - 6326.06 user 804.55 system 7756.05 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-powerpc-powerpc.full From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 14:16:18 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C6D0E106566C for ; Mon, 23 Apr 2012 14:16:18 +0000 (UTC) (envelope-from simon@comsys.ntu-kpi.kiev.ua) Received: from comsys.kpi.ua (comsys.kpi.ua [77.47.192.42]) by mx1.freebsd.org (Postfix) with ESMTP id 3B0078FC16 for ; Mon, 23 Apr 2012 14:16:18 +0000 (UTC) Received: from pm513-1.comsys.kpi.ua ([10.18.52.101] helo=pm513-1.comsys.ntu-kpi.kiev.ua) by comsys.kpi.ua with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1SMK3s-0002eu-GB; Mon, 23 Apr 2012 17:16:16 +0300 Received: by pm513-1.comsys.ntu-kpi.kiev.ua (Postfix, from userid 1001) id 43B301CC28; Mon, 23 Apr 2012 17:16:16 +0300 (EEST) Date: Mon, 23 Apr 2012 17:16:16 +0300 From: Andrey Simonenko To: Rick Macklem Message-ID: <20120423141615.GA2222@pm513-1.comsys.ntu-kpi.kiev.ua> References: <20120419125436.GA82169@pm513-1.comsys.ntu-kpi.kiev.ua> <120749772.3115727.1334882677955.JavaMail.root@erie.cs.uoguelph.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <120749772.3115727.1334882677955.JavaMail.root@erie.cs.uoguelph.ca> User-Agent: Mutt/1.5.21 (2010-09-15) X-Authenticated-User: simon@comsys.ntu-kpi.kiev.ua X-Authenticator: plain X-Sender-Verify: SUCCEEDED (sender exists & accepts mail) X-Exim-Version: 4.63 (build at 28-Apr-2011 07:11:12) X-Date: 2012-04-23 17:16:16 X-Connected-IP: 10.18.52.101:53010 X-Message-Linecount: 86 X-Body-Linecount: 70 X-Message-Size: 4153 X-Body-Size: 3367 Cc: FreeBSD-Current Subject: Re: mountd, rpc.lockd and rpc.statd patches for testing X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 14:16:18 -0000 On Thu, Apr 19, 2012 at 08:44:37PM -0400, Rick Macklem wrote: > Andrey Simonenko wrote: > > On Mon, May 30, 2011 at 04:56:02PM -0400, Rick Macklem wrote: > > > Hi, > > > > > > I have patches for the mountd, rpc.statd and rpc.lockd daemons > > > that are meant to keep them from failing when a dynamically > > > selected port# is not available for some combination of > > > udp,tcp X ipv4,ipv6 > > > > > > If anyone would like to test these patches, they can be found > > > at: > > > http://people.freebsd.org/~rmacklem/mountd.patch > > > statd.patch > > > lockd.patch > > > > > > Although I think I got them correct, they are rather big and ugly. > > > > > > > I have checked this update for mountd in 10-CURRENT and has two > > questions: > > > > 1. What is the sense to try to use the same port number for all > > supported netconfigs if specific port number is not given in > > a command line option? > > > Well, there was a discussion of this on one of the mailing lists > at the time. I started with a much simpler patch that didn't try and > make all 4 combinations use the same port#, but > others felt that was important. (Something about tracking what port# > were in use, but I can't quite recall. If you want to know the reasoning, > look for the thread that would have been shortly before the commit.) > I verified how mountd, rpc.lockd and rpc.statd worked on previous version of FreeBSD. On 6.2-PRERELEASE mountd, rpc.lockd and rpc.statd did not have the -h option and all these programs used random port numbers for all netconfigs. When the -h option was added to mountd, rpc.lockd and rpc.statd this logic was changed and random port was used for all netconfigs and for all IP address if they are specified. Obviously everyone who used NFS after these changes got non working NFS several times even for configurations without the -h option. rpcbind(8) in FreeBSD does not allow multiple settings for the same network ID, so wildcard address for each netconfig should be used. As I understand this is a design decision and multiple settings for one RPC service are refused in rpcbind/rpcb_svc_com.c:map_set(). Would all possible cases be checked before commiting support for the -h option, may be that option and broken logic will not appear in mountd, rpc.lockd and rpc.statd. Now, everything "works", but mountd still can fail during startup (depends on activity of other network programs of course). > > > > One comment for netconfig related functions usage. Each setnetconfig() > > call allocates memory and depending on implementation can use other > > resources, so endnetconfig() should be called before reusing netconfig > > handle. > > _ > Ok, I'll take a look someday. Since it happens a finite number of times, > any leak should be bounded and, as such, shouldn't cause serious problems. > However, I wasn't aware of the above and it should be fixed. > When I worked on my changes for NFS server, I verified implementation of netconfig related function in RPC part of libc and not closed netconfig handles results in memory leaks and one opened file descriptor for netconfig database. BTW there are several mistakes in that part of code, so I wrote correct implementation in kern/165710 ("kern" category was autoassigned). From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 17:31:12 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A2E33106566C for ; Mon, 23 Apr 2012 17:31:12 +0000 (UTC) (envelope-from aboyer@averesystems.com) Received: from zimbra.averesystems.com (75-149-8-245-Pennsylvania.hfc.comcastbusiness.net [75.149.8.245]) by mx1.freebsd.org (Postfix) with ESMTP id 4E0658FC15 for ; Mon, 23 Apr 2012 17:31:12 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by zimbra.averesystems.com (Postfix) with ESMTP id 9CD37446005 for ; Mon, 23 Apr 2012 13:30:46 -0400 (EDT) X-Virus-Scanned: amavisd-new at averesystems.com Received: from zimbra.averesystems.com ([127.0.0.1]) by localhost (zimbra.averesystems.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id veJ-NW2PI-jt; Mon, 23 Apr 2012 13:30:44 -0400 (EDT) Received: from riven.arriad.com (fw.arriad.com [10.0.0.16]) by zimbra.averesystems.com (Postfix) with ESMTPSA id 58020446003; Mon, 23 Apr 2012 13:30:44 -0400 (EDT) From: Andrew Boyer Mime-Version: 1.0 (Apple Message framework v1084) Date: Mon, 23 Apr 2012 13:31:03 -0400 References: <3C479FEC-971A-4099-9CA5-B522574BE763@averesystems.com> To: Current FreeBSD Message-Id: X-Mailer: Apple Mail (2.1084) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Greg Bednarek Subject: Fwd: Memory leak in authunix_create_default()... X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 17:31:12 -0000 Begin forwarded message: > From: Greg Bednarek > Date: April 16, 2012 10:54:33 AM EDT > To: freebsd-current@freebsd.org > Cc: Andrew Boyer > Subject: Memory leak in authunix_create_default()... >=20 >=20 > Please see the attached patch for a proposed fix for a memory leak in = authunix_create_default(). >=20 > The leak appears to have been introduced 6/19/2009 in Revision 194494 = of lib/libc/rpc/auth_unix.c >=20 > As you can see form the patch, the fix is very simple. The issue was = discovered when tracking down some rather drastic increases in = application memory footprint during certain types of workloads, and was = eventually traced it to this (apparently) not very heavily used path in = libc. >=20 > I would appreciate hearing any comments/concerns with the proposed = fix. >=20 >=20 >=20 > Regards, >=20 > Greg Bednarek >=20 >=20 > --- > Greg Bednarek > phone: 412-635-7170 x257 > fax: 412-635-7171 > email: gbednarek@averesystems.com >=20 >=20 >=20 >=20 >=20 This got caught up in moderation and never reached the list. -Andrew -------------------------------------------------- Andrew Boyer aboyer@averesystems.com From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 17:44:14 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 024E4106566C for ; Mon, 23 Apr 2012 17:44:14 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id B02C68FC16 for ; Mon, 23 Apr 2012 17:44:13 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:60a9:25db:2120:9de1] (unknown [IPv6:2001:7b8:3a7:0:60a9:25db:2120:9de1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id E1C3D5C37; Mon, 23 Apr 2012 19:44:12 +0200 (CEST) Message-ID: <4F9594EA.3050108@FreeBSD.org> Date: Mon, 23 Apr 2012 19:44:10 +0200 From: Dimitry Andric Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120410 Thunderbird/12.0 MIME-Version: 1.0 To: Andrew Boyer References: <3C479FEC-971A-4099-9CA5-B522574BE763@averesystems.com> In-Reply-To: X-Enigmail-Version: 1.4.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Current FreeBSD , Greg Bednarek Subject: Re: Fwd: Memory leak in authunix_create_default()... X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 17:44:14 -0000 On 2012-04-23 19:31, Andrew Boyer wrote: > Begin forwarded message: > >> From: Greg Bednarek >> Date: April 16, 2012 10:54:33 AM EDT >> To: freebsd-current@freebsd.org >> Cc: Andrew Boyer >> Subject: Memory leak in authunix_create_default()... >> >> >> Please see the attached patch for a proposed fix for a memory leak in authunix_create_default(). >> >> The leak appears to have been introduced 6/19/2009 in Revision 194494 of lib/libc/rpc/auth_unix.c >> >> As you can see form the patch, the fix is very simple. The issue was discovered when tracking down some rather drastic increases in application memory footprint during certain types of workloads, and was eventually traced it to this (apparently) not very heavily used path in libc. >> >> I would appreciate hearing any comments/concerns with the proposed fix. Hi, The patch itself seems to have gone missing? From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 17:48:55 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DA3EB106566C; Mon, 23 Apr 2012 17:48:55 +0000 (UTC) (envelope-from aboyer@averesystems.com) Received: from zimbra.averesystems.com (75-149-8-245-Pennsylvania.hfc.comcastbusiness.net [75.149.8.245]) by mx1.freebsd.org (Postfix) with ESMTP id 860F08FC14; Mon, 23 Apr 2012 17:48:55 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by zimbra.averesystems.com (Postfix) with ESMTP id 1C444446009; Mon, 23 Apr 2012 13:48:35 -0400 (EDT) X-Virus-Scanned: amavisd-new at averesystems.com Received: from zimbra.averesystems.com ([127.0.0.1]) by localhost (zimbra.averesystems.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IVLBAwAhLwCP; Mon, 23 Apr 2012 13:48:33 -0400 (EDT) Received: from riven.arriad.com (fw.arriad.com [10.0.0.16]) by zimbra.averesystems.com (Postfix) with ESMTPSA id 7C114446006; Mon, 23 Apr 2012 13:48:33 -0400 (EDT) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: multipart/mixed; boundary=Apple-Mail-7-413847496 From: Andrew Boyer In-Reply-To: <4F9594EA.3050108@FreeBSD.org> Date: Mon, 23 Apr 2012 13:48:52 -0400 Message-Id: References: <3C479FEC-971A-4099-9CA5-B522574BE763@averesystems.com> <4F9594EA.3050108@FreeBSD.org> To: Dimitry Andric X-Mailer: Apple Mail (2.1084) Cc: Current FreeBSD , Greg Bednarek Subject: Re: Memory leak in authunix_create_default()... X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 17:48:56 -0000 --Apple-Mail-7-413847496 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On Apr 23, 2012, at 1:44 PM, Dimitry Andric wrote: > On 2012-04-23 19:31, Andrew Boyer wrote: >> Begin forwarded message: >>=20 >>> From: Greg Bednarek >>> Date: April 16, 2012 10:54:33 AM EDT >>> To: freebsd-current@freebsd.org >>> Cc: Andrew Boyer >>> Subject: Memory leak in authunix_create_default()... >>>=20 >>>=20 >>> Please see the attached patch for a proposed fix for a memory leak = in authunix_create_default(). >>>=20 >>> The leak appears to have been introduced 6/19/2009 in Revision = 194494 of lib/libc/rpc/auth_unix.c >>>=20 >>> As you can see form the patch, the fix is very simple. The issue was = discovered when tracking down some rather drastic increases in = application memory footprint during certain types of workloads, and was = eventually traced it to this (apparently) not very heavily used path in = libc. >>>=20 >>> I would appreciate hearing any comments/concerns with the proposed = fix. >=20 > Hi, >=20 > The patch itself seems to have gone missing? Trying again... --Apple-Mail-7-413847496 Content-Disposition: attachment; filename=auth_unix.diff Content-Type: application/octet-stream; name="auth_unix.diff" Content-Transfer-Encoding: 7bit Index: lib/libc/rpc/auth_unix.c =================================================================== --- lib/libc/rpc/auth_unix.c (revision 234224) +++ lib/libc/rpc/auth_unix.c (working copy) @@ -185,6 +185,7 @@ AUTH * authunix_create_default() { + AUTH *auth; int ngids; long ngids_max; char machname[MAXHOSTNAMELEN + 1]; @@ -207,8 +208,10 @@ if (ngids > NGRPS) ngids = NGRPS; /* XXX: interface problem; those should all have been unsigned */ - return (authunix_create(machname, (int)uid, (int)gid, ngids, - (int *)gids)); + auth = authunix_create(machname, (int)uid, (int)gid, ngids, + (int *)gids); + free(gids); + return (auth); } /* --Apple-Mail-7-413847496 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii Index: lib/libc/rpc/auth_unix.c =================================================================== --- lib/libc/rpc/auth_unix.c (revision 234224) +++ lib/libc/rpc/auth_unix.c (working copy) @@ -185,6 +185,7 @@ AUTH * authunix_create_default() { + AUTH *auth; int ngids; long ngids_max; char machname[MAXHOSTNAMELEN + 1]; @@ -207,8 +208,10 @@ if (ngids > NGRPS) ngids = NGRPS; /* XXX: interface problem; those should all have been unsigned */ - return (authunix_create(machname, (int)uid, (int)gid, ngids, - (int *)gids)); + auth = authunix_create(machname, (int)uid, (int)gid, ngids, + (int *)gids); + free(gids); + return (auth); } /* -------------------------------------------------- Andrew Boyer aboyer@averesystems.com --Apple-Mail-7-413847496-- From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 18:44:31 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CBFEC1065700; Mon, 23 Apr 2012 18:44:31 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 9AB4F8FC15; Mon, 23 Apr 2012 18:44:31 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3NIiUjg014732; Mon, 23 Apr 2012 14:44:30 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3NIiUgf014721; Mon, 23 Apr 2012 18:44:30 GMT (envelope-from tinderbox@freebsd.org) Date: Mon, 23 Apr 2012 18:44:30 GMT Message-Id: <201204231844.q3NIiUgf014721@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on i386/pc98 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 18:44:31 -0000 TB --- 2012-04-23 16:00:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-23 16:00:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-23 16:00:00 - starting HEAD tinderbox run for i386/pc98 TB --- 2012-04-23 16:00:00 - cleaning the object tree TB --- 2012-04-23 16:00:00 - cvsupping the source tree TB --- 2012-04-23 16:00:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/pc98/supfile TB --- 2012-04-23 16:01:04 - building world TB --- 2012-04-23 16:01:04 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 16:01:04 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 16:01:04 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 16:01:04 - SRCCONF=/dev/null TB --- 2012-04-23 16:01:04 - TARGET=pc98 TB --- 2012-04-23 16:01:04 - TARGET_ARCH=i386 TB --- 2012-04-23 16:01:04 - TZ=UTC TB --- 2012-04-23 16:01:04 - __MAKE_CONF=/dev/null TB --- 2012-04-23 16:01:04 - cd /src TB --- 2012-04-23 16:01:04 - /usr/bin/make -B buildworld >>> World build started on Mon Apr 23 16:01:05 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Mon Apr 23 18:28:22 UTC 2012 TB --- 2012-04-23 18:28:22 - generating LINT kernel config TB --- 2012-04-23 18:28:22 - cd /src/sys/pc98/conf TB --- 2012-04-23 18:28:22 - /usr/bin/make -B LINT TB --- 2012-04-23 18:28:22 - cd /src/sys/pc98/conf TB --- 2012-04-23 18:28:22 - /usr/sbin/config -m LINT TB --- 2012-04-23 18:28:22 - building LINT kernel TB --- 2012-04-23 18:28:22 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 18:28:22 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 18:28:22 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 18:28:22 - SRCCONF=/dev/null TB --- 2012-04-23 18:28:22 - TARGET=pc98 TB --- 2012-04-23 18:28:22 - TARGET_ARCH=i386 TB --- 2012-04-23 18:28:22 - TZ=UTC TB --- 2012-04-23 18:28:22 - __MAKE_CONF=/dev/null TB --- 2012-04-23 18:28:22 - cd /src TB --- 2012-04-23 18:28:22 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Mon Apr 23 18:28:23 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/ufs/ufs/ufs_dirhash.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/ufs/ufs/ufs_extattr.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/ufs/ufs/ufs_gjournal.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/ufs/ufs/ufs_inode.c /src/sys/ufs/ufs/ufs_inode.c: In function 'ufs_inactive': /src/sys/ufs/ufs/ufs_inode.c:138: error: 'td' undeclared (first use in this function) /src/sys/ufs/ufs/ufs_inode.c:138: error: (Each undeclared identifier is reported only once /src/sys/ufs/ufs/ufs_inode.c:138: error: for each function it appears in.) *** Error code 1 Stop in /obj/pc98.i386/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-23 18:44:30 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-23 18:44:30 - ERROR: failed to build LINT kernel TB --- 2012-04-23 18:44:30 - 7454.74 user 1023.38 system 9870.30 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-pc98.full From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 18:51:01 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4BACC1065672; Mon, 23 Apr 2012 18:51:01 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 1A8398FC17; Mon, 23 Apr 2012 18:51:01 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3NIp0ji059094; Mon, 23 Apr 2012 14:51:00 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3NIp0ED059090; Mon, 23 Apr 2012 18:51:00 GMT (envelope-from tinderbox@freebsd.org) Date: Mon, 23 Apr 2012 18:51:00 GMT Message-Id: <201204231851.q3NIp0ED059090@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on i386/i386 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 18:51:01 -0000 TB --- 2012-04-23 16:00:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-23 16:00:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-23 16:00:00 - starting HEAD tinderbox run for i386/i386 TB --- 2012-04-23 16:00:00 - cleaning the object tree TB --- 2012-04-23 16:00:00 - cvsupping the source tree TB --- 2012-04-23 16:00:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/i386/supfile TB --- 2012-04-23 16:06:53 - building world TB --- 2012-04-23 16:06:53 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 16:06:53 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 16:06:53 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 16:06:53 - SRCCONF=/dev/null TB --- 2012-04-23 16:06:53 - TARGET=i386 TB --- 2012-04-23 16:06:53 - TARGET_ARCH=i386 TB --- 2012-04-23 16:06:53 - TZ=UTC TB --- 2012-04-23 16:06:53 - __MAKE_CONF=/dev/null TB --- 2012-04-23 16:06:53 - cd /src TB --- 2012-04-23 16:06:53 - /usr/bin/make -B buildworld >>> World build started on Mon Apr 23 16:06:54 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Mon Apr 23 18:32:32 UTC 2012 TB --- 2012-04-23 18:32:32 - generating LINT kernel config TB --- 2012-04-23 18:32:32 - cd /src/sys/i386/conf TB --- 2012-04-23 18:32:32 - /usr/bin/make -B LINT TB --- 2012-04-23 18:32:33 - cd /src/sys/i386/conf TB --- 2012-04-23 18:32:33 - /usr/sbin/config -m LINT TB --- 2012-04-23 18:32:33 - building LINT kernel TB --- 2012-04-23 18:32:33 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 18:32:33 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 18:32:33 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 18:32:33 - SRCCONF=/dev/null TB --- 2012-04-23 18:32:33 - TARGET=i386 TB --- 2012-04-23 18:32:33 - TARGET_ARCH=i386 TB --- 2012-04-23 18:32:33 - TZ=UTC TB --- 2012-04-23 18:32:33 - __MAKE_CONF=/dev/null TB --- 2012-04-23 18:32:33 - cd /src TB --- 2012-04-23 18:32:33 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Mon Apr 23 18:32:33 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/ufs/ufs/ufs_dirhash.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/ufs/ufs/ufs_extattr.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/ufs/ufs/ufs_gjournal.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/ufs/ufs/ufs_inode.c /src/sys/ufs/ufs/ufs_inode.c: In function 'ufs_inactive': /src/sys/ufs/ufs/ufs_inode.c:138: error: 'td' undeclared (first use in this function) /src/sys/ufs/ufs/ufs_inode.c:138: error: (Each undeclared identifier is reported only once /src/sys/ufs/ufs/ufs_inode.c:138: error: for each function it appears in.) *** Error code 1 Stop in /obj/i386.i386/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-23 18:51:00 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-23 18:51:00 - ERROR: failed to build LINT kernel TB --- 2012-04-23 18:51:00 - 7637.03 user 1041.03 system 10260.19 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-i386.full From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 19:07:14 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D799E106567C; Mon, 23 Apr 2012 19:07:14 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id A956A8FC25; Mon, 23 Apr 2012 19:07:14 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 050A2B96D; Mon, 23 Apr 2012 15:07:14 -0400 (EDT) From: John Baldwin To: freebsd-hackers@freebsd.org Date: Mon, 23 Apr 2012 14:22:56 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p13; KDE/4.5.5; amd64; ; ) References: In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201204231422.56916.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Mon, 23 Apr 2012 15:07:14 -0400 (EDT) Cc: Attilio Rao , FreeBSD Current , Arnaud Lacombe Subject: Re: Disabling an arbitrary device X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 19:07:14 -0000 On Friday, April 20, 2012 8:50:07 pm Attilio Rao wrote: > Il 20 aprile 2012 19:18, Arnaud Lacombe ha scritto: > > Hi, > > > > On Fri, Apr 20, 2012 at 2:16 PM, Arnaud Lacombe wrote: > >> Hi, > >> > >> I will be bringing up an old thread there, but it would seem the > >> situation did not evolve in the past 9 years. I have a machine running > >> 7.1 whose UHCI controller is generating some interrupt storm: > >> > >> # vmstat -i > >> interrupt total rate > >> irq4: sio0 1328 2 > >> irq19: uhci1+ 63514509 96380 > >> [...] > >> > >> generating useless load on one CPU: > >> > >> # top -SH > >> last pid: 5223; load averages: 0.00, 0.00, 0.00 up 0+00:17:21 13:10:35 > >> 117 processes: 14 running, 79 sleeping, 24 waiting > >> CPU: 0.2% user, 0.0% nice, 0.2% system, 6.6% interrupt, 93.0% idle > >> Mem: 33M Active, 9348K Inact, 67M Wired, 400K Cache, 29M Buf, 2892M Free > >> [...] > >> 57 root -64 - 0K 8K CPU0 0 11:59 86.57% irq19: uhci1+ > >> > >> I thought I could use an hint to forbid uhci(4) attachment, ala: > >> > >> hint.uhci.0.disabled="1" > >> hint.uhci.1.disabled="1" > >> > >> in /boot/loader.conf. However, it would seem that what should be > >> usable with any arbitrary devices, ie. be an integral part of > >> device(9), has to be hardcoded in every driver, sad. > >> > > as for the usual "if you're not happy, please provide a patch": > > > > https://github.com/lacombar/freebsd/commit/30786d09b0cb441890cdc749ee5243238e81d2d8 > > I think a generalized kludge should really belong to > device_probe_child() rather than device_add_child_ordered(). eadler@ has a patch that is a better workaround, (it marks the device disabled after probe but before attach is called). This patch above only disables manually added devices that are added by name, so it wouldn't work for PCI devices (e.g. the uhci devices). -- John Baldwin From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 19:21:11 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C7227106566B; Mon, 23 Apr 2012 19:21:11 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 8EB808FC1D; Mon, 23 Apr 2012 19:21:11 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3NJLAJH088786; Mon, 23 Apr 2012 15:21:10 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3NJLA4i088773; Mon, 23 Apr 2012 19:21:10 GMT (envelope-from tinderbox@freebsd.org) Date: Mon, 23 Apr 2012 19:21:10 GMT Message-Id: <201204231921.q3NJLA4i088773@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on amd64/amd64 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 19:21:11 -0000 TB --- 2012-04-23 16:00:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-23 16:00:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-23 16:00:00 - starting HEAD tinderbox run for amd64/amd64 TB --- 2012-04-23 16:00:00 - cleaning the object tree TB --- 2012-04-23 16:00:00 - cvsupping the source tree TB --- 2012-04-23 16:00:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/amd64/amd64/supfile TB --- 2012-04-23 16:01:01 - building world TB --- 2012-04-23 16:01:01 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 16:01:01 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 16:01:01 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 16:01:01 - SRCCONF=/dev/null TB --- 2012-04-23 16:01:01 - TARGET=amd64 TB --- 2012-04-23 16:01:01 - TARGET_ARCH=amd64 TB --- 2012-04-23 16:01:01 - TZ=UTC TB --- 2012-04-23 16:01:01 - __MAKE_CONF=/dev/null TB --- 2012-04-23 16:01:01 - cd /src TB --- 2012-04-23 16:01:01 - /usr/bin/make -B buildworld >>> World build started on Mon Apr 23 16:01:02 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> stage 5.1: building 32 bit shim libraries >>> World build completed on Mon Apr 23 19:03:05 UTC 2012 TB --- 2012-04-23 19:03:05 - generating LINT kernel config TB --- 2012-04-23 19:03:05 - cd /src/sys/amd64/conf TB --- 2012-04-23 19:03:05 - /usr/bin/make -B LINT TB --- 2012-04-23 19:03:05 - cd /src/sys/amd64/conf TB --- 2012-04-23 19:03:05 - /usr/sbin/config -m LINT TB --- 2012-04-23 19:03:05 - building LINT kernel TB --- 2012-04-23 19:03:05 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 19:03:05 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 19:03:05 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 19:03:05 - SRCCONF=/dev/null TB --- 2012-04-23 19:03:05 - TARGET=amd64 TB --- 2012-04-23 19:03:05 - TARGET_ARCH=amd64 TB --- 2012-04-23 19:03:05 - TZ=UTC TB --- 2012-04-23 19:03:05 - __MAKE_CONF=/dev/null TB --- 2012-04-23 19:03:05 - cd /src TB --- 2012-04-23 19:03:05 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Mon Apr 23 19:03:05 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/ufs/ufs/ufs_dirhash.c cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/ufs/ufs/ufs_extattr.c cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/ufs/ufs/ufs_gjournal.c cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/ufs/ufs/ufs_inode.c /src/sys/ufs/ufs/ufs_inode.c: In function 'ufs_inactive': /src/sys/ufs/ufs/ufs_inode.c:138: error: 'td' undeclared (first use in this function) /src/sys/ufs/ufs/ufs_inode.c:138: error: (Each undeclared identifier is reported only once /src/sys/ufs/ufs/ufs_inode.c:138: error: for each function it appears in.) *** Error code 1 Stop in /obj/amd64.amd64/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-23 19:21:10 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-23 19:21:10 - ERROR: failed to build LINT kernel TB --- 2012-04-23 19:21:10 - 9041.79 user 1361.98 system 12070.53 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-amd64-amd64.full From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 20:15:06 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D0841065670; Mon, 23 Apr 2012 20:15:06 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id D61EF8FC0C; Mon, 23 Apr 2012 20:15:05 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3NKF4Nh046593; Mon, 23 Apr 2012 16:15:04 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3NKF4FB046592; Mon, 23 Apr 2012 20:15:04 GMT (envelope-from tinderbox@freebsd.org) Date: Mon, 23 Apr 2012 20:15:04 GMT Message-Id: <201204232015.q3NKF4FB046592@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on ia64/ia64 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 20:15:06 -0000 TB --- 2012-04-23 18:16:11 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-23 18:16:11 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-23 18:16:11 - starting HEAD tinderbox run for ia64/ia64 TB --- 2012-04-23 18:16:11 - cleaning the object tree TB --- 2012-04-23 18:16:11 - cvsupping the source tree TB --- 2012-04-23 18:16:11 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/ia64/ia64/supfile TB --- 2012-04-23 18:17:53 - building world TB --- 2012-04-23 18:17:53 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 18:17:53 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 18:17:53 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 18:17:53 - SRCCONF=/dev/null TB --- 2012-04-23 18:17:53 - TARGET=ia64 TB --- 2012-04-23 18:17:53 - TARGET_ARCH=ia64 TB --- 2012-04-23 18:17:53 - TZ=UTC TB --- 2012-04-23 18:17:53 - __MAKE_CONF=/dev/null TB --- 2012-04-23 18:17:53 - cd /src TB --- 2012-04-23 18:17:53 - /usr/bin/make -B buildworld >>> World build started on Mon Apr 23 18:17:54 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Mon Apr 23 19:54:16 UTC 2012 TB --- 2012-04-23 19:54:16 - generating LINT kernel config TB --- 2012-04-23 19:54:16 - cd /src/sys/ia64/conf TB --- 2012-04-23 19:54:16 - /usr/bin/make -B LINT TB --- 2012-04-23 19:54:16 - cd /src/sys/ia64/conf TB --- 2012-04-23 19:54:16 - /usr/sbin/config -m LINT TB --- 2012-04-23 19:54:16 - building LINT kernel TB --- 2012-04-23 19:54:16 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 19:54:16 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 19:54:16 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 19:54:16 - SRCCONF=/dev/null TB --- 2012-04-23 19:54:16 - TARGET=ia64 TB --- 2012-04-23 19:54:16 - TARGET_ARCH=ia64 TB --- 2012-04-23 19:54:16 - TZ=UTC TB --- 2012-04-23 19:54:16 - __MAKE_CONF=/dev/null TB --- 2012-04-23 19:54:16 - cd /src TB --- 2012-04-23 19:54:16 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Mon Apr 23 19:54:17 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/ia64/libuwx/src -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mconstant-gp -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -Werror /src/sys/ufs/ufs/ufs_dirhash.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/ia64/libuwx/src -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mconstant-gp -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -Werror /src/sys/ufs/ufs/ufs_extattr.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/ia64/libuwx/src -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mconstant-gp -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -Werror /src/sys/ufs/ufs/ufs_gjournal.c cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/ia64/libuwx/src -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mconstant-gp -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -Werror /src/sys/ufs/ufs/ufs_inode.c /src/sys/ufs/ufs/ufs_inode.c: In function 'ufs_inactive': /src/sys/ufs/ufs/ufs_inode.c:138: error: 'td' undeclared (first use in this function) /src/sys/ufs/ufs/ufs_inode.c:138: error: (Each undeclared identifier is reported only once /src/sys/ufs/ufs/ufs_inode.c:138: error: for each function it appears in.) *** Error code 1 Stop in /obj/ia64.ia64/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-23 20:15:04 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-23 20:15:04 - ERROR: failed to build LINT kernel TB --- 2012-04-23 20:15:04 - 5386.66 user 772.68 system 7133.31 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-ia64-ia64.full From owner-freebsd-current@FreeBSD.ORG Mon Apr 23 21:06:02 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ED6DE1065670; Mon, 23 Apr 2012 21:06:01 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id BEDCC8FC0A; Mon, 23 Apr 2012 21:06:01 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3NL61EG080604; Mon, 23 Apr 2012 17:06:01 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3NL61hI080601; Mon, 23 Apr 2012 21:06:01 GMT (envelope-from tinderbox@freebsd.org) Date: Mon, 23 Apr 2012 21:06:01 GMT Message-Id: <201204232106.q3NL61hI080601@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on powerpc/powerpc X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Apr 2012 21:06:02 -0000 TB --- 2012-04-23 18:51:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-23 18:51:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-23 18:51:00 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2012-04-23 18:51:00 - cleaning the object tree TB --- 2012-04-23 18:52:26 - cvsupping the source tree TB --- 2012-04-23 18:52:26 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc/powerpc/supfile TB --- 2012-04-23 18:53:04 - building world TB --- 2012-04-23 18:53:04 - CROSS_BUILD_TESTING=YES TB --- 2012-04-23 18:53:04 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-23 18:53:04 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-23 18:53:04 - SRCCONF=/dev/null TB --- 2012-04-23 18:53:04 - TARGET=powerpc TB --- 2012-04-23 18:53:04 - TARGET_ARCH=powerpc TB --- 2012-04-23 18:53:04 - TZ=UTC TB --- 2012-04-23 18:53:04 - __MAKE_CONF=/dev/null TB --- 2012-04-23 18:53:04 - cd /src TB --- 2012-04-23 18:53:04 - /usr/bin/make -B buildworld >>> World build started on Mon Apr 23 18:53:05 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything [...] cc1_main.cpp:(.text+0x78): relocation truncated to fit: R_PPC_REL24 against symbol `pthread_mutex_lock@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x88): relocation truncated to fit: R_PPC_REL24 against symbol `pthread_once@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x90): relocation truncated to fit: R_PPC_REL24 against symbol `pthread_mutex_unlock@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.o: In function `__static_initialization_and_destruction_0(int, int)': cc1_main.cpp:(.text+0x130): relocation truncated to fit: R_PPC_REL24 against symbol `getenv@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x31c): relocation truncated to fit: R_PPC_REL24 against symbol `std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&)@@GLIBCXX_3.4' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x358): relocation truncated to fit: R_PPC_REL24 against symbol `std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&)@@GLIBCXX_3.4' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x3b8): additional relocation overflows omitted from the output *** Error code 1 Stop in /src/usr.bin/clang/clang. *** Error code 1 Stop in /src/usr.bin/clang. *** Error code 1 Stop in /src/usr.bin. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-23 21:06:01 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-23 21:06:01 - ERROR: failed to build world TB --- 2012-04-23 21:06:01 - 6453.98 user 828.26 system 8100.43 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-powerpc-powerpc.full From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 05:59:40 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A1F2F106566B; Tue, 24 Apr 2012 05:59:40 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 6A5998FC14; Tue, 24 Apr 2012 05:59:40 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3O5xX2A022379; Tue, 24 Apr 2012 01:59:33 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3O5xXwG022363; Tue, 24 Apr 2012 05:59:33 GMT (envelope-from tinderbox@freebsd.org) Date: Tue, 24 Apr 2012 05:59:33 GMT Message-Id: <201204240559.q3O5xXwG022363@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on powerpc/powerpc X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 05:59:40 -0000 TB --- 2012-04-24 03:49:41 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-24 03:49:41 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-24 03:49:41 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2012-04-24 03:49:41 - cleaning the object tree TB --- 2012-04-24 03:50:43 - cvsupping the source tree TB --- 2012-04-24 03:50:43 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc/powerpc/supfile TB --- 2012-04-24 03:51:23 - building world TB --- 2012-04-24 03:51:23 - CROSS_BUILD_TESTING=YES TB --- 2012-04-24 03:51:23 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-24 03:51:23 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-24 03:51:23 - SRCCONF=/dev/null TB --- 2012-04-24 03:51:23 - TARGET=powerpc TB --- 2012-04-24 03:51:23 - TARGET_ARCH=powerpc TB --- 2012-04-24 03:51:23 - TZ=UTC TB --- 2012-04-24 03:51:23 - __MAKE_CONF=/dev/null TB --- 2012-04-24 03:51:23 - cd /src TB --- 2012-04-24 03:51:23 - /usr/bin/make -B buildworld >>> World build started on Tue Apr 24 03:51:24 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything [...] cc1_main.cpp:(.text+0x78): relocation truncated to fit: R_PPC_REL24 against symbol `pthread_mutex_lock@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x88): relocation truncated to fit: R_PPC_REL24 against symbol `pthread_once@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x90): relocation truncated to fit: R_PPC_REL24 against symbol `pthread_mutex_unlock@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.o: In function `__static_initialization_and_destruction_0(int, int)': cc1_main.cpp:(.text+0x130): relocation truncated to fit: R_PPC_REL24 against symbol `getenv@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x31c): relocation truncated to fit: R_PPC_REL24 against symbol `std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&)@@GLIBCXX_3.4' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x358): relocation truncated to fit: R_PPC_REL24 against symbol `std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&)@@GLIBCXX_3.4' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x3b8): additional relocation overflows omitted from the output *** Error code 1 Stop in /src/usr.bin/clang/clang. *** Error code 1 Stop in /src/usr.bin/clang. *** Error code 1 Stop in /src/usr.bin. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-24 05:59:33 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-24 05:59:33 - ERROR: failed to build world TB --- 2012-04-24 05:59:33 - 6463.66 user 812.23 system 7792.54 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-powerpc-powerpc.full From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 07:27:44 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 63806106566B for ; Tue, 24 Apr 2012 07:27:44 +0000 (UTC) (envelope-from luigi@onelab2.iet.unipi.it) Received: from onelab2.iet.unipi.it (onelab2.iet.unipi.it [131.114.59.238]) by mx1.freebsd.org (Postfix) with ESMTP id 251818FC0A for ; Tue, 24 Apr 2012 07:27:44 +0000 (UTC) Received: by onelab2.iet.unipi.it (Postfix, from userid 275) id 1E5F17300A; Tue, 24 Apr 2012 09:47:22 +0200 (CEST) Date: Tue, 24 Apr 2012 09:47:22 +0200 From: rizzo To: "root@9du.org" Message-ID: <20120424074722.GA56331@onelab2.iet.unipi.it> References: <201204232016029060073@9du.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201204232016029060073@9du.org> User-Agent: Mutt/1.4.2.3i Cc: freebsd-current Subject: Re: about /sys/dev/netmap/head.diff X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 07:27:44 -0000 On Mon, Apr 23, 2012 at 08:17:40PM +0800, root@9du.org wrote: > i think this "head.diff" may be is old! it is, definitely time to remove it since the code has been merged. cheers luigi > > in diff > +#ifdef DEV_NETMAP > + if (slot) { > + netmap_load_map(txr->txtag, txbuf->map, > + NMB(slot), adapter->rx_mbuf_sz); > + slot++; > + } > +#endif /* DEV_NETMAP */ > > in netmap_kern.h > > static inline void > netmap_load_map(bus_dma_tag_t tag, bus_dmamap_t map, void *buf) > { > if (map) > bus_dmamap_load(tag, map, buf, NETMAP_BUF_SIZE, > netmap_dmamap_cb, NULL, BUS_DMA_NOWAIT); > } > > > > > yong > root@9du.org From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 13:17:03 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 92AFC106566C for ; Tue, 24 Apr 2012 13:17:03 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from c00l3r.networx.ch (c00l3r.networx.ch [62.48.2.2]) by mx1.freebsd.org (Postfix) with ESMTP id F369B8FC1C for ; Tue, 24 Apr 2012 13:17:02 +0000 (UTC) Received: (qmail 43894 invoked from network); 24 Apr 2012 13:11:16 -0000 Received: from c00l3r.networx.ch (HELO [127.0.0.1]) ([62.48.2.2]) (envelope-sender ) by c00l3r.networx.ch (qmail-ldap-1.03) with SMTP for ; 24 Apr 2012 13:11:16 -0000 Message-ID: <4F96A7C0.3010909@freebsd.org> Date: Tue, 24 Apr 2012 15:16:48 +0200 From: Andre Oppermann User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 MIME-Version: 1.0 To: Luigi Rizzo References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> In-Reply-To: <20120419204622.GA94904@onelab2.iet.unipi.it> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: current@freebsd.org, net@freebsd.org Subject: Re: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 13:17:03 -0000 On 19.04.2012 22:46, Luigi Rizzo wrote: > On Thu, Apr 19, 2012 at 10:05:37PM +0200, Andre Oppermann wrote: >> On 19.04.2012 15:30, Luigi Rizzo wrote: >>> I have been running some performance tests on UDP sockets, >>> using the netsend program in tools/tools/netrate/netsend >>> and instrumenting the source code and the kernel do return in >>> various points of the path. Here are some results which >>> I hope you find interesting. >>> - another big bottleneck is the route lookup in ip_output() >>> (between entries 51 and 56). Not only it eats another >>> 100ns+ on an empty routing table, but it also >>> causes huge contentions when multiple cores >>> are involved. >> >> This is indeed a big problem. I'm working (rough edges remain) on >> changing the routing table locking to an rmlock (read-mostly) which > > i was wondering, is there a way (and/or any advantage) to use the > fastforward code to look up the route for locally sourced packets ? I've completed the updating of the routing table rmlock patch. There are two steps. Step one is just changing the rwlock to an rmlock. Step two streamlines the route lookup in ip_output and ip_fastfwd by copying out the relevant data while only holding the rmlock instead of obtaining a reference to the route. Would be very interesting to see how your benchmark/profiling changes with these patches applied. http://svn.freebsd.org/changeset/base/234649 Log: Change the radix head lock to an rmlock (read mostly lock). There is some header pollution going on because rmlock's are not entirely abstracted and need per-CPU structures. A comment in _rmlock.h says this can be hidden if there were per-cpu linker magic/support. I don't know if we have that already. http://svn.freebsd.org/changeset/base/234650 Log: Add a function rtlookup() that copies out the relevant information from an rtentry instead of returning the rtentry. This avoids the need to lock the rtentry and to increase the refcount on it. Convert ip_output() to use rtlookup() in a simplistic way. Certain seldom used functionality may not work anymore and the flowtable isn't available at the moment. Convert ip_fastfwd() to use rtlookup(). This code is meant to be used for profiling and to be experimented with further to determine which locking strategy returns the best results. Make sure to apply this one as well: http://svn.freebsd.org/changeset/base/234648 Log: Add INVARIANT and WITNESS support to rm_lock locks and optimize the synchronization path by replacing a LIST of active readers with a TAILQ. Obtained from: Isilon Submitted by: mlaier -- Andre From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 13:42:57 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B2B06106566B; Tue, 24 Apr 2012 13:42:57 +0000 (UTC) (envelope-from luigi@onelab2.iet.unipi.it) Received: from onelab2.iet.unipi.it (onelab2.iet.unipi.it [131.114.59.238]) by mx1.freebsd.org (Postfix) with ESMTP id 3A9F08FC0C; Tue, 24 Apr 2012 13:42:57 +0000 (UTC) Received: by onelab2.iet.unipi.it (Postfix, from userid 275) id CCC4D7300B; Tue, 24 Apr 2012 16:02:28 +0200 (CEST) Date: Tue, 24 Apr 2012 16:02:28 +0200 From: Luigi Rizzo To: Andre Oppermann Message-ID: <20120424140228.GA58809@onelab2.iet.unipi.it> References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <4F96A7C0.3010909@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4F96A7C0.3010909@freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: current@freebsd.org, net@freebsd.org Subject: Re: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 13:42:57 -0000 On Tue, Apr 24, 2012 at 03:16:48PM +0200, Andre Oppermann wrote: > On 19.04.2012 22:46, Luigi Rizzo wrote: > >On Thu, Apr 19, 2012 at 10:05:37PM +0200, Andre Oppermann wrote: > >>On 19.04.2012 15:30, Luigi Rizzo wrote: > >>>I have been running some performance tests on UDP sockets, > >>>using the netsend program in tools/tools/netrate/netsend > >>>and instrumenting the source code and the kernel do return in > >>>various points of the path. Here are some results which > >>>I hope you find interesting. > >>>- another big bottleneck is the route lookup in ip_output() > >>> (between entries 51 and 56). Not only it eats another > >>> 100ns+ on an empty routing table, but it also > >>> causes huge contentions when multiple cores > >>> are involved. > >> > >>This is indeed a big problem. I'm working (rough edges remain) on > >>changing the routing table locking to an rmlock (read-mostly) which > > > >i was wondering, is there a way (and/or any advantage) to use the > >fastforward code to look up the route for locally sourced packets ? > > I've completed the updating of the routing table rmlock patch. There > are two steps. Step one is just changing the rwlock to an rmlock. > Step two streamlines the route lookup in ip_output and ip_fastfwd by > copying out the relevant data while only holding the rmlock instead > of obtaining a reference to the route. > > Would be very interesting to see how your benchmark/profiling changes > with these patches applied. If you want to give it a try yourself, the high level benchmark is just the 'netsend' program from tools/tools/netrate/netsend -- i am running something like for i in $X ; do netsend 10.0.0.2 5555 18 0 5 & done and the cardinality of $X can be used to test contention on the low layers (routing tables and interface/queues). >From previous tests, the difference between flowtable and routing table was small with a single process (about 5% or 50ns in the total packet processing time, if i remember well), but there was a large gain with multiple concurrent processes. Probably the change in throughput between HEAD and your branch is all you need. The info below shows that your gain is something around 100-200 ns depending on how good is the info that you return back (see below). My profiling changes were mostly aimed at charging the costs to the various layers. With my current setting (single process i7-870 @2933 MHz+Turboboost, ixgbe, FreeBSD HEAD, FLOWTABLE enabled, UDP) i see the following: File Function/description Total/delta nanoseconds user program sendto() 8 96 system call uipc_syscalls.c sys_sendto 104 uipc_syscalls.c sendit 111 uipc_syscalls.c kern_sendit 118 uipc_socket.c sosend uipc_socket.c sosend_dgram 146 137 sockbuf locking, mbuf alloc, copyin udp_usrreq.c udp_send 273 udp_usrreq.c udp_output 273 57 ip_output.c ip_output 330 198 route lookup, ip header setup if_ethersubr.c ether_output 528 162 MAC header lookup and construction, loopback checks if_ethersubr.c ether_output_frame 690 ixgbe.c ixgbe_mq_start 698 ixgbe.c ixgbe_mq_start_locked 720 ixgbe.c ixgbe_xmit 730 220 mbuf mangling, device programming -- packet on the wire 950 Removing flowtable increases the cost in ip_output() (obviously) but also in ether_output() (because the route does not have a lle entry so you need to call arpresolve on each packet). It also causes trouble in the device driver because the mbuf does not have a flowid set, so the ixgbe device driver puts the packet on the queue corresponding to the current CPU. If the process (as in my case) floats, one flow might end up on multiple queues. So in revising the route lookup i believe it would be good if we could also get at once most of the info that ether_output() is computing again and again. cheers luigi > http://svn.freebsd.org/changeset/base/234649 > Log: > Change the radix head lock to an rmlock (read mostly lock). > > There is some header pollution going on because rmlock's are > not entirely abstracted and need per-CPU structures. > > A comment in _rmlock.h says this can be hidden if there were > per-cpu linker magic/support. I don't know if we have that > already. > > http://svn.freebsd.org/changeset/base/234650 > Log: > Add a function rtlookup() that copies out the relevant information > from an rtentry instead of returning the rtentry. This avoids the > need to lock the rtentry and to increase the refcount on it. > > Convert ip_output() to use rtlookup() in a simplistic way. Certain > seldom used functionality may not work anymore and the flowtable > isn't available at the moment. > > Convert ip_fastfwd() to use rtlookup(). > > This code is meant to be used for profiling and to be experimented > with further to determine which locking strategy returns the best > results. > > Make sure to apply this one as well: > http://svn.freebsd.org/changeset/base/234648 > Log: > Add INVARIANT and WITNESS support to rm_lock locks and optimize the > synchronization path by replacing a LIST of active readers with a > TAILQ. > > Obtained from: Isilon > Submitted by: mlaier > > -- > Andre > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 14:16:19 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AF4C8106564A; Tue, 24 Apr 2012 14:16:19 +0000 (UTC) (envelope-from qing.li@bluecoat.com) Received: from plsvl-mailgw-02.bluecoat.com (plsvl-mailgw-02.bluecoat.com [199.91.133.12]) by mx1.freebsd.org (Postfix) with ESMTP id 8D39E8FC0A; Tue, 24 Apr 2012 14:16:19 +0000 (UTC) Received: from PWSVL-EXCHTS-01.internal.cacheflow.com (unknown [10.2.2.122]) by plsvl-mailgw-02.bluecoat.com (Postfix) with ESMTP id C2EE5200C8; Tue, 24 Apr 2012 07:17:36 -0700 (PDT) Received: from pwsvl-excmbx-05.internal.cacheflow.com ([fe80::f848:d461:9aa9:59a8]) by PWSVL-EXCHTS-01.internal.cacheflow.com ([fe80::5c50:e2ba:8115:4223%20]) with mapi id 14.01.0289.001; Tue, 24 Apr 2012 07:16:19 -0700 From: "Li, Qing" To: Luigi Rizzo Thread-Topic: Some performance measurements on the FreeBSD network stack Thread-Index: AQHNIhyqmxIlJMdUe0+llxsSqqHVrpaqduMA//+MHgQ= Date: Tue, 24 Apr 2012 14:16:18 +0000 Message-ID: References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <4F96A7C0.3010909@freebsd.org>, <20120424140228.GA58809@onelab2.iet.unipi.it> In-Reply-To: <20120424140228.GA58809@onelab2.iet.unipi.it> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [199.91.133.85] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "current@freebsd.org" , "net@freebsd.org" Subject: RE: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 14:16:19 -0000 >=0A= >From previous tests, the difference between flowtable and=0A= >routing table was small with a single process (about 5% or 50ns=0A= >in the total packet processing time, if i remember well),=0A= >but there was a large gain with multiple concurrent processes.=0A= >=0A= =0A= Yes, that sounds about right when we did the tests a long while ago.=0A= =0A= >=0A= > Removing flowtable increases the cost in ip_output()=0A= > (obviously) but also in ether_output() (because the=0A= > route does not have a lle entry so you need to call=0A= > arpresolve on each packet). =0A= >=0A= =0A= Yup.=0A= =0A= >=0A= > So in revising the route lookup i believe it would be good=0A= > if we could also get at once most of the info that=0A= > ether_output() is computing again and again.=0A= >=0A= =0A= Well, the routing table no longer maintains any lle info, so there=0A= isn't much to copy out the rtentry at the completion of route=0A= lookup.=0A= =0A= If I understood you correctly, you do believe there is a lot of value=0A= in Flowtable caching concept, but you are not suggesting we reverting=0A= back to having the routing table maintain L2 entries, are you ?=0A= =0A= --Qing=0A= From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 15:03:58 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 358FF1065674; Tue, 24 Apr 2012 15:03:58 +0000 (UTC) (envelope-from kmacybsd@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id D60D48FC08; Tue, 24 Apr 2012 15:03:57 +0000 (UTC) Received: by iahk25 with SMTP id k25so1465899iah.13 for ; Tue, 24 Apr 2012 08:03:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=b3VoNSVPsJcux4E5Q+Iw+YOidjKRHdBH/NA92Ntiupk=; b=p0ObvLJARd8bLBj6wc1JAw0TBtARFRYGpWJetkjU0O+lthRG6VER3jR6L5tir8c4mc dZNPsS5v4KzepBrR8WLUSjT9d2V1vD+8auaKfDkTPkuIj6bsY5LuZQs7o1KIyOF3BYF+ Cr782UJUCT1F7r9TtlUfBxRy2g/tFKEELS1z70z0wrGX1ZEaYqY68Dyl0YHjnU0gwjWo QSkGdZWUfVv92kiY3whLRDPQriHyLU7SzaY8w6xxP0thnMan+Ltp+5pjzlx/czhT1hrA oYNI9usWgJCbxblA4Y8xjdpQ+ezNu36gQHdbXPxLrlAyWHOlGORfSg9F5CjUbSd+9jvL 1QQA== MIME-Version: 1.0 Received: by 10.50.168.67 with SMTP id zu3mr1968004igb.28.1335279837392; Tue, 24 Apr 2012 08:03:57 -0700 (PDT) Sender: kmacybsd@gmail.com Received: by 10.50.129.39 with HTTP; Tue, 24 Apr 2012 08:03:57 -0700 (PDT) In-Reply-To: References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <4F96A7C0.3010909@freebsd.org> <20120424140228.GA58809@onelab2.iet.unipi.it> Date: Tue, 24 Apr 2012 17:03:57 +0200 X-Google-Sender-Auth: zs8TRRBPpxUefkZ2_TmpJ7LPH8E Message-ID: From: "K. Macy" To: "Li, Qing" Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Cc: Luigi Rizzo , "current@freebsd.org" , "net@freebsd.org" Subject: Re: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 15:03:58 -0000 On Tue, Apr 24, 2012 at 4:16 PM, Li, Qing wrote: >> > >From previous tests, the difference between flowtable and >>routing table was small with a single process (about 5% or 50ns >>in the total packet processing time, if i remember well), >>but there was a large gain with multiple concurrent processes. >> > > Yes, that sounds about right when we did the tests a long while ago. > >> >> Removing flowtable increases the cost in ip_output() >> (obviously) but also in ether_output() (because the >> route does not have a lle entry so you need to call >> arpresolve on each packet). >> > > Yup. > >> >> So in revising the route lookup i believe it would be good >> if we could also get at once most of the info that >> ether_output() is computing again and again. >> > > Well, the routing table no longer maintains any lle info, so there > isn't much to copy out the rtentry at the completion of route > lookup. > > If I understood you correctly, you do believe there is a lot of value > in Flowtable caching concept, but you are not suggesting we reverting > back to having the routing table maintain L2 entries, are you ? > One could try a similar conversion of the L2 table to an rmlock without copy while lock is held. -Kip --=20 =A0 =A0=93The real damage is done by those millions who want to 'get by.' The ordinary men who just want to be left in peace. Those who don=92t want their little lives disturbed by anything bigger than themselves. Those with no sides and no causes. Those who won=92t take measure of their own strength, for fear of antagonizing their own weakness. Those who don=92t like to make waves=97or enemies. =A0 =A0Those for whom freedom, honour, truth, and principles are only literature. Those who live small, love small, die small. It=92s the reductionist approach to life: if you keep it small, you=92ll keep it under control. If you don=92t make any noise, the bogeyman won=92t find you. =A0 =A0But it=92s all an illusion, because they die too, those people who roll up their spirits into tiny little balls so as to be safe. Safe?! >From what? Life is always on the edge of death; narrow streets lead to the same place as wide avenues, and a little candle burns itself out just like a flaming torch does. =A0 =A0I choose my own way to burn.=94 =A0 =A0Sophie Scholl From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 15:05:31 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DBD671065672; Tue, 24 Apr 2012 15:05:31 +0000 (UTC) (envelope-from kmacybsd@gmail.com) Received: from mail-gy0-f182.google.com (mail-gy0-f182.google.com [209.85.160.182]) by mx1.freebsd.org (Postfix) with ESMTP id 7CFDF8FC0C; Tue, 24 Apr 2012 15:05:31 +0000 (UTC) Received: by ghrr20 with SMTP id r20so518562ghr.13 for ; Tue, 24 Apr 2012 08:05:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=XOki2Ujcm/Ff3bqRnDOH7b1BK0QB/Q4ls2I2bjLtX+E=; b=EbBWj9+6qAcCq6eFocS+kYmPOylK3W6dtHEX1bN3M8T6m03g+bzMXUfPOCUJP6RIES qIoOLdQrjI+OQ/c4HKBJzqQYjQGZ+57m+Oa1yqGriz9Z+8ylvnJ9KteVG2iq1elT6xHL bqYBq9Uj8lzoILsVFNGwnXWrwAhmctS26Sw7CVgXsemIYimRcEvS2NmPlHdE3wajuaZ6 iZ0Yo7+Mezj4CPqzJU2XnVrAHfNh4FqAoydfJC7FROpLZ5Va8eI9BhMw2RA9mYh6uj1U tXA4x3N6QVbYU/oD1x1G63V+1XNuYxRQPxuuzPO5mUbKsL+GjKK8i2b/ek7omeK7B0Eq ru6A== MIME-Version: 1.0 Received: by 10.50.156.229 with SMTP id wh5mr10655767igb.28.1335279925083; Tue, 24 Apr 2012 08:05:25 -0700 (PDT) Sender: kmacybsd@gmail.com Received: by 10.50.129.39 with HTTP; Tue, 24 Apr 2012 08:05:24 -0700 (PDT) In-Reply-To: References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <4F96A7C0.3010909@freebsd.org> <20120424140228.GA58809@onelab2.iet.unipi.it> Date: Tue, 24 Apr 2012 17:05:24 +0200 X-Google-Sender-Auth: vJl9uA75cPyj3V4GFsCJthWxp6k Message-ID: From: "K. Macy" To: "Li, Qing" Content-Type: text/plain; charset=ISO-8859-1 Cc: Luigi Rizzo , "current@freebsd.org" , "net@freebsd.org" Subject: Re: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 15:05:31 -0000 On Tue, Apr 24, 2012 at 5:03 PM, K. Macy wrote: > On Tue, Apr 24, 2012 at 4:16 PM, Li, Qing wrote: >>> >> >From previous tests, the difference between flowtable and >>>routing table was small with a single process (about 5% or 50ns >>>in the total packet processing time, if i remember well), >>>but there was a large gain with multiple concurrent processes. >>> >> >> Yes, that sounds about right when we did the tests a long while ago. >> >>> >>> Removing flowtable increases the cost in ip_output() >>> (obviously) but also in ether_output() (because the >>> route does not have a lle entry so you need to call >>> arpresolve on each packet). >>> >> >> Yup. >> >>> >>> So in revising the route lookup i believe it would be good >>> if we could also get at once most of the info that >>> ether_output() is computing again and again. >>> >> >> Well, the routing table no longer maintains any lle info, so there >> isn't much to copy out the rtentry at the completion of route >> lookup. >> >> If I understood you correctly, you do believe there is a lot of value >> in Flowtable caching concept, but you are not suggesting we reverting >> back to having the routing table maintain L2 entries, are you ? >> > > > One could try a similar conversion of the L2 table to an rmlock > without copy while lock is held. Odd .. *with* copy while lock is held. -Kip From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 15:09:42 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id F25BE1065674; Tue, 24 Apr 2012 15:09:41 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id C27998FC16; Tue, 24 Apr 2012 15:09:41 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3OF9ehI026769; Tue, 24 Apr 2012 11:09:40 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3OF9ehX026768; Tue, 24 Apr 2012 15:09:40 GMT (envelope-from tinderbox@freebsd.org) Date: Tue, 24 Apr 2012 15:09:40 GMT Message-Id: <201204241509.q3OF9ehX026768@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on powerpc/powerpc X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 15:09:42 -0000 TB --- 2012-04-24 13:01:51 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-24 13:01:51 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-24 13:01:51 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2012-04-24 13:01:51 - cleaning the object tree TB --- 2012-04-24 13:03:09 - cvsupping the source tree TB --- 2012-04-24 13:03:09 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc/powerpc/supfile TB --- 2012-04-24 13:04:14 - building world TB --- 2012-04-24 13:04:14 - CROSS_BUILD_TESTING=YES TB --- 2012-04-24 13:04:14 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-24 13:04:14 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-24 13:04:14 - SRCCONF=/dev/null TB --- 2012-04-24 13:04:14 - TARGET=powerpc TB --- 2012-04-24 13:04:14 - TARGET_ARCH=powerpc TB --- 2012-04-24 13:04:14 - TZ=UTC TB --- 2012-04-24 13:04:14 - __MAKE_CONF=/dev/null TB --- 2012-04-24 13:04:14 - cd /src TB --- 2012-04-24 13:04:14 - /usr/bin/make -B buildworld >>> World build started on Tue Apr 24 13:04:15 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything [...] cc1_main.cpp:(.text+0x78): relocation truncated to fit: R_PPC_REL24 against symbol `pthread_mutex_lock@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x88): relocation truncated to fit: R_PPC_REL24 against symbol `pthread_once@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x90): relocation truncated to fit: R_PPC_REL24 against symbol `pthread_mutex_unlock@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.o: In function `__static_initialization_and_destruction_0(int, int)': cc1_main.cpp:(.text+0x130): relocation truncated to fit: R_PPC_REL24 against symbol `getenv@@FBSD_1.0' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x31c): relocation truncated to fit: R_PPC_REL24 against symbol `std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&)@@GLIBCXX_3.4' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x358): relocation truncated to fit: R_PPC_REL24 against symbol `std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&)@@GLIBCXX_3.4' defined in .plt section in /obj/powerpc.powerpc/src/tmp/usr/lib/crt1.o cc1_main.cpp:(.text+0x3b8): additional relocation overflows omitted from the output *** Error code 1 Stop in /src/usr.bin/clang/clang. *** Error code 1 Stop in /src/usr.bin/clang. *** Error code 1 Stop in /src/usr.bin. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-24 15:09:40 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-24 15:09:40 - ERROR: failed to build world TB --- 2012-04-24 15:09:40 - 6324.95 user 799.24 system 7669.12 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-powerpc-powerpc.full From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 16:14:46 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2C515106566C; Tue, 24 Apr 2012 16:14:46 +0000 (UTC) (envelope-from luigi@onelab2.iet.unipi.it) Received: from onelab2.iet.unipi.it (onelab2.iet.unipi.it [131.114.59.238]) by mx1.freebsd.org (Postfix) with ESMTP id D9A968FC0A; Tue, 24 Apr 2012 16:14:45 +0000 (UTC) Received: by onelab2.iet.unipi.it (Postfix, from userid 275) id EA3187300A; Tue, 24 Apr 2012 18:34:23 +0200 (CEST) Date: Tue, 24 Apr 2012 18:34:23 +0200 From: Luigi Rizzo To: "Li, Qing" Message-ID: <20120424163423.GA59530@onelab2.iet.unipi.it> References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i Cc: "current@freebsd.org" , "net@freebsd.org" Subject: Re: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 16:14:46 -0000 On Tue, Apr 24, 2012 at 02:16:18PM +0000, Li, Qing wrote: > > > >From previous tests, the difference between flowtable and > >routing table was small with a single process (about 5% or 50ns > >in the total packet processing time, if i remember well), > >but there was a large gain with multiple concurrent processes. > > > > Yes, that sounds about right when we did the tests a long while ago. > > > > > Removing flowtable increases the cost in ip_output() > > (obviously) but also in ether_output() (because the > > route does not have a lle entry so you need to call > > arpresolve on each packet). > > > > Yup. > > > > > So in revising the route lookup i believe it would be good > > if we could also get at once most of the info that > > ether_output() is computing again and again. > > > > Well, the routing table no longer maintains any lle info, so there > isn't much to copy out the rtentry at the completion of route > lookup. > > If I understood you correctly, you do believe there is a lot of value > in Flowtable caching concept, but you are not suggesting we reverting > back to having the routing table maintain L2 entries, are you ? I see a lot of value in caching in general. Especially for a bound socket it seems pointless to lookup the route, iface and mac address(es) on every single packet instead of caching them. And, routes and MAC addresses are volatile anyways so making sure that we do the lookup 1us closer to the actual use gives no additional guarantee. The frequency with which these info (routes and MAC addresses) change clearly influences the mechanism to validate the cache. I suppose we have the following options: - direct notification: a failure in a direct chain of calls can be used to invalidate the info cached in the socket. Similarly, some incoming traffic (e.g. TCP RST, FIN, ICMP messages) that reach a socket can invalidate the cached values - assume a minimum lifetime for the info (i think this is what happens in the flowtable) and flush it unconditionally every such interval (say 10ms). - if some info changes infrequently (e.g. MAC addresses) one could put a version number in the cached value and use it to validate the cache. cheers luigi From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 16:18:30 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C28C71065677; Tue, 24 Apr 2012 16:18:30 +0000 (UTC) (envelope-from kmacybsd@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 74B118FC19; Tue, 24 Apr 2012 16:18:30 +0000 (UTC) Received: by iahk25 with SMTP id k25so1570753iah.13 for ; Tue, 24 Apr 2012 09:18:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=nRZxGhtqAKb5ZuOonbUPX+zKHWSU0cZYOaXj9eySR/E=; b=o2h7Wwwi82dMGOJCyLsUzKAZupEJ0Ny9nxw/w7Xn6H9lsPTwnaSrVK7bpt9bThwSZu 4uCH+HUYl4otufrZC+yfMK1xQewC6r6d6JpcwI0YxFuSUdcQW/MBqsUE/QiQqMsqnXEy oNLVDZjRdxqVMWrZaj/fv3H/RHnYeF1T5Wzvyq7Pc4Pd13EYTI5CLtqK/XBnhDeEX9mU zWD+6HOMPeQdZMXDmXMxZlKRlROciZB9HRilgqhneqW9lS9yO714S9Tm3KPLNcj1MMrV eIoyvLEcvHeSGos8HzjCEgVQQDJKZ+GgkIsXBYS8ruW5D3RZEFLGQH43nS6Itj/MnhDY 6oKg== MIME-Version: 1.0 Received: by 10.50.194.232 with SMTP id hz8mr10939191igc.38.1335284309757; Tue, 24 Apr 2012 09:18:29 -0700 (PDT) Sender: kmacybsd@gmail.com Received: by 10.50.129.39 with HTTP; Tue, 24 Apr 2012 09:18:29 -0700 (PDT) In-Reply-To: <20120424163423.GA59530@onelab2.iet.unipi.it> References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <20120424163423.GA59530@onelab2.iet.unipi.it> Date: Tue, 24 Apr 2012 18:18:29 +0200 X-Google-Sender-Auth: Y42oDrej-EVrsrWTvXr2bEEFpgQ Message-ID: From: "K. Macy" To: Luigi Rizzo Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: "Li, Qing" , "current@freebsd.org" , "net@freebsd.org" Subject: Re: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 16:18:30 -0000 On Tue, Apr 24, 2012 at 6:34 PM, Luigi Rizzo wrote: > On Tue, Apr 24, 2012 at 02:16:18PM +0000, Li, Qing wrote: >> > >> >From previous tests, the difference between flowtable and >> >routing table was small with a single process (about 5% or 50ns >> >in the total packet processing time, if i remember well), >> >but there was a large gain with multiple concurrent processes. >> > >> >> Yes, that sounds about right when we did the tests a long while ago. >> >> > >> > Removing flowtable increases the cost in ip_output() >> > (obviously) but also in ether_output() (because the >> > route does not have a lle entry so you need to call >> > arpresolve on each packet). >> > >> >> Yup. >> >> > >> > So in revising the route lookup i believe it would be good >> > if we could also get at once most of the info that >> > ether_output() is computing again and again. >> > >> >> Well, the routing table no longer maintains any lle info, so there >> isn't much to copy out the rtentry at the completion of route >> lookup. >> >> If I understood you correctly, you do believe there is a lot of value >> in Flowtable caching concept, but you are not suggesting we reverting >> back to having the routing table maintain L2 entries, are you ? > > I see a lot of value in caching in general. > > Especially for a bound socket it seems pointless to lookup the > route, iface and mac address(es) on every single packet instead of > caching them. And, routes and MAC addresses are volatile anyways > so making sure that we do the lookup 1us closer to the actual use > gives no additional guarantee. > > The frequency with which these info (routes and MAC addresses) > change clearly influences the mechanism to validate the cache. > I suppose we have the following options: > > - direct notification: a failure in a direct chain of calls > =A0can be used to invalidate the info cached in the socket. > =A0Similarly, some incoming traffic (e.g. TCP RST, FIN, > =A0ICMP messages) that reach a socket can invalidate the cached values > - assume a minimum lifetime for the info (i think this is what > =A0happens in the flowtable) and flush it unconditionally > =A0every such interval (say 10ms). > - if some info changes infrequently (e.g. MAC addresses) one could > =A0put a version number in the cached value and use it to validate > =A0the cache. I have a patch that has been sitting around for a long time due to review cycle latency that caches a pointer to the rtentry (and llentry) in the the inpcb. Before each use the rtentry is checked against a generation number in the routing tree that is incremented on every routing table update. From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 16:28:06 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9CA27106566C for ; Tue, 24 Apr 2012 16:28:06 +0000 (UTC) (envelope-from root@9du.org) Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com [209.85.160.54]) by mx1.freebsd.org (Postfix) with ESMTP id 6998A8FC17 for ; Tue, 24 Apr 2012 16:28:06 +0000 (UTC) Received: by pbcwz17 with SMTP id wz17so335748pbc.13 for ; Tue, 24 Apr 2012 09:28:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=date:from:to:reply-to:subject:x-priority:x-guid:x-has-attach :x-mailer:mime-version:message-id:content-type:x-gm-message-state; bh=ARdq9egreAC6pkgYd3ZfRwr11Qx1i3RshtZ0wUNN0Fo=; b=S8H/zxH6Oh6R01m4buYhro/gmDSIsrz3XX98PteE75sZEeaCOP/hyZN/xyszvYbyXL kJGTYjzTcZwDcNKEurnsyjqblKksKk480ffTC/UEevPqEv56VbjKi1ANlvKhzjYTH3Rw 7vNlXSYCih1zDZGg+nycbOIgNMwivzthOXpeYIm1rafrQOgtDrg/nak/jP1k5u6fd8Y+ o3FPhOCNLwO0Jz81zT6p6/KuWVAEEhHZP9TjPLo5DcXcy2GrdMNFQ/sg2+0ovsBMp9vn Wg1+7XKRTxvXMJEEntjAHvcnWioBQY87UQ2zY2ngLFzIK0PGhk8ENOqKvk4PdE90YTvg I1RA== Received: by 10.68.189.41 with SMTP id gf9mr5010765pbc.17.1335284885857; Tue, 24 Apr 2012 09:28:05 -0700 (PDT) Received: from yong-office-man ([125.34.53.0]) by mx.google.com with ESMTPS id f8sm17800569pbe.42.2012.04.24.09.27.59 (version=SSLv3 cipher=OTHER); Tue, 24 Apr 2012 09:28:02 -0700 (PDT) Date: Wed, 25 Apr 2012 00:28:04 +0800 From: "root@9du.org" To: freebsd-current X-Priority: 3 X-GUID: EE25F529-9199-49F3-AA6A-2E65DCF2D7D4 X-Has-Attach: no X-Mailer: Foxmail 7.0.1.90[cn] Mime-Version: 1.0 Message-ID: <201204250028001714451@9du.org> X-Gm-Message-State: ALoCoQktO6l8RHuRvdcScm4VrGI2pTXkQ+QampmUxVY60Sk9jc6Mhj67kn1azZsXQ1+Ew5b5uFWH Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: make -j4 buildworld error X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: root List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 16:28:06 -0000 Im1ha2UgLWo0IGJ1aWxkd29ybGQgIiBlcnJvcg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+PiBXb3JsZCBidWlsZCBzdGFy dGVkIG9uIFR1ZSBBcHIgMjQgMjE6MzI6MjYgQ1NUIDIwMTINCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+IFJl YnVpbGRpbmcgdGhlIHRlbXBvcmFyeSBidWlsZCB0cmVlDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Kcm0gLXJmIC91c3Ivb2Jq L3Vzci9zcmMvdG1wDQpybSAtcmYgL3Vzci9vYmovdXNyL3NyYy9saWIzMg0KbWtkaXIgLXAgL3Vz ci9vYmovdXNyL3NyYy90bXAvbGliDQpta2RpciAtcCAvdXNyL29iai91c3Ivc3JjL3RtcC91c3IN Cm1rZGlyIC1wIC91c3Ivb2JqL3Vzci9zcmMvdG1wL2xlZ2FjeS91c3INCm10cmVlIC1kZVUgLWYg L3Vzci9zcmMvZXRjL210cmVlL0JTRC51c3IuZGlzdCAgLXAgL3Vzci9vYmovdXNyL3NyYy90bXAv bGVnYWN5L3VzciA+L2Rldi9udWxsDQptdHJlZSAtZGVVIC1mIC91c3Ivc3JjL2V0Yy9tdHJlZS9C U0QuZ3JvZmYuZGlzdCAgLXAgL3Vzci9vYmovdXNyL3NyYy90bXAvbGVnYWN5L3VzciA+L2Rldi9u dWxsDQptdHJlZSAtZGVVIC1mIC91c3Ivc3JjL2V0Yy9tdHJlZS9CU0QudXNyLmRpc3QgIC1wIC91 c3Ivb2JqL3Vzci9zcmMvdG1wL3VzciA+L2Rldi9udWxsDQptdHJlZSAtZGVVIC1mIC91c3Ivc3Jj L2V0Yy9tdHJlZS9CU0QuaW5jbHVkZS5kaXN0ICAtcCAvdXNyL29iai91c3Ivc3JjL3RtcC91c3Iv aW5jbHVkZSA+L2Rldi9udWxsDQoNCi4uLi4uLi4uLi4uLi4NCg0KDQovdXNyL29iai91c3Ivc3Jj L3RtcC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuIGNyZWF0ZWQgZm9yIC91c3Ivc3JjL3Vz ci5iaW4vY2xhbmcvdGJsZ2VuDQpybSAtZiAuZGVwZW5kDQpta2RlcCAtZiAuZGVwZW5kIC1hICAg IC1JL3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4vY29udHJpYi9sbHZtL2lu Y2x1ZGUgLUkvdXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xs dm0vdG9vbHMvY2xhbmcvaW5jbHVkZSAtSS91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4u Ly4uLy4uL2NvbnRyaWIvbGx2bS91dGlscy9UYWJsZUdlbiAtSS4gLUkvdXNyL3NyYy91c3IuYmlu L2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vLi4vLi4vbGliL2NsYW5nL2luY2x1 ZGUgLURMTFZNX09OX1VOSVggLURMTFZNX09OX0ZSRUVCU0QgLURfX1NURENfTElNSVRfTUFDUk9T IC1EX19TVERDX0NPTlNUQU5UX01BQ1JPUyAtRExMVk1fREVGQVVMVF9UQVJHRVRfVFJJUExFPVwi eDg2XzY0LXVua25vd24tZnJlZWJzZDEwLjBcIiAtSS91c3Ivb2JqL3Vzci9zcmMvdG1wL2xlZ2Fj eS91c3IvaW5jbHVkZSAgICAgIC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4u L2NvbnRyaWIvbGx2bS91dGlscy9UYWJsZUdlbi9Bc21NYXRjaGVyRW1pdHRlci5jcHAgL3Vzci9z cmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4vY29udHJpYi9sbHZtL3V0aWxzL1RhYmxl R2VuL0FzbVdyaXRlckVtaXR0ZXIuY3BwIC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4u Ly4uLy4uL2NvbnRyaWIvbGx2bS91dGlscy9UYWJsZUdlbi9Bc21Xcml0ZXJJbnN0LmNwcCAvdXNy L3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vdXRpbHMvVGFi bGVHZW4vQ2FsbGluZ0NvbnZFbWl0dGVyLmNwcCAvdXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdl bi8uLi8uLi8uLi9jb250cmliL2xsdm0vdXRpbHMvVGFibGVHZW4vQ29kZUVtaXR0ZXJHZW4uY3Bw IC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS91dGls cy9UYWJsZUdlbi9Db2RlR2VuREFHUGF0dGVybnMuY3BwIC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcv dGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS91dGlscy9UYWJsZUdlbi9Db2RlR2VuSW5zdHJ1 Y3Rpb24uY3BwIC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIv bGx2bS91dGlscy9UYWJsZUdlbi9Db2RlR2VuUmVnaXN0ZXJzLmNwcCAvdXNyL3NyYy91c3IuYmlu L2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vdXRpbHMvVGFibGVHZW4vQ29kZUdl blRhcmdldC5jcHAgL3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4vY29udHJp Yi9sbHZtL3V0aWxzL1RhYmxlR2VuL0RBR0lTZWxFbWl0dGVyLmNwcCAvdXNyL3NyYy91c3IuYmlu L2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vdXRpbHMvVGFibGVHZW4vREFHSVNl bE1hdGNoZXIuY3BwIC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRy aWIvbGx2bS91dGlscy9UYWJsZUdlbi9EQUdJU2VsTWF0Y2hlckVtaXR0ZXIuY3BwIC91c3Ivc3Jj L3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS91dGlscy9UYWJsZUdl bi9EQUdJU2VsTWF0Y2hlckdlbi5jcHAgL3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4v Li4vLi4vY29udHJpYi9sbHZtL3V0aWxzL1RhYmxlR2VuL0RBR0lTZWxNYXRjaGVyT3B0LmNwcCAv dXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vdXRpbHMv VGFibGVHZW4vREZBUGFja2V0aXplckVtaXR0ZXIuY3BwIC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcv dGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS91dGlscy9UYWJsZUdlbi9EaXNhc3NlbWJsZXJF bWl0dGVyLmNwcCAvdXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmli L2xsdm0vdXRpbHMvVGFibGVHZW4vRURFbWl0dGVyLmNwcCAvdXNyL3NyYy91c3IuYmluL2NsYW5n L3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vdXRpbHMvVGFibGVHZW4vRmFzdElTZWxFbWl0 dGVyLmNwcCAvdXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xs dm0vdXRpbHMvVGFibGVHZW4vRml4ZWRMZW5EZWNvZGVyRW1pdHRlci5jcHAgL3Vzci9zcmMvdXNy LmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4vY29udHJpYi9sbHZtL3V0aWxzL1RhYmxlR2VuL0lu c3RySW5mb0VtaXR0ZXIuY3BwIC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4u L2NvbnRyaWIvbGx2bS91dGlscy9UYWJsZUdlbi9JbnRyaW5zaWNFbWl0dGVyLmNwcCAvdXNyL3Ny Yy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vdXRpbHMvVGFibGVH ZW4vUHNldWRvTG93ZXJpbmdFbWl0dGVyLmNwcCAvdXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdl bi8uLi8uLi8uLi9jb250cmliL2xsdm0vdXRpbHMvVGFibGVHZW4vUmVnaXN0ZXJJbmZvRW1pdHRl ci5jcHAgL3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4vY29udHJpYi9sbHZt L3V0aWxzL1RhYmxlR2VuL1NldFRoZW9yeS5jcHAgL3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90Ymxn ZW4vLi4vLi4vLi4vY29udHJpYi9sbHZtL3V0aWxzL1RhYmxlR2VuL1N0cmluZ01hdGNoZXIuY3Bw IC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS91dGls cy9UYWJsZUdlbi9TdWJ0YXJnZXRFbWl0dGVyLmNwcCAvdXNyL3NyYy91c3IuYmluL2NsYW5nL3Ri bGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vdXRpbHMvVGFibGVHZW4vVEdWYWx1ZVR5cGVzLmNw cCAvdXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vdXRp bHMvVGFibGVHZW4vVGFibGVHZW4uY3BwIC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4u Ly4uLy4uL2NvbnRyaWIvbGx2bS91dGlscy9UYWJsZUdlbi9YODZEaXNhc3NlbWJsZXJUYWJsZXMu Y3BwIC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS91 dGlscy9UYWJsZUdlbi9YODZNb2RSTUZpbHRlcnMuY3BwIC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcv dGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS91dGlscy9UYWJsZUdlbi9YODZSZWNvZ25pemFi bGVJbnN0ci5jcHANCmVjaG8gdGJsZ2VuOiAvdXNyL2xpYi9saWJjLmEgIC91c3Ivb2JqL3Vzci9z cmMvdG1wL3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4vbGliL2NsYW5nL2xp Ymxsdm10YWJsZWdlbi9saWJsbHZtdGFibGVnZW4uYSAvdXNyL29iai91c3Ivc3JjL3RtcC91c3Iv c3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2xpYi9jbGFuZy9saWJsbHZtc3VwcG9y dC9saWJsbHZtc3VwcG9ydC5hIC91c3Ivb2JqL3Vzci9zcmMvdG1wL2xlZ2FjeS91c3IvbGliL2xp YmVnYWN5LmEgPj4gLmRlcGVuZA0KZWNobyB0YmxnZW46IC91c3IvbGliL2xpYnN0ZGMrKy5hID4+ IC5kZXBlbmQNCmMrKyAtTzIgLXBpcGUgLUkvdXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8u Li8uLi8uLi9jb250cmliL2xsdm0vaW5jbHVkZSAtSS91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJs Z2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS90b29scy9jbGFuZy9pbmNsdWRlIC1JL3Vzci9zcmMv dXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4vY29udHJpYi9sbHZtL3V0aWxzL1RhYmxlR2Vu IC1JLiAtSS91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2 bS8uLi8uLi9saWIvY2xhbmcvaW5jbHVkZSAtRExMVk1fT05fVU5JWCAtRExMVk1fT05fRlJFRUJT RCAtRF9fU1REQ19MSU1JVF9NQUNST1MgLURfX1NURENfQ09OU1RBTlRfTUFDUk9TIC1mbm8tc3Ry aWN0LWFsaWFzaW5nIC1ETExWTV9ERUZBVUxUX1RBUkdFVF9UUklQTEU9XCJ4ODZfNjQtdW5rbm93 bi1mcmVlYnNkMTAuMFwiIC1JL3Vzci9vYmovdXNyL3NyYy90bXAvbGVnYWN5L3Vzci9pbmNsdWRl IC1jIC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS91 dGlscy9UYWJsZUdlbi9Bc21NYXRjaGVyRW1pdHRlci5jcHANCmMrKyAtTzIgLXBpcGUgLUkvdXNy L3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vaW5jbHVkZSAt SS91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS90b29s cy9jbGFuZy9pbmNsdWRlIC1JL3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4v Y29udHJpYi9sbHZtL3V0aWxzL1RhYmxlR2VuIC1JLiAtSS91c3Ivc3JjL3Vzci5iaW4vY2xhbmcv dGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS8uLi8uLi9saWIvY2xhbmcvaW5jbHVkZSAtRExM Vk1fT05fVU5JWCAtRExMVk1fT05fRlJFRUJTRCAtRF9fU1REQ19MSU1JVF9NQUNST1MgLURfX1NU RENfQ09OU1RBTlRfTUFDUk9TIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1ETExWTV9ERUZBVUxUX1RB UkdFVF9UUklQTEU9XCJ4ODZfNjQtdW5rbm93bi1mcmVlYnNkMTAuMFwiIC1JL3Vzci9vYmovdXNy L3NyYy90bXAvbGVnYWN5L3Vzci9pbmNsdWRlIC1jIC91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJs Z2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS91dGlscy9UYWJsZUdlbi9Bc21Xcml0ZXJFbWl0dGVy LmNwcA0KYysrIC1PMiAtcGlwZSAtSS91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4u Ly4uL2NvbnRyaWIvbGx2bS9pbmNsdWRlIC1JL3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90YmxnZW4v Li4vLi4vLi4vY29udHJpYi9sbHZtL3Rvb2xzL2NsYW5nL2luY2x1ZGUgLUkvdXNyL3NyYy91c3Iu YmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vdXRpbHMvVGFibGVHZW4gLUku IC1JL3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4vY29udHJpYi9sbHZtLy4u Ly4uL2xpYi9jbGFuZy9pbmNsdWRlIC1ETExWTV9PTl9VTklYIC1ETExWTV9PTl9GUkVFQlNEIC1E X19TVERDX0xJTUlUX01BQ1JPUyAtRF9fU1REQ19DT05TVEFOVF9NQUNST1MgLWZuby1zdHJpY3Qt YWxpYXNpbmcgLURMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRT1cIng4Nl82NC11bmtub3duLWZy ZWVic2QxMC4wXCIgLUkvdXNyL29iai91c3Ivc3JjL3RtcC9sZWdhY3kvdXNyL2luY2x1ZGUgLWMg L3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4vY29udHJpYi9sbHZtL3V0aWxz L1RhYmxlR2VuL0FzbVdyaXRlckluc3QuY3BwDQpjKysgLU8yIC1waXBlIC1JL3Vzci9zcmMvdXNy LmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4vY29udHJpYi9sbHZtL2luY2x1ZGUgLUkvdXNyL3Ny Yy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vdG9vbHMvY2xhbmcv aW5jbHVkZSAtSS91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIv bGx2bS91dGlscy9UYWJsZUdlbiAtSS4gLUkvdXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8u Li8uLi8uLi9jb250cmliL2xsdm0vLi4vLi4vbGliL2NsYW5nL2luY2x1ZGUgLURMTFZNX09OX1VO SVggLURMTFZNX09OX0ZSRUVCU0QgLURfX1NURENfTElNSVRfTUFDUk9TIC1EX19TVERDX0NPTlNU QU5UX01BQ1JPUyAtZm5vLXN0cmljdC1hbGlhc2luZyAtRExMVk1fREVGQVVMVF9UQVJHRVRfVFJJ UExFPVwieDg2XzY0LXVua25vd24tZnJlZWJzZDEwLjBcIiAtSS91c3Ivb2JqL3Vzci9zcmMvdG1w L2xlZ2FjeS91c3IvaW5jbHVkZSAtYyAvdXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8u Li8uLi9jb250cmliL2xsdm0vdXRpbHMvVGFibGVHZW4vQ2FsbGluZ0NvbnZFbWl0dGVyLmNwcA0K YysrIC1PMiAtcGlwZSAtSS91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2Nv bnRyaWIvbGx2bS9pbmNsdWRlIC1JL3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4v Li4vY29udHJpYi9sbHZtL3Rvb2xzL2NsYW5nL2luY2x1ZGUgLUkvdXNyL3NyYy91c3IuYmluL2Ns YW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vdXRpbHMvVGFibGVHZW4gLUkuIC1JL3Vz ci9zcmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4vY29udHJpYi9sbHZtLy4uLy4uL2xp Yi9jbGFuZy9pbmNsdWRlIC1ETExWTV9PTl9VTklYIC1ETExWTV9PTl9GUkVFQlNEIC1EX19TVERD X0xJTUlUX01BQ1JPUyAtRF9fU1REQ19DT05TVEFOVF9NQUNST1MgLWZuby1zdHJpY3QtYWxpYXNp bmcgLURMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRT1cIng4Nl82NC11bmtub3duLWZyZWVic2Qx MC4wXCIgLUkvdXNyL29iai91c3Ivc3JjL3RtcC9sZWdhY3kvdXNyL2luY2x1ZGUgLWMgL3Vzci9z cmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4vY29udHJpYi9sbHZtL3V0aWxzL1RhYmxl R2VuL0NvZGVFbWl0dGVyR2VuLmNwcA0KYysrIC1PMiAtcGlwZSAtSS91c3Ivc3JjL3Vzci5iaW4v Y2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS9pbmNsdWRlIC1JL3Vzci9zcmMvdXNy LmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4vY29udHJpYi9sbHZtL3Rvb2xzL2NsYW5nL2luY2x1 ZGUgLUkvdXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0v dXRpbHMvVGFibGVHZW4gLUkuIC1JL3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4v Li4vY29udHJpYi9sbHZtLy4uLy4uL2xpYi9jbGFuZy9pbmNsdWRlIC1ETExWTV9PTl9VTklYIC1E TExWTV9PTl9GUkVFQlNEIC1EX19TVERDX0xJTUlUX01BQ1JPUyAtRF9fU1REQ19DT05TVEFOVF9N QUNST1MgLWZuby1zdHJpY3QtYWxpYXNpbmcgLURMTFZNX0RFRkFVTFRfVEFSR0VUX1RSSVBMRT1c Ing4Nl82NC11bmtub3duLWZyZWVic2QxMC4wXCIgLUkvdXNyL29iai91c3Ivc3JjL3RtcC9sZWdh Y3kvdXNyL2luY2x1ZGUgLWMgL3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90YmxnZW4vLi4vLi4vLi4v Y29udHJpYi9sbHZtL3V0aWxzL1RhYmxlR2VuL0NvZGVHZW5EQUdQYXR0ZXJucy5jcHANCmMrKyAt TzIgLXBpcGUgLUkvdXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmli L2xsdm0vaW5jbHVkZSAtSS91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2Nv bnRyaWIvbGx2bS90b29scy9jbGFuZy9pbmNsdWRlIC1JL3Vzci9zcmMvdXNyLmJpbi9jbGFuZy90 YmxnZW4vLi4vLi4vLi4vY29udHJpYi9sbHZtL3V0aWxzL1RhYmxlR2VuIC1JLiAtSS91c3Ivc3Jj L3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS8uLi8uLi9saWIvY2xh bmcvaW5jbHVkZSAtRExMVk1fT05fVU5JWCAtRExMVk1fT05fRlJFRUJTRCAtRF9fU1REQ19MSU1J VF9NQUNST1MgLURfX1NURENfQ09OU1RBTlRfTUFDUk9TIC1mbm8tc3RyaWN0LWFsaWFzaW5nIC1E TExWTV9ERUZBVUxUX1RBUkdFVF9UUklQTEU9XCJ4ODZfNjQtdW5rbm93bi1mcmVlYnNkMTAuMFwi IC1JL3Vzci9vYmovdXNyL3NyYy90bXAvbGVnYWN5L3Vzci9pbmNsdWRlIC1jIC91c3Ivc3JjL3Vz ci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS91dGlscy9UYWJsZUdlbi9D b2RlR2VuSW5zdHJ1Y3Rpb24uY3BwDQpjKysgLU8yIC1waXBlIC1JL3Vzci9zcmMvdXNyLmJpbi9j bGFuZy90YmxnZW4vLi4vLi4vLi4vY29udHJpYi9sbHZtL2luY2x1ZGUgLUkvdXNyL3NyYy91c3Iu YmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9jb250cmliL2xsdm0vdG9vbHMvY2xhbmcvaW5jbHVk ZSAtSS91c3Ivc3JjL3Vzci5iaW4vY2xhbmcvdGJsZ2VuLy4uLy4uLy4uL2NvbnRyaWIvbGx2bS91 dGlscy9UYWJsZUdlbiAtSS4gLUkvdXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8uLi8u Li9jb250cmliL2xsdm0vLi4vLi4vbGliL2NsYW5nL2luY2x1ZGUgLURMTFZNX09OX1VOSVggLURM TFZNX09OX0ZSRUVCU0QgLURfX1NURENfTElNSVRfTUFDUk9TIC1EX19TVERDX0NPTlNUQU5UX01B Q1JPUyAtZm5vLXN0cmljdC1hbGlhc2luZyAtRExMVk1fREVGQVVMVF9UQVJHRVRfVFJJUExFPVwi eDg2XzY0LXVua25vd24tZnJlZWJzZDEwLjBcIiAtSS91c3Ivb2JqL3Vzci9zcmMvdG1wL2xlZ2Fj eS91c3IvaW5jbHVkZSAtYyAvdXNyL3NyYy91c3IuYmluL2NsYW5nL3RibGdlbi8uLi8uLi8uLi9j b250cmliL2xsdm0vdXRpbHMvVGFibGVHZW4vQ29kZUdlblJlZ2lzdGVycy5jcHANCntzdGFuZGFy ZCBpbnB1dH06IEFzc2VtYmxlciBtZXNzYWdlczoNCntzdGFuZGFyZCBpbnB1dH06NDQyNjU6IFdh cm5pbmc6IGVuZCBvZiBmaWxlIG5vdCBhdCBlbmQgb2YgYSBsaW5lOyBuZXdsaW5lIGluc2VydGVk DQp7c3RhbmRhcmQgaW5wdXR9OjQ0MzczOiBFcnJvcjogbm8gc3VjaCBpbnN0cnVjdGlvbjogYG1v Jw0KYysrOiBJbnRlcm5hbCBlcnJvcjogS2lsbGVkOiA5IChwcm9ncmFtIGNjMXBsdXMpDQpQbGVh c2Ugc3VibWl0IGEgZnVsbCBidWcgcmVwb3J0Lg0KU2VlIDxVUkw6aHR0cDovL2djYy5nbnUub3Jn L2J1Z3MuaHRtbD4gZm9yIGluc3RydWN0aW9ucy4NCioqKiBFcnJvciBjb2RlIDENCjEgZXJyb3IN CioqKiBFcnJvciBjb2RlIDINCjEgZXJyb3INCioqKiBFcnJvciBjb2RlIDINCjEgZXJyb3INCioq KiBFcnJvciBjb2RlIDINCjEgZXJyb3INCg0KDQogDQoNCg0KDQpyb290QDlkdS5vcmc= From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 16:35:05 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E0407106566B; Tue, 24 Apr 2012 16:35:05 +0000 (UTC) (envelope-from fabien.thomas@netasq.com) Received: from work.netasq.com (gwlille.netasq.com [91.212.116.1]) by mx1.freebsd.org (Postfix) with ESMTP id 7D1F28FC15; Tue, 24 Apr 2012 16:35:05 +0000 (UTC) Received: from [10.2.1.1] (unknown [10.2.1.1]) by work.netasq.com (Postfix) with ESMTPSA id 4392C27040AD; Tue, 24 Apr 2012 18:35:41 +0200 (CEST) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: multipart/signed; boundary="Apple-Mail=_F190818E-0258-42A4-9701-074232C7B372"; protocol="application/pkcs7-signature"; micalg=sha1 From: Fabien Thomas In-Reply-To: Date: Tue, 24 Apr 2012 18:35:03 +0200 Message-Id: <5C2FC09E-1873-4A97-8980-07B336D3DC44@netasq.com> References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <20120424163423.GA59530@onelab2.iet.unipi.it> To: "K. Macy" X-Mailer: Apple Mail (2.1257) X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: "Li, Qing" , Luigi Rizzo , "current@freebsd.org" , "net@freebsd.org" Subject: Re: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 16:35:06 -0000 --Apple-Mail=_F190818E-0258-42A4-9701-074232C7B372 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=iso-8859-1 >> > > I have a patch that has been sitting around for a long time due to > review cycle latency that caches a pointer to the rtentry (and > llentry) in the the inpcb. Before each use the rtentry is checked > against a generation number in the routing tree that is incremented on > every routing table update. Hi Kip, Is there a public location for the patch ? What can be done to speedup the commit: testing ? Fabien --Apple-Mail=_F190818E-0258-42A4-9701-074232C7B372-- From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 17:40:14 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B7F1B106566C; Tue, 24 Apr 2012 17:40:14 +0000 (UTC) (envelope-from qing.li@bluecoat.com) Received: from plsvl-mailgw-02.bluecoat.com (plsvl-mailgw-02.bluecoat.com [199.91.133.12]) by mx1.freebsd.org (Postfix) with ESMTP id 95C578FC08; Tue, 24 Apr 2012 17:40:14 +0000 (UTC) Received: from PWSVL-EXCHTS-02.internal.cacheflow.com (unknown [10.2.2.126]) by plsvl-mailgw-02.bluecoat.com (Postfix) with ESMTP id E2285200D3; Tue, 24 Apr 2012 10:41:33 -0700 (PDT) Received: from pwsvl-excmbx-05.internal.cacheflow.com ([fe80::f848:d461:9aa9:59a8]) by PWSVL-EXCHTS-02.internal.cacheflow.com ([fe80::4910:317f:407:6ecc%14]) with mapi id 14.01.0289.001; Tue, 24 Apr 2012 10:40:14 -0700 From: "Li, Qing" To: Luigi Rizzo Thread-Topic: Some performance measurements on the FreeBSD network stack Thread-Index: AQHNIhyqmxIlJMdUe0+llxsSqqHVrpaqduMA//+MHgSAAJ5UgP//mxvg Date: Tue, 24 Apr 2012 17:40:13 +0000 Message-ID: References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <20120424163423.GA59530@onelab2.iet.unipi.it> In-Reply-To: <20120424163423.GA59530@onelab2.iet.unipi.it> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.2.2.106] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "current@freebsd.org" , "net@freebsd.org" Subject: RE: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 17:40:14 -0000 Yup, all good points. In fact we have considered all of these while doing the work. In case you haven't seen it already, we did write about these=20 issues in our paper and how we tried to address those, flow-table was one of the solutions. http://dl.acm.org/citation.cfm?id=3D1592641 --Qing > > > > Well, the routing table no longer maintains any lle info, so there > > isn't much to copy out the rtentry at the completion of route > > lookup. > > > > If I understood you correctly, you do believe there is a lot of value > > in Flowtable caching concept, but you are not suggesting we reverting > > back to having the routing table maintain L2 entries, are you ? >=20 > I see a lot of value in caching in general. >=20 > Especially for a bound socket it seems pointless to lookup the > route, iface and mac address(es) on every single packet instead of > caching them. And, routes and MAC addresses are volatile anyways > so making sure that we do the lookup 1us closer to the actual use > gives no additional guarantee. >=20 > The frequency with which these info (routes and MAC addresses) > change clearly influences the mechanism to validate the cache. > I suppose we have the following options: >=20 > - direct notification: a failure in a direct chain of calls > can be used to invalidate the info cached in the socket. > Similarly, some incoming traffic (e.g. TCP RST, FIN, > ICMP messages) that reach a socket can invalidate the cached values > - assume a minimum lifetime for the info (i think this is what > happens in the flowtable) and flush it unconditionally > every such interval (say 10ms). > - if some info changes infrequently (e.g. MAC addresses) one could > put a version number in the cached value and use it to validate > the cache. >=20 > cheers > luigi From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 17:42:48 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D3E9F1065673; Tue, 24 Apr 2012 17:42:48 +0000 (UTC) (envelope-from qing.li@bluecoat.com) Received: from plsvl-mailgw-02.bluecoat.com (plsvl-mailgw-02.bluecoat.com [199.91.133.12]) by mx1.freebsd.org (Postfix) with ESMTP id AE1CA8FC08; Tue, 24 Apr 2012 17:42:48 +0000 (UTC) Received: from PWSVL-EXCHTS-02.internal.cacheflow.com (unknown [10.2.2.126]) by plsvl-mailgw-02.bluecoat.com (Postfix) with ESMTP id 3F5AA200C8; Tue, 24 Apr 2012 10:44:08 -0700 (PDT) Received: from pwsvl-excmbx-05.internal.cacheflow.com ([fe80::f848:d461:9aa9:59a8]) by PWSVL-EXCHTS-02.internal.cacheflow.com ([fe80::4910:317f:407:6ecc%14]) with mapi id 14.01.0289.001; Tue, 24 Apr 2012 10:42:48 -0700 From: "Li, Qing" To: Fabien Thomas , "K. Macy" Thread-Topic: Some performance measurements on the FreeBSD network stack Thread-Index: AQHNIhyqmxIlJMdUe0+llxsSqqHVrpaqduMA//+MHgSAAJ5UgP//+4+AgAAEoYD//51DEA== Date: Tue, 24 Apr 2012 17:42:47 +0000 Message-ID: References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <20120424163423.GA59530@onelab2.iet.unipi.it> <5C2FC09E-1873-4A97-8980-07B336D3DC44@netasq.com> In-Reply-To: <5C2FC09E-1873-4A97-8980-07B336D3DC44@netasq.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.2.2.106] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: Luigi Rizzo , "current@freebsd.org" , "net@freebsd.org" Subject: RE: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 17:42:49 -0000 > > > > I have a patch that has been sitting around for a long time due to > > review cycle latency that caches a pointer to the rtentry (and > > llentry) in the the inpcb. Before each use the rtentry is checked > > against a generation number in the routing tree that is incremented > on > > every routing table update. >=20 > Hi Kip, >=20 > Is there a public location for the patch ? > What can be done to speedup the commit: testing ? >=20 > Fabien I performed extensive review of this patch from Kip, and it was ready to go. Really good work.=20 Not sure what is stopping its commit into the tree. --Qing From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 17:57:41 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5DAE91065670 for ; Tue, 24 Apr 2012 17:57:41 +0000 (UTC) (envelope-from obrien@NUXI.org) Received: from dragon.nuxi.org (trang.nuxi.org [74.95.12.85]) by mx1.freebsd.org (Postfix) with ESMTP id 35F9D8FC15 for ; Tue, 24 Apr 2012 17:57:41 +0000 (UTC) Received: from dragon.nuxi.org (obrien@localhost [127.0.0.1]) by dragon.nuxi.org (8.14.5/8.14.5) with ESMTP id q3OHvZoL044102; Tue, 24 Apr 2012 10:57:35 -0700 (PDT) (envelope-from obrien@dragon.nuxi.org) Received: (from obrien@localhost) by dragon.nuxi.org (8.14.5/8.14.5/Submit) id q3OHvZdA044101; Tue, 24 Apr 2012 10:57:35 -0700 (PDT) (envelope-from obrien) Date: Tue, 24 Apr 2012 10:57:35 -0700 From: "David O'Brien" To: Garrett Cooper Message-ID: <20120424175735.GC80419@dragon.NUXI.org> Mail-Followup-To: obrien@freebsd.org, Garrett Cooper , Current FreeBSD , Jan Sieka References: <4F915384.6070308@semihalf.com> <4F919C50.70809@FreeBSD.org> <9B9312D3-489E-4EF1-85CB-0353024F6B94@gmail.com> <4F9428ED.6060902@FreeBSD.org> <3862F1CA-C1C8-49E6-B768-114A0A212496@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3862F1CA-C1C8-49E6-B768-114A0A212496@gmail.com> X-Operating-System: FreeBSD 10.0-CURRENT X-to-the-FBI-CIA-and-NSA: HI! HOW YA DOIN? Precedence: bulk User-Agent: Mutt/1.5.20 (2009-06-14) Cc: Current FreeBSD , Jan Sieka Subject: Re: buildworld fails on FreeBSD 7.x for HEAD from 19.04.2012 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Reply-To: obrien@freebsd.org List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 17:57:41 -0000 On Sun, Apr 22, 2012 at 09:06:18AM -0700, Garrett Cooper wrote: > >>> On 4/20/2012 5:16 AM, Jan Sieka wrote: > >>>> I can't build world from recent sources (HEAD as of 2012.04.19 11:06:48 > >>>> UTC) on a machine running FreeBSD 7.3. ... > Ugh. The usecase (that's now broken) is that Jan from Semihalf might > have been running CURRENT builds on an older (stable) build machine. Lets not guess. If you've found that any version of 10-CURRENT cannot build HEAD post r234449 please let me know. I've verified that I can build HEAD on 8.3-PRERELEASE (r231882). -- -- David (obrien@FreeBSD.org) From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 18:35:05 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B877B106566B; Tue, 24 Apr 2012 18:35:05 +0000 (UTC) (envelope-from atz@ukr.net) Received: from ffe4.ukr.net (ffe4.ukr.net [195.214.192.17]) by mx1.freebsd.org (Postfix) with ESMTP id 2DC5D8FC08; Tue, 24 Apr 2012 18:35:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ukr.net; s=ffe; h=Date:Message-Id:From:To:References:In-Reply-To:Subject:Cc:Content-Type:Content-Transfer-Encoding:MIME-Version; bh=KFLliUEUAhHf8ZX5Dp55zOMDad3Xw12P7yWjqFj8Zvk=; b=xI+7Ld4s+25IPtJ2LlaQRb5cNJTYhC7QGslnDSJU+bwtbYz5KAL7AmngloNvtMfoIlCf3K8EsYUx6GcuIGkB+UngFO/GW/pv+9mgj7+kfZU75SvyQhLsJQ/z1Av9/MEocsX/2Z4ohoga8rG8q82QxpSnThUXIZiL6X6GgjpWps0=; Received: from mail by ffe4.ukr.net with local ID 1SMkZm-0004w3-8Y ; Tue, 24 Apr 2012 21:34:58 +0300 MIME-Version: 1.0 In-Reply-To: <20120424175735.GC80419@dragon.NUXI.org> References: <4F9428ED.6060902@FreeBSD.org> <9B9312D3-489E-4EF1-85CB-0353024F6B94@gmail.com> <3862F1CA-C1C8-49E6-B768-114A0A212496@gmail.com> <4F915384.6070308@semihalf.com> <4F919C50.70809@FreeBSD.org> <20120424175735.GC80419@dragon.NUXI.org> To: "David O'Brien" From: "Vladimir Sharun" X-Mailer: freemail.ukr.net 4.0 X-Originating-Ip: [81.95.178.143] Message-Id: <18628.1335292498.18396666118269960192@front-ffe4.ukr.net> X-Browser: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:14.0) Gecko/20120424 Firefox/14.0a1 Date: Tue, 24 Apr 2012 21:34:58 +0300 Content-Type: text/plain; charset="windows-1251" Content-Transfer-Encoding: 8bit Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Current FreeBSD Subject: Re: buildworld fails on FreeBSD 7.x for HEAD from 19.04.2012 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 18:35:05 -0000 ===> usr.bin/file (all) /usr/bin/clang -O2 -pipe -DMAGIC='"/usr/share/misc/magic"' -DHAVE_CONFIG_H -I/usr/src/usr.bin/file/../../lib/libmagic -std=gnu99 -Qunused-arguments -fstack-protector -Wsystem-headers -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -Wold-style-definition -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -o file file.o -lmagic -lz file.o: In function `main': /usr/src/usr.bin/file/../../contrib/file/file.c:(.text+0x717): undefined reference to `magic_getpath' /usr/src/usr.bin/file/../../contrib/file/file.c:(.text+0x7df): undefined reference to `magic_list' clang: error: linker command failed with exit code 1 (use -v to see invocation) *** [file] Error code 1 r234657 clang -v: FreeBSD clang version 3.1 (trunk 154661) 20120413 Target: x86_64-unknown-freebsd10.0 Thread model: posix FreeBSD 10.0-CURRENT #6: Thu Apr 12 08:56:05 EEST 2012 amd64 make buildworld without j's On Sun, Apr 22, 2012 at 09:06:18AM -0700, Garrett Cooper wrote: > >>> On 4/20/2012 5:16 AM, Jan Sieka wrote: > >>>> I can't build world from recent sources (HEAD as of 2012.04.19 11:06:48 > >>>> UTC) on a machine running FreeBSD 7.3. ... > Ugh. The usecase (that's now broken) is that Jan from Semihalf might > have been running CURRENT builds on an older (stable) build machine. Lets not guess. If you've found that any version of 10-CURRENT cannot build HEAD post r234449 please let me know. I've verified that I can build HEAD on 8.3-PRERELEASE (r231882). -- -- David (obrien@FreeBSD.org) _______________________________________________freebsd-current@freebsd.org mailing listhttp://lists.freebsd.org/mailman/listinfo/freebsd-currentTo unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 19:13:52 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 34ABC1065676; Tue, 24 Apr 2012 19:13:52 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) by mx1.freebsd.org (Postfix) with ESMTP id E190F8FC0A; Tue, 24 Apr 2012 19:13:51 +0000 (UTC) Received: from slw by zxy.spb.ru with local (Exim 4.69 (FreeBSD)) (envelope-from ) id 1SMlBn-0008db-UK; Tue, 24 Apr 2012 23:14:15 +0400 Date: Tue, 24 Apr 2012 23:14:15 +0400 From: Slawa Olhovchenkov To: freebsd-current@freebsd.org, freebsd-performance@freebsd.org Message-ID: <20120424191415.GE76983@zxy.spb.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false Cc: Subject: pmap and mtx scalability problem X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 19:13:52 -0000 I treid make -j 30 build{world,kernel} (latest -CURRENT) on 24-core machine and see poor scalability of pmap/mtx -- more then 50% cpu spend on system time. pmcstat: @ CPU_CLK_UNHALTED_CORE [194841 samples] 42.65% [83102] _mtx_lock_sleep @ /boot/kernel/kernel 40.97% [34051] pmap_enter 100.0% [34051] vm_fault_hold 100.0% [34051] trap_pfault 30.40% [25262] vm_page_activate 100.0% [25262] vm_fault_hold 100.0% [25262] trap_pfault 18.41% [15300] vm_pageq_remove 73.63% [11266] vm_page_free_toq 70.69% [7964] vm_object_terminate 29.31% [3302] vm_object_page_remove 26.37% [4034] vm_fault_hold 100.0% [4034] trap_pfault make -j 8: 15.44% [10740] _mtx_lock_sleep @ /boot/kernel/kernel 38.77% [4164] pmap_enter 99.93% [4161] vm_fault_hold 100.0% [4161] trap_pfault 00.07% [3] kmem_back 100.0% [3] kmem_malloc 27.98% [3005] vm_page_activate 100.0% [3005] vm_fault_hold 100.0% [3005] trap_pfault 20.64% [2217] vm_pageq_remove 64.73% [1435] vm_page_free_toq 63.41% [910] vm_object_terminate make -j 4 06.86% [4222] pagezero @ /boot/kernel/kernel 98.39% [4154] trap_pfault 100.0% [4154] trap 01.11% [47] vm_fault_hold From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 19:27:31 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D59401065677; Tue, 24 Apr 2012 19:27:31 +0000 (UTC) (envelope-from kmacybsd@gmail.com) Received: from mail-yw0-f54.google.com (mail-yw0-f54.google.com [209.85.213.54]) by mx1.freebsd.org (Postfix) with ESMTP id 790A08FC18; Tue, 24 Apr 2012 19:27:31 +0000 (UTC) Received: by yhgm50 with SMTP id m50so837833yhg.13 for ; Tue, 24 Apr 2012 12:27:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=j7pYn4TZNu8sAus7s0FzDna2/UGLIbYsiYyPeuYQkDY=; b=nB+qET8SyJ7aZfD3qWF8JdMPTaSBWx7Z04MWqaJk2JJCdY34tX5Z9H7eWOvSz0Blxj HCjCTIOXFi/qV+Leu+24aYZF6XN9nlB7Ry7U+acdmYxKsad0HobiUuh5g5YZPca7TXcY u00g47EQ0sv5PIDRmH3FY0cIzGp8ywTi2Bn81jxdAW4toP0lwW0aB2b8cSxJnYZ9pWLz HLJ0sSx5bYF8LE8eOVoDP+Om8PUab8FPDer3YYaUAMP32rQBwDjsCUlOZ3mg/2Wm3hmY 50PLhAVAYgkA01zYnQA7lolUAkJOfNtfzSOrTKtWEr6SemiM/+rRzrUbp8brYz5dXubK 8iIQ== MIME-Version: 1.0 Received: by 10.50.168.67 with SMTP id zu3mr2989983igb.28.1335295650508; Tue, 24 Apr 2012 12:27:30 -0700 (PDT) Sender: kmacybsd@gmail.com Received: by 10.50.129.39 with HTTP; Tue, 24 Apr 2012 12:27:30 -0700 (PDT) In-Reply-To: <20120424191415.GE76983@zxy.spb.ru> References: <20120424191415.GE76983@zxy.spb.ru> Date: Tue, 24 Apr 2012 21:27:30 +0200 X-Google-Sender-Auth: Mvt-9psx88jaB_iz56_7J8splg0 Message-ID: From: "K. Macy" To: Slawa Olhovchenkov Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Cc: freebsd-performance@freebsd.org, freebsd-current@freebsd.org Subject: Re: pmap and mtx scalability problem X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 19:27:31 -0000 Known problem. There is an open disagreement about how to improve the granularity of locking in pmap. -Kip On Tue, Apr 24, 2012 at 9:14 PM, Slawa Olhovchenkov wrote: > I treid make -j 30 build{world,kernel} (latest -CURRENT) on 24-core machi= ne and see poor > scalability of pmap/mtx -- more then 50% cpu spend on system time. > > pmcstat: > > @ CPU_CLK_UNHALTED_CORE [194841 samples] > > 42.65% =A0[83102] =A0 =A0_mtx_lock_sleep @ /boot/kernel/kernel > =A040.97% =A0[34051] =A0 =A0 pmap_enter > =A0100.0% =A0[34051] =A0 =A0 =A0vm_fault_hold > =A0 100.0% =A0[34051] =A0 =A0 =A0 trap_pfault > =A030.40% =A0[25262] =A0 =A0 vm_page_activate > =A0100.0% =A0[25262] =A0 =A0 =A0vm_fault_hold > =A0 100.0% =A0[25262] =A0 =A0 =A0 trap_pfault > =A018.41% =A0[15300] =A0 =A0 vm_pageq_remove > =A073.63% =A0[11266] =A0 =A0 =A0vm_page_free_toq > =A0 70.69% =A0[7964] =A0 =A0 =A0 =A0vm_object_terminate > =A0 29.31% =A0[3302] =A0 =A0 =A0 =A0vm_object_page_remove > =A026.37% =A0[4034] =A0 =A0 =A0 vm_fault_hold > =A0 100.0% =A0[4034] =A0 =A0 =A0 =A0trap_pfault > > make -j 8: > > 15.44% =A0[10740] =A0 =A0_mtx_lock_sleep @ /boot/kernel/kernel > =A038.77% =A0[4164] =A0 =A0 =A0pmap_enter > =A099.93% =A0[4161] =A0 =A0 =A0 vm_fault_hold > =A0 100.0% =A0[4161] =A0 =A0 =A0 =A0trap_pfault > =A000.07% =A0[3] =A0 =A0 =A0 =A0 =A0kmem_back > =A0 100.0% =A0[3] =A0 =A0 =A0 =A0 =A0 kmem_malloc > =A027.98% =A0[3005] =A0 =A0 =A0vm_page_activate > =A0100.0% =A0[3005] =A0 =A0 =A0 vm_fault_hold > =A0 100.0% =A0[3005] =A0 =A0 =A0 =A0trap_pfault > =A020.64% =A0[2217] =A0 =A0 =A0vm_pageq_remove > =A064.73% =A0[1435] =A0 =A0 =A0 vm_page_free_toq > =A0 63.41% =A0[910] =A0 =A0 =A0 =A0 vm_object_terminate > > make -j 4 > > 06.86% =A0[4222] =A0 =A0 pagezero @ /boot/kernel/kernel > =A098.39% =A0[4154] =A0 =A0 =A0trap_pfault > =A0100.0% =A0[4154] =A0 =A0 =A0 trap > =A001.11% =A0[47] =A0 =A0 =A0 =A0vm_fault_hold > > _______________________________________________ > freebsd-performance@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-performance > To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd= .org" --=20 =A0 =A0=93The real damage is done by those millions who want to 'get by.' The ordinary men who just want to be left in peace. Those who don=92t want their little lives disturbed by anything bigger than themselves. Those with no sides and no causes. Those who won=92t take measure of their own strength, for fear of antagonizing their own weakness. Those who don=92t like to make waves=97or enemies. =A0 =A0Those for whom freedom, honour, truth, and principles are only literature. Those who live small, love small, die small. It=92s the reductionist approach to life: if you keep it small, you=92ll keep it under control. If you don=92t make any noise, the bogeyman won=92t find you. =A0 =A0But it=92s all an illusion, because they die too, those people who roll up their spirits into tiny little balls so as to be safe. Safe?! >From what? Life is always on the edge of death; narrow streets lead to the same place as wide avenues, and a little candle burns itself out just like a flaming torch does. =A0 =A0I choose my own way to burn.=94 =A0 =A0Sophie Scholl From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 19:49:32 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 113A5106566B for ; Tue, 24 Apr 2012 19:49:32 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from mail.made4.biz (unknown [IPv6:2001:41d0:1:7018::1:3]) by mx1.freebsd.org (Postfix) with ESMTP id 907DA8FC0A for ; Tue, 24 Apr 2012 19:49:31 +0000 (UTC) Received: from [2a01:e35:8b50:830:290:f5ff:fe9d:b78c] (helo=magellan.dumbbell.fr) by mail.made4.biz with esmtpsa (TLSv1:DHE-RSA-CAMELLIA256-SHA:256) (Exim 4.77 (FreeBSD)) (envelope-from ) id 1SMljt-0007y2-Pp for freebsd-current@freebsd.org; Tue, 24 Apr 2012 21:49:30 +0200 Message-ID: <4F9703C9.8080503@FreeBSD.org> Date: Tue, 24 Apr 2012 21:49:29 +0200 From: =?ISO-8859-1?Q?Jean-S=E9bastien_P=E9dron?= User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:11.0) Gecko/20120419 Thunderbird/11.0.1 MIME-Version: 1.0 To: freebsd-current@freebsd.org X-Enigmail-Version: 1.4 Content-Type: multipart/mixed; boundary="------------090407000900020908050709" Subject: segfault in vfscanf(3): clang and __restrict usage X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 19:49:32 -0000 This is a multi-part message in MIME format. --------------090407000900020908050709 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi everyone, vfscanf(3) in HEAD (r234606) segfaults when compiled with clang. For instance, here is a call made in cmake which crashes: fscanf(f, "%*[^\n]\n"); The same libc, compiled with GCC, doesn't segfault. When it encounters a character class, __svfscanf() calls convert_ccl(): static const int suppress; #define SUPPRESS_PTR ((void *)&suppress) static __inline int convert_ccl(FILE *fp, char * __restrict p, [...]) { [...] if (p == SUPPRESS_PTR) { [...] } else { [...] } [...] } In this case, there's no argument following the format string, and convert_ccl is called with p = SUPPRESS_PTR. Therefore, we should enter the if{} block. But when compiled with clang, we enter the else{} block (causing the segfault). I made a small program that shows the problem (attached): it seems to be related to the __restrict qualifier. Compiled with GCC: ./ptr-comp p=0x600ac8 vs. SUPPRESS_PTR=0x600ac8 p == SUPPRESS_PTR Compiled with clang: ./ptr-comp p=0x4007dc vs. SUPPRESS_PTR=0x4007dc p != SUPPRESS_PTR -> WRONG - From what I understand about __restrict, it indicates that the pointer is the only one pointing to a resource. In vfscanf.c, "suppress" may be pointed by several pointers at a time, so I think __restrict here is incorrect. But I'm really not sure I got it right. And I don't know either if clang behavior is expected. What do you think? - -- Jean-Sébastien Pédron -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk+XA8kACgkQa+xGJsFYOlOt9wCffUwQ344hfanDzU27wdgW5C+t 4fYAoKPh26OW/ge+VbLaOMTT/YtUYOwM =OblW -----END PGP SIGNATURE----- --------------090407000900020908050709 Content-Type: text/plain; charset=UTF-8; name="ptr-comp.c" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="ptr-comp.c" #include static const int suppress; #define SUPPRESS_PTR ((void *)&suppress) void func(char * __restrict p) { printf("p=%p vs. SUPPRESS_PTR=%p\n", p, SUPPRESS_PTR); if (p == SUPPRESS_PTR) printf("p == SUPPRESS_PTR\n"); else printf("p != SUPPRESS_PTR -> WRONG\n"); } int main(int argc, char *argv []) { char *p; p = SUPPRESS_PTR; func(p); return (0); } --------------090407000900020908050709 Content-Type: text/plain; charset=UTF-8; name="Makefile" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="Makefile" PROG = ptr-comp .include --------------090407000900020908050709-- From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 20:36:34 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DA5E5106564A; Tue, 24 Apr 2012 20:36:34 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) by mx1.freebsd.org (Postfix) with ESMTP id 8D0218FC08; Tue, 24 Apr 2012 20:36:34 +0000 (UTC) Received: from slw by zxy.spb.ru with local (Exim 4.69 (FreeBSD)) (envelope-from ) id 1SMmTq-0009Yt-N7; Wed, 25 Apr 2012 00:36:58 +0400 Date: Wed, 25 Apr 2012 00:36:58 +0400 From: Slawa Olhovchenkov To: "K. Macy" Message-ID: <20120424203658.GR32749@zxy.spb.ru> References: <20120424191415.GE76983@zxy.spb.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false Cc: freebsd-performance@freebsd.org, freebsd-current@freebsd.org Subject: Re: pmap and mtx scalability problem X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 20:36:34 -0000 On Tue, Apr 24, 2012 at 09:27:30PM +0200, K. Macy wrote: > Known problem. There is an open disagreement about how to improve the > granularity of locking in pmap. split locking to process-specific information and global information? use lock-free lists (i see TAILQ_INSERT_TAIL in pmap_enter)? sorry for stupidity, if any. From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 20:43:09 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 936D51065672; Tue, 24 Apr 2012 20:43:09 +0000 (UTC) (envelope-from kmacybsd@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 49B5D8FC12; Tue, 24 Apr 2012 20:43:09 +0000 (UTC) Received: by iahk25 with SMTP id k25so1931506iah.13 for ; Tue, 24 Apr 2012 13:43:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=ohb6GHr2lLDYcJnPMMPkvWkN0ku6ICOfdlUtx4Plnx8=; b=OyBlTObxKz3vUz3w4HUJ9puwG16qT87OuLwtMsP2njSc+mRXbotxQw0dQ2dJRyfKVN TP+FDX/CXLa8UBQlIymH5BaJPhkC2N7QMNMsz++YwpK/LzzrbmIau6OlaAt/GYycbEqG 23vZkg93DaX7uHbL+C354GGBHpray6dMYtm/Zowgg8/0aAFOE1dDzUUQaBUxDeeJHJyT RxVC3UUJ5/9hdEuuExrp2Fdzu0d8T+kOYnLoB13X+J0gctOzNaerLVCJBrsfEkl9+BJX GGBTbc6u8y2QbuxVO2Sk3Uk+J+oxARNbsJ2y118Wvvgy69i2djoctoib/q4x7Ma332hQ XfNg== MIME-Version: 1.0 Received: by 10.42.215.68 with SMTP id hd4mr2690083icb.30.1335300188762; Tue, 24 Apr 2012 13:43:08 -0700 (PDT) Sender: kmacybsd@gmail.com Received: by 10.50.129.39 with HTTP; Tue, 24 Apr 2012 13:43:08 -0700 (PDT) In-Reply-To: <20120424203658.GR32749@zxy.spb.ru> References: <20120424191415.GE76983@zxy.spb.ru> <20120424203658.GR32749@zxy.spb.ru> Date: Tue, 24 Apr 2012 22:43:08 +0200 X-Google-Sender-Auth: 5_KnCTHigoY3kIAkUj0i3t1n-rs Message-ID: From: "K. Macy" To: Slawa Olhovchenkov Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Cc: freebsd-performance@freebsd.org, freebsd-current@freebsd.org Subject: Re: pmap and mtx scalability problem X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 20:43:09 -0000 No. I developed a patch from Jeffr that pushed the vm_page_lock array down in to the machine dependent code, replacing most of the uses of the single vm_page_queue_lock. However, alc doesn't like the design and has not proposed an alternative. -Kip On Tue, Apr 24, 2012 at 10:36 PM, Slawa Olhovchenkov wrote= : > On Tue, Apr 24, 2012 at 09:27:30PM +0200, K. Macy wrote: > >> Known problem. There is an open disagreement about how to improve the >> granularity of locking in pmap. > > split locking to process-specific information and global information? > use lock-free lists (i see TAILQ_INSERT_TAIL in pmap_enter)? > > sorry for stupidity, if any. --=20 =A0 =A0=93The real damage is done by those millions who want to 'get by.' The ordinary men who just want to be left in peace. Those who don=92t want their little lives disturbed by anything bigger than themselves. Those with no sides and no causes. Those who won=92t take measure of their own strength, for fear of antagonizing their own weakness. Those who don=92t like to make waves=97or enemies. =A0 =A0Those for whom freedom, honour, truth, and principles are only literature. Those who live small, love small, die small. It=92s the reductionist approach to life: if you keep it small, you=92ll keep it under control. If you don=92t make any noise, the bogeyman won=92t find you. =A0 =A0But it=92s all an illusion, because they die too, those people who roll up their spirits into tiny little balls so as to be safe. Safe?! >From what? Life is always on the edge of death; narrow streets lead to the same place as wide avenues, and a little candle burns itself out just like a flaming torch does. =A0 =A0I choose my own way to burn.=94 =A0 =A0Sophie Scholl From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 20:45:08 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C9E4A1065674; Tue, 24 Apr 2012 20:45:08 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) by mx1.freebsd.org (Postfix) with ESMTP id 7C8058FC20; Tue, 24 Apr 2012 20:45:08 +0000 (UTC) Received: from slw by zxy.spb.ru with local (Exim 4.69 (FreeBSD)) (envelope-from ) id 1SMmc9-0009dG-5L; Wed, 25 Apr 2012 00:45:33 +0400 Date: Wed, 25 Apr 2012 00:45:33 +0400 From: Slawa Olhovchenkov To: "K. Macy" Message-ID: <20120424204533.GS32749@zxy.spb.ru> References: <20120424191415.GE76983@zxy.spb.ru> <20120424203658.GR32749@zxy.spb.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false Cc: freebsd-performance@freebsd.org, freebsd-current@freebsd.org Subject: Re: pmap and mtx scalability problem X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 20:45:08 -0000 On Tue, Apr 24, 2012 at 10:43:08PM +0200, K. Macy wrote: > No. I developed a patch from Jeffr that pushed the vm_page_lock array > down in to the machine dependent code, replacing most of the uses of > the single vm_page_queue_lock. However, alc doesn't like the design > and has not proposed an alternative. can i test this? > -Kip > > On Tue, Apr 24, 2012 at 10:36 PM, Slawa Olhovchenkov wrote: > > On Tue, Apr 24, 2012 at 09:27:30PM +0200, K. Macy wrote: > > > >> Known problem. There is an open disagreement about how to improve the > >> granularity of locking in pmap. > > > > split locking to process-specific information and global information? > > use lock-free lists (i see TAILQ_INSERT_TAIL in pmap_enter)? > > > > sorry for stupidity, if any. > > > > -- > š š?The real damage is done by those millions who want to 'get by.' > The ordinary men who just want to be left in peace. Those who don?t > want their little lives disturbed by anything bigger than themselves. > Those with no sides and no causes. Those who won?t take measure of > their own strength, for fear of antagonizing their own weakness. Those > who don?t like to make waves?or enemies. > > š šThose for whom freedom, honour, truth, and principles are only > literature. Those who live small, love small, die small. It?s the > reductionist approach to life: if you keep it small, you?ll keep it > under control. If you don?t make any noise, the bogeyman won?t find > you. > > š šBut it?s all an illusion, because they die too, those people who > roll up their spirits into tiny little balls so as to be safe. Safe?! > >From what? Life is always on the edge of death; narrow streets lead to > the same place as wide avenues, and a little candle burns itself out > just like a flaming torch does. > > š šI choose my own way to burn.? > > š šSophie Scholl From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 20:51:33 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D25F0106566C; Tue, 24 Apr 2012 20:51:33 +0000 (UTC) (envelope-from kmacybsd@gmail.com) Received: from mail-gy0-f182.google.com (mail-gy0-f182.google.com [209.85.160.182]) by mx1.freebsd.org (Postfix) with ESMTP id 758CE8FC0A; Tue, 24 Apr 2012 20:51:33 +0000 (UTC) Received: by ghrr20 with SMTP id r20so929139ghr.13 for ; Tue, 24 Apr 2012 13:51:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=ULlfCLcWnoPGOp3nJ6HmubRexj8G1TEk8DiCxV9nw/o=; b=bdWExRXHMDIVLEzPwSaTYiC1/apajFLGmvud8vziV84agP+WRsGMDVTKajeLDqBPQv 8NoL1pCjGnk3xPRkQwvYCn2+Y+li9UUVtZQWw7LqPmcB2ZUjdhGSOqI/C1IzWJjCvCsM 04X7DzsS+oLmrXd2azP1ygokyJdeYH7JHKwKQNdDhne4FGGPWTLw+8qss1t3st0NO7PQ TbMuJN9kQu8YFNgyceQEGKfuz45kyE1whk4gIOgMNv9KKKutLgwmCW99ERopbf45dO7w shv1Tn9QJc5pPhwIIWxEnekjV//4xG0n60ljy/vSxBUU2Gbp03kYkYMV4H6wdDYEbT24 pjww== MIME-Version: 1.0 Received: by 10.50.51.197 with SMTP id m5mr11852119igo.38.1335300692474; Tue, 24 Apr 2012 13:51:32 -0700 (PDT) Sender: kmacybsd@gmail.com Received: by 10.50.129.39 with HTTP; Tue, 24 Apr 2012 13:51:32 -0700 (PDT) In-Reply-To: <20120424204533.GS32749@zxy.spb.ru> References: <20120424191415.GE76983@zxy.spb.ru> <20120424203658.GR32749@zxy.spb.ru> <20120424204533.GS32749@zxy.spb.ru> Date: Tue, 24 Apr 2012 22:51:32 +0200 X-Google-Sender-Auth: j6iZpRkhRYRZA-T_CBspOW-I1xI Message-ID: From: "K. Macy" To: Slawa Olhovchenkov Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Cc: freebsd-performance@freebsd.org, freebsd-current@freebsd.org Subject: Re: pmap and mtx scalability problem X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 20:51:34 -0000 It's a bit dated at this point. Nonetheless, when gitorious is able to give something other than 503 to my search queries I'll post it. On Tue, Apr 24, 2012 at 10:45 PM, Slawa Olhovchenkov wrote= : > On Tue, Apr 24, 2012 at 10:43:08PM +0200, K. Macy wrote: > >> No. I developed a patch from Jeffr that pushed the vm_page_lock array >> down in to the machine dependent code, replacing most of the uses of >> the single vm_page_queue_lock. However, alc doesn't like the design >> and has not proposed an alternative. > > can i test this? > >> -Kip >> >> On Tue, Apr 24, 2012 at 10:36 PM, Slawa Olhovchenkov wr= ote: >> > On Tue, Apr 24, 2012 at 09:27:30PM +0200, K. Macy wrote: >> > >> >> Known problem. There is an open disagreement about how to improve the >> >> granularity of locking in pmap. >> > >> > split locking to process-specific information and global information? >> > use lock-free lists (i see TAILQ_INSERT_TAIL in pmap_enter)? >> > >> > sorry for stupidity, if any. >> >> >> >> -- >> =A0 =A0?The real damage is done by those millions who want to 'get by.' >> The ordinary men who just want to be left in peace. Those who don?t >> want their little lives disturbed by anything bigger than themselves. >> Those with no sides and no causes. Those who won?t take measure of >> their own strength, for fear of antagonizing their own weakness. Those >> who don?t like to make waves?or enemies. >> >> =A0 =A0Those for whom freedom, honour, truth, and principles are only >> literature. Those who live small, love small, die small. It?s the >> reductionist approach to life: if you keep it small, you?ll keep it >> under control. If you don?t make any noise, the bogeyman won?t find >> you. >> >> =A0 =A0But it?s all an illusion, because they die too, those people who >> roll up their spirits into tiny little balls so as to be safe. Safe?! >> >From what? Life is always on the edge of death; narrow streets lead to >> the same place as wide avenues, and a little candle burns itself out >> just like a flaming torch does. >> >> =A0 =A0I choose my own way to burn.? >> >> =A0 =A0Sophie Scholl --=20 =A0 =A0=93The real damage is done by those millions who want to 'get by.' The ordinary men who just want to be left in peace. Those who don=92t want their little lives disturbed by anything bigger than themselves. Those with no sides and no causes. Those who won=92t take measure of their own strength, for fear of antagonizing their own weakness. Those who don=92t like to make waves=97or enemies. =A0 =A0Those for whom freedom, honour, truth, and principles are only literature. Those who live small, love small, die small. It=92s the reductionist approach to life: if you keep it small, you=92ll keep it under control. If you don=92t make any noise, the bogeyman won=92t find you. =A0 =A0But it=92s all an illusion, because they die too, those people who roll up their spirits into tiny little balls so as to be safe. Safe?! >From what? Life is always on the edge of death; narrow streets lead to the same place as wide avenues, and a little candle burns itself out just like a flaming torch does. =A0 =A0I choose my own way to burn.=94 =A0 =A0Sophie Scholl From owner-freebsd-current@FreeBSD.ORG Tue Apr 24 21:22:04 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ADE6E1065674; Tue, 24 Apr 2012 21:22:04 +0000 (UTC) (envelope-from kmacybsd@gmail.com) Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com [209.85.213.182]) by mx1.freebsd.org (Postfix) with ESMTP id 4E8018FC16; Tue, 24 Apr 2012 21:22:04 +0000 (UTC) Received: by yenl9 with SMTP id l9so959924yen.13 for ; Tue, 24 Apr 2012 14:22:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=xh0JnGtjP9zvGEjHTr+fnSjTEwr3Mi3MoM3Od6rENWQ=; b=n+99r9zX6W5BXfAYc4RnRMYWw5FYozKUJPn44OD2oI7gI6kM9sINTzuDultmMFDA4o iMAUleBAvqkAIX/+KkUbRA/eSf6edmeRwuZR+3gB+wVntbPzOyAzNy3hne7XukDakTHE r0o8Y2Nn3sb1bvFqgV38jaX6Bv/Ppmm+XuEbr27GV+7wxscXyTrgw2oZIpHwQsPpjZXd F4MG7Wgwlq8nWI71df1L8iyzL+Sc9nlQkJePTB9ubgjkPwlZ+MND6uFC+VhwYeGW/kjR d2a9l2pavzrQKtR1t2PhYql7FBzYPhLHq4C5WwKnxJThIVgmL5sDjLFQzSOHf0GxsJSh Pubw== MIME-Version: 1.0 Received: by 10.50.194.232 with SMTP id hz8mr47028igc.38.1335302523296; Tue, 24 Apr 2012 14:22:03 -0700 (PDT) Sender: kmacybsd@gmail.com Received: by 10.50.129.39 with HTTP; Tue, 24 Apr 2012 14:22:03 -0700 (PDT) In-Reply-To: References: <20120424191415.GE76983@zxy.spb.ru> <20120424203658.GR32749@zxy.spb.ru> <20120424204533.GS32749@zxy.spb.ru> Date: Tue, 24 Apr 2012 23:22:03 +0200 X-Google-Sender-Auth: 2wZTquXOFFKxG1_wdQDhVt1Xoj8 Message-ID: From: "K. Macy" To: Slawa Olhovchenkov Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Cc: freebsd-performance@freebsd.org, freebsd-current@freebsd.org Subject: Re: pmap and mtx scalability problem X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Apr 2012 21:22:04 -0000 You can try these. Your mileage *will* vary. https://gitorious.org/~kmm/freebsd/kmm-sandbox/commits/work/svn_release_8_1= _0_page_lock https://gitorious.org/~kmm/freebsd/kmm-sandbox/commits/work/svn_trunk_page_= lock On Tue, Apr 24, 2012 at 10:51 PM, K. Macy wrote: > It's a bit dated at this point. Nonetheless, when gitorious is able to > give something other than 503 to my search queries I'll post it. > > On Tue, Apr 24, 2012 at 10:45 PM, Slawa Olhovchenkov wro= te: >> On Tue, Apr 24, 2012 at 10:43:08PM +0200, K. Macy wrote: >> >>> No. I developed a patch from Jeffr that pushed the vm_page_lock array >>> down in to the machine dependent code, replacing most of the uses of >>> the single vm_page_queue_lock. However, alc doesn't like the design >>> and has not proposed an alternative. >> >> can i test this? >> >>> -Kip >>> >>> On Tue, Apr 24, 2012 at 10:36 PM, Slawa Olhovchenkov w= rote: >>> > On Tue, Apr 24, 2012 at 09:27:30PM +0200, K. Macy wrote: >>> > >>> >> Known problem. There is an open disagreement about how to improve th= e >>> >> granularity of locking in pmap. >>> > >>> > split locking to process-specific information and global information? >>> > use lock-free lists (i see TAILQ_INSERT_TAIL in pmap_enter)? >>> > >>> > sorry for stupidity, if any. >>> >>> >>> >>> -- >>> =A0 =A0?The real damage is done by those millions who want to 'get by.' >>> The ordinary men who just want to be left in peace. Those who don?t >>> want their little lives disturbed by anything bigger than themselves. >>> Those with no sides and no causes. Those who won?t take measure of >>> their own strength, for fear of antagonizing their own weakness. Those >>> who don?t like to make waves?or enemies. >>> >>> =A0 =A0Those for whom freedom, honour, truth, and principles are only >>> literature. Those who live small, love small, die small. It?s the >>> reductionist approach to life: if you keep it small, you?ll keep it >>> under control. If you don?t make any noise, the bogeyman won?t find >>> you. >>> >>> =A0 =A0But it?s all an illusion, because they die too, those people who >>> roll up their spirits into tiny little balls so as to be safe. Safe?! >>> >From what? Life is always on the edge of death; narrow streets lead to >>> the same place as wide avenues, and a little candle burns itself out >>> just like a flaming torch does. >>> >>> =A0 =A0I choose my own way to burn.? >>> >>> =A0 =A0Sophie Scholl > > > > -- > =A0 =A0=93The real damage is done by those millions who want to 'get by.' > The ordinary men who just want to be left in peace. Those who don=92t > want their little lives disturbed by anything bigger than themselves. > Those with no sides and no causes. Those who won=92t take measure of > their own strength, for fear of antagonizing their own weakness. Those > who don=92t like to make waves=97or enemies. > > =A0 =A0Those for whom freedom, honour, truth, and principles are only > literature. Those who live small, love small, die small. It=92s the > reductionist approach to life: if you keep it small, you=92ll keep it > under control. If you don=92t make any noise, the bogeyman won=92t find > you. > > =A0 =A0But it=92s all an illusion, because they die too, those people who > roll up their spirits into tiny little balls so as to be safe. Safe?! > From what? Life is always on the edge of death; narrow streets lead to > the same place as wide avenues, and a little candle burns itself out > just like a flaming torch does. > > =A0 =A0I choose my own way to burn.=94 > > =A0 =A0Sophie Scholl --=20 =A0 =A0=93The real damage is done by those millions who want to 'get by.' The ordinary men who just want to be left in peace. Those who don=92t want their little lives disturbed by anything bigger than themselves. Those with no sides and no causes. Those who won=92t take measure of their own strength, for fear of antagonizing their own weakness. Those who don=92t like to make waves=97or enemies. =A0 =A0Those for whom freedom, honour, truth, and principles are only literature. Those who live small, love small, die small. It=92s the reductionist approach to life: if you keep it small, you=92ll keep it under control. If you don=92t make any noise, the bogeyman won=92t find you. =A0 =A0But it=92s all an illusion, because they die too, those people who roll up their spirits into tiny little balls so as to be safe. Safe?! >From what? Life is always on the edge of death; narrow streets lead to the same place as wide avenues, and a little candle burns itself out just like a flaming torch does. =A0 =A0I choose my own way to burn.=94 =A0 =A0Sophie Scholl From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 00:02:11 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 44C171065670; Wed, 25 Apr 2012 00:02:11 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mx1.sbone.de (mx1.sbone.de [IPv6:2a01:4f8:130:3ffc::401:25]) by mx1.freebsd.org (Postfix) with ESMTP id E461D8FC15; Wed, 25 Apr 2012 00:02:10 +0000 (UTC) Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.sbone.de (Postfix) with ESMTPS id F05D525D3857; Wed, 25 Apr 2012 00:02:09 +0000 (UTC) Received: from content-filter.sbone.de (content-filter.sbone.de [IPv6:fde9:577b:c1a9:31::2013:2742]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id F0219BE4935; Wed, 25 Apr 2012 00:02:08 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587]) by content-filter.sbone.de (content-filter.sbone.de [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024) with ESMTP id gHtqqP60aFJQ; Wed, 25 Apr 2012 00:02:07 +0000 (UTC) Received: from orange-en1.sbone.de (orange-en1.sbone.de [IPv6:fde9:577b:c1a9:31:cabc:c8ff:fecf:e8e3]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id 9F1C5BE4934; Wed, 25 Apr 2012 00:02:07 +0000 (UTC) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: "Bjoern A. Zeeb" In-Reply-To: Date: Wed, 25 Apr 2012 00:02:06 +0000 Content-Transfer-Encoding: 7bit Message-Id: <7FC5708C-429D-4077-9A3C-6272AB1316D9@FreeBSD.org> References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <20120424163423.GA59530@onelab2.iet.unipi.it> <5C2FC09E-1873-4A97-8980-07B336D3DC44@netasq.com> To: "Li, Qing" X-Mailer: Apple Mail (2.1084) Cc: net@freebsd.org, "K. Macy" , current@freebsd.org Subject: Re: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 00:02:11 -0000 On 24. Apr 2012, at 17:42 , Li, Qing wrote: >>> >>> I have a patch that has been sitting around for a long time due to >>> review cycle latency that caches a pointer to the rtentry (and >>> llentry) in the the inpcb. Before each use the rtentry is checked >>> against a generation number in the routing tree that is incremented >> on >>> every routing table update. >> >> Hi Kip, >> >> Is there a public location for the patch ? >> What can be done to speedup the commit: testing ? >> >> Fabien > > I performed extensive review of this patch from Kip, and it was > ready to go. Really good work. > > Not sure what is stopping its commit into the tree. Because there were leaks, there were 100% panics for IPv6, ... at least on the version I had seen in autumn last year. There is certainly no one more interested then me on these in, esp. for v6 where the removal of route caching a long time ago made nd6_nud_hint() a NOP with dst and rt being passed down as NULL only, and where we are doing up to three route lookups in the output path if no cached rt is passed down along from the ULP. If there is an updated patch, I'd love to see it. /bz -- Bjoern A. Zeeb You have to have visions! It does not matter how good you are. It matters what good you do! From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 09:22:14 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 567F51065675; Wed, 25 Apr 2012 09:22:14 +0000 (UTC) (envelope-from maxim@freebsd.org) Received: from mp2.macomnet.net (ipv6.irc.int.ru [IPv6:2a02:28:1:2::1b:2]) by mx1.freebsd.org (Postfix) with ESMTP id CAB5C8FC0A; Wed, 25 Apr 2012 09:22:13 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mp2.macomnet.net (8.14.5/8.14.5) with ESMTP id q3P9M67T053104; Wed, 25 Apr 2012 13:22:06 +0400 (MSK) (envelope-from maxim@freebsd.org) Date: Wed, 25 Apr 2012 13:22:06 +0400 (MSK) From: Maxim Konovalov To: "Li, Qing" In-Reply-To: Message-ID: References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <20120424163423.GA59530@onelab2.iet.unipi.it> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: Luigi Rizzo , "current@freebsd.org" , "net@freebsd.org" Subject: RE: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 09:22:14 -0000 Hi, On Tue, 24 Apr 2012, 17:40-0000, Li, Qing wrote: > Yup, all good points. In fact we have considered all of these while doing > the work. In case you haven't seen it already, we did write about these > issues in our paper and how we tried to address those, flow-table was one > of the solutions. > > http://dl.acm.org/citation.cfm?id=1592641 Is this article available for those without ACM subscription? -- Maxim Konovalov From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 10:19:33 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 920FD106564A; Wed, 25 Apr 2012 10:19:33 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) by mx1.freebsd.org (Postfix) with ESMTP id 3F9388FC18; Wed, 25 Apr 2012 10:19:33 +0000 (UTC) Received: from slw by zxy.spb.ru with local (Exim 4.69 (FreeBSD)) (envelope-from ) id 1SMzKF-00024f-VT; Wed, 25 Apr 2012 14:19:55 +0400 Date: Wed, 25 Apr 2012 14:19:55 +0400 From: Slawa Olhovchenkov To: Maxim Konovalov Message-ID: <20120425101955.GF76983@zxy.spb.ru> References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <20120424163423.GA59530@onelab2.iet.unipi.it> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false Cc: "Li, Qing" , Luigi Rizzo , "current@freebsd.org" , "net@freebsd.org" Subject: Re: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 10:19:33 -0000 On Wed, Apr 25, 2012 at 01:22:06PM +0400, Maxim Konovalov wrote: > Hi, > > On Tue, 24 Apr 2012, 17:40-0000, Li, Qing wrote: > > > Yup, all good points. In fact we have considered all of these while doing > > the work. In case you haven't seen it already, we did write about these > > issues in our paper and how we tried to address those, flow-table was one > > of the solutions. > > > > http://dl.acm.org/citation.cfm?id=1592641 > > Is this article available for those without ACM subscription? Tip: get citation from abstract to google. 3'th link: http://conferences.sigcomm.org/sigcomm/2009/workshops/presto/papers/p37.pdf From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 15:45:12 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ADEB11065678; Wed, 25 Apr 2012 15:45:12 +0000 (UTC) (envelope-from kmacybsd@gmail.com) Received: from mail-yw0-f54.google.com (mail-yw0-f54.google.com [209.85.213.54]) by mx1.freebsd.org (Postfix) with ESMTP id 334A18FC15; Wed, 25 Apr 2012 15:45:12 +0000 (UTC) Received: by yhgm50 with SMTP id m50so282009yhg.13 for ; Wed, 25 Apr 2012 08:45:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=vlR8m2g4tqqSz11sCsSsUkgtpcLTaR1ytOav32j6jpU=; b=U/Xu3awCKqpc0VWcVq0gyrDAOF0COtnqtc29mwN83N5w/p3t33/hOOKFOM6wf+muxu 2a5/Wr2PNcRvnz30fGGXfnPIFB+fXw8AJB7OHqk/YdI/FccQYPOsYEjCdkaz5+0716lq UR1h8Q9rS8zorSJwtwlHStk1GL3AU/zI+JSh1IABIRKDN+uGCKXQkUpnmneZBhXEleXX UM7eMMDdWxnVk+uKdCKKEeCkUbM9YQaEI5zHeGypJ7N6G7N5cOsqC1/FlHjN+wYroo9k /8Cn4SLtrv4dRNtcVq6JPFEZr+x5DfO7UrwiXoFk6CIAFmvy2K20mb+3GuRJDO5AIcMO Iymg== MIME-Version: 1.0 Received: by 10.50.51.197 with SMTP id m5mr3196478igo.38.1335368711190; Wed, 25 Apr 2012 08:45:11 -0700 (PDT) Sender: kmacybsd@gmail.com Received: by 10.50.129.39 with HTTP; Wed, 25 Apr 2012 08:45:11 -0700 (PDT) In-Reply-To: <7FC5708C-429D-4077-9A3C-6272AB1316D9@FreeBSD.org> References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <20120424163423.GA59530@onelab2.iet.unipi.it> <5C2FC09E-1873-4A97-8980-07B336D3DC44@netasq.com> <7FC5708C-429D-4077-9A3C-6272AB1316D9@FreeBSD.org> Date: Wed, 25 Apr 2012 17:45:11 +0200 X-Google-Sender-Auth: fwlNrlBMvWtLhOyHzd2aIp2Yc7w Message-ID: From: "K. Macy" To: "Bjoern A. Zeeb" Content-Type: text/plain; charset=ISO-8859-1 Cc: "Li, Qing" , Fabien Thomas , current@freebsd.org, net@freebsd.org Subject: Re: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 15:45:12 -0000 > Because there were leaks, there were 100% panics for IPv6, ... at least on > the version I had seen in autumn last year. > > There is certainly no one more interested then me on these in, esp. for v6 > where the removal of route caching a long time ago made nd6_nud_hint() a NOP > with dst and rt being passed down as NULL only, and where we are doing up to > three route lookups in the output path if no cached rt is passed down along > from the ULP. > > If there is an updated patch, I'd love to see it. Ok, I'm following up as this seems to be getting some interest. This the relevant part of the last mail that I received from you. The final part having been dedicated to the narrow potential ABI changes that were to make it in to the release. From: Bjoern A. Zeeb Date: Mon, Sep 19, 2011 at 3:19 PM To: "K. Macy" Cc: Robert Watson , rysto32 , Qing Li Sorry it's taking me so long while I was travelling but also now being back home again. I would yet have to find a code path through IPv6 that will a) not panic on INVARIANTS and b) actually update the inp_lle cache. Once I stop finding the next hiccup going one step deeper into the stack (and I made it to if_ethersubr.c) I'll get to legacy IP and the beef and I'll hope that all you all will have reviewed and tested that thoroughly. Checking whether a similar problem would exist in v4 I however found a possible lle reference leak in the legacy IP path as well. There's also a missed place where we do not update the generation counter (even though kind of pointless place but still to do for completeness). I am also pondering why we are not always invalidating the ro_lle cache (when we update the ro_rt entry in the callgraph after tcp_output). I wonder if we can provoke strange results say changing the default route from something connected on interface 1 to interface 2. <...> /bz -- Bjoern A. Zeeb You have to have visions! Stop bit received. Insert coin for new address family. =================================================================== The only comment in here which was sufficiently specific to actually take action on was: "pondering why we are not always invalidating the ro_lle cache (when we update the ro_rt entry in the callgraph after tcp_output)." Which was subsequently addressed by ensuring that the LLE_VALID flag was actually meaningful by clearing it when the llentry is removed from the interface's hash table in an unrelated commit because of weird behaviour observed with the flow. a) Where is the possible leak in the legacy path? b) Where were the panics in v6? In light of the fact that I don't or at least didn't have any means of testing v6 (I can probably get a testbed set up at iX now) and the netinet6 specific portions of the patch consist of 4 lines of code which should really be entrusted to you given that your performance parity work for v6 has actively being funded, it was clearly a mistake to tie the fate of the patch as a whole to those narrow bits. Once I get a response to a) and b) I'll follow up with a patch against head. I'm sure whatever I had has bitrotted somewhat in the meantime. Thanks for your help, Kip From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 16:39:51 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from lo0.su (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by hub.freebsd.org (Postfix) with ESMTP id C73D2106564A; Wed, 25 Apr 2012 16:39:50 +0000 (UTC) (envelope-from ru@FreeBSD.org) Date: Wed, 25 Apr 2012 20:39:49 +0400 From: Ruslan Ermilov To: Jason Evans Message-ID: <20120425163949.GA53937@lo0.su> References: <7FC153A1-8815-4BAE-AB94-FED51DBFFEAA@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7FC153A1-8815-4BAE-AB94-FED51DBFFEAA@freebsd.org> Cc: freebsd-current@freebsd.org Subject: Re: HEADSUP: /etc/malloc.conf format change X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 16:39:51 -0000 On Tue, Apr 17, 2012 at 12:34:20PM -0700, Jason Evans wrote: > As a result of the recent jemalloc update, the format for > /etc/malloc.conf has changed. If your system has an old-style > /etc/malloc.conf, you will want to delete it prior to > installworld, and optionally re-create it using the new format > after rebooting. See malloc.conf(5) for details (specifically > the TUNING section and the "opt.*" entries in the MALLCTL > NAMESPACE section). > > The MALLOC_OPTIONS environment variable and the _malloc_options > global do not pose the same headache, because their new > counterparts are named MALLOC_CONF and malloc_conf, > respectively. So you removed _malloc_options that was part of the documented programming API, while some software made use of it. While removing part of the documented API was definitely a bad idea, you didn't provide any mean to detect this change programmatically, neither through a macro test, nor by bumping __FreeBSD_version. The only way now is to try and see if it compiles, which is far from perfect. The way how _malloc_options is handled for binary compatibility, by simply ignoring its value, is (ahem) questionable. Why do I care? The developers of the nginx web server have been notified today that it could not be built on FreeBSD 10.0-CURRENT anymore, due to this change, when compiled with "nginx malloc debugging". It's activated by the DEBUG option of the www/nginx-devel port, if you care to try it out. Please explore the possibility to add backwards compatiblity for the documented API, or at the very least provide a mean to detect this otherwise disruptive and hard to detect change for a programmer. Cheers, -- Ruslan Ermilov ru@FreeBSD.org FreeBSD committer From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 17:44:07 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E854D106566C; Wed, 25 Apr 2012 17:44:07 +0000 (UTC) (envelope-from jasone@freebsd.org) Received: from canonware.com (10140.x.rootbsd.net [204.109.63.53]) by mx1.freebsd.org (Postfix) with ESMTP id C5F8A8FC0C; Wed, 25 Apr 2012 17:44:07 +0000 (UTC) Received: from [172.25.16.174] (unknown [173.252.71.3]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by canonware.com (Postfix) with ESMTPSA id E5E5A28418; Wed, 25 Apr 2012 10:44:00 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: text/plain; charset=us-ascii From: Jason Evans In-Reply-To: <20120425163949.GA53937@lo0.su> Date: Wed, 25 Apr 2012 10:43:59 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <0D8D93F3-5919-4A48-9BB2-887E4420C162@freebsd.org> References: <7FC153A1-8815-4BAE-AB94-FED51DBFFEAA@freebsd.org> <20120425163949.GA53937@lo0.su> To: Ruslan Ermilov X-Mailer: Apple Mail (2.1257) Cc: freebsd-current@freebsd.org Subject: Re: HEADSUP: /etc/malloc.conf format change X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 17:44:08 -0000 On Apr 25, 2012, at 9:39 AM, Ruslan Ermilov wrote: > So you removed _malloc_options that was part of the documented > programming API, while some software made use of it. >=20 > While removing part of the documented API was definitely a bad > idea, you didn't provide any mean to detect this change=20 > programmatically, neither through a macro test, nor by bumping > __FreeBSD_version. The only way now is to try and see if it > compiles, which is far from perfect. >=20 > The way how _malloc_options is handled for binary compatibility, > by simply ignoring its value, is (ahem) questionable. >=20 > Why do I care? The developers of the nginx web server have=20 > been notified today that it could not be built on FreeBSD > 10.0-CURRENT anymore, due to this change, when compiled with=20 > "nginx malloc debugging". It's activated by the DEBUG option > of the www/nginx-devel port, if you care to try it out. >=20 > Please explore the possibility to add backwards compatiblity for=20 > the documented API, or at the very least provide a mean to=20 > detect this otherwise disruptive and hard to detect change > for a programmer. A __FreeBSD_version bump seems like a good idea to me, but adding = backward compatibility for _malloc_options is questionable at best. Of = the 17 options that _malloc_options supported, only 6 have directly = corresponding options in malloc_conf, plus another 3 that would present = strange quirks (fragile and difficult to precisely document) if an = attempt were made to provide compatibility. In past iterations I was = always careful to provide as much option compatibility as possible over = the lifetime of each release (e.g., 'H' in RELENG_7), but individual = options came and went with major releases. _malloc_options could only be pushed so far, and when it hit its = breaking point I replaced it. Creaky compatibility is IMO a liability = rather than an asset. In the case of nginx, it looks like a = __FreeBSD_version bump is exactly what it needs. I'll try to get that = done today. On a related note, is there any way to find all ports that refer to = _malloc_options without extracting source for all of them? I considered = being proactive about finding software that depends on _malloc_options, = but no tractable approaches came to mind. Thanks, Jason= From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 18:04:24 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0D742106564A for ; Wed, 25 Apr 2012 18:04:24 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe05.c2i.net [212.247.154.130]) by mx1.freebsd.org (Postfix) with ESMTP id 84E728FC12 for ; Wed, 25 Apr 2012 18:04:23 +0000 (UTC) X-T2-Spam-Status: No, hits=0.5 required=5.0 tests=ALL_TRUSTED, BAYES_60 Received: from [176.74.212.201] (account mc467741@c2i.net HELO laptop002.hselasky.homeunix.org) by mailfe05.swip.net (CommuniGate Pro SMTP 5.4.4) with ESMTPA id 264298776 for freebsd-current@freebsd.org; Wed, 25 Apr 2012 20:04:21 +0200 From: Hans Petter Selasky To: "freebsd-current" Date: Wed, 25 Apr 2012 20:03:24 +0200 User-Agent: KMail/1.13.5 (FreeBSD/8.3-PRERELEASE; KDE/4.4.5; amd64; ; ) X-Face: 'mmZ:T{)),Oru^0c+/}w'`gU1$ubmG?lp!=R4Wy\ELYo2)@'UZ24N@ =?utf-8?q?d2+AyewRX=7DmAm=3BYp=0A=09=7CU=5B?=@, _z/([?1bCfM{_"B<.J>mICJCHAzzGHI{y7{%JVz%R~yJHIji`y> =?utf-8?q?Y=7Dk1C4TfysrsUI=0A=09-=25GU9V5=5DiUZF=26nRn9mJ=27=3F=26?=>O MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <201204252003.24392.hselasky@c2i.net> Subject: HEADSUP: LibUSB 1.0 API change X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 18:04:24 -0000 Hi, Applications using ASYNC transfers needs to be re-compiled in 10-current after this change: http://svn.freebsd.org/changeset/base/234684 This change will _not_ be backported to 9-stable or 8-stable. --HPS From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 18:50:23 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2AE0B1065675 for ; Wed, 25 Apr 2012 18:50:23 +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 9BFB08FC19 for ; Wed, 25 Apr 2012 18:50:22 +0000 (UTC) Received: from skuns.kiev.zoral.com.ua (localhost [127.0.0.1]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id q3PIoCBi073244; Wed, 25 Apr 2012 21:50:12 +0300 (EEST) (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.5/8.14.5) with ESMTP id q3PIoCaf047538; Wed, 25 Apr 2012 21:50:12 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5/Submit) id q3PIoCCo047537; Wed, 25 Apr 2012 21:50:12 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Wed, 25 Apr 2012 21:50:12 +0300 From: Konstantin Belousov To: Hans Petter Selasky Message-ID: <20120425185012.GK2358@deviant.kiev.zoral.com.ua> References: <201204252003.24392.hselasky@c2i.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="6QF9Q+7ljxzE4n9B" Content-Disposition: inline In-Reply-To: <201204252003.24392.hselasky@c2i.net> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.0 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: freebsd-current Subject: Re: HEADSUP: LibUSB 1.0 API change X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 18:50:23 -0000 --6QF9Q+7ljxzE4n9B Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Apr 25, 2012 at 08:03:24PM +0200, Hans Petter Selasky wrote: > Hi, >=20 > Applications using ASYNC transfers needs to be re-compiled in 10-current = after=20 > this change: >=20 > http://svn.freebsd.org/changeset/base/234684 >=20 > This change will _not_ be backported to 9-stable or 8-stable. You need to bump libusb .so version after the change. --6QF9Q+7ljxzE4n9B Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (FreeBSD) iEYEARECAAYFAk+YR2MACgkQC3+MBN1Mb4gnFwCfVNEB+zLm2j4Ny26o216VmFXp OOkAoLw3a/LLA8BagFWCxk6FhTzSl51n =f7JK -----END PGP SIGNATURE----- --6QF9Q+7ljxzE4n9B-- From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 18:53:41 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5C54F106564A; Wed, 25 Apr 2012 18:53:41 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from mx1.sbone.de (mx1.sbone.de [IPv6:2a01:4f8:130:3ffc::401:25]) by mx1.freebsd.org (Postfix) with ESMTP id D2DD38FC0C; Wed, 25 Apr 2012 18:53:40 +0000 (UTC) Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.sbone.de (Postfix) with ESMTPS id D03BE25D3A00; Wed, 25 Apr 2012 18:53:39 +0000 (UTC) Received: from content-filter.sbone.de (content-filter.sbone.de [IPv6:fde9:577b:c1a9:31::2013:2742]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id EAF7DBE59D1; Wed, 25 Apr 2012 18:53:38 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587]) by content-filter.sbone.de (content-filter.sbone.de [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024) with ESMTP id GiC1C+NlZvzd; Wed, 25 Apr 2012 18:53:37 +0000 (UTC) Received: from orange-en1.sbone.de (orange-en1.sbone.de [IPv6:fde9:577b:c1a9:31:cabc:c8ff:fecf:e8e3]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id 25B06BE59CF; Wed, 25 Apr 2012 18:53:37 +0000 (UTC) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: "Bjoern A. Zeeb" In-Reply-To: Date: Wed, 25 Apr 2012 18:53:36 +0000 Content-Transfer-Encoding: 7bit Message-Id: References: <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <20120424163423.GA59530@onelab2.iet.unipi.it> <5C2FC09E-1873-4A97-8980-07B336D3DC44@netasq.com> <7FC5708C-429D-4077-9A3C-6272AB1316D9@FreeBSD.org> To: K. Macy X-Mailer: Apple Mail (2.1084) Cc: current@freebsd.org, net@freebsd.org Subject: Re: Some performance measurements on the FreeBSD network stack X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 18:53:41 -0000 On 25. Apr 2012, at 15:45 , K. Macy wrote: > a) Where is the possible leak in the legacy path? It's been somewhere in ip_output() in one of the possible combinations go through the code flow. I'd probably need to apply a patch to a tree to get there again. It's been more than 6 months for me as well. I think it was related to the flowtable path but I could completely misremember. > b) Where were the panics in v6? Again completely quoting from memory. I think the problem was that the INVARIANTS check in what's currently nd6_output_lle() was hit given both the rtentry and llentry were passed in but no *chain. Fixing this seems trivial even when trying to keep the current invariants checked. However the bigger problem then was that the cached value was never updated as the *ro passed down had been lost on the way. Whatever came then, is again off my head without the patch in front of me. Btw. you don't need more than two machines connected, virtual or not, worst two vnet instances on a lab machine, to enable and do IPv6. No need for global connectivity at all, as would not be required for IPv4 either. If you can get the patch updated to apply to a modern HEAD and compile (even if as-is) I'll try to help solving those to my best (though limited) availability to help you to get that thing in. /bz -- Bjoern A. Zeeb You have to have visions! It does not matter how good you are. It matters what good you do! From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 18:57:50 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 28AD91065670; Wed, 25 Apr 2012 18:57:50 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id D99438FC1D; Wed, 25 Apr 2012 18:57:49 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:91a4:9332:24dd:72e6] (unknown [IPv6:2001:7b8:3a7:0:91a4:9332:24dd:72e6]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 0AFAB5C59; Wed, 25 Apr 2012 20:57:49 +0200 (CEST) Message-ID: <4F98492D.8070006@FreeBSD.org> Date: Wed, 25 Apr 2012 20:57:49 +0200 From: Dimitry Andric Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120410 Thunderbird/12.0 MIME-Version: 1.0 To: =?ISO-8859-1?Q?Jean-S=E9bastien_P=E9dron?= References: <4F9703C9.8080503@FreeBSD.org> In-Reply-To: <4F9703C9.8080503@FreeBSD.org> X-Enigmail-Version: 1.4.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-current@freebsd.org Subject: Re: segfault in vfscanf(3): clang and __restrict usage X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 18:57:50 -0000 On 2012-04-24 21:49, Jean-S=E9bastien P=E9dron wrote: > Hi everyone, >=20 > vfscanf(3) in HEAD (r234606) segfaults when compiled with clang. For > instance, here is a call made in cmake which crashes: > fscanf(f, "%*[^\n]\n"); Using r234549 here, everything compiled with clang, but I cannot make that statement crash, whatever I do. Do you have a specific input file which crashes it? > The same libc, compiled with GCC, doesn't segfault. >=20 > When it encounters a character class, __svfscanf() calls convert_ccl():= >=20 > static const int suppress; > #define SUPPRESS_PTR ((void *)&suppress) >=20 > static __inline int > convert_ccl(FILE *fp, char * __restrict p, [...]) > { > [...] >=20 > if (p =3D=3D SUPPRESS_PTR) { > [...] > } else { > [...] > } >=20 > [...] > } =2E.. > From what I understand about __restrict, it indicates that the pointer > is the only one pointing to a resource. In vfscanf.c, "suppress" may > be pointed by several pointers at a time, so I think __restrict here > is incorrect. But I'm really not sure I got it right. And I don't know > either if clang behavior is expected. Indeed, my first impression was the same, that the use of 'restrict' is wrong here. Namely, if you tell the compiler that 'p' is the *only* pointer pointing to a specific object, and you compare it with any other pointer, the comparison will be unequal by definition. However, after asking around a bit, it seems that clang is still wrong in this particular case. Although this is probably language lawyer area, so beware. :) I have filed an LLVM PR for it here: =20 http://llvm.org/bugs/show_bug.cgi?id=3D12656=20 Meanwhile, I really wonder why the __restrict keyword was used in this implementation. There are lots of cases in vfscanf.c, where a pointer is declared __restrict, and then aliasing seems to be done anyway.=20 Besides, I'm not really sure about the potential optimization gains of adding the keyword. With our base gcc, removing all the __restrict keywords results in no binary change. With gcc 4.7, there are some very minor changes, but they are extremely unlikely to gain any performance. And with clang, there are quite some differences, but apparently it optimizes too aggressively, so more testing is required to see if the potential for bugs outweighs the performance gains. From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 19:13:09 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 49635106566C; Wed, 25 Apr 2012 19:13:09 +0000 (UTC) (envelope-from bsam@passap.ru) Received: from forward13.mail.yandex.net (forward13.mail.yandex.net [IPv6:2a02:6b8:0:801::3]) by mx1.freebsd.org (Postfix) with ESMTP id BC4AC8FC19; Wed, 25 Apr 2012 19:13:08 +0000 (UTC) Received: from smtp11.mail.yandex.net (smtp11.mail.yandex.net [95.108.130.67]) by forward13.mail.yandex.net (Yandex) with ESMTP id 578811414C4; Wed, 25 Apr 2012 23:13:07 +0400 (MSK) Received: from smtp11.mail.yandex.net (localhost [127.0.0.1]) by smtp11.mail.yandex.net (Yandex) with ESMTP id 1F94F7E035D; Wed, 25 Apr 2012 23:13:07 +0400 (MSK) Received: from 46.38.39.187.tel.ru (46.38.39.187.tel.ru [46.38.39.187]) by smtp11.mail.yandex.net (nwsmtp/Yandex) with ESMTP id D6K0nvqO-D6KWegtL; Wed, 25 Apr 2012 23:13:06 +0400 Message-ID: <4F984CC2.5080404@passap.ru> Date: Wed, 25 Apr 2012 23:13:06 +0400 From: Boris Samorodov User-Agent: Mozilla/5.0 (X11; FreeBSD i386; rv:8.0) Gecko/20111114 Thunderbird/8.0 MIME-Version: 1.0 To: Dimitry Andric References: <4F9703C9.8080503@FreeBSD.org> <4F98492D.8070006@FreeBSD.org> In-Reply-To: <4F98492D.8070006@FreeBSD.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: freebsd-current@freebsd.org, =?UTF-8?B?SmVhbi1Tw6liYXN0aWVuIFDDqWRyb24=?= Subject: Re: segfault in vfscanf(3): clang and __restrict usage X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 19:13:09 -0000 25.04.2012 22:57, Dimitry Andric пишет: > On 2012-04-24 21:49, Jean-Sébastien Pédron wrote: >> Hi everyone, >> >> vfscanf(3) in HEAD (r234606) segfaults when compiled with clang. For >> instance, here is a call made in cmake which crashes: >> fscanf(f, "%*[^\n]\n"); > > Using r234549 here, everything compiled with clang, but I cannot make > that statement crash, whatever I do. Do you have a specific input file > which crashes it? ----- % uname -a FreeBSD bsam.wart.ru 10.0-CURRENT FreeBSD 10.0-CURRENT #0 r234635: Tue Apr 24 11:41:32 SAMT 2012 bsam@bsam.wart.ru:/usr/obj/usr/src/sys/BBX i386 % sudo gdb smartd smartd.core GNU gdb 6.1.1 [FreeBSD] [...] #0 0x33ebdc2e in vfscanf () from /lib/libc.so.7 (gdb) ----- I think that cupsd also suffer from the bug. BTW, I have the system and almost all ports compiled (tomorrow and today) with clang. -- WBR, Boris Samorodov (bsam) FreeBSD Committer, http://www.FreeBSD.org The Power To Serve From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 19:40:37 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0C407106566C; Wed, 25 Apr 2012 19:40:37 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id BC23A8FC14; Wed, 25 Apr 2012 19:40:36 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:91a4:9332:24dd:72e6] (unknown [IPv6:2001:7b8:3a7:0:91a4:9332:24dd:72e6]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 0D2875C59; Wed, 25 Apr 2012 21:40:36 +0200 (CEST) Message-ID: <4F985334.8030109@FreeBSD.org> Date: Wed, 25 Apr 2012 21:40:36 +0200 From: Dimitry Andric Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120410 Thunderbird/12.0 MIME-Version: 1.0 To: Boris Samorodov References: <4F9703C9.8080503@FreeBSD.org> <4F98492D.8070006@FreeBSD.org> <4F984CC2.5080404@passap.ru> In-Reply-To: <4F984CC2.5080404@passap.ru> X-Enigmail-Version: 1.4.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: freebsd-current@freebsd.org, =?UTF-8?B?SmVhbi1Tw6liYXN0aWVuIFDDqWRyb24=?= Subject: Re: segfault in vfscanf(3): clang and __restrict usage X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 19:40:37 -0000 On 2012-04-25 21:13, Boris Samorodov wrote: > 25.04.2012 22:57, Dimitry Andric =D0=BF=D0=B8=D1=88=D0=B5=D1=82: >> On 2012-04-24 21:49, Jean-S=C3=A9bastien P=C3=A9dron wrote: >>> Hi everyone, >>> >>> vfscanf(3) in HEAD (r234606) segfaults when compiled with clang. For >>> instance, here is a call made in cmake which crashes: >>> fscanf(f, "%*[^\n]\n"); >> >> Using r234549 here, everything compiled with clang, but I cannot make >> that statement crash, whatever I do. Do you have a specific input fil= e >> which crashes it? >=20 > ----- > % uname -a > FreeBSD bsam.wart.ru 10.0-CURRENT FreeBSD 10.0-CURRENT #0 r234635: Tue > Apr 24 11:41:32 SAMT 2012 bsam@bsam.wart.ru:/usr/obj/usr/src/sys/BB= X > i386 > % sudo gdb smartd smartd.core > GNU gdb 6.1.1 [FreeBSD] > [...] > #0 0x33ebdc2e in vfscanf () from /lib/libc.so.7 > (gdb) > ----- >=20 > I think that cupsd also suffer from the bug. >=20 > BTW, I have the system and almost all ports compiled (tomorrow > and today) with clang. Looks like the __restricted keywords were introduced just two days ago, in r234585, which may be why I didn't see any crashes yet. I think the easiest solution for now is to #undef __restrict at the top of both lib/libc/stdio/vfscanf.c and lib/libc/stdio/vfwscanf.c, then recompile and reinstall libc. From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 20:07:36 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6B2C2106566B; Wed, 25 Apr 2012 20:07:36 +0000 (UTC) (envelope-from lacombar@gmail.com) Received: from mail-wg0-f50.google.com (mail-wg0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id C64D28FC12; Wed, 25 Apr 2012 20:07:35 +0000 (UTC) Received: by wgbds12 with SMTP id ds12so459985wgb.31 for ; Wed, 25 Apr 2012 13:07:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=jkGn5d1g5U9fhvHCEuD1se+TIWYbjPYZ47IMq/tvKNg=; b=AVTLKqc32ZVY4VWJqm7+7rEPNBytp8GRKDaFUSdjkmUOpQMlqbSNgATTFlzI+SNUoM +WWvSfChA5imNGGl0l3PF/oyLxu7NdoTsUyf9Ppx23wo9Q1tJjGMa4QIzEzHpBVAKOZq e/kcRD8ONq5RyCKd0DOKy2P573e1pgL0wfvBMhOy3AdaF08zwkqestNC1Ir61TXf9xQv pMxCDFcVXTDH1U/CKMLsEHxO0z9yY9CXwhna0PpLlAl2uChCubf+sKlc1uHYFGxMbmJi 174PJMbM2RssmLkYssAG2rPViSGtVRcJZBo64xib6bnU0JMWj8MnSApnyRGXjsfqxR/7 FAFA== MIME-Version: 1.0 Received: by 10.180.85.69 with SMTP id f5mr9770678wiz.18.1335384454926; Wed, 25 Apr 2012 13:07:34 -0700 (PDT) Received: by 10.216.49.81 with HTTP; Wed, 25 Apr 2012 13:07:34 -0700 (PDT) In-Reply-To: References: Date: Wed, 25 Apr 2012 16:07:34 -0400 Message-ID: From: Arnaud Lacombe To: freebsd-stable , FreeBSD Current Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Subject: Re: Complete hang on 9.0-RELEASE X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 20:07:36 -0000 Hi, On Sat, Apr 21, 2012 at 4:19 AM, Arnaud Lacombe wrote: > Hi, > > On Wed, Apr 18, 2012 at 2:22 AM, Arnaud Lacombe wrot= e: >> Hi, >> >> On Mon, Apr 16, 2012 at 5:50 PM, Arnaud Lacombe wro= te: >>> [...] >>> I reproduced the previous problem on 10-CURRENT from r233917, on the >>> following platform (here running 8.2-RELEASE): >>> >>> FreeBSD is a registered trademark of The FreeBSD Foundation. >>> FreeBSD 8.2-RELEASE #0: Thu Feb 17 02:41:51 UTC 2011 >>> =A0 =A0root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 >>> Timecounter "i8254" frequency 1193182 Hz quality 0 >>> CPU: Intel(R) Atom(TM) CPU D525 =A0 @ 1.80GHz (1800.01-MHz K8-class CPU= ) >>> =A0Origin =3D "GenuineIntel" =A0Id =3D 0x106ca =A0Family =3D 6 =A0Model= =3D 1c =A0Stepping =3D 10 >>> =A0Features=3D0xbfebfbff >>> =A0Features2=3D0x40e31d >>> =A0AMD Features=3D0x20100800 >>> =A0AMD Features2=3D0x1 >>> =A0TSC: P-state invariant >>> real memory =A0=3D 2136539136 (2037 MB) >>> avail memory =3D 2043772928 (1949 MB) >>> ACPI APIC Table: <010312 APIC0947> >>> FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs >>> FreeBSD/SMP: 1 package(s) x 2 core(s) x 2 HTT threads >>> =A0cpu0 (BSP): APIC ID: =A00 >>> =A0cpu1 (AP/HT): APIC ID: =A01 >>> =A0cpu2 (AP): APIC ID: =A02 >>> =A0cpu3 (AP/HT): APIC ID: =A03 >>> >>> Complete system freeze while running about 2400 threads. I had to >>> power cycle the system to get it back alive. I discussed a way to >>> debug this with attilio@ on freebsd-stable@, but still did not had >>> time to implement it. >>> >> 10-CURRENT from r233917 hanged again today while running 3600 threads. >> I enabled WITNESS and INVARIANTS on that specific kernel, secretly >> hoping that they would trigger some meaningful information, but they >> did not. I would guess my last attempt is to enable SW_WATCHDOG, and >> gather some state information out of DDB when the watchdog trigger, if >> it does... >> >> Btw, this issue seems to be specifically happening on Atom/ICH8M >> platform running amd64 kernel, as I've never seen it on other >> platforms, and yet ran extensive tests. I am not entirely sure it >> happens on i386. I would need to check. >> > For the record, 9.0-RELEASE i386 has been running the test for about 2 > days on the D510 platform without any hang so far. I'll keep it > running all week-end to give me a better idea. > ... or I have been too eager to expect an amd64 only issue. Thanks to some nasty virus which stuck me in my bed for two days, I finally got FreeBSD 9.0-RELEASE i386 stuck while running a single, 4000 threads, process. I guess it's time to play with SW_WATCHDOG and DDB. As a side note, the D510 platform seem to be much harder to hang than the D525... - Arnaud From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 21:33:29 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 67B82106564A; Wed, 25 Apr 2012 21:33:29 +0000 (UTC) (envelope-from kob6558@gmail.com) Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com [209.85.212.170]) by mx1.freebsd.org (Postfix) with ESMTP id B832F8FC14; Wed, 25 Apr 2012 21:33:28 +0000 (UTC) Received: by wibhr17 with SMTP id hr17so4842034wib.1 for ; Wed, 25 Apr 2012 14:33:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=RNIaxDSqlwnP20o1xs6x8BLUa+pwspdJMwo7bBeMZVY=; b=mahdzyyzQIwOsji3GgKRfQ0hMn+o2NpfPvx0Q5PNUL55pKYIFGZyzPvcOZpd/+nr1H V+TrPMGyg/tGjaAO8c25zjiqgBNXmSNATBY5bHC3S9jOrLnu79p5N3p2/gpSMkk5m3sW He9eMYskrjRcXNnF7/puNJizoIAk3UNnJX5ff6+7lIK9by6npfoL2SM6CQPOphVcUj6z TXEWymO4FzM8l6IcQvUwu9JAbuGw0U4HzGr5MeJX1KPDgFzpz31pjkt5MuZw/ezfwXLX dYZZLtjzEP1ENk/ZwRnWAg/7C5sSAI9nBVO9sfCFx70blH14AifJxSzBhEiLeuu75Q+w vuGw== MIME-Version: 1.0 Received: by 10.180.100.2 with SMTP id eu2mr3367011wib.1.1335389602347; Wed, 25 Apr 2012 14:33:22 -0700 (PDT) Received: by 10.223.143.22 with HTTP; Wed, 25 Apr 2012 14:33:22 -0700 (PDT) In-Reply-To: <20120423081404.M46823@martymac.org> References: <201204200701.08507.erichfreebsdlist@ovitrap.com> <4F90AE77.2020408@gmail.com> <201204200825.42651.erichfreebsdlist@ovitrap.com> <20120420061417.GP37811@e-new.0x20.net> <20120423081404.M46823@martymac.org> Date: Wed, 25 Apr 2012 14:33:22 -0700 Message-ID: From: Kevin Oberman To: Ganael LAPLANCHE Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Erich Dollansky , matt , freebsd-current@freebsd.org, Lars Engels Subject: Re: Status on X220 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 21:33:29 -0000 On Mon, Apr 23, 2012 at 1:16 AM, Ganael LAPLANCHE wr= ote: > On Fri, 20 Apr 2012 08:14:17 +0200, Lars Engels wrote > > Hi everyone, > >> This is the same for my x200, but you can make it work: >> On 9.0-RELEASE you have to configure through device.hints(5), >> =A0in CURRENT you can configure it on thy fly. See snd_hda(4) >> =A0how to do this. > > FYI, this is what I had to put in /boot/devices.hint to have headset > working properly on my x220 (on 10-CURRENT) : > > # Out : speaker + headphones > # hint.hdac.0.cad0.nid31.config=3D"as=3D1" > hint.hdac.0.cad0.nid25.config=3D"as=3D1 seq=3D15" > # In : mic + external mic > hint.hdac.0.cad0.nid35.config=3D"as=3D2" > hint.hdac.0.cad0.nid27.config=3D"as=3D2 seq=3D15" After reading the man page I came up with exactly the same "fix". I tried setting it up with sysctl, but that left sound in a strange state with no speakers working at all and the headphones working badly. After a re-boot, it works as it should. Finally! Now to install the KMS patches and see if I can get full resolution video. Thanks! --=20 R. Kevin Oberman, Network Engineer E-mail: kob6558@gmail.com From owner-freebsd-current@FreeBSD.ORG Wed Apr 25 21:55:30 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7D12A1065672; Wed, 25 Apr 2012 21:55:30 +0000 (UTC) (envelope-from gleb.kurtsou@gmail.com) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id AF3EC8FC08; Wed, 25 Apr 2012 21:55:29 +0000 (UTC) Received: by lagv3 with SMTP id v3so589249lag.13 for ; Wed, 25 Apr 2012 14:55:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=5wPfKQO9dwsdCdXIzxOIhnUNT0StKAq2J+HsZpinm8E=; b=uoMYxlolK9cgFg21xiDyNcPNWj4rOFWupe9/Ppv4BUGWEw6Y8AF1uTEDszWyYE8K7/ sLc1gSnPrPwFVDwIGLGedGX4/qCH6nJZHH+GOAltVxoI4BhE+z2Mi8YMa5r4lgsvYSjw kH3yIRMapIfb1oLbzVX59uLycIu+tDnWrCMPLFQliXJD/YLAOvNVYSX5mczT/7cH2w0L gtrzFztDzecR1BmQcb/dv4W9AqBiJWJxe+AduYpaVJe9wQJheJmRpF0sstXhgzLvXoSD WHK4aKV1aaK5J3dpYvbDApLifxr/IxfCGCEUOGsZVXhr03gHzOQsBSX2ubzz8ka13chq CnJA== Received: by 10.112.23.200 with SMTP id o8mr2173872lbf.21.1335390928584; Wed, 25 Apr 2012 14:55:28 -0700 (PDT) Received: from localhost ([78.157.92.5]) by mx.google.com with ESMTPS id q5sm1140625lbd.13.2012.04.25.14.55.26 (version=SSLv3 cipher=OTHER); Wed, 25 Apr 2012 14:55:27 -0700 (PDT) Date: Thu, 26 Apr 2012 00:55:27 +0300 From: Gleb Kurtsou To: Ganael LAPLANCHE Message-ID: <20120425215526.GA1180@reks> References: <201204200701.08507.erichfreebsdlist@ovitrap.com> <4F90AE77.2020408@gmail.com> <201204200825.42651.erichfreebsdlist@ovitrap.com> <20120420061417.GP37811@e-new.0x20.net> <20120423081404.M46823@martymac.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20120423081404.M46823@martymac.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: Erich Dollansky , matt , freebsd-current@freebsd.org, Lars Engels Subject: Re: Status on X220 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Apr 2012 21:55:30 -0000 On (23/04/2012 08:16), Ganael LAPLANCHE wrote: > On Fri, 20 Apr 2012 08:14:17 +0200, Lars Engels wrote > > Hi everyone, > > > This is the same for my x200, but you can make it work: > > On 9.0-RELEASE you have to configure through device.hints(5), > > in CURRENT you can configure it on thy fly. See snd_hda(4) > > how to do this. > > FYI, this is what I had to put in /boot/devices.hint to have headset > working properly on my x220 (on 10-CURRENT) : > > # Out : speaker + headphones > # hint.hdac.0.cad0.nid31.config="as=1" > hint.hdac.0.cad0.nid25.config="as=1 seq=15" > # In : mic + external mic > hint.hdac.0.cad0.nid35.config="as=2" > hint.hdac.0.cad0.nid27.config="as=2 seq=15" Just for the record, it also works for ThinkPad T520. I've always been too lazy to read man page myself ;) Thanks! From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 04:37:42 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 63C34106564A; Thu, 26 Apr 2012 04:37:42 +0000 (UTC) (envelope-from tim@kientzle.com) Received: from monday.kientzle.com (99-115-135-74.uvs.sntcca.sbcglobal.net [99.115.135.74]) by mx1.freebsd.org (Postfix) with ESMTP id 3C18C8FC08; Thu, 26 Apr 2012 04:37:42 +0000 (UTC) Received: (from root@localhost) by monday.kientzle.com (8.14.4/8.14.4) id q3Q4baJ1080174; Thu, 26 Apr 2012 04:37:36 GMT (envelope-from tim@kientzle.com) Received: from [192.168.2.143] (CiscoE3000 [192.168.1.65]) by kientzle.com with SMTP id yqh3pzs8ekmfwrfpv27etkwmga; Thu, 26 Apr 2012 04:37:36 +0000 (UTC) (envelope-from tim@kientzle.com) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: text/plain; charset=us-ascii From: Tim Kientzle In-Reply-To: <0D8D93F3-5919-4A48-9BB2-887E4420C162@freebsd.org> Date: Wed, 25 Apr 2012 21:37:36 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: References: <7FC153A1-8815-4BAE-AB94-FED51DBFFEAA@freebsd.org> <20120425163949.GA53937@lo0.su> <0D8D93F3-5919-4A48-9BB2-887E4420C162@freebsd.org> To: Jason Evans X-Mailer: Apple Mail (2.1257) Cc: freebsd-current@freebsd.org Subject: Re: HEADSUP: /etc/malloc.conf format change X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 04:37:42 -0000 On Apr 25, 2012, at 10:43 AM, Jason Evans wrote: >=20 > On a related note, is there any way to find all ports that refer to = _malloc_options without extracting source for all of them? I considered = being proactive about finding software that depends on _malloc_options, = but no tractable approaches came to mind. Yes, there actually is. The Ports maintainers will run "experimental" ports builds on the port build clusters to help verify potentially disruptive changes like this before they are committed. Ask on ports@ for more details. Tim From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 04:50:05 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6E49B106564A; Thu, 26 Apr 2012 04:50:05 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from mail.soaustin.net (pancho.soaustin.net [76.74.250.40]) by mx1.freebsd.org (Postfix) with ESMTP id 446C58FC0A; Thu, 26 Apr 2012 04:50:05 +0000 (UTC) Received: by mail.soaustin.net (Postfix, from userid 502) id 9417356205; Wed, 25 Apr 2012 23:49:59 -0500 (CDT) Date: Wed, 25 Apr 2012 23:49:59 -0500 From: Mark Linimon To: Tim Kientzle Message-ID: <20120426044959.GD20221@lonesome.com> References: <7FC153A1-8815-4BAE-AB94-FED51DBFFEAA@freebsd.org> <20120425163949.GA53937@lo0.su> <0D8D93F3-5919-4A48-9BB2-887E4420C162@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) Cc: freebsd-current@freebsd.org, Jason Evans Subject: Re: HEADSUP: /etc/malloc.conf format change X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 04:50:05 -0000 On Wed, Apr 25, 2012 at 09:37:36PM -0700, Tim Kientzle wrote: > The Ports maintainers will run "experimental" ports builds on the > port build clusters to help verify potentially disruptive changes > like this before they are committed. Well, actually, portmgr@. Send a PR with [exp-run] in the Synopsis and assign it to portmgr. We are slowly trying to get caught up, now that we have new hardware. mcl From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 07:56:16 2012 Return-Path: Delivered-To: current@freebsd.org Received: from lo0.su (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by hub.freebsd.org (Postfix) with ESMTP id 55BCA106564A; Thu, 26 Apr 2012 07:56:15 +0000 (UTC) (envelope-from ru@freebsd.org) Date: Thu, 26 Apr 2012 11:56:14 +0400 From: Ruslan Ermilov To: Jason Evans Message-ID: <20120426075614.GB51611@lo0.su> References: <7FC153A1-8815-4BAE-AB94-FED51DBFFEAA@freebsd.org> <20120425163949.GA53937@lo0.su> <0D8D93F3-5919-4A48-9BB2-887E4420C162@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <0D8D93F3-5919-4A48-9BB2-887E4420C162@freebsd.org> Cc: current@freebsd.org Subject: Re: HEADSUP: /etc/malloc.conf format change X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 07:56:16 -0000 On Wed, Apr 25, 2012 at 10:43:59AM -0700, Jason Evans wrote: > On Apr 25, 2012, at 9:39 AM, Ruslan Ermilov wrote: > > So you removed _malloc_options that was part of the documented > > programming API, while some software made use of it. [...] > > Please explore the possibility to add backwards compatiblity for > > the documented API, or at the very least provide a mean to > > detect this otherwise disruptive and hard to detect change > > for a programmer. > > A __FreeBSD_version bump seems like a good idea to me, but > adding backward compatibility for _malloc_options is > questionable at best. Of the 17 options that _malloc_options > supported, only 6 have directly corresponding options in > malloc_conf, plus another 3 that would present strange quirks > (fragile and difficult to precisely document) if an attempt > were made to provide compatibility. In past iterations I was > always careful to provide as much option compatibility as > possible over the lifetime of each release (e.g., 'H' in > RELENG_7), but individual options came and went with major > releases. > > _malloc_options could only be pushed so far, and when it hit > its breaking point I replaced it. Creaky compatibility is IMO > a liability rather than an asset. In the case of nginx, it > looks like a __FreeBSD_version bump is exactly what it needs. > I'll try to get that done today. Well, thanks for that, and for all your hard work with malloc(). > On a related note, is there any way to find all ports that > refer to _malloc_options without extracting source for all of > them? I considered being proactive about finding software that > depends on _malloc_options, but no tractable approaches came to > mind. That was already answered by Mark. -- Ruslan Ermilov ru@FreeBSD.org FreeBSD committer From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 09:36:09 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 40A3D106566B; Thu, 26 Apr 2012 09:36:09 +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 9B08D8FC08; Thu, 26 Apr 2012 09:36:08 +0000 (UTC) Received: from skuns.kiev.zoral.com.ua (localhost [127.0.0.1]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id q3Q9ZohB060021; Thu, 26 Apr 2012 12:35:50 +0300 (EEST) (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.5/8.14.5) with ESMTP id q3Q9ZnvS052823; Thu, 26 Apr 2012 12:35:49 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5/Submit) id q3Q9ZngZ052822; Thu, 26 Apr 2012 12:35:49 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 26 Apr 2012 12:35:48 +0300 From: Konstantin Belousov To: toolchain@freebsd.org Message-ID: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="I1idRxCkzV0Ng7xp" Content-Disposition: inline User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.0 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: current@freebsd.org Subject: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 09:36:09 -0000 --I1idRxCkzV0Ng7xp Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable I think it is time to stop building the toolchain static. I was told that original reasoning for static linking was the fear of loosing the ability to recompile if some problem appears with rtld and any required dynamic library. Apparently, current dependencies are much more spread, e.g. /bin/sh is dynamically linked, and statically linked make does not solve anything. Patch below makes the dynamically linked toolchain a default, adding an WITHOUT_SHARED_TOOLCHAIN build-time option for real conservators. I did not looked in details why including bsd.own.mk makes NO_MAN non-functional. Please see the diffs for gnu/usr.bin/cc1*/Makefile. gnu/usr.bin/binutils/ar/Makefile | 3 +++ gnu/usr.bin/binutils/as/Makefile | 3 +++ gnu/usr.bin/binutils/ld/Makefile | 3 +++ gnu/usr.bin/binutils/ranlib/Makefile | 3 +++ gnu/usr.bin/cc/cc/Makefile | 2 ++ gnu/usr.bin/cc/cc1/Makefile | 5 ++++- gnu/usr.bin/cc/cc1plus/Makefile | 5 ++++- share/mk/bsd.own.mk | 3 ++- tools/build/options/WITH_STATIC_TOOLCHAIN | 6 ++++++ usr.bin/ar/Makefile | 4 ++++ usr.bin/make/Makefile | 4 ++++ 11 files changed, 38 insertions(+), 3 deletions(-) diff --git a/gnu/usr.bin/binutils/ar/Makefile b/gnu/usr.bin/binutils/ar/Mak= efile index 464445e..e26be85 100644 --- a/gnu/usr.bin/binutils/ar/Makefile +++ b/gnu/usr.bin/binutils/ar/Makefile @@ -1,6 +1,7 @@ # $FreeBSD$ =20 .include "../Makefile.inc0" +.include =20 .PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc =20 @@ -16,7 +17,9 @@ CFLAGS+=3D -D_GNU_SOURCE CFLAGS+=3D -I${.CURDIR}/${RELTOP}/libbinutils CFLAGS+=3D -I${SRCDIR}/binutils CFLAGS+=3D -I${SRCDIR}/bfd +.if ${MK_SHARED_TOOLCHAIN} !=3D "no" NO_SHARED?=3D yes +.endif DPADD=3D ${RELTOP}/libbinutils/libbinutils.a DPADD+=3D ${RELTOP}/libbfd/libbfd.a DPADD+=3D ${RELTOP}/libiberty/libiberty.a diff --git a/gnu/usr.bin/binutils/as/Makefile b/gnu/usr.bin/binutils/as/Mak= efile index bf8df81..a39918c 100644 --- a/gnu/usr.bin/binutils/as/Makefile +++ b/gnu/usr.bin/binutils/as/Makefile @@ -4,6 +4,7 @@ # BINDIR .include "${.CURDIR}/../../Makefile.inc" .include "${.CURDIR}/../Makefile.inc0" +.include =20 .PATH: ${SRCDIR}/gas ${SRCDIR}/gas/config =20 @@ -79,7 +80,9 @@ CFLAGS+=3D -D_GNU_SOURCE CFLAGS+=3D -I${SRCDIR}/gas -I${SRCDIR}/bfd -I${SRCDIR}/gas/config -I${SRCD= IR} CFLAGS+=3D -I${.CURDIR} -I${.CURDIR}/${TARGET_CPUARCH}-freebsd =20 +.if ${MK_SHARED_TOOLCHAIN} !=3D "no" NO_SHARED?=3D yes +.endif =20 DPADD=3D ${RELTOP}/libbfd/libbfd.a DPADD+=3D ${RELTOP}/libiberty/libiberty.a diff --git a/gnu/usr.bin/binutils/ld/Makefile b/gnu/usr.bin/binutils/ld/Mak= efile index d4420ed..50d88b5 100644 --- a/gnu/usr.bin/binutils/ld/Makefile +++ b/gnu/usr.bin/binutils/ld/Makefile @@ -1,6 +1,7 @@ # $FreeBSD$ =20 .include "../Makefile.inc0" +.include =20 .PATH: ${SRCDIR}/ld =20 @@ -34,7 +35,9 @@ CFLAGS+=3D -DBINDIR=3D\"${BINDIR}\" -DTARGET_SYSTEM_ROOT= =3D\"${TOOLS_PREFIX}\" CFLAGS+=3D -DTOOLBINDIR=3D\"${TOOLS_PREFIX}/${BINDIR}/libexec\" CFLAGS+=3D -D_GNU_SOURCE CFLAGS+=3D -I${SRCDIR}/ld -I${SRCDIR}/bfd +.if ${MK_SHARED_TOOLCHAIN} !=3D "no" NO_SHARED?=3D yes +.endif DPADD=3D ${RELTOP}/libbfd/libbfd.a DPADD+=3D ${RELTOP}/libiberty/libiberty.a LDADD=3D ${DPADD} diff --git a/gnu/usr.bin/binutils/ranlib/Makefile b/gnu/usr.bin/binutils/ra= nlib/Makefile index 8679375..6d4b13e 100644 --- a/gnu/usr.bin/binutils/ranlib/Makefile +++ b/gnu/usr.bin/binutils/ranlib/Makefile @@ -1,6 +1,7 @@ # $FreeBSD$ =20 .include "../Makefile.inc0" +.include =20 .PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc =20 @@ -16,7 +17,9 @@ CFLAGS+=3D -D_GNU_SOURCE CFLAGS+=3D -I${.CURDIR}/${RELTOP}/libbinutils CFLAGS+=3D -I${SRCDIR}/binutils CFLAGS+=3D -I${SRCDIR}/bfd +.if ${MK_SHARED_TOOLCHAIN} !=3D "no" NO_SHARED?=3D yes +.endif DPADD=3D ${RELTOP}/libbinutils/libbinutils.a DPADD+=3D ${RELTOP}/libbfd/libbfd.a DPADD+=3D ${RELTOP}/libiberty/libiberty.a diff --git a/gnu/usr.bin/cc/cc/Makefile b/gnu/usr.bin/cc/cc/Makefile index 78c83a5..6a65d69 100644 --- a/gnu/usr.bin/cc/cc/Makefile +++ b/gnu/usr.bin/cc/cc/Makefile @@ -9,7 +9,9 @@ PROG=3D gcc MAN=3D gcc.1 SRCS+=3D gccspec.c =20 +.if ${MK_SHARED_TOOLCHAIN} !=3D "no" NO_SHARED?=3Dyes +.endif =20 MLINKS=3D gcc.1 g++.1 .if ${MK_CLANG_IS_CC} =3D=3D "no" diff --git a/gnu/usr.bin/cc/cc1/Makefile b/gnu/usr.bin/cc/cc1/Makefile index c65acd2..bb8fe19 100644 --- a/gnu/usr.bin/cc/cc1/Makefile +++ b/gnu/usr.bin/cc/cc1/Makefile @@ -1,14 +1,17 @@ # $FreeBSD$ =20 .include "../Makefile.inc" +.include =20 .PATH: ${GCCDIR} =20 PROG=3D cc1 SRCS=3D main.c c-parser.c c-lang.c BINDIR=3D /usr/libexec -NO_MAN=3D +MAN=3D +.if ${MK_SHARED_TOOLCHAIN} !=3D "no" NO_SHARED?=3Dyes +.endif =20 OBJS+=3D ${PROG}-checksum.o DPADD=3D ${LIBBACKEND} ${LIBCPP} ${LIBDECNUMBER} ${LIBIBERTY} diff --git a/gnu/usr.bin/cc/cc1plus/Makefile b/gnu/usr.bin/cc/cc1plus/Makef= ile index 964d20f..0bcbe61 100644 --- a/gnu/usr.bin/cc/cc1plus/Makefile +++ b/gnu/usr.bin/cc/cc1plus/Makefile @@ -1,6 +1,7 @@ # $FreeBSD$ =20 .include "../Makefile.inc" +.include =20 .PATH: ${GCCDIR}/cp ${GCCDIR} =20 @@ -13,8 +14,10 @@ SRCS+=3D main.c cp-lang.c c-opts.c call.c class.c cvt.c = cxx-pretty-print.c \ cp-objcp-common.c cp-gimplify.c tree-mudflap.c =20 BINDIR=3D /usr/libexec -NO_MAN=3D +MAN=3D +.if ${MK_SHARED_TOOLCHAIN} !=3D "no" NO_SHARED?=3Dyes +.endif =20 CFLAGS+=3D -I${GCCDIR}/cp -I. =20 diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk index 55d6ba2..b0acbfd 100644 --- a/share/mk/bsd.own.mk +++ b/share/mk/bsd.own.mk @@ -425,7 +425,8 @@ __DEFAULT_NO_OPTIONS =3D \ ICONV \ IDEA \ LIBCPLUSPLUS \ - OFED + OFED \ + SHARED_TOOLCHAIN =20 # # Default behaviour of some options depends on the architecture. Unfortun= ately diff --git a/tools/build/options/WITH_STATIC_TOOLCHAIN b/tools/build/option= s/WITH_STATIC_TOOLCHAIN new file mode 100644 index 0000000..fa96a9f --- /dev/null +++ b/tools/build/options/WITH_STATIC_TOOLCHAIN @@ -0,0 +1,6 @@ +.\" $FreeBSD$ +Set to build the toolchain binaries static. +The set includes +.Xr cc 1 , +.Xr make 1 +and neccessary utilites like assembler, linker and librarian. \ No newline at end of file diff --git a/usr.bin/ar/Makefile b/usr.bin/ar/Makefile index e373120..72d1244 100644 --- a/usr.bin/ar/Makefile +++ b/usr.bin/ar/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ =20 +.include + PROG=3D ar SRCS=3D ar.c acplex.l acpyacc.y read.c util.c write.c y.tab.h =20 @@ -8,7 +10,9 @@ LDADD=3D -larchive -lelf =20 CFLAGS+=3D-I. -I${.CURDIR} =20 +.if ${MK_SHARED_TOOLCHAIN} !=3D "no" NO_SHARED?=3D yes +.endif LINKS=3D ${BINDIR}/ar ${BINDIR}/ranlib MLINKS=3D ar.1 ranlib.1 =20 diff --git a/usr.bin/make/Makefile b/usr.bin/make/Makefile index 2dc7e58..40243ed 100644 --- a/usr.bin/make/Makefile +++ b/usr.bin/make/Makefile @@ -2,13 +2,17 @@ # $Id: Makefile,v 1.6 1994/06/30 05:33:39 cgd Exp $ # $FreeBSD$ =20 +.include + PROG=3D make CFLAGS+=3D-I${.CURDIR} SRCS=3D arch.c buf.c cond.c dir.c for.c hash.c hash_tables.c job.c \ lst.c main.c make.c parse.c proc.c shell.c str.c suff.c targ.c \ util.c var.c =20 +.if ${MK_SHARED_TOOLCHAIN} !=3D "no" NO_SHARED?=3D YES +.endif =20 # Version has the RYYYYMMDDX format, where R is from RELENG_ CFLAGS+=3D-DMAKE_VERSION=3D\"5201111300\" --I1idRxCkzV0Ng7xp Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (FreeBSD) iEYEARECAAYFAk+ZFvQACgkQC3+MBN1Mb4ioDwCg0FGDd5XQ+B2gBxn5oMqGES3L hWwAmQH5aBsob67rbB2j4fzmC7K9NUo/ =vXCV -----END PGP SIGNATURE----- --I1idRxCkzV0Ng7xp-- From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 09:41:17 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 811E3106566B; Thu, 26 Apr 2012 09:41:17 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from mail.made4.biz (unknown [IPv6:2001:41d0:1:7018::1:3]) by mx1.freebsd.org (Postfix) with ESMTP id E93758FC08; Thu, 26 Apr 2012 09:41:16 +0000 (UTC) Received: from [2001:1b48:10b:cafe:225:64ff:febe:589f] (helo=viking.yzserv.com) by mail.made4.biz with esmtpsa (TLSv1:DHE-RSA-CAMELLIA256-SHA:256) (Exim 4.77 (FreeBSD)) (envelope-from ) id 1SNLCM-000BQz-VZ; Thu, 26 Apr 2012 11:41:15 +0200 Message-ID: <4F99183A.5060406@FreeBSD.org> Date: Thu, 26 Apr 2012 11:41:14 +0200 From: =?UTF-8?B?SmVhbi1Tw6liYXN0aWVuIFDDqWRyb24=?= User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:12.0) Gecko/20120425 Thunderbird/12.0 MIME-Version: 1.0 To: Dimitry Andric References: <4F9703C9.8080503@FreeBSD.org> <4F98492D.8070006@FreeBSD.org> <4F984CC2.5080404@passap.ru> <4F985334.8030109@FreeBSD.org> In-Reply-To: <4F985334.8030109@FreeBSD.org> X-Enigmail-Version: 1.4 Content-Type: multipart/mixed; boundary="------------050107050902060602000802" Cc: freebsd-current@freebsd.org, Boris Samorodov Subject: Re: segfault in vfscanf(3): clang and __restrict usage X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 09:41:17 -0000 This is a multi-part message in MIME format. --------------050107050902060602000802 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 25.04.2012 21:40, Dimitry Andric wrote: > I think the easiest solution for now is to #undef __restrict at the > top of both lib/libc/stdio/vfscanf.c and lib/libc/stdio/vfwscanf.c, > then recompile and reinstall libc. I attached a patch that removes the __restrict keyword in the convert_* functions because I believe it's incorrect. In vfscanf.c, I kept the last one in parseint() because I believe it's correct: the restricted pointer is used to initialized another one and comparisons are made only between those two pointers. But I didn't check if clang optimized out the comparisons. What do you think about the correctness here? We can't remove it in vfwscanf(), vfwscanf_l() and __vfwscanf() (vfwscanf.c) because it's required by the vfwscanf(3) API. The patch also removes some trailing whitespaces while here. I'm rebuilding world with this patch and will check that cmake is working again (the program which shows segfaults for me). Boris, could you please test it and tell me if cupsd works again for you too? You just need to rebuild/reinstall the libc, not cups. Dimitry, thank you for the reporting the problem to LLVM! - -- Jean-Sébastien Pédron -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk+ZGDoACgkQa+xGJsFYOlOA4ACdH7vH4XfjH6nxcV/axmAYKUKq 8hoAoMrfly9RkUL0UKSKsmbxIiBz2YZy =GFTc -----END PGP SIGNATURE----- --------------050107050902060602000802 Content-Type: text/plain; charset=UTF-8; name="vfscanf-remove-incorrect-restrict-qualifiers.1.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="vfscanf-remove-incorrect-restrict-qualifiers.1.patch" ZGlmZiAtLWdpdCBhL2xpYi9saWJjL3N0ZGlvL3Zmc2NhbmYuYyBiL2xpYi9saWJjL3N0ZGlv L3Zmc2NhbmYuYwppbmRleCA2YTZiMTljLi41MzE2YTdjIDEwMDY0NAotLS0gYS9saWIvbGli Yy9zdGRpby92ZnNjYW5mLmMKKysrIGIvbGliL2xpYmMvc3RkaW8vdmZzY2FuZi5jCkBAIC0x MjUsNyArMTI1LDcgQEAgc3RhdGljIGNvbnN0IG1ic3RhdGVfdCBpbml0aWFsX21iczsKICAq LwogCiBzdGF0aWMgX19pbmxpbmUgaW50Ci1jb252ZXJ0X2NoYXIoRklMRSAqZnAsIGNoYXIg KiBfX3Jlc3RyaWN0IHAsIGludCB3aWR0aCkKK2NvbnZlcnRfY2hhcihGSUxFICpmcCwgY2hh ciAqIHAsIGludCB3aWR0aCkKIHsKIAlpbnQgbiwgbnJlYWQ7CiAKQEAgLTE1Miw3ICsxNTIs NyBAQCBjb252ZXJ0X2NoYXIoRklMRSAqZnAsIGNoYXIgKiBfX3Jlc3RyaWN0IHAsIGludCB3 aWR0aCkKIAkJbnJlYWQgKz0gc3VtOwogCX0gZWxzZSB7CiAJCXNpemVfdCByID0gX19mcmVh ZChwLCAxLCB3aWR0aCwgZnApOwotCQkKKwogCQlpZiAociA9PSAwKQogCQkJcmV0dXJuICgt MSk7CiAJCW5yZWFkICs9IHI7CkBAIC0yMDUsNyArMjA1LDcgQEAgY29udmVydF93Y2hhcihG SUxFICpmcCwgd2NoYXJfdCAqd2NwLCBpbnQgd2lkdGgpCiB9CiAKIHN0YXRpYyBfX2lubGlu ZSBpbnQKLWNvbnZlcnRfY2NsKEZJTEUgKmZwLCBjaGFyICogX19yZXN0cmljdCBwLCBpbnQg d2lkdGgsIGNvbnN0IGNoYXIgKmNjbHRhYikKK2NvbnZlcnRfY2NsKEZJTEUgKmZwLCBjaGFy ICogcCwgaW50IHdpZHRoLCBjb25zdCBjaGFyICpjY2x0YWIpCiB7CiAJY2hhciAqcDA7CiAJ aW50IG47CkBAIC0zMDQsNyArMzA0LDcgQEAgY29udmVydF93Y2NsKEZJTEUgKmZwLCB3Y2hh cl90ICp3Y3AsIGludCB3aWR0aCwgY29uc3QgY2hhciAqY2NsdGFiKQogfQogCiBzdGF0aWMg X19pbmxpbmUgaW50Ci1jb252ZXJ0X3N0cmluZyhGSUxFICpmcCwgY2hhciAqIF9fcmVzdHJp Y3QgcCwgaW50IHdpZHRoKQorY29udmVydF9zdHJpbmcoRklMRSAqZnAsIGNoYXIgKiBwLCBp bnQgd2lkdGgpCiB7CiAJY2hhciAqcDA7CiAJaW50IG47CkBAIC00NjcsNyArNDY3LDcgQEAg cGFyc2VpbnQoRklMRSAqZnAsIGNoYXIgKiBfX3Jlc3RyaWN0IGJ1ZiwgaW50IHdpZHRoLCBp bnQgYmFzZSwgaW50IGZsYWdzKQogCQkJCWdvdG8gb2s7CiAJCQl9CiAJCQlicmVhazsKLQkJ CQkJCisKIAkJLyoKIAkJICogeCBvayBpZmYgZmxhZyBzdGlsbCBzZXQgJiAybmQgY2hhciAo b3IgM3JkIGNoYXIgaWYKIAkJICogd2UgaGF2ZSBhIHNpZ24pLgpkaWZmIC0tZ2l0IGEvbGli L2xpYmMvc3RkaW8vdmZ3c2NhbmYuYyBiL2xpYi9saWJjL3N0ZGlvL3Zmd3NjYW5mLmMKaW5k ZXggNmI0ZDhjNS4uOWQ2MjhiMCAxMDA2NDQKLS0tIGEvbGliL2xpYmMvc3RkaW8vdmZ3c2Nh bmYuYworKysgYi9saWIvbGliYy9zdGRpby92ZndzY2FuZi5jCkBAIC0xMzgsNyArMTM4LDcg QEAgc3RhdGljIGNvbnN0IG1ic3RhdGVfdCBpbml0aWFsX21iczsKICAqLwogCiBzdGF0aWMg X19pbmxpbmUgaW50Ci1jb252ZXJ0X2NoYXIoRklMRSAqZnAsIGNoYXIgKiBfX3Jlc3RyaWN0 IG1icCwgaW50IHdpZHRoLCBsb2NhbGVfdCBsb2NhbGUpCitjb252ZXJ0X2NoYXIoRklMRSAq ZnAsIGNoYXIgKiBtYnAsIGludCB3aWR0aCwgbG9jYWxlX3QgbG9jYWxlKQogewogCW1ic3Rh dGVfdCBtYnM7CiAJc2l6ZV90IG5jb252OwpAQCAtMTkyLDcgKzE5Miw3IEBAIGNvbnZlcnRf d2NoYXIoRklMRSAqZnAsIHdjaGFyX3QgKndjcCwgaW50IHdpZHRoLCBsb2NhbGVfdCBsb2Nh bGUpCiB9CiAKIHN0YXRpYyBfX2lubGluZSBpbnQKLWNvbnZlcnRfY2NsKEZJTEUgKmZwLCBj aGFyICogX19yZXN0cmljdCBtYnAsIGludCB3aWR0aCwgY29uc3Qgc3RydWN0IGNjbCAqY2Ns LAorY29udmVydF9jY2woRklMRSAqZnAsIGNoYXIgKiBtYnAsIGludCB3aWR0aCwgY29uc3Qg c3RydWN0IGNjbCAqY2NsLAogICAgIGxvY2FsZV90IGxvY2FsZSkKIHsKIAltYnN0YXRlX3Qg bWJzOwpAQCAtMjYxLDcgKzI2MSw3IEBAIGNvbnZlcnRfd2NjbChGSUxFICpmcCwgd2NoYXJf dCAqd2NwLCBpbnQgd2lkdGgsIGNvbnN0IHN0cnVjdCBjY2wgKmNjbCwKIH0KIAogc3RhdGlj IF9faW5saW5lIGludAotY29udmVydF9zdHJpbmcoRklMRSAqZnAsIGNoYXIgKiBfX3Jlc3Ry aWN0IG1icCwgaW50IHdpZHRoLCBsb2NhbGVfdCBsb2NhbGUpCitjb252ZXJ0X3N0cmluZyhG SUxFICpmcCwgY2hhciAqIG1icCwgaW50IHdpZHRoLCBsb2NhbGVfdCBsb2NhbGUpCiB7CiAJ bWJzdGF0ZV90IG1iczsKIAlzaXplX3QgbmNvbnY7CkBAIC00MDcsNyArNDA3LDcgQEAgcGFy c2VpbnQoRklMRSAqZnAsIHdjaGFyX3QgKmJ1ZiwgaW50IHdpZHRoLCBpbnQgYmFzZSwgaW50 IGZsYWdzLAogCQkJCWdvdG8gb2s7CiAJCQl9CiAJCQlicmVhazsKLQkJCQkJCisKIAkJLyoK IAkJICogeCBvayBpZmYgZmxhZyBzdGlsbCBzZXQgJiAybmQgY2hhciAob3IgM3JkIGNoYXIg aWYKIAkJICogd2UgaGF2ZSBhIHNpZ24pLgo= --------------050107050902060602000802-- From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 11:41:42 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 90C8B106566B; Thu, 26 Apr 2012 11:41:42 +0000 (UTC) (envelope-from rb@gid.co.uk) Received: from mx0.gid.co.uk (mx0.gid.co.uk [194.32.164.250]) by mx1.freebsd.org (Postfix) with ESMTP id 28B4F8FC0A; Thu, 26 Apr 2012 11:41:41 +0000 (UTC) Received: from [194.32.164.22] (80-46-130-69.static.dsl.as9105.com [80.46.130.69]) by mx0.gid.co.uk (8.14.2/8.14.2) with ESMTP id q3QBcGgv077485; Thu, 26 Apr 2012 12:38:16 +0100 (BST) (envelope-from rb@gid.co.uk) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: Bob Bishop In-Reply-To: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> Date: Thu, 26 Apr 2012 12:38:03 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> To: Konstantin Belousov X-Pgp-Agent: GPGMail 1.3.3 X-Mailer: Apple Mail (2.1084) Cc: toolchain@freebsd.org, current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 11:41:42 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, On 26 Apr 2012, at 10:35, Konstantin Belousov wrote: > I think it is time to stop building the toolchain static. I was told = that > original reasoning for static linking was the fear of loosing the = ability > to recompile if some problem appears with rtld and any required = dynamic > library. Apparently, current dependencies are much more spread, e.g. = /bin/sh > is dynamically linked [etc] That seems like a bad mistake, because it would prevent even booting = single-user if rtld/libraries are broken. - -- Bob Bishop rb@gid.co.uk -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.4 (Darwin) iD8DBQFPmTOivMaT6aS3xb8RAi1NAJ4gyvwPgdqtZjAERJ0grBsZYo5xBQCgikdo P4LXwI1rAbA23+29XWVV8w4=3D =3Di8e3 -----END PGP SIGNATURE----- From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 12:01:02 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 501151065675; Thu, 26 Apr 2012 12:01:02 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id 246058FC1D; Thu, 26 Apr 2012 12:01:02 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 415AAB94A; Thu, 26 Apr 2012 08:01:01 -0400 (EDT) From: John Baldwin To: freebsd-current@freebsd.org Date: Thu, 26 Apr 2012 07:52:01 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p13; KDE/4.5.5; amd64; ; ) References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> In-Reply-To: <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201204260752.01127.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Thu, 26 Apr 2012 08:01:01 -0400 (EDT) Cc: Konstantin Belousov , toolchain@freebsd.org, current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 12:01:02 -0000 On Thursday, April 26, 2012 7:38:03 am Bob Bishop wrote: > Hi, > > On 26 Apr 2012, at 10:35, Konstantin Belousov wrote: > > > I think it is time to stop building the toolchain static. I was told that > > original reasoning for static linking was the fear of loosing the ability > > to recompile if some problem appears with rtld and any required dynamic > > library. Apparently, current dependencies are much more spread, e.g. /bin/sh > > is dynamically linked [etc] > > That seems like a bad mistake, because it would prevent even booting single- user if rtld/libraries are broken. You could use /rescue/sh as your single-user shell. Of course, that would perhaps let you still be able to recompile things if you had a static toolchain. :) -- John Baldwin From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 12:01:02 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 501151065675; Thu, 26 Apr 2012 12:01:02 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id 246058FC1D; Thu, 26 Apr 2012 12:01:02 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 415AAB94A; Thu, 26 Apr 2012 08:01:01 -0400 (EDT) From: John Baldwin To: freebsd-current@freebsd.org Date: Thu, 26 Apr 2012 07:52:01 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p13; KDE/4.5.5; amd64; ; ) References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> In-Reply-To: <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201204260752.01127.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Thu, 26 Apr 2012 08:01:01 -0400 (EDT) Cc: Konstantin Belousov , toolchain@freebsd.org, current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 12:01:02 -0000 On Thursday, April 26, 2012 7:38:03 am Bob Bishop wrote: > Hi, > > On 26 Apr 2012, at 10:35, Konstantin Belousov wrote: > > > I think it is time to stop building the toolchain static. I was told that > > original reasoning for static linking was the fear of loosing the ability > > to recompile if some problem appears with rtld and any required dynamic > > library. Apparently, current dependencies are much more spread, e.g. /bin/sh > > is dynamically linked [etc] > > That seems like a bad mistake, because it would prevent even booting single- user if rtld/libraries are broken. You could use /rescue/sh as your single-user shell. Of course, that would perhaps let you still be able to recompile things if you had a static toolchain. :) -- John Baldwin From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 12:01:12 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1170E1065886; Thu, 26 Apr 2012 12:01:12 +0000 (UTC) (envelope-from erik@cederstrand.dk) Received: from csmtp3.one.com (csmtp3.one.com [91.198.169.23]) by mx1.freebsd.org (Postfix) with ESMTP id C65EE8FC0A; Thu, 26 Apr 2012 12:01:11 +0000 (UTC) Received: from [192.168.1.15] (unknown [217.157.7.221]) by csmtp3.one.com (Postfix) with ESMTPA id B271724064DC; Thu, 26 Apr 2012 12:01:08 +0000 (UTC) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: text/plain; charset=us-ascii From: Erik Cederstrand In-Reply-To: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> Date: Thu, 26 Apr 2012 14:01:08 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> To: Konstantin Belousov X-Mailer: Apple Mail (2.1257) Cc: toolchain@freebsd.org, current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 12:01:12 -0000 Den 26/04/2012 kl. 11.35 skrev Konstantin Belousov: > I think it is time to stop building the toolchain static. I was told = that > original reasoning for static linking was the fear of loosing the = ability > to recompile if some problem appears with rtld and any required = dynamic > library. Apparently, current dependencies are much more spread, e.g. = /bin/sh > is dynamically linked, and statically linked make does not solve = anything. What are the benefits, apart from using a bit less disk space overall? Apparently, toolchain bits aren't considered important enough to be = included in /rescue. Maybe they need to be, if the assumption currently = is that the compiler will (almost) always work. Erik= From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 11:53:57 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 861151065670; Thu, 26 Apr 2012 11:53:57 +0000 (UTC) (envelope-from theraven@theravensnest.org) Received: from theravensnest.org (theraven.freebsd.your.org [216.14.102.27]) by mx1.freebsd.org (Postfix) with ESMTP id 5144B8FC21; Thu, 26 Apr 2012 11:53:57 +0000 (UTC) Received: from [192.168.0.2] (cpc1-cwma8-2-0-cust171.7-3.cable.virginmedia.com [82.20.152.172]) (authenticated bits=0) by theravensnest.org (8.14.5/8.14.5) with ESMTP id q3QBrmFK071697 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES128-SHA bits=128 verify=NO); Thu, 26 Apr 2012 11:53:49 GMT (envelope-from theraven@theravensnest.org) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: text/plain; charset=us-ascii From: David Chisnall In-Reply-To: <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> Date: Thu, 26 Apr 2012 12:53:45 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> To: Bob Bishop X-Mailer: Apple Mail (2.1257) X-Mailman-Approved-At: Thu, 26 Apr 2012 12:01:27 +0000 Cc: Konstantin Belousov , toolchain@freebsd.org, current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 11:53:57 -0000 On 26 Apr 2012, at 12:38, Bob Bishop wrote: > Hi, >=20 > On 26 Apr 2012, at 10:35, Konstantin Belousov wrote: >=20 >> I think it is time to stop building the toolchain static. I was told = that >> original reasoning for static linking was the fear of loosing the = ability >> to recompile if some problem appears with rtld and any required = dynamic >> library. Apparently, current dependencies are much more spread, e.g. = /bin/sh >> is dynamically linked [etc] >=20 > That seems like a bad mistake, because it would prevent even booting = single-user if rtld/libraries are broken. That's what /rescue is for. You will find statically linked tools there = that are just about to repair a broken system (a static nc would also be = nice...). I did some benchmarks a little while ago, and there was, I think, about = a 5% slowdown on buildworld with a dynamically linked clang vs a = statically linked one on x86-64. Ideally, I'd want the bootstrap = compiler to be statically linked but the installed one to be dynamic. =20= The advantage of dynamic linking is small now, but as we add more LLVM = and clang-based tools to the base system (e.g. LLVM-based firewall JIT, = clang-based indent replacement) we're going to see lots of simple tools = being 5-10MB if we enforce static linking. =20 We'll probably get a much bigger speed win from clangd (hopefully = appearing in time for LLVM 3.2) avoiding the need to spawn a new process = for every compiler invocation than we'll save from static linking. =20 As to compiling things when rtld is broken... clang in the base system = currently dynamically links to lib[std]c++, libgcc_s, libm and libc, it = only statically links to the clang and LLVM libraries. David= From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 12:24:28 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B8B19106566C; Thu, 26 Apr 2012 12:24:28 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id 196A98FC15; Thu, 26 Apr 2012 12:24:28 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:2107:f730:ac0:5473] (unknown [IPv6:2001:7b8:3a7:0:2107:f730:ac0:5473]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 47F6E5C59; Thu, 26 Apr 2012 14:24:27 +0200 (CEST) Message-ID: <4F993E7C.9070400@FreeBSD.org> Date: Thu, 26 Apr 2012 14:24:28 +0200 From: Dimitry Andric Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120420 Thunderbird/12.0 MIME-Version: 1.0 To: David Chisnall References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> In-Reply-To: X-Enigmail-Version: 1.4.1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: toolchain@freebsd.org, current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 12:24:28 -0000 On 2012-04-26 13:53, David Chisnall wrote: ... > I did some benchmarks a little while ago, and there was, I think, about a 5% slowdown on buildworld with a dynamically linked clang vs a statically linked one on x86-64. Ideally, I'd want the bootstrap compiler to be statically linked but the installed one to be dynamic. This is already the case, all bootstrap toolchain components are statically linked: $ file /usr/obj/usr/src/tmp/usr/bin/* /usr/obj/usr/src/tmp/usr/bin/CC: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/addr2line: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/as: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/bugpoint: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/c++: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/c++filt: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/cc: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/clang: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/clang++: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/clang-cpp: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/clang-tblgen: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/cpp: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/g++: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/gcc: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/gcov: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/gcpp: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/gnu-ar: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/gnu-ranlib: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/ld: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/lint: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llc: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/lli: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-ar: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-as: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-bcanalyzer: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-diff: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-dis: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-extract: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-ld: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-link: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-mc: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-nm: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-objdump: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-prof: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-ranlib: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-rtdyld: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/llvm-stub: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/macho-dump: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/nm: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/objcopy: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/objdump: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/opt: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/readelf: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/size: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/strings: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/strip: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped /usr/obj/usr/src/tmp/usr/bin/tblgen: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900505), not stripped From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 12:27:39 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 26D6E1065676 for ; Thu, 26 Apr 2012 12:27:39 +0000 (UTC) (envelope-from rmgls@free.fr) Received: from smtp3-g21.free.fr (smtp3-g21.free.fr [IPv6:2a01:e0c:1:1599::12]) by mx1.freebsd.org (Postfix) with ESMTP id D8CC18FC1A for ; Thu, 26 Apr 2012 12:27:37 +0000 (UTC) Received: from free.fr (unknown [88.172.40.194]) by smtp3-g21.free.fr (Postfix) with ESMTP id 3F455A629C for ; Thu, 26 Apr 2012 14:27:33 +0200 (CEST) From: rmgls@free.fr To: freebsd-current@freebsd.org Date: Thu, 26 Apr 2012 14:27:15 +0200 Sender: rmgls@free.fr Message-Id: <20120426122733.3F455A629C@smtp3-g21.free.fr> Subject: no ptX device found X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 12:27:39 -0000 Hi all, On current, till about 3 months, no pty device is created. i see only a pts[0] in dev. screen (4.0.1, not higher) does not find any pty device. How can i create at least one? my ttys seems to have no effect. I am pretty sure i miss somemthing. In another hand, i see nothing in the man pages on this topic. Thanks in advance for your help. Best regards Raoul rmgls@free.fr From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 12:31:07 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 868E3106564A; Thu, 26 Apr 2012 12:31:07 +0000 (UTC) (envelope-from utisoft@gmail.com) Received: from mail-bk0-f54.google.com (mail-bk0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id CD87E8FC08; Thu, 26 Apr 2012 12:31:06 +0000 (UTC) Received: by bkcjc3 with SMTP id jc3so1223344bkc.13 for ; Thu, 26 Apr 2012 05:31:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=yrIwbgvyqcSGZAVjsNCqnQqJn3MoJqmn+1kMk5i59NQ=; b=tJ3cFs3HUOyrtsx9uR9Ngf6jX/o0cdvT4rAlmerYpSEUsdbtEBjN/Ok46beqjczq9S AbKXvjeKNyH3xd/MMvVWoOYjK5vnSCIJOdDkqyyxNpW5nUzulbWi8/rEd7IcDrCeQOYM 4m2gKRvj0k/CrVRhyRrcGHAg1++ECxNUxlSau7WXYWlIAd8XjlHRm1drzmcaOFTCd6cX 7S8iQGoUsK9EbpM5M4Pd9m+GAgX2I6rP97ENo8hGVgVCWlykTHKZxJgdXqmPo4EXicET vas80HUYlVddixgE5Sn6nBO1+sti6EIlXzLVLRjn6NVI220ePjPHgsrQFnFAwvmXnpyQ euCQ== MIME-Version: 1.0 Received: by 10.204.151.75 with SMTP id b11mr2145835bkw.1.1335443465558; Thu, 26 Apr 2012 05:31:05 -0700 (PDT) Sender: utisoft@gmail.com Received: by 10.204.202.142 with HTTP; Thu, 26 Apr 2012 05:31:05 -0700 (PDT) Received: by 10.204.202.142 with HTTP; Thu, 26 Apr 2012 05:31:05 -0700 (PDT) In-Reply-To: References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> Date: Thu, 26 Apr 2012 13:31:05 +0100 X-Google-Sender-Auth: rmSwl8uUtN9dJ_0Zup95IaryCt0 Message-ID: From: Chris Rees To: toolchain@freebsd.org, current@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 12:31:07 -0000 Oops, just replied privately before: On Apr 26, 2012 12:39 PM, "Chris Rees" wrote: > > On Apr 26, 2012 10:36 AM, "Konstantin Belousov" > wrote: > > > > I think it is time to stop building the toolchain static. I was told that > > original reasoning for static linking was the fear of loosing the ability > > to recompile if some problem appears with rtld and any required dynamic > > library. Apparently, current dependencies are much more spread, e.g. > /bin/sh > > is dynamically linked, and statically linked make does not solve > anything. > > > > Patch below makes the dynamically linked toolchain a default, adding an > > WITHOUT_SHARED_TOOLCHAIN build-time option for real conservators. > > Nice idea, but sh etc al are built statically as /rescue/sh. Will we see > /rescue/ar etc? > > Chris > From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 12:53:47 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A2E4A106564A; Thu, 26 Apr 2012 12:53:47 +0000 (UTC) (envelope-from db@db.net) Received: from diana.db.net (diana.db.net [66.113.102.10]) by mx1.freebsd.org (Postfix) with ESMTP id 849028FC14; Thu, 26 Apr 2012 12:53:47 +0000 (UTC) Received: from night.db.net (localhost [127.0.0.1]) by diana.db.net (Postfix) with ESMTP id 937552282A; Thu, 26 Apr 2012 06:53:44 -0600 (MDT) Received: by night.db.net (Postfix, from userid 1000) id 63A805C7D; Thu, 26 Apr 2012 07:53:38 -0500 (EST) Date: Thu, 26 Apr 2012 07:53:38 -0500 From: Diane Bruce To: John Baldwin Message-ID: <20120426125338.GA9079@night.db.net> References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> <201204260752.01127.jhb@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201204260752.01127.jhb@freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: Konstantin Belousov , toolchain@freebsd.org, freebsd-current@freebsd.org, current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 12:53:47 -0000 On Thu, Apr 26, 2012 at 07:52:01AM -0400, John Baldwin wrote: > On Thursday, April 26, 2012 7:38:03 am Bob Bishop wrote: > > Hi, > > ... > > You could use /rescue/sh as your single-user shell. Of course, that would > perhaps let you still be able to recompile things if you had a static > toolchain. :) Put a toolchain on a CD or memstick and use that instead? ;-) *runs* - Diane -- - db@FreeBSD.org db@db.net http://www.db.net/~db Why leave money to our children if we don't leave them the Earth? From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 12:53:47 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A2E4A106564A; Thu, 26 Apr 2012 12:53:47 +0000 (UTC) (envelope-from db@db.net) Received: from diana.db.net (diana.db.net [66.113.102.10]) by mx1.freebsd.org (Postfix) with ESMTP id 849028FC14; Thu, 26 Apr 2012 12:53:47 +0000 (UTC) Received: from night.db.net (localhost [127.0.0.1]) by diana.db.net (Postfix) with ESMTP id 937552282A; Thu, 26 Apr 2012 06:53:44 -0600 (MDT) Received: by night.db.net (Postfix, from userid 1000) id 63A805C7D; Thu, 26 Apr 2012 07:53:38 -0500 (EST) Date: Thu, 26 Apr 2012 07:53:38 -0500 From: Diane Bruce To: John Baldwin Message-ID: <20120426125338.GA9079@night.db.net> References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> <201204260752.01127.jhb@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201204260752.01127.jhb@freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: Konstantin Belousov , toolchain@freebsd.org, freebsd-current@freebsd.org, current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 12:53:47 -0000 On Thu, Apr 26, 2012 at 07:52:01AM -0400, John Baldwin wrote: > On Thursday, April 26, 2012 7:38:03 am Bob Bishop wrote: > > Hi, > > ... > > You could use /rescue/sh as your single-user shell. Of course, that would > perhaps let you still be able to recompile things if you had a static > toolchain. :) Put a toolchain on a CD or memstick and use that instead? ;-) *runs* - Diane -- - db@FreeBSD.org db@db.net http://www.db.net/~db Why leave money to our children if we don't leave them the Earth? From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 13:41:42 2012 Return-Path: Delivered-To: current@freebsd.org Received: from lo0.su (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by hub.freebsd.org (Postfix) with ESMTP id 0CA45106567C; Thu, 26 Apr 2012 13:41:40 +0000 (UTC) (envelope-from ru@FreeBSD.org) Date: Thu, 26 Apr 2012 17:41:40 +0400 From: Ruslan Ermilov To: Konstantin Belousov Message-ID: <20120426134140.GF14350@lo0.su> References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> Cc: toolchain@freebsd.org, current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 13:41:42 -0000 On Thu, Apr 26, 2012 at 12:35:48PM +0300, Konstantin Belousov wrote: > I think it is time to stop building the toolchain static. I was told that > original reasoning for static linking was the fear of loosing the ability > to recompile if some problem appears with rtld and any required dynamic > library. Apparently, current dependencies are much more spread, e.g. /bin/sh > is dynamically linked, and statically linked make does not solve anything. ------------------------------------------------------------------------ r76801 | sobomax | 2001-05-18 13:05:56 +0400 (Fri, 18 May 2001) | 6 lines By default build make(1) as a static binary. It costs only 100k of additional disk space, buf provides measureable speed increase for make-intensive operations, such as pkg_version(1), `make world' and so on. MFC after: 1 week ------------------------------------------------------------------------ Have things changed enough that the above is not true anymore? > Patch below makes the dynamically linked toolchain a default, adding an > WITHOUT_SHARED_TOOLCHAIN build-time option for real conservators. > > I did not looked in details why including bsd.own.mk makes NO_MAN > non-functional. Please see the diffs for gnu/usr.bin/cc1*/Makefile. Because you include bsd.own.mk before NO_MAN is defined, and the way how .if works in make(1). From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 19:01:40 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C6D2F106564A; Thu, 26 Apr 2012 19:01:40 +0000 (UTC) (envelope-from utisoft@gmail.com) Received: from mail-bk0-f54.google.com (mail-bk0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id EA8AA8FC12; Thu, 26 Apr 2012 19:01:39 +0000 (UTC) Received: by bkcjc3 with SMTP id jc3so1677929bkc.13 for ; Thu, 26 Apr 2012 12:01:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=nb7WDSu21G1M44+Aud+ZPqQwbQ1yZ6bqP6L+tXL10sE=; b=hXHnwL507UrVX/PFVlgnvAA0Y7P6WYHlsYmMO6a6SEnngdtWYl8X37imX9JlXf2ZYV jR/+VSaGbV7nyUks9DWUEq47zeinAiC1++O5YkmMSKCDRfLCoOMHjTVy9YUNnuP+RiXj JAKlTg/WFkEBGdBKMhrjRMjlp/eaO/+bnoDjbQskl6iQXKeyJya+Fc/631JFDWgvmjqU 4mmtjScA+gDwgWX/SfPv/y59Ozo47i6mouxoEcv2pcVR32BtHbS4E4/7JItqcwBZhHah 9prZ3ns2qBHJ8L0VSi5VJNJD6futQ66xQHgB1gwE/oV0fZ6+rReWsD+YraVIGnpSfaEi vxww== Received: by 10.205.132.16 with SMTP id hs16mr2717046bkc.115.1335466898705; Thu, 26 Apr 2012 12:01:38 -0700 (PDT) MIME-Version: 1.0 Received: by 10.204.202.142 with HTTP; Thu, 26 Apr 2012 12:01:08 -0700 (PDT) In-Reply-To: <20120426134140.GF14350@lo0.su> References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <20120426134140.GF14350@lo0.su> From: Chris Rees Date: Thu, 26 Apr 2012 20:01:08 +0100 Message-ID: To: Ruslan Ermilov Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Kostik Belousov , toolchain@freebsd.org, current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 19:01:40 -0000 On Apr 26, 2012 2:42 PM, "Ruslan Ermilov" wrote: > > On Thu, Apr 26, 2012 at 12:35:48PM +0300, Konstantin Belousov wrote: > > I think it is time to stop building the toolchain static. I was told that > > original reasoning for static linking was the fear of loosing the ability > > to recompile if some problem appears with rtld and any required dynamic > > library. Apparently, current dependencies are much more spread, e.g. /bin/sh > > is dynamically linked, and statically linked make does not solve anything. > > ------------------------------------------------------------------------ > r76801 | sobomax | 2001-05-18 13:05:56 +0400 (Fri, 18 May 2001) | 6 lines > > By default build make(1) as a static binary. It costs only 100k of additional > disk space, buf provides measureable speed increase for make-intensive > operations, such as pkg_version(1), `make world' and so on. > > MFC after: 1 week > > ------------------------------------------------------------------------ > > Have things changed enough that the above is not true anymore? Well, the most make(1)-intensive test I can think of is make index, so some results from a quick test: hydra# uname -a FreeBSD hydra.bayofrum.net 9.0-RELEASE FreeBSD 9.0-RELEASE #7: Sun Apr 22 21:02:48 BST 2012 root@hydra.bayofrum.net:/usr/obj/usr/src/sys/HYDRA amd64 hydra# cd /usr/src/usr.bin/make && make NO_SHARED=yes && cp make ~/bin/make-static >& /dev/null hydra# rm make && make NO_SHARED=no && cp make ~/bin/make-dynamic >& /dev/null hydra# file ~/bin/make-* /home/chris/bin/make-dynamic: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 9.0 (900044), not stripped /home/chris/bin/make-static: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), statically linked, for FreeBSD 9.0 (900044), not stripped hydra# cd /usr/ports && time make MAKE=~crees/bin/make-static index Generating INDEX-9 - please wait.. Done. 729.770u 120.841s 7:45.10 182.8% 920+2676k 5251+116484io 7750pf+0w hydra# time make MAKE=~crees/bin/make-dynamic index Generating INDEX-9 - please wait.. Done. 771.320u 133.540s 8:07.83 185.4% 609+2918k 474+116484io 570pf+0w We have a 10% slowdown (or 11% speedup, depending on your figures) when using a dynamically loaded make. Chris From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 20:16:09 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB7A41065785 for ; Thu, 26 Apr 2012 20:16:08 +0000 (UTC) (envelope-from m.seaman@infracaninophile.co.uk) Received: from smtp.infracaninophile.co.uk (smtp6.infracaninophile.co.uk [IPv6:2001:8b0:151:1:3cd3:cd67:fafa:3d78]) by mx1.freebsd.org (Postfix) with ESMTP id 434DF8FC08 for ; Thu, 26 Apr 2012 20:16:08 +0000 (UTC) Received: from seedling.black-earth.co.uk (seedling.black-earth.co.uk [IPv6:2001:8b0:151:1:fa1e:dfff:feda:c0bb]) (authenticated bits=0) by smtp.infracaninophile.co.uk (8.14.5/8.14.5) with ESMTP id q3QKG4d4040067 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO) for ; Thu, 26 Apr 2012 21:16:04 +0100 (BST) (envelope-from m.seaman@infracaninophile.co.uk) X-DKIM: OpenDKIM Filter v2.5.2 smtp.infracaninophile.co.uk q3QKG4d4040067 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=infracaninophile.co.uk; s=201001-infracaninophile; t=1335471364; bh=2scA6zr2reSvfWW1j7XHFNeT88PJhYWbkr2KZ27DhjA=; h=Date:From:To:Subject:References:In-Reply-To:Cc:Content-Type: Message-ID:Mime-Version; b=u2SRCA0K37wJli24Dw7CfjIMd9Es6w++0mthpXL3x5nrVoMVtWFZgcDI7bgn60p2O 29qV0aTXA5D3bg+Y/3IloXMUfsvlQayx5SHte5VaRjqklFmr9tlpMjP29YLUkDdROg 1x8NTN+gxoOtMj9ay9rHWf+g5MlTPDxKNMqKF4rA= Message-ID: <4F99ACF9.2050609@infracaninophile.co.uk> Date: Thu, 26 Apr 2012 21:15:53 +0100 From: Matthew Seaman User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:12.0) Gecko/20120420 Thunderbird/12.0 MIME-Version: 1.0 To: freebsd-current@freebsd.org References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <20120426134140.GF14350@lo0.su> In-Reply-To: X-Enigmail-Version: 1.4.1 OpenPGP: id=60AE908C Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig60433F2C77354510EA61B6FA" X-Virus-Scanned: clamav-milter 0.97.4 at lucid-nonsense.infracaninophile.co.uk X-Virus-Status: Clean X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00, DKIM_ADSP_ALL,DKIM_SIGNED,T_DKIM_INVALID autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on lucid-nonsense.infracaninophile.co.uk Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 20:16:09 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig60433F2C77354510EA61B6FA Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 26/04/2012 20:01, Chris Rees wrote: > hydra# cd /usr/ports && time make MAKE=3D~crees/bin/make-static index >=20 > Generating INDEX-9 - please wait.. Done. > 729.770u 120.841s 7:45.10 182.8% 920+2676k 5251+116484io 7750pf+= 0w >=20 > hydra# time make MAKE=3D~crees/bin/make-dynamic index >=20 > Generating INDEX-9 - please wait.. Done. > 771.320u 133.540s 8:07.83 185.4% 609+2918k 474+116484io 570pf+0w= >=20 > We have a 10% slowdown (or 11% speedup, depending on your figures) when= > using a dynamically loaded make. I don't think you can validly conclude much from just one sample of each type. Try repeating those tests enough that you can do some decent statistics. Oh, and you should probably either discard the first few results, or else take pains to flush[*] the buffer cache between each run, so you end up measuring the same thing repeatably. Cheers, Matthew [*] Unmount and remount /usr/ports should do that I believe. --=20 Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard Flat 3 PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate JID: matthew@infracaninophile.co.uk Kent, CT11 9PW --------------enig60433F2C77354510EA61B6FA Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.16 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk+ZrQMACgkQ8Mjk52CukIykHwCfcLyHI/YWTMP03gs0COcUxj2i pggAn22xxUsr+K4Z9rE2sfDY5FO+N9+b =19uT -----END PGP SIGNATURE----- --------------enig60433F2C77354510EA61B6FA-- From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 20:30:39 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B73C2106564A for ; Thu, 26 Apr 2012 20:30:39 +0000 (UTC) (envelope-from utisoft@gmail.com) Received: from mail-bk0-f54.google.com (mail-bk0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id 3F1408FC0A for ; Thu, 26 Apr 2012 20:30:39 +0000 (UTC) Received: by bkcjc3 with SMTP id jc3so16060bkc.13 for ; Thu, 26 Apr 2012 13:30:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type :content-transfer-encoding; bh=b5NRXMAlUTRMjUGpnJBYTZIQX9gsSgLnMVy1y2uOdEE=; b=qbEgylr7+2zfwpPlo3wZcLlDP7iF36v3gPlR8s40uqsUm8s0uIiv4M8hwH8n5OKEiR 9ygWOzfvymW8NgqyKxTv0quRM2Bs3E9uJS0jlzgBJK+6TK8+eNXe0Fp4CAEC2E24TNNn N0sxBl4J5Mh/CmBsk6iw5cwO3DW76lG7uTSHqFAo3yfQ4kG7Uy7gw4vYT/K3ucajOFqI 7sbggdiP894f3B24OuJo5zIKLTjD8Oxh8KC7/vP6MfcGukpFDSzywZ/PTlOTX8Z7k4mm ZXggNW+PJ0HbqGbpA+4U//gCncu+HVA67K+B3MJHs6VH8P+YThxAG6sANKC39PKA0Uc1 OfsQ== Received: by 10.204.156.135 with SMTP id x7mr3043012bkw.131.1335472238118; Thu, 26 Apr 2012 13:30:38 -0700 (PDT) MIME-Version: 1.0 Sender: utisoft@gmail.com Received: by 10.204.202.142 with HTTP; Thu, 26 Apr 2012 13:30:07 -0700 (PDT) In-Reply-To: <4F99ACF9.2050609@infracaninophile.co.uk> References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <20120426134140.GF14350@lo0.su> <4F99ACF9.2050609@infracaninophile.co.uk> From: Chris Rees Date: Thu, 26 Apr 2012 20:30:07 +0000 X-Google-Sender-Auth: 9PoJeYSt_lnVqdhBNK9HbR0vtXo Message-ID: To: Matthew Seaman Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 20:30:39 -0000 On 26 April 2012 20:15, Matthew Seaman wr= ote: > On 26/04/2012 20:01, Chris Rees wrote: >> hydra# cd /usr/ports && time make MAKE=3D~crees/bin/make-static index >> >> Generating INDEX-9 - please wait.. Done. >> 729.770u 120.841s 7:45.10 182.8% =A0 =A0 =A0 =A0920+2676k 5251+116484io = 7750pf+0w >> >> hydra# time make MAKE=3D~crees/bin/make-dynamic index >> >> Generating INDEX-9 - please wait.. Done. >> 771.320u 133.540s 8:07.83 185.4% =A0 =A0 =A0 =A0609+2918k 474+116484io 5= 70pf+0w >> >> We have a 10% slowdown (or 11% speedup, depending on your figures) when >> using a dynamically loaded make. > > I don't think you can validly conclude much from just one sample of each > type. =A0Try repeating those tests enough that you can do some decent > statistics. > > Oh, and you should probably either discard the first few results, or > else take pains to flush[*] the buffer cache between each run, so you > end up measuring the same thing repeatably. Had I done the tests the other way around, I may agree with you, but the second test should benefit from any buffering, and it is *still* slower. Look, I know it's not a perfect benchmark, it was just some food for thought-- a difference of 10% is pretty significant, and I don't think you can blame that on a solar flare. Chris From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 22:01:11 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9E3E1106566B; Thu, 26 Apr 2012 22:01:11 +0000 (UTC) (envelope-from bsam@passap.ru) Received: from forward13.mail.yandex.net (forward13.mail.yandex.net [IPv6:2a02:6b8:0:801::3]) by mx1.freebsd.org (Postfix) with ESMTP id 1305D8FC14; Thu, 26 Apr 2012 22:01:11 +0000 (UTC) Received: from smtp12.mail.yandex.net (smtp12.mail.yandex.net [95.108.131.191]) by forward13.mail.yandex.net (Yandex) with ESMTP id A2E711425A8; Fri, 27 Apr 2012 02:01:09 +0400 (MSK) Received: from smtp12.mail.yandex.net (localhost [127.0.0.1]) by smtp12.mail.yandex.net (Yandex) with ESMTP id 7594116A04AF; Fri, 27 Apr 2012 02:01:09 +0400 (MSK) Received: from 46.38.39.187.tel.ru (46.38.39.187.tel.ru [46.38.39.187]) by smtp12.mail.yandex.net (nwsmtp/Yandex) with ESMTP id 187K8Tsb-197iKlSf; Fri, 27 Apr 2012 02:01:09 +0400 Message-ID: <4F99C5A4.9030309@passap.ru> Date: Fri, 27 Apr 2012 02:01:08 +0400 From: Boris Samorodov User-Agent: Mozilla/5.0 (X11; FreeBSD i386; rv:8.0) Gecko/20111114 Thunderbird/8.0 MIME-Version: 1.0 To: =?UTF-8?B?SmVhbi1Tw6liYXN0aWVuIFDDqWRyb24=?= References: <4F9703C9.8080503@FreeBSD.org> <4F98492D.8070006@FreeBSD.org> <4F984CC2.5080404@passap.ru> <4F985334.8030109@FreeBSD.org> <4F99183A.5060406@FreeBSD.org> In-Reply-To: <4F99183A.5060406@FreeBSD.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: freebsd-current@freebsd.org, Dimitry Andric Subject: Re: segfault in vfscanf(3): clang and __restrict usage X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 22:01:11 -0000 26.04.2012 13:41, Jean-Sébastien Pédron пишет: > Boris, could you please test it and tell me if cupsd works again for > you too? You just need to rebuild/reinstall the libc, not cups. I've rebuild the world (because I had to use gcc-built world for obvious reason) and now smartd works (can't test cupsd for now). BTW, the port devel/ORBit2 which segfaulted both with clang and gcc is built fine now. Thanks! -- WBR, Boris Samorodov (bsam) FreeBSD Committer, http://www.FreeBSD.org The Power To Serve From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 22:42:23 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1B5E1106566B for ; Thu, 26 Apr 2012 22:42:23 +0000 (UTC) (envelope-from mexas@bristol.ac.uk) Received: from dirg.bris.ac.uk (dirg.bris.ac.uk [137.222.10.102]) by mx1.freebsd.org (Postfix) with ESMTP id B82A78FC1F for ; Thu, 26 Apr 2012 22:42:22 +0000 (UTC) Received: from ncsd.bris.ac.uk ([137.222.10.59] helo=ncs.bris.ac.uk) by dirg.bris.ac.uk with esmtp (Exim 4.72) (envelope-from ) id 1SNXOB-0003jx-S3 for freebsd-current@freebsd.org; Thu, 26 Apr 2012 23:42:16 +0100 Received: from mech-cluster241.men.bris.ac.uk ([137.222.187.241]) by ncs.bris.ac.uk with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1SNXOB-0001w2-MP for freebsd-current@freebsd.org; Thu, 26 Apr 2012 23:42:15 +0100 Received: from mech-cluster241.men.bris.ac.uk (localhost [127.0.0.1]) by mech-cluster241.men.bris.ac.uk (8.14.5/8.14.5) with ESMTP id q3QMgFja079909 for ; Thu, 26 Apr 2012 23:42:15 +0100 (BST) (envelope-from mexas@bris.ac.uk) Received: (from mexas@localhost) by mech-cluster241.men.bris.ac.uk (8.14.5/8.14.5/Submit) id q3QMgF8m079908 for freebsd-current@freebsd.org; Thu, 26 Apr 2012 23:42:15 +0100 (BST) (envelope-from mexas@bris.ac.uk) X-Authentication-Warning: mech-cluster241.men.bris.ac.uk: mexas set sender to mexas@bris.ac.uk using -f Date: Thu, 26 Apr 2012 23:42:15 +0100 From: Anton Shterenlikht To: freebsd-current@freebsd.org Message-ID: <20120426224215.GA79891@mech-cluster241.men.bris.ac.uk> Mail-Followup-To: freebsd-current@freebsd.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.3i Subject: updating from r231158 to 234465: mounting from ufs:/dev/ad4s1a failed with error 19 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 22:42:23 -0000 I was updating from r231158 to 234465 (amd64 laptop Compaq 6715s), and I think I must've messed someting up in the kernel config. Now I get build error, panic of a loader error, depending on which kernel I build. ********************************************************* If I build GENERIC, I get: (transcribed by hand) mountroot: waiting for device /dev/ad4s1a Mounting from ufs:/dev/ad4s1a failed with error 19. mountroot> ? List of GEOM managed disk devices: cd0 mountroot> The device is certainly correct in r231158: BUZI> df Filesystem 512-blocks Used Avail Capacity Mounted on /dev/ad4s1a 101554068 46474368 46955376 50% / devfs 2 2 0 100% /dev BUZI> ********************************************************* If I add device atadisk to GENERIC, then I get this linking error: linking kernel.debug ata-disk.o: In function `ad_init': /usr/src/sys/dev/ata/ata-disk.c:397: undefined reference to `ata_setmode' /usr/src/sys/dev/ata/ata-disk.c:405: undefined reference to `ata_wc' /usr/src/sys/dev/ata/ata-disk.c:406: undefined reference to `ata_controlcmd' /usr/src/sys/dev/ata/ata-disk.c:408: undefined reference to `ata_controlcmd' /usr/src/sys/dev/ata/ata-disk.c:401: undefined reference to `ata_controlcmd' /usr/src/sys/dev/ata/ata-disk.c:415: undefined reference to `ata_controlcmd' ata-disk.o: In function `ad_shutdown': /usr/src/sys/dev/ata/ata-disk.c:204: undefined reference to `ata_controlcmd' ata-disk.o: In function `ad_detach': /usr/src/sys/dev/ata/ata-disk.c:190: undefined reference to `ata_fail_requests' ata-disk.o: In function `ad_dump': /usr/src/sys/dev/ata/ata-disk.c:370: undefined reference to `ata_drop_requests' /usr/src/sys/dev/ata/ata-disk.c:378: undefined reference to `ata_controlcmd' ata-disk.o: In function `ad_attach': /usr/src/sys/dev/ata/ata-disk.c:115: undefined reference to `ata_setmax' ata-disk.o: In function `ad_describe': /usr/src/sys/dev/ata/ata-disk.c:555: undefined reference to `ata_satarev2str' /usr/src/sys/dev/ata/ata-disk.c:555: undefined reference to `ata_unit2str' ata-disk.o: In function `ad_set_geometry': /usr/src/sys/dev/ata/ata-disk.c:492: undefined reference to `ata_queue_request' /usr/src/sys/dev/ata/ata-disk.c:511: undefined reference to `ata_queue_request' /usr/src/sys/dev/ata/ata-disk.c:516: undefined reference to `ata_getparam' ata-disk.o: In function `ad_spindown': /usr/src/sys/dev/ata/ata-disk.c:250: undefined reference to `ata_queue_request' ata-disk.o: In function `ad_ioctl': /usr/src/sys/dev/ata/ata-disk.c:354: undefined reference to `ata_device_ioctl' ata-disk.o: In function `ad_strategy': /usr/src/sys/dev/ata/ata-disk.c:335: undefined reference to `ata_queue_request' atapi-cd.o: In function `acd_reinit': /usr/src/sys/dev/ata/atapi-cd.c:166: undefined reference to `ata_setmode' atapi-cd.o: In function `acd_shutdown': /usr/src/sys/dev/ata/atapi-cd.c:152: undefined reference to `ata_controlcmd' atapi-cd.o: In function `acd_geom_detach': /usr/src/sys/dev/ata/atapi-cd.c:199: undefined reference to `ata_fail_requests' atapi-cd.o: In function `acd_test_ready': /usr/src/sys/dev/ata/atapi-cd.c:1693: undefined reference to `ata_atapicmd' atapi-cd.o: In function `acd_mode_select': /usr/src/sys/dev/ata/atapi-cd.c:1619: undefined reference to `ata_atapicmd' atapi-cd.o: In function `acd_mode_sense': /usr/src/sys/dev/ata/atapi-cd.c:1609: undefined reference to `ata_atapicmd' atapi-cd.o: In function `acd_pause_resume': /usr/src/sys/dev/ata/atapi-cd.c:1599: undefined reference to `ata_atapicmd' atapi-cd.o: In function `acd_start_stop': /usr/src/sys/dev/ata/atapi-cd.c:1590: undefined reference to `ata_atapicmd' atapi-cd.o:/usr/src/sys/dev/ata/atapi-cd.c:1581: more undefined references to `ata_atapicmd' foll atapi-cd.o: In function `acd_get_progress': /usr/src/sys/dev/ata/atapi-cd.c:1236: undefined reference to `ata_queue_request' atapi-cd.o: In function `acd_strategy': /usr/src/sys/dev/ata/atapi-cd.c:889: undefined reference to `ata_queue_request' atapi-cd.o: In function `acd_geom_access': /usr/src/sys/dev/ata/atapi-cd.c:704: undefined reference to `ata_queue_request' atapi-cd.o: In function `acd_read_format_caps': /usr/src/sys/dev/ata/atapi-cd.c:1671: undefined reference to `ata_atapicmd' atapi-cd.o: In function `acd_geom_ioctl': /usr/src/sys/dev/ata/atapi-cd.c:680: undefined reference to `ata_device_ioctl' atapi-cd.o: In function `acd_format': /usr/src/sys/dev/ata/atapi-cd.c:1682: undefined reference to `ata_atapicmd' atapi-cd.o: In function `acd_report_key': /usr/src/sys/dev/ata/atapi-cd.c:1336: undefined reference to `ata_atapicmd' atapi-cd.o: In function `acd_read_track_info': /usr/src/sys/dev/ata/atapi-cd.c:1206: undefined reference to `ata_atapicmd' atapi-cd.o: In function `acd_init_writer': /usr/src/sys/dev/ata/atapi-cd.c:1056: undefined reference to `ata_atapicmd' /usr/src/sys/dev/ata/atapi-cd.c:1059: undefined reference to `ata_atapicmd' atapi-cd.o:/usr/src/sys/dev/ata/atapi-cd.c:1086: more undefined references to `ata_atapicmd' foll atapi-cd.o: In function `acd_attach': /usr/src/sys/dev/ata/atapi-cd.c:129: undefined reference to `ata_setmode' /usr/src/sys/dev/ata/atapi-cd.c:130: undefined reference to `ata_controlcmd' atapi-cd.o: In function `acd_describe': /usr/src/sys/dev/ata/atapi-cd.c:1884: undefined reference to `ata_satarev2str' /usr/src/sys/dev/ata/atapi-cd.c:1884: undefined reference to `ata_unit2str' /usr/src/sys/dev/ata/atapi-cd.c:1706: undefined reference to `ata_unit2str' /usr/src/sys/dev/ata/atapi-cd.c:1733: undefined reference to `ata_satarev2str' *** Error code 1 1 error ********************************************************* Finally, if I try build my old kernel config file (which I might've modified by forgot to document), I get this panic (the kernel config is below): (transcribed by hand) Memory modified after free 0xfffffe0001848800(504) val=802f1f20 @ 0xfffffe00018488a8 panic: Most recently used by bus-sc *skip very long backtrace, ending with* bus_set_pass() at bus_set_pass+0x7a configure() at configure+0xa mi_startup() at mi_startup+0x77 btext() at btext+0x2c The kernel config: cpu HAMMER # buzi laptop ident BUZI makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols makeoptions MODULES_OVERRIDE= options ALT_BREAK_TO_DEBUGGER options ATA_STATIC_ID # Static device numbering options AUDIT # Security event auditing options BREAK_TO_DEBUGGER options CD9660 options COMPAT_43TTY # BSD 4.3 TTY compat (sgtty) options COMPAT_FREEBSD32 options COMPAT_LINUX32 options DDB #options EXCEPTION_TRACING options FFS options FLOWTABLE # per-cpu routing cache options GDB options GEOM_PART_GPT # GUID Partition Tables. options GEOM_LABEL # Provides labelization options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4) options IEEE80211_DEBUG # enable debug msgs options IEEE80211_AMPDU_AGE # age frames in AMPDU reorder q's options IEEE80211_SUPPORT_MESH # enable 802.11s draft support options INCLUDE_CONFIG_FILE # Include this file in kernel options INET options INET6 options INVARIANTS options INVARIANT_SUPPORT options IPFILTER options IPFILTER_DEFAULT_BLOCK options IPFILTER_LOG #options IPI_PREEMPTION options KDB options KBD_INSTALL_CDEV # install a CDEV entry in /dev #options KDTRACE_FRAME # Ensure frames are compiled in #options KDTRACE_HOOKS # Kernel DTrace hooks options KTRACE #options MAC # TrustedBSD MAC Framework options MD_ROOT options MSDOSFS options P1003_1B_SEMAPHORES #options PREEMPTION options PRINTF_BUFR_SIZE=128 options PROCFS options PSEUDOFS #options SCHED_4BSD options SCHED_ULE options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI options SCTP # Stream Control Transmission Protocol options SMP # Symmetric MultiProcessor Kernel options SOFTUPDATES options STACK # stack(9) support options SYSVMSG options SYSVSEM options SYSVSHM options UFS_ACL # Support for access control lists options UFS_DIRHASH options UFS_GJOURNAL # Enable gjournal-based UFS journaling #options UWX_TRACE_ENABLE options WITNESS #options WITNESS_KDB options WITNESS_SKIPSPIN options _KPOSIX_PRIORITY_SCHEDULING device acpi device ata device atadisk # ATA disk drives device atapicd # ATAPI CDROM drives device atkbdc # AT keyboard controller device atkbd # AT keyboard device bge # Broadcom BCM570xx Gigabit Ethernet device bpf # Berkeley packet filter device cardbus # CardBus (32-bit) bus device cbb # cardbus (yenta) bridge device cpufreq device da # Direct Access (disks) device miibus # MII bus support device pass # Passthrough device (direct SCSI access) device pccard # PC Card (16-bit) bus device pci device psm # PS/2 mouse device sc device scbus # SCSI bus (required for SCSI) device sound device snd_hda device uart # Generic UART driver device vga # VGA video card driver # Pseudo devices. device ether # Ethernet support device faith # IPv6-to-IPv4 relaying (translation) #device firmware # firmware assist module device gif # IPv6 and IPv4 tunneling device loop # Network loopback device md # Memory "disks" device pty # BSD-style compatibility pseudo ttys device random # Entropy device device tun # Packet tunnel. device vlan # 802.1Q VLAN support Please advise Many thanks -- Anton Shterenlikht Room 2.6, Queen's Building Mech Eng Dept Bristol University University Walk, Bristol BS8 1TR, UK Tel: +44 (0)117 331 5944 Fax: +44 (0)117 929 4423 From owner-freebsd-current@FreeBSD.ORG Fri Apr 27 08:59:16 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 25C3F106564A; Fri, 27 Apr 2012 08:59:16 +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 9D1868FC1A; Fri, 27 Apr 2012 08:59:15 +0000 (UTC) Received: from skuns.kiev.zoral.com.ua (localhost [127.0.0.1]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id q3R8wxt3069719; Fri, 27 Apr 2012 11:58:59 +0300 (EEST) (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.5/8.14.5) with ESMTP id q3R8wxEm033531; Fri, 27 Apr 2012 11:58:59 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5/Submit) id q3R8wxkA033530; Fri, 27 Apr 2012 11:58:59 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 27 Apr 2012 11:58:59 +0300 From: Konstantin Belousov To: Ruslan Ermilov Message-ID: <20120427085859.GY2358@deviant.kiev.zoral.com.ua> References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <20120426134140.GF14350@lo0.su> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="DSqUood0rpsROwaK" Content-Disposition: inline In-Reply-To: <20120426134140.GF14350@lo0.su> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.0 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: toolchain@freebsd.org, current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2012 08:59:16 -0000 --DSqUood0rpsROwaK Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Apr 26, 2012 at 05:41:40PM +0400, Ruslan Ermilov wrote: > On Thu, Apr 26, 2012 at 12:35:48PM +0300, Konstantin Belousov wrote: > > I think it is time to stop building the toolchain static. I was told th= at > > original reasoning for static linking was the fear of loosing the abili= ty > > to recompile if some problem appears with rtld and any required dynamic > > library. Apparently, current dependencies are much more spread, e.g. /b= in/sh > > is dynamically linked, and statically linked make does not solve anythi= ng. >=20 > ------------------------------------------------------------------------ > r76801 | sobomax | 2001-05-18 13:05:56 +0400 (Fri, 18 May 2001) | 6 lines >=20 > By default build make(1) as a static binary. It costs only 100k of additi= onal > disk space, buf provides measureable speed increase for make-intensive > operations, such as pkg_version(1), `make world' and so on. >=20 > MFC after: 1 week >=20 > ------------------------------------------------------------------------ >=20 > Have things changed enough that the above is not true anymore? >=20 > > Patch below makes the dynamically linked toolchain a default, adding an > > WITHOUT_SHARED_TOOLCHAIN build-time option for real conservators. > >=20 > > I did not looked in details why including bsd.own.mk makes NO_MAN > > non-functional. Please see the diffs for gnu/usr.bin/cc1*/Makefile. >=20 > Because you include bsd.own.mk before NO_MAN is defined, and the way > how .if works in make(1). What is the 'right' thing to do then ? Postpone the inclusion of bsd.own.mk after NO_MAN definition ? This makes the .if $MK_SHARED_TOOLCHAIN to not work. Or, continue to do what I have done, using 'MAN=3D' instead ? N.B. I will commit the change, with defaults kept to build toolchain static, just to avoid bikeshed. --DSqUood0rpsROwaK Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (FreeBSD) iEYEARECAAYFAk+aX9IACgkQC3+MBN1Mb4iq8wCghjt4unEw5lKeL7OvHxdh8QWf K3MAoIStz60XmlAapjxLB7skamxQjyxJ =Ygvx -----END PGP SIGNATURE----- --DSqUood0rpsROwaK-- From owner-freebsd-current@FreeBSD.ORG Fri Apr 27 10:58:08 2012 Return-Path: Delivered-To: current@freebsd.org Received: from lo0.su (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by hub.freebsd.org (Postfix) with ESMTP id 321D2106564A; Fri, 27 Apr 2012 10:58:07 +0000 (UTC) (envelope-from ru@freebsd.org) Date: Fri, 27 Apr 2012 14:58:06 +0400 From: Ruslan Ermilov To: Konstantin Belousov Message-ID: <20120427105806.GB4477@lo0.su> References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <20120426134140.GF14350@lo0.su> <20120427085859.GY2358@deviant.kiev.zoral.com.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20120427085859.GY2358@deviant.kiev.zoral.com.ua> Cc: toolchain@freebsd.org, current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2012 10:58:08 -0000 On Fri, Apr 27, 2012 at 11:58:59AM +0300, Konstantin Belousov wrote: > On Thu, Apr 26, 2012 at 05:41:40PM +0400, Ruslan Ermilov wrote: > > On Thu, Apr 26, 2012 at 12:35:48PM +0300, Konstantin Belousov wrote: [...] > > > Patch below makes the dynamically linked toolchain a default, adding an > > > WITHOUT_SHARED_TOOLCHAIN build-time option for real conservators. > > > > > > I did not looked in details why including bsd.own.mk makes NO_MAN > > > non-functional. Please see the diffs for gnu/usr.bin/cc1*/Makefile. > > > > Because you include bsd.own.mk before NO_MAN is defined, and the way > > how .if works in make(1). > > What is the 'right' thing to do then ? > > Postpone the inclusion of bsd.own.mk after NO_MAN definition ? This makes > the .if $MK_SHARED_TOOLCHAIN to not work. > > Or, continue to do what I have done, using 'MAN=' instead ? Two ways, both are demonstrated by gnu/lib/libgcov/Makefile: - Define NO_* before including bsd.own.mk so it sets the corresponding MK_* variable appropriately, and before testing the MK_*. - Remove NO_*, include bsd.own.mk, then set MK_MAN=no. (The nearby gnu/lib/libssp/Makefile has a similar problem with NO_PROFILE.) > N.B. I will commit the change, with defaults kept to build toolchain static, > just to avoid bikeshed. I think this is the right approach. Regarding your patch... By placing SHARED_TOOLCHAIN to __DEFAULT_NO_OPTIONS list in bsd.own.mk, you already had MK_SHARED_TOOLCHAIN set to "no" by default, which preserves the current status quo of building toolchain static. But you misspelled tools/build/options/WITH_STATIC_TOOLCHAIN, probably as the result of iteratively modifying your change. The option and this file should be named WITH_SHARED_TOOLCHAIN, the opposite of the default. Anyway, checking that the resulting src.conf(5) manpage sounds sensible is a good idea. As for the contents of this file, I wouldn't call "ar/ranlib" a "librarian" but rather a "library archives manager", as per POSIX. Your diff also suggests that it misses a newline at EOF. From owner-freebsd-current@FreeBSD.ORG Fri Apr 27 11:47:07 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4772A106566B; Fri, 27 Apr 2012 11:47:07 +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 A4ED08FC12; Fri, 27 Apr 2012 11:47:06 +0000 (UTC) Received: from skuns.kiev.zoral.com.ua (localhost [127.0.0.1]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id q3RBl3Fa011630; Fri, 27 Apr 2012 14:47:03 +0300 (EEST) (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.5/8.14.5) with ESMTP id q3RBl21N034470; Fri, 27 Apr 2012 14:47:02 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5/Submit) id q3RBl2kN034469; Fri, 27 Apr 2012 14:47:02 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 27 Apr 2012 14:47:02 +0300 From: Konstantin Belousov To: Ruslan Ermilov Message-ID: <20120427114702.GZ2358@deviant.kiev.zoral.com.ua> References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <20120426134140.GF14350@lo0.su> <20120427085859.GY2358@deviant.kiev.zoral.com.ua> <20120427105806.GB4477@lo0.su> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="LO1tiPwOBUf6PfOG" Content-Disposition: inline In-Reply-To: <20120427105806.GB4477@lo0.su> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.0 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: toolchain@freebsd.org, current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2012 11:47:07 -0000 --LO1tiPwOBUf6PfOG Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Apr 27, 2012 at 02:58:06PM +0400, Ruslan Ermilov wrote: > Regarding your patch... >=20 > By placing SHARED_TOOLCHAIN to __DEFAULT_NO_OPTIONS list in > bsd.own.mk, you already had MK_SHARED_TOOLCHAIN set to "no" by > default, which preserves the current status quo of building > toolchain static. But you misspelled > tools/build/options/WITH_STATIC_TOOLCHAIN, probably as the result > of iteratively modifying your change. The option and this file > should be named WITH_SHARED_TOOLCHAIN, the opposite of the > default. Anyway, checking that the resulting src.conf(5) manpage > sounds sensible is a good idea. As for the contents of this file, > I wouldn't call "ar/ranlib" a "librarian" but rather a "library > archives manager", as per POSIX. Your diff also suggests that it > misses a newline at EOF. Thank you for the suggestions. Below is the variant that should handle all the commentary. diff --git a/gnu/usr.bin/binutils/ar/Makefile b/gnu/usr.bin/binutils/ar/Mak= efile index 464445e..6fe22c8 100644 --- a/gnu/usr.bin/binutils/ar/Makefile +++ b/gnu/usr.bin/binutils/ar/Makefile @@ -1,6 +1,7 @@ # $FreeBSD$ =20 .include "../Makefile.inc0" +.include =20 .PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc =20 @@ -16,7 +17,9 @@ CFLAGS+=3D -D_GNU_SOURCE CFLAGS+=3D -I${.CURDIR}/${RELTOP}/libbinutils CFLAGS+=3D -I${SRCDIR}/binutils CFLAGS+=3D -I${SRCDIR}/bfd +.if ${MK_SHARED_TOOLCHAIN} =3D=3D "no" NO_SHARED?=3D yes +.endif DPADD=3D ${RELTOP}/libbinutils/libbinutils.a DPADD+=3D ${RELTOP}/libbfd/libbfd.a DPADD+=3D ${RELTOP}/libiberty/libiberty.a diff --git a/gnu/usr.bin/binutils/as/Makefile b/gnu/usr.bin/binutils/as/Mak= efile index bf8df81..5fef1f3 100644 --- a/gnu/usr.bin/binutils/as/Makefile +++ b/gnu/usr.bin/binutils/as/Makefile @@ -4,6 +4,7 @@ # BINDIR .include "${.CURDIR}/../../Makefile.inc" .include "${.CURDIR}/../Makefile.inc0" +.include =20 .PATH: ${SRCDIR}/gas ${SRCDIR}/gas/config =20 @@ -79,7 +80,9 @@ CFLAGS+=3D -D_GNU_SOURCE CFLAGS+=3D -I${SRCDIR}/gas -I${SRCDIR}/bfd -I${SRCDIR}/gas/config -I${SRCD= IR} CFLAGS+=3D -I${.CURDIR} -I${.CURDIR}/${TARGET_CPUARCH}-freebsd =20 +.if ${MK_SHARED_TOOLCHAIN} =3D=3D "no" NO_SHARED?=3D yes +.endif =20 DPADD=3D ${RELTOP}/libbfd/libbfd.a DPADD+=3D ${RELTOP}/libiberty/libiberty.a diff --git a/gnu/usr.bin/binutils/ld/Makefile b/gnu/usr.bin/binutils/ld/Mak= efile index d4420ed..ef19afa 100644 --- a/gnu/usr.bin/binutils/ld/Makefile +++ b/gnu/usr.bin/binutils/ld/Makefile @@ -1,6 +1,7 @@ # $FreeBSD$ =20 .include "../Makefile.inc0" +.include =20 .PATH: ${SRCDIR}/ld =20 @@ -34,7 +35,9 @@ CFLAGS+=3D -DBINDIR=3D\"${BINDIR}\" -DTARGET_SYSTEM_ROOT= =3D\"${TOOLS_PREFIX}\" CFLAGS+=3D -DTOOLBINDIR=3D\"${TOOLS_PREFIX}/${BINDIR}/libexec\" CFLAGS+=3D -D_GNU_SOURCE CFLAGS+=3D -I${SRCDIR}/ld -I${SRCDIR}/bfd +.if ${MK_SHARED_TOOLCHAIN} =3D=3D "no" NO_SHARED?=3D yes +.endif DPADD=3D ${RELTOP}/libbfd/libbfd.a DPADD+=3D ${RELTOP}/libiberty/libiberty.a LDADD=3D ${DPADD} diff --git a/gnu/usr.bin/binutils/ranlib/Makefile b/gnu/usr.bin/binutils/ra= nlib/Makefile index 8679375..052f9fe 100644 --- a/gnu/usr.bin/binutils/ranlib/Makefile +++ b/gnu/usr.bin/binutils/ranlib/Makefile @@ -1,6 +1,7 @@ # $FreeBSD$ =20 .include "../Makefile.inc0" +.include =20 .PATH: ${SRCDIR}/binutils ${SRCDIR}/binutils/doc =20 @@ -16,7 +17,9 @@ CFLAGS+=3D -D_GNU_SOURCE CFLAGS+=3D -I${.CURDIR}/${RELTOP}/libbinutils CFLAGS+=3D -I${SRCDIR}/binutils CFLAGS+=3D -I${SRCDIR}/bfd +.if ${MK_SHARED_TOOLCHAIN} =3D=3D "no" NO_SHARED?=3D yes +.endif DPADD=3D ${RELTOP}/libbinutils/libbinutils.a DPADD+=3D ${RELTOP}/libbfd/libbfd.a DPADD+=3D ${RELTOP}/libiberty/libiberty.a diff --git a/gnu/usr.bin/cc/cc/Makefile b/gnu/usr.bin/cc/cc/Makefile index 78c83a5..ba53565 100644 --- a/gnu/usr.bin/cc/cc/Makefile +++ b/gnu/usr.bin/cc/cc/Makefile @@ -9,7 +9,9 @@ PROG=3D gcc MAN=3D gcc.1 SRCS+=3D gccspec.c =20 +.if ${MK_SHARED_TOOLCHAIN} =3D=3D "no" NO_SHARED?=3Dyes +.endif =20 MLINKS=3D gcc.1 g++.1 .if ${MK_CLANG_IS_CC} =3D=3D "no" diff --git a/gnu/usr.bin/cc/cc1/Makefile b/gnu/usr.bin/cc/cc1/Makefile index c65acd2..7b1e343 100644 --- a/gnu/usr.bin/cc/cc1/Makefile +++ b/gnu/usr.bin/cc/cc1/Makefile @@ -1,14 +1,17 @@ # $FreeBSD$ =20 .include "../Makefile.inc" +NO_MAN=3D +.include =20 .PATH: ${GCCDIR} =20 PROG=3D cc1 SRCS=3D main.c c-parser.c c-lang.c BINDIR=3D /usr/libexec -NO_MAN=3D +.if ${MK_SHARED_TOOLCHAIN} =3D=3D "no" NO_SHARED?=3Dyes +.endif =20 OBJS+=3D ${PROG}-checksum.o DPADD=3D ${LIBBACKEND} ${LIBCPP} ${LIBDECNUMBER} ${LIBIBERTY} diff --git a/gnu/usr.bin/cc/cc1plus/Makefile b/gnu/usr.bin/cc/cc1plus/Makef= ile index 964d20f..dd3d524 100644 --- a/gnu/usr.bin/cc/cc1plus/Makefile +++ b/gnu/usr.bin/cc/cc1plus/Makefile @@ -1,6 +1,8 @@ # $FreeBSD$ =20 .include "../Makefile.inc" +NO_MAN=3D +.include =20 .PATH: ${GCCDIR}/cp ${GCCDIR} =20 @@ -13,8 +15,9 @@ SRCS+=3D main.c cp-lang.c c-opts.c call.c class.c cvt.c c= xx-pretty-print.c \ cp-objcp-common.c cp-gimplify.c tree-mudflap.c =20 BINDIR=3D /usr/libexec -NO_MAN=3D +.if ${MK_SHARED_TOOLCHAIN} =3D=3D "no" NO_SHARED?=3Dyes +.endif =20 CFLAGS+=3D -I${GCCDIR}/cp -I. =20 diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk index 55d6ba2..b0acbfd 100644 --- a/share/mk/bsd.own.mk +++ b/share/mk/bsd.own.mk @@ -425,7 +425,8 @@ __DEFAULT_NO_OPTIONS =3D \ ICONV \ IDEA \ LIBCPLUSPLUS \ - OFED + OFED \ + SHARED_TOOLCHAIN =20 # # Default behaviour of some options depends on the architecture. Unfortun= ately diff --git a/tools/build/options/WITH_SHARED_TOOLCHAIN b/tools/build/option= s/WITH_SHARED_TOOLCHAIN new file mode 100644 index 0000000..48eea6d --- /dev/null +++ b/tools/build/options/WITH_SHARED_TOOLCHAIN @@ -0,0 +1,6 @@ +.\" $FreeBSD$ +Set to build the toolchain binaries shared. +The set includes +.Xr cc 1 , +.Xr make 1 +and neccessary utilites like assembler, linker and library archive manager. diff --git a/usr.bin/ar/Makefile b/usr.bin/ar/Makefile index e373120..e9bb893 100644 --- a/usr.bin/ar/Makefile +++ b/usr.bin/ar/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ =20 +.include + PROG=3D ar SRCS=3D ar.c acplex.l acpyacc.y read.c util.c write.c y.tab.h =20 @@ -8,7 +10,9 @@ LDADD=3D -larchive -lelf =20 CFLAGS+=3D-I. -I${.CURDIR} =20 +.if ${MK_SHARED_TOOLCHAIN} =3D=3D "no" NO_SHARED?=3D yes +.endif LINKS=3D ${BINDIR}/ar ${BINDIR}/ranlib MLINKS=3D ar.1 ranlib.1 =20 diff --git a/usr.bin/make/Makefile b/usr.bin/make/Makefile index 2dc7e58..f67cf50 100644 --- a/usr.bin/make/Makefile +++ b/usr.bin/make/Makefile @@ -2,13 +2,17 @@ # $Id: Makefile,v 1.6 1994/06/30 05:33:39 cgd Exp $ # $FreeBSD$ =20 +.include + PROG=3D make CFLAGS+=3D-I${.CURDIR} SRCS=3D arch.c buf.c cond.c dir.c for.c hash.c hash_tables.c job.c \ lst.c main.c make.c parse.c proc.c shell.c str.c suff.c targ.c \ util.c var.c =20 +.if ${MK_SHARED_TOOLCHAIN} =3D=3D "no" NO_SHARED?=3D YES +.endif =20 # Version has the RYYYYMMDDX format, where R is from RELENG_ CFLAGS+=3D-DMAKE_VERSION=3D\"5201111300\" --LO1tiPwOBUf6PfOG Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (FreeBSD) iEYEARECAAYFAk+ahzYACgkQC3+MBN1Mb4ii+wCeMlwMjiu4g17+P7HZrfbaFPa3 /aMAoOWs/efEQOlrwE8Np89hI1hhDdNs =UpfA -----END PGP SIGNATURE----- --LO1tiPwOBUf6PfOG-- From owner-freebsd-current@FreeBSD.ORG Fri Apr 27 12:14:04 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12203106564A; Fri, 27 Apr 2012 12:14:04 +0000 (UTC) (envelope-from jps@semihalf.com) Received: from smtp.semihalf.com (smtp.semihalf.com [213.17.239.109]) by mx1.freebsd.org (Postfix) with ESMTP id 92C2D8FC0A; Fri, 27 Apr 2012 12:14:03 +0000 (UTC) Received: from localhost (unknown [213.17.239.109]) by smtp.semihalf.com (Postfix) with ESMTP id 5AEE7119C41; Fri, 27 Apr 2012 14:05:30 +0200 (CEST) X-Virus-Scanned: by amavisd-new at semihalf.com Received: from smtp.semihalf.com ([213.17.239.109]) by localhost (smtp.semihalf.com [213.17.239.109]) (amavisd-new, port 10024) with ESMTP id vlWeM2RaE26e; Fri, 27 Apr 2012 14:05:29 +0200 (CEST) Received: from [10.0.0.35] (cardhu.semihalf.com [213.17.239.108]) by smtp.semihalf.com (Postfix) with ESMTPSA id 39479119C09; Fri, 27 Apr 2012 14:05:29 +0200 (CEST) Message-ID: <4F9A8B91.6060005@semihalf.com> Date: Fri, 27 Apr 2012 14:05:37 +0200 From: Jan Sieka User-Agent: Mozilla/5.0 (X11; FreeBSD i386; rv:9.0) Gecko/20111227 Thunderbird/9.0 MIME-Version: 1.0 To: Current FreeBSD References: <4F915384.6070308@semihalf.com> <4F919C50.70809@FreeBSD.org> <9B9312D3-489E-4EF1-85CB-0353024F6B94@gmail.com> <4F9428ED.6060902@FreeBSD.org> <3862F1CA-C1C8-49E6-B768-114A0A212496@gmail.com> <4F944139.4070309@FreeBSD.org> In-Reply-To: Content-Type: multipart/mixed; boundary="------------010305040905000703060905" Cc: Garrett Cooper , Doug Barton , Dimitry Andric Subject: Re: [workaroud/fix for] buildworld fails on FreeBSD 7.x for HEAD from 19.04.2012 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2012 12:14:04 -0000 This is a multi-part message in MIME format. --------------010305040905000703060905 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 2012.04.22 21:07, Garrett Cooper wrote: > On Apr 22, 2012, at 10:34 AM, Dimitry Andric wrote: > >> Well, I wouldn't want to run autoconf during build, firstly because it >> is horribly slow, and second because the results will be less >> predictable. Maybe during the bootstrap stage, it would be acceptable. > > Sure -- that seems reasonable. > >> But even then, one of the configure scripts could fail due to too-old >> system components, and you would be SOL. > > … but it would be a step forward from where things are currently at. I'm not sure how well tested "source upgrade" paths are, but being able to upgrade from the lowest supported version to the latest supported version, then upgrading to CURRENT (at the very least) would be nice. > >> Usually, if something is arch-dependent in a config.h file, we simply >> surround it with #ifdefs. > > Makes sense (assumption being that it can be controlled via the config.h/configure.{ac,in} file). However, jemalloc recently disproved this>_<. > >> Apparently the file(1) build needs a 'mkmagic' tool, which generates >> .mgc files (the 'compiled' version of magic files). This requirement >> was originally added in r81845, more than 10 years ago. > > I tested out removing libmagic from Makefile.inc1 and see that there's some dependency magic going on there where building the library failed. > >> Yes, it might work, but there is no guarantee. I'm not sure if there is >> enough incentive to change this policy. It would potentially require a >> lot effort to make it always work. > > Understood and I guess the ownness is upon the stakeholders to fix this, but there are a lot of companies that depend on things like this working (at least to reduce pain when doing source upgrades). This would probably be less of an issue for developers that use freebsd-update or for companies that roll their own freebsd-update (and servers). I have yet to run into a company that does this though (not saying there aren't groups that could or do do this, but it's not the standard path). > >> I wasn't aware of any chroot hackery? > > A publicly available example is available in FreeNAS ( http://freenas.svn.sourceforge.net/viewvc/freenas?view=revision&revision=8193 ); the hangup is building packages for a target system that doesn't match the build host. > > Cheers! > -Garrett Hello! I have prepared workaround/fix for this issue. It has been tested on FreeBSD 7.3 and 9.0 (both RELEASE) with good results: world build finishes OK. I attach the patch in case someone else is hit by this issue. Feel free to use it. Thanks for all suggestions and comments. Regards, Jan Sieka --------------010305040905000703060905 Content-Type: text/plain; name="libmagic.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="libmagic.patch" ZGlmZiAtLWdpdCBhL2xpYi9saWJtYWdpYy9NYWtlZmlsZSBiL2xpYi9saWJtYWdpYy9NYWtl ZmlsZQppbmRleCA5YzM1YzM1Li5lOWI4MjQwIDEwMDY0NAotLS0gYS9saWIvbGlibWFnaWMv TWFrZWZpbGUKKysrIGIvbGliL2xpYm1hZ2ljL01ha2VmaWxlCkBAIC0xMCw5ICsxMCwxNiBA QCBEUEFERD0JJHtMSUJafQogTERBREQ9CS1segogTUFOPQlsaWJtYWdpYy4zIG1hZ2ljLjUK IAorSE9TVE9TUkVMREFURSE9CWVjaG8gJHtWRVJTSU9OfSB8IGN1dCAtZCAiICIgLWYgNAor CisuaWYgJHtIT1NUT1NSRUxEQVRFfSA8IDgwMDAwMAorR0VUTElORV9DPQlnZXRsaW5lLmMK Ky5lbHNlCitHRVRMSU5FX0M9CisuZW5kaWYKIFNSQ1M9CWFwcHJlbnRpY2UuYyBhcHB0eXBl LmMgYXNjbWFnaWMuYyBjZGYuYyBjZGZfdGltZS5jIGNvbXByZXNzLmMgXAogCWVuY29kaW5n LmMgZnNtYWdpYy5jIGZ1bmNzLmMgXAotCWlzX3Rhci5jIG1hZ2ljLmMgcHJpbnQuYyByZWFk Y2RmLmMgcmVhZGVsZi5jIHNvZnRtYWdpYy5jCisJaXNfdGFyLmMgbWFnaWMuYyBwcmludC5j IHJlYWRjZGYuYyByZWFkZWxmLmMgc29mdG1hZ2ljLmMgJHtHRVRMSU5FX0N9CiBJTkNTPQlt YWdpYy5oCiAKIE1BR0lDUEFUSD89CS91c3Ivc2hhcmUvbWlzYwpAQCAtMzksNyArNDYsOCBA QCBtYWdpYy5tZ2M6IG1rbWFnaWMgbWFnaWMKIAogQ0xFQU5GSUxFUys9CW1rbWFnaWMKIGJ1 aWxkLXRvb2xzOiBta21hZ2ljCi1ta21hZ2ljOiBhcHByZW50aWNlLmMgZnVuY3MuYyBtYWdp Yy5jIHByaW50LmMKKworbWttYWdpYzogYXBwcmVudGljZS5jIGZ1bmNzLmMgbWFnaWMuYyBw cmludC5jICR7R0VUTElORV9DfQogCSR7Q0N9ICR7Q0ZMQUdTfSAtRENPTVBJTEVfT05MWSAk e0xERkxBR1N9IC1vICR7LlRBUkdFVH0gJHsuQUxMU1JDfQogCiBGSUxFVkVSIT0gYXdrICck JDEgPT0gIlwjZGVmaW5lIiAmJiAkJDIgPT0gIlZFUlNJT04iIHsgcHJpbnQgJCQzOyBleGl0 IH0nIFwKZGlmZiAtLWdpdCBhL2xpYi9saWJtYWdpYy9jb25maWcuaCBiL2xpYi9saWJtYWdp Yy9jb25maWcuaAppbmRleCAwNmVkNGVjLi4zZmUxMDNlIDEwMDY0NAotLS0gYS9saWIvbGli bWFnaWMvY29uZmlnLmgKKysrIGIvbGliL2xpYm1hZ2ljL2NvbmZpZy5oCkBAIC0zOSw3ICsz OSwxMSBAQAogI2RlZmluZSBIQVZFX0ZTRUVLTyAxCiAKIC8qIERlZmluZSB0byAxIGlmIHlv dSBoYXZlIHRoZSBgZ2V0bGluZScgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfR0VUTElO RSAxCisjaWYgKF9fRnJlZUJTRF92ZXJzaW9uID49IDgwMDAwMCkKKyNkZWZpbmUJSEFWRV9H RVRMSU5FIDEKKyNlbHNlCisjZGVmaW5lCUhBVkVfR0VUTElORSAwCisjZW5kaWYKIAogLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxnZXRvcHQuaD4gaGVhZGVyIGZpbGUuICov CiAjZGVmaW5lIEhBVkVfR0VUT1BUX0ggMQo= --------------010305040905000703060905-- From owner-freebsd-current@FreeBSD.ORG Fri Apr 27 13:40:22 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 40783106564A for ; Fri, 27 Apr 2012 13:40:22 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id 150AF8FC15 for ; Fri, 27 Apr 2012 13:40:22 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 58970B963; Fri, 27 Apr 2012 09:40:21 -0400 (EDT) From: John Baldwin To: freebsd-current@freebsd.org Date: Fri, 27 Apr 2012 07:51:11 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p13; KDE/4.5.5; amd64; ; ) References: <20120426224215.GA79891@mech-cluster241.men.bris.ac.uk> In-Reply-To: <20120426224215.GA79891@mech-cluster241.men.bris.ac.uk> MIME-Version: 1.0 Message-Id: <201204270751.11885.jhb@freebsd.org> Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Fri, 27 Apr 2012 09:40:21 -0400 (EDT) Cc: Anton Shterenlikht Subject: Re: updating from r231158 to 234465: mounting from ufs:/dev/ad4s1a failed with error 19 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2012 13:40:22 -0000 On Thursday, April 26, 2012 6:42:15 pm Anton Shterenlikht wrote: > I was updating from r231158 to 234465 > (amd64 laptop Compaq 6715s), > and I think I must've messed someting > up in the kernel config. Now I get > build error, panic of a loader error, > depending on which kernel I build. > > ********************************************************* > > If I build GENERIC, I get: > > (transcribed by hand) > > mountroot: waiting for device /dev/ad4s1a > Mounting from ufs:/dev/ad4s1a failed with error 19. > > mountroot> ? > > List of GEOM managed disk devices: > > cd0 > > mountroot> Hmm, so GENERIC is not finding ad4. Can you look in the dmesg (using scroll-lock) to see if GENERIC finds your ATA controller ok? > The device is certainly correct in r231158: > > BUZI> df > Filesystem 512-blocks Used Avail Capacity Mounted on > /dev/ad4s1a 101554068 46474368 46955376 50% / > devfs 2 2 0 100% /dev > BUZI> > > ********************************************************* > > If I add > > device atadisk > > to GENERIC, then I get this linking error: Yes, you aren't supposed to use 'atadisk' with ATA_CAM. See the UPDATING entry 20110424 for more details on that. However, can you obtain a verbose dmesg from your old kernel? -- John Baldwin From owner-freebsd-current@FreeBSD.ORG Fri Apr 27 16:35:02 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9F9D81065674 for ; Fri, 27 Apr 2012 16:35:02 +0000 (UTC) (envelope-from erichfreebsdlist@ovitrap.com) Received: from alogreentechnologies.com (alogreentechnologies.com [67.212.226.44]) by mx1.freebsd.org (Postfix) with ESMTP id 728DE8FC16 for ; Fri, 27 Apr 2012 16:35:02 +0000 (UTC) Received: from amd620.ovitrap.com ([49.128.188.2]) (authenticated bits=0) by alogreentechnologies.com (8.13.1/8.13.1) with ESMTP id q3RGC3QZ001786 for ; Fri, 27 Apr 2012 10:12:12 -0600 From: Erich Dollansky To: freebsd-current@freebsd.org Date: Fri, 27 Apr 2012 23:08:22 +0700 User-Agent: KMail/1.13.7 (FreeBSD/8.3-STABLE; KDE/4.7.4; amd64; ; ) MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Message-Id: <201204272308.22440.erichfreebsdlist@ovitrap.com> Subject: compiling world fails in ===> usr.sbin/dnssec-revoke (all) with 9.0 from today X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2012 16:35:02 -0000 Hi, I just downloaded the sources for 9.0 stable and got this error while compi= ling world: =3D=3D=3D> usr.sbin/dnssec-revoke (all) cc -O2 -pipe -DVERSION=3D'"9.8.1-P1"' -DHAVE_CONFIG_H -D_REENTRANT -D_THRE= AD_SAFE -DWANT_IPV6 -DOPENSSL -DUSE_MD5 -DNS_LOCALSTATEDIR=3D'"/var"' -DNS_= SYSCONFDIR=3D'"/etc/namedb"' -DNAMED_CONFFILE=3D'"/etc/namedb/named.conf"' = =2DDRNDC_CONFFILE=3D'"/etc/namedb/rndc.conf"' -DRNDC_KEYFILE=3D'"/etc/named= b/rndc.key"' -I/usr/src/usr.sbin/dnssec-revoke/../../lib/bind -I/usr/src/us= r.sbin/dnssec-revoke/../../contrib/bind9/lib/bind9/include -I/usr/src/usr.s= bin/dnssec-revoke/../../contrib/bind9/lib/dns/include/dst -I/usr/src/usr.s= bin/dnssec-revoke/../../contrib/bind9/lib/dns/include -I/usr/src/usr.sbin/= dnssec-revoke/../../lib/bind/dns -I/usr/src/usr.sbin/dnssec-revoke/../../co= ntrib/bind9/lib/isccc/include -I/usr/src/usr.sbin/dnssec-revoke/../../contr= ib/bind9/lib/isccfg/include -I/usr/src/usr.sbin/dnssec-revoke/../../contrib= /bind9/lib/isc/unix/include -I/usr/src/usr.sbin/dnssec-revoke/../../contri= b/bind9/lib/isc/pthreads/include -I/usr/src/usr.sbin/dnssec-revoke/../../c= ontrib/bind9/lib/isc/include -I/usr/src/usr.sbin/dnssec-revoke/../../lib/b= ind/isc -I/usr/src/usr.sbin/dnssec-revoke/../../contrib/bind9/lib/lwres/uni= x/include -I/usr/src/usr.sbin/dnssec-revoke/../../contrib/bind9/lib/lwres/= include -I/usr/src/usr.sbin/dnssec-revoke/../../lib/bind/lwres -I/usr/src/= usr.sbin/dnssec-revoke/../../contrib/bind9/bin/dnssec/unix/include -I/usr/s= rc/usr.sbin/dnssec-revoke/../../contrib/bind9/bin/dnssec/include -std=3Dgnu= 99 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno= =2Dunused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arit= h -Wno-uninitialized -Wno-pointer-sign -c /usr/src/usr.sbin/dnssec-revoke/.= =2E/../contrib/bind9/bin/dnssec/dnssec-revoke.c cc1: warnings being treated as errors /usr/src/usr.sbin/dnssec-revoke/../../contrib/bind9/bin/dnssec/dnssec-revok= e.c: In function 'main': /usr/src/usr.sbin/dnssec-revoke/../../contrib/bind9/bin/dnssec/dnssec-revok= e.c:194: warning: implicit declaration of function 'dst_key_rid' *** [dnssec-revoke.o] Error code 1 Stop in /usr/src/usr.sbin/dnssec-revoke. *** [all] Error code 1 The machine: =46reeBSD X220.ovitrap.com 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 3 0= 7:46:30 UTC 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENE= RIC amd64 It is an empty machine just installed from a thumb drive with nothing insta= lled on it yet. Should I treat the warnings as warnings and not as errors? Erich From owner-freebsd-current@FreeBSD.ORG Fri Apr 27 23:48:21 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 38EB9106566B for ; Fri, 27 Apr 2012 23:48:21 +0000 (UTC) (envelope-from m.e.sanliturk@gmail.com) Received: from mail-ob0-f182.google.com (mail-ob0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id 00A218FC14 for ; Fri, 27 Apr 2012 23:48:20 +0000 (UTC) Received: by obcni5 with SMTP id ni5so2175500obc.13 for ; Fri, 27 Apr 2012 16:48:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=dSByXt4tVSs1Ia5fbVPO3N6t345oQarM22tug496lLw=; b=fBQRPpf/J82YXsPFkBUPgpXAQiT9VuzUqzrpJ5aZuQhoLYETjVJjr68W5XRLxluD4J 3pMK1kZSPkcCT3ki37QN7wyaCfPbxRF+DxNlINFsTnHQgMzNOXtFaCOIJ7lHCPWscZFd 2l75q/9thsLwwL4qm28k5N4xin9dni0yRM+NevD+LnY9pCkvTNFUIV0obktwQoIfPr60 yNzUJsJr53OvgbvDe+ESZikACn6kYZ8TkYeKcWE88PXXq9yEw/FGV66frUccgovTbiH/ lFP0S623m/xPYaC9L1P5oYxowaSdXnMfrqGOw0VcZnnl7+VZbg+hzh3udPpCSTIWqux/ FCGg== MIME-Version: 1.0 Received: by 10.182.136.104 with SMTP id pz8mr16736368obb.37.1335570500628; Fri, 27 Apr 2012 16:48:20 -0700 (PDT) Received: by 10.182.154.70 with HTTP; Fri, 27 Apr 2012 16:48:20 -0700 (PDT) Date: Fri, 27 Apr 2012 19:48:20 -0400 Message-ID: From: Mehmet Erol Sanliturk To: FreeBSD Current Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: Mounting removable devices X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Apr 2012 23:48:21 -0000 Dear All , To mount removable devices , a user ( NOT root ) requires the following parameter vfs.usermount=1 in /etc/sysctl.conf . A warning is specified in http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/usb-disks.html about its security vulnerabilities . Instead of using vfs.usermount=1 for this purpose , a new parameter may be defined as follows : vfs.removablemount=1 . If vfs.usermount=1 is found in /etc/sysctl.conf , then vfs.removablemount=1 may be assumed , if it is not present in /etc/sysctl.conf . I prefer separate usage : vfs.usermount=1 for ONLY fixed devices , vfs.removablemount=1 for ONLY removable devices . A developer knowing the usage of vfs.usermount in FreeBSD sources may easily implement vfs.removablemount . Such an implementation will fix security vulnerability caused by using vfs.usermount=1 for removable devices . Sometimes , it may be necessary to restrict mount of removable devices due to security requirements . Therefore , supplying a vfs.removablemount= { 0 or 1 } may be a useful improvement . I am NOT able to supply a patch about this because I do NOT know sources sufficiently well . Thank you very much . Mehmet Erol Sanliturk From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 01:25:51 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9FB70106564A for ; Sat, 28 Apr 2012 01:25:51 +0000 (UTC) (envelope-from erichfreebsdlist@ovitrap.com) Received: from alogreentechnologies.com (alogreentechnologies.com [67.212.226.44]) by mx1.freebsd.org (Postfix) with ESMTP id 75BE18FC08 for ; Sat, 28 Apr 2012 01:25:51 +0000 (UTC) Received: from amd620.ovitrap.com ([49.128.188.2]) (authenticated bits=0) by alogreentechnologies.com (8.13.1/8.13.1) with ESMTP id q3S1PHKH016854; Fri, 27 Apr 2012 19:25:20 -0600 From: Erich Dollansky To: David Wolfskill Date: Sat, 28 Apr 2012 08:25:37 +0700 User-Agent: KMail/1.13.7 (FreeBSD/8.3-STABLE; KDE/4.7.4; amd64; ; ) References: <201204272308.22440.erichfreebsdlist@ovitrap.com> <20120427230728.GT1669@albert.catwhisker.org> In-Reply-To: <20120427230728.GT1669@albert.catwhisker.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-6" Content-Transfer-Encoding: 7bit Message-Id: <201204280825.37957.erichfreebsdlist@ovitrap.com> Cc: freebsd-current@freebsd.org Subject: Re: compiling world fails with 9.0 and 10.0 from today (28.04) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 01:25:51 -0000 Hi, I moved this back to current. See the reason below. I was a bit confused as I tried to install 9.0 and 10.0 but posted the 9.0 question to the 10.0 list. Here is the 10.0 question. On Saturday 28 April 2012 06:07:28 David Wolfskill wrote: > On Fri, Apr 27, 2012 at 11:08:22PM +0700, Erich Dollansky wrote: > > > > I just downloaded the sources for 9.0 stable and got this error while compiling world: > > You posted this to freebsd-current@ ??!? FreeBSD 9.x hasn't been > CURRENT since 25 Sep 2011. > > Further, I most recently built stable/9 at r234728 -- without issue. this is what I have gathered from the list and the Internet. It should work but it does not in my case. Let me first explain what I did. I downloaded the image for the thumb drive for 9.0. I then inserted a brand new disk in my notebook and installed FreeBSD 9.0 on it. So, the machine running the compilations is: FreeBSD X220.ovitrap.com 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 3 07:46:30 UTC 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 I downloaded then the most current sources for 9.0 and 10.0 and left the Internet for some reason. During travelling, I tried to compile both kernels and both failed. FreeBSD 10.0 gives me this error message: ===> kerberos5/tools (obj,depend,all) ===> kerberos5/tools/make-print-version (obj) cd: /usr/src/kerberos5/tools/make-print-version: No such file or directory *** [obj] Error code 2 Stop in /usr/src/kerberos5/tools. *** [build-tools] Error code 1 Where can I find information about 10.0 to enable me to fix this myself? I have the feeling that I have missed something very simple in the configuration process. Erich From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 01:32:02 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 998D0106566B for ; Sat, 28 Apr 2012 01:32:02 +0000 (UTC) (envelope-from david@catwhisker.org) Received: from albert.catwhisker.org (m209-73.dsl.rawbw.com [198.144.209.73]) by mx1.freebsd.org (Postfix) with ESMTP id 6C7528FC0A for ; Sat, 28 Apr 2012 01:32:02 +0000 (UTC) Received: from albert.catwhisker.org (localhost [127.0.0.1]) by albert.catwhisker.org (8.14.5/8.14.5) with ESMTP id q3S1Vtlr037648; Fri, 27 Apr 2012 18:31:56 -0700 (PDT) (envelope-from david@albert.catwhisker.org) Received: (from david@localhost) by albert.catwhisker.org (8.14.5/8.14.5/Submit) id q3S1Vtdf037647; Fri, 27 Apr 2012 18:31:55 -0700 (PDT) (envelope-from david) Date: Fri, 27 Apr 2012 18:31:55 -0700 From: David Wolfskill To: Erich Dollansky Message-ID: <20120428013155.GV1669@albert.catwhisker.org> References: <201204272308.22440.erichfreebsdlist@ovitrap.com> <20120427230728.GT1669@albert.catwhisker.org> <201204280825.37957.erichfreebsdlist@ovitrap.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="dIV3CY5swYZsO92m" Content-Disposition: inline In-Reply-To: <201204280825.37957.erichfreebsdlist@ovitrap.com> User-Agent: Mutt/1.4.2.3i Cc: freebsd-current@freebsd.org Subject: Re: compiling world fails with 9.0 and 10.0 from today (28.04) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 01:32:02 -0000 --dIV3CY5swYZsO92m Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Apr 28, 2012 at 08:25:37AM +0700, Erich Dollansky wrote: > ... > FreeBSD 10.0 gives me this error message: >=20 > =3D=3D=3D> kerberos5/tools (obj,depend,all) > =3D=3D=3D> kerberos5/tools/make-print-version (obj) > cd: /usr/src/kerberos5/tools/make-print-version: No such file or directory > *** [obj] Error code 2 >=20 > Stop in /usr/src/kerberos5/tools. > *** [build-tools] Error code 1 >=20 > Where can I find information about 10.0 to enable me to fix this myself? What command(s) did you use? What was your current working directory at the time? Have you reviewed /usr/src/UPDATING? Near the end of that file, there is a list of commands to use to build from sources. Scan for "COMMON ITEMS". > I have the feeling that I have missed something very simple in the config= uration process. You would hardly be the first to encounter such a thing. :-} Peace, david --=20 David H. Wolfskill david@catwhisker.org Depriving a girl or boy of an opportunity for education is evil. See http://www.catwhisker.org/~david/publickey.gpg for my public key. --dIV3CY5swYZsO92m Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEARECAAYFAk+bSIsACgkQmprOCmdXAD3ImwCdGwxcJZB3AT1WLF8cyI1lrlBG +RQAmQHdhNSXMiPwjNtESJruAfruIDaj =EN7g -----END PGP SIGNATURE----- --dIV3CY5swYZsO92m-- From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 01:50:58 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E6A541065670 for ; Sat, 28 Apr 2012 01:50:58 +0000 (UTC) (envelope-from erichfreebsdlist@ovitrap.com) Received: from alogreentechnologies.com (alogreentechnologies.com [67.212.226.44]) by mx1.freebsd.org (Postfix) with ESMTP id BCABA8FC08 for ; Sat, 28 Apr 2012 01:50:58 +0000 (UTC) Received: from amd620.ovitrap.com ([49.128.188.2]) (authenticated bits=0) by alogreentechnologies.com (8.13.1/8.13.1) with ESMTP id q3S1oSl8022583; Fri, 27 Apr 2012 19:50:31 -0600 From: Erich Dollansky To: freebsd-current@freebsd.org Date: Sat, 28 Apr 2012 08:50:47 +0700 User-Agent: KMail/1.13.7 (FreeBSD/8.3-STABLE; KDE/4.7.4; amd64; ; ) References: <201204272308.22440.erichfreebsdlist@ovitrap.com> <201204280825.37957.erichfreebsdlist@ovitrap.com> <20120428013155.GV1669@albert.catwhisker.org> In-Reply-To: <20120428013155.GV1669@albert.catwhisker.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-6" Content-Transfer-Encoding: 7bit Message-Id: <201204280850.47758.erichfreebsdlist@ovitrap.com> Cc: Subject: Re: compiling world fails with 9.0 and 10.0 from today (28.04) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 01:50:59 -0000 Hi, On Saturday 28 April 2012 08:31:55 David Wolfskill wrote: > On Sat, Apr 28, 2012 at 08:25:37AM +0700, Erich Dollansky wrote: > > ... > > FreeBSD 10.0 gives me this error message: > > > > ===> kerberos5/tools (obj,depend,all) > > ===> kerberos5/tools/make-print-version (obj) > > cd: /usr/src/kerberos5/tools/make-print-version: No such file or directory > > *** [obj] Error code 2 > > > > Stop in /usr/src/kerberos5/tools. > > *** [build-tools] Error code 1 > > > > Where can I find information about 10.0 to enable me to fix this myself? > > What command(s) did you use? What was your current working directory at > the time? > I use the following commands to do the compilation: cd /usr/src /usr/bin/nice -n 20 make buildworld > Have you reviewed /usr/src/UPDATING? Near the end of that file, there > is a list of commands to use to build from sources. Scan for "COMMON > ITEMS". > Do you mean this one? make kernel-toolchain make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE Isn't this the next step after building the world? > > I have the feeling that I have missed something very simple in the configuration process. > > You would hardly be the first to encounter such a thing. :-} I also think so. I am currently downloading the 9.0 sources into an empty source tree on a 8.3 machine to see what happens there. I extra did not copy the data from 9.0 machine to avoid any problem being moved over to the other working machine. Erich From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 01:59:16 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E91B106564A for ; Sat, 28 Apr 2012 01:59:16 +0000 (UTC) (envelope-from david@catwhisker.org) Received: from albert.catwhisker.org (m209-73.dsl.rawbw.com [198.144.209.73]) by mx1.freebsd.org (Postfix) with ESMTP id D7CD28FC0A for ; Sat, 28 Apr 2012 01:59:15 +0000 (UTC) Received: from albert.catwhisker.org (localhost [127.0.0.1]) by albert.catwhisker.org (8.14.5/8.14.5) with ESMTP id q3S1xFIn037722; Fri, 27 Apr 2012 18:59:15 -0700 (PDT) (envelope-from david@albert.catwhisker.org) Received: (from david@localhost) by albert.catwhisker.org (8.14.5/8.14.5/Submit) id q3S1xFNW037721; Fri, 27 Apr 2012 18:59:15 -0700 (PDT) (envelope-from david) Date: Fri, 27 Apr 2012 18:59:15 -0700 From: David Wolfskill To: Erich Dollansky Message-ID: <20120428015915.GW1669@albert.catwhisker.org> References: <201204272308.22440.erichfreebsdlist@ovitrap.com> <201204280825.37957.erichfreebsdlist@ovitrap.com> <20120428013155.GV1669@albert.catwhisker.org> <201204280850.47758.erichfreebsdlist@ovitrap.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ulNsWUvGrZAj8PMr" Content-Disposition: inline In-Reply-To: <201204280850.47758.erichfreebsdlist@ovitrap.com> User-Agent: Mutt/1.4.2.3i Cc: freebsd-current@freebsd.org Subject: Re: compiling world fails with 9.0 and 10.0 from today (28.04) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 01:59:16 -0000 --ulNsWUvGrZAj8PMr Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Apr 28, 2012 at 08:50:47AM +0700, Erich Dollansky wrote: > ... > I use the following commands to do the compilation: >=20 > cd /usr/src > /usr/bin/nice -n 20 make buildworld OK. That should build the userland OK. > > Have you reviewed /usr/src/UPDATING? Near the end of that file, there > > is a list of commands to use to build from sources. Scan for "COMMON > > ITEMS". > >=20 > Do you mean this one? >=20 > make kernel-toolchain > make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=3DYOUR_KERNEL_HERE > make -DALWAYS_CHECK_MAKE installkernel KERNCONF=3DYOUR_KERNEL_HERE >=20 > Isn't this the next step after building the world? No; I was referring to the part with the sub-heading To rebuild everything and install it on the current system. or To upgrade in-place from 8.x-stable to current depending on whether you're tring to update release/9.0 to stable/9 or release/9.0 to head (for example). > ... > I am currently downloading the 9.0 sources into an empty source tree on a= 8.3 machine to see what happens there. Note that this is also an upgrade. Peace, david --=20 David H. Wolfskill david@catwhisker.org Depriving a girl or boy of an opportunity for education is evil. See http://www.catwhisker.org/~david/publickey.gpg for my public key. --ulNsWUvGrZAj8PMr Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEARECAAYFAk+bTvMACgkQmprOCmdXAD1m1gCfeNy1MIhSW4BKz8hWAMJdrOoZ aYcAnjBToUMo8zXODiSn8l2cSfw0ts5R =r6rv -----END PGP SIGNATURE----- --ulNsWUvGrZAj8PMr-- From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 02:52:37 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CBDDA106564A for ; Sat, 28 Apr 2012 02:52:37 +0000 (UTC) (envelope-from erichfreebsdlist@ovitrap.com) Received: from alogreentechnologies.com (alogreentechnologies.com [67.212.226.44]) by mx1.freebsd.org (Postfix) with ESMTP id 97B3E8FC12 for ; Sat, 28 Apr 2012 02:52:37 +0000 (UTC) Received: from amd620.ovitrap.com ([49.128.188.2]) (authenticated bits=0) by alogreentechnologies.com (8.13.1/8.13.1) with ESMTP id q3S2q76X003292; Fri, 27 Apr 2012 20:52:10 -0600 From: Erich Dollansky To: David Wolfskill Date: Sat, 28 Apr 2012 09:52:26 +0700 User-Agent: KMail/1.13.7 (FreeBSD/8.3-STABLE; KDE/4.7.4; amd64; ; ) References: <201204272308.22440.erichfreebsdlist@ovitrap.com> <201204280850.47758.erichfreebsdlist@ovitrap.com> <20120428015915.GW1669@albert.catwhisker.org> In-Reply-To: <20120428015915.GW1669@albert.catwhisker.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-6" Content-Transfer-Encoding: 7bit Message-Id: <201204280952.26931.erichfreebsdlist@ovitrap.com> Cc: freebsd-current@freebsd.org Subject: Re: compiling world fails with 9.0 and 10.0 from today (28.04) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 02:52:37 -0000 Hi, On Saturday 28 April 2012 08:59:15 David Wolfskill wrote: > On Sat, Apr 28, 2012 at 08:50:47AM +0700, Erich Dollansky wrote: > > ... > > I use the following commands to do the compilation: > > > > cd /usr/src > > /usr/bin/nice -n 20 make buildworld > > OK. That should build the userland OK. this is what I expected. I simply follow blindly what is written here: > > > > Have you reviewed /usr/src/UPDATING? Near the end of that file, there > > > is a list of commands to use to build from sources. Scan for "COMMON > > > ITEMS". > > > > > Do you mean this one? > > > > make kernel-toolchain > > make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE > > make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE > > > > Isn't this the next step after building the world? > > No; I was referring to the part with the sub-heading > > To rebuild everything and install it on the current system. > > or > > To upgrade in-place from 8.x-stable to current > > depending on whether you're tring to update release/9.0 to stable/9 or > release/9.0 to head (for example). > > > ... > > I am currently downloading the 9.0 sources into an empty source tree on a 8.3 machine to see what happens there. > > Note that this is also an upgrade. > > Peace, > david > -- > David H. Wolfskill david@catwhisker.org > Depriving a girl or boy of an opportunity for education is evil. > > See http://www.catwhisker.org/~david/publickey.gpg for my public key. > From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 02:55:44 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E2212106564A for ; Sat, 28 Apr 2012 02:55:44 +0000 (UTC) (envelope-from erichfreebsdlist@ovitrap.com) Received: from alogreentechnologies.com (alogreentechnologies.com [67.212.226.44]) by mx1.freebsd.org (Postfix) with ESMTP id AD03A8FC08 for ; Sat, 28 Apr 2012 02:55:44 +0000 (UTC) Received: from amd620.ovitrap.com ([49.128.188.2]) (authenticated bits=0) by alogreentechnologies.com (8.13.1/8.13.1) with ESMTP id q3S2tG4M003974; Fri, 27 Apr 2012 20:55:19 -0600 From: Erich Dollansky To: David Wolfskill Date: Sat, 28 Apr 2012 09:55:35 +0700 User-Agent: KMail/1.13.7 (FreeBSD/8.3-STABLE; KDE/4.7.4; amd64; ; ) References: <201204272308.22440.erichfreebsdlist@ovitrap.com> <201204280850.47758.erichfreebsdlist@ovitrap.com> <20120428015915.GW1669@albert.catwhisker.org> In-Reply-To: <20120428015915.GW1669@albert.catwhisker.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-6" Content-Transfer-Encoding: 7bit Message-Id: <201204280955.35854.erichfreebsdlist@ovitrap.com> Cc: freebsd-current@freebsd.org Subject: Re: compiling world fails with 9.0 and 10.0 from today (28.04) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 02:55:45 -0000 Hi, sorry, I just have sent this out before finishing it. On Saturday 28 April 2012 08:59:15 David Wolfskill wrote: > On Sat, Apr 28, 2012 at 08:50:47AM +0700, Erich Dollansky wrote: > > ... > > I use the following commands to do the compilation: > > > > cd /usr/src > > /usr/bin/nice -n 20 make buildworld > > OK. That should build the userland OK. I use what is written here as my standard procedure: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html > > No; I was referring to the part with the sub-heading > > To rebuild everything and install it on the current system. > > or > > To upgrade in-place from 8.x-stable to current > > depending on whether you're tring to update release/9.0 to stable/9 or > release/9.0 to head (for example). I thought the procedure above covers both. It just contains some steps I would not need recompiling 8.3 after a few days with some updates. > > > ... > > I am currently downloading the 9.0 sources into an empty source tree on a 8.3 machine to see what happens there. > > Note that this is also an upgrade. This should not matter with the procedure as described above. Right? Thanks for you help. Erich > > Peace, > david > -- > David H. Wolfskill david@catwhisker.org > Depriving a girl or boy of an opportunity for education is evil. > > See http://www.catwhisker.org/~david/publickey.gpg for my public key. > From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 03:08:11 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 85A6B1065840; Sat, 28 Apr 2012 03:08:11 +0000 (UTC) (envelope-from obrien@NUXI.org) Received: from dragon.nuxi.org (trang.nuxi.org [74.95.12.85]) by mx1.freebsd.org (Postfix) with ESMTP id 3D2868FC14; Sat, 28 Apr 2012 03:08:11 +0000 (UTC) Received: from dragon.nuxi.org (obrien@localhost [127.0.0.1]) by dragon.nuxi.org (8.14.5/8.14.5) with ESMTP id q3S385M8055033; Fri, 27 Apr 2012 20:08:05 -0700 (PDT) (envelope-from obrien@dragon.nuxi.org) Received: (from obrien@localhost) by dragon.nuxi.org (8.14.5/8.14.5/Submit) id q3S385Qd055032; Fri, 27 Apr 2012 20:08:05 -0700 (PDT) (envelope-from obrien) Date: Fri, 27 Apr 2012 20:08:05 -0700 From: "David O'Brien" To: Jan Sieka Message-ID: <20120428030805.GD80419@dragon.NUXI.org> Mail-Followup-To: obrien@freebsd.org, Jan Sieka , Current FreeBSD , Garrett Cooper , Doug Barton , Dimitry Andric References: <4F915384.6070308@semihalf.com> <4F919C50.70809@FreeBSD.org> <9B9312D3-489E-4EF1-85CB-0353024F6B94@gmail.com> <4F9428ED.6060902@FreeBSD.org> <3862F1CA-C1C8-49E6-B768-114A0A212496@gmail.com> <4F944139.4070309@FreeBSD.org> <4F9A8B91.6060005@semihalf.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4F9A8B91.6060005@semihalf.com> X-Operating-System: FreeBSD 10.0-CURRENT X-to-the-FBI-CIA-and-NSA: HI! HOW YA DOIN? Precedence: bulk User-Agent: Mutt/1.5.20 (2009-06-14) Cc: Garrett Cooper , Current FreeBSD , Dimitry Andric , Doug Barton Subject: Re: [workaroud/fix for] buildworld fails on FreeBSD 7.x for HEAD from 19.04.2012 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Reply-To: obrien@freebsd.org List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 03:08:11 -0000 On Fri, Apr 27, 2012 at 02:05:37PM +0200, Jan Sieka wrote: > --- a/lib/libmagic/Makefile > +++ b/lib/libmagic/Makefile > @@ -10,9 +10,16 @@ DPADD= ${LIBZ} > LDADD= -lz > MAN= libmagic.3 magic.5 > > +HOSTOSRELDATE!= echo ${VERSION} | cut -d " " -f 4 $ cd lib/libmagic $ make -V VERSION {empty} Where is VERSION set? > +.if ${HOSTOSRELDATE} < 800000 > +GETLINE_C= getline.c > +.else > +GETLINE_C= > +.endif > SRCS= apprentice.c apptype.c ascmagic.c cdf.c cdf_time.c compress.c \ > encoding.c fsmagic.c funcs.c \ > - is_tar.c magic.c print.c readcdf.c readelf.c softmagic.c > + is_tar.c magic.c print.c readcdf.c readelf.c softmagic.c ${GETLINE_C} Just .if ${HOSTOSRELDATE} < 800000 GETLINE_C= getline.c .endif is shorter. Also r189136 (which added getline(3)) bumped __FreeBSD_version from 800066 to 800067. So your patch is broken for some systems. Getting this right is one reason I'm loath to carry around this type of hack in -CURRENT. > --- a/lib/libmagic/config.h > +++ b/lib/libmagic/config.h > /* Define to 1 if you have the `getline' function. */ > -#define HAVE_GETLINE 1 > +#if (__FreeBSD_version >= 800000) Where is "__FreeBSD_version" getting set? > +#else > +#define HAVE_GETLINE 0 > +#endif You've basically defined HAVE_GETLINE always as "0". -- -- David (obrien@FreeBSD.org) From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 03:12:13 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D862A106566C; Sat, 28 Apr 2012 03:12:13 +0000 (UTC) (envelope-from obrien@NUXI.org) Received: from dragon.nuxi.org (trang.nuxi.org [74.95.12.85]) by mx1.freebsd.org (Postfix) with ESMTP id B32238FC0C; Sat, 28 Apr 2012 03:12:13 +0000 (UTC) Received: from dragon.nuxi.org (obrien@localhost [127.0.0.1]) by dragon.nuxi.org (8.14.5/8.14.5) with ESMTP id q3S3CDeu055110; Fri, 27 Apr 2012 20:12:13 -0700 (PDT) (envelope-from obrien@dragon.nuxi.org) Received: (from obrien@localhost) by dragon.nuxi.org (8.14.5/8.14.5/Submit) id q3S3CCkC055109; Fri, 27 Apr 2012 20:12:12 -0700 (PDT) (envelope-from obrien) Date: Fri, 27 Apr 2012 20:12:12 -0700 From: "David O'Brien" To: Bob Bishop Message-ID: <20120428031212.GE80419@dragon.NUXI.org> Mail-Followup-To: obrien@freebsd.org, Bob Bishop , Konstantin Belousov , toolchain@freebsd.org, freebsd-current@freebsd.org References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> X-Operating-System: FreeBSD 10.0-CURRENT X-to-the-FBI-CIA-and-NSA: HI! HOW YA DOIN? Precedence: bulk User-Agent: Mutt/1.5.20 (2009-06-14) Cc: Konstantin Belousov , toolchain@freebsd.org, freebsd-current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Reply-To: obrien@freebsd.org List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 03:12:13 -0000 On Thu, Apr 26, 2012 at 12:38:03PM +0100, Bob Bishop wrote: > > Apparently, current dependencies are much more spread, e.g. /bin/sh > > is dynamically linked [etc] > > That seems like a bad mistake, because it would prevent even booting > single-user if rtld/libraries are broken. When one enters single user they are prompted for which shell to use. If /bin/sh is broken due to being dynamic, '/rescue/sh' will likely still work. -- -- David (obrien@FreeBSD.org) From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 03:12:50 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A6B4F106566C; Sat, 28 Apr 2012 03:12:50 +0000 (UTC) (envelope-from obrien@NUXI.org) Received: from dragon.nuxi.org (trang.nuxi.org [74.95.12.85]) by mx1.freebsd.org (Postfix) with ESMTP id 7FDFE8FC0A; Sat, 28 Apr 2012 03:12:50 +0000 (UTC) Received: from dragon.nuxi.org (obrien@localhost [127.0.0.1]) by dragon.nuxi.org (8.14.5/8.14.5) with ESMTP id q3S3Co1v055124; Fri, 27 Apr 2012 20:12:50 -0700 (PDT) (envelope-from obrien@dragon.nuxi.org) Received: (from obrien@localhost) by dragon.nuxi.org (8.14.5/8.14.5/Submit) id q3S3CoCV055123; Fri, 27 Apr 2012 20:12:50 -0700 (PDT) (envelope-from obrien) Date: Fri, 27 Apr 2012 20:12:50 -0700 From: "David O'Brien" To: John Baldwin Message-ID: <20120428031250.GF80419@dragon.NUXI.org> Mail-Followup-To: obrien@freebsd.org, John Baldwin , freebsd-current@freebsd.org, Konstantin Belousov , toolchain@freebsd.org References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> <201204260752.01127.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201204260752.01127.jhb@freebsd.org> X-Operating-System: FreeBSD 10.0-CURRENT X-to-the-FBI-CIA-and-NSA: HI! HOW YA DOIN? Precedence: bulk User-Agent: Mutt/1.5.20 (2009-06-14) Cc: Konstantin Belousov , toolchain@freebsd.org, freebsd-current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Reply-To: obrien@freebsd.org List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 03:12:50 -0000 On Thu, Apr 26, 2012 at 07:52:01AM -0400, John Baldwin wrote: > You could use /rescue/sh as your single-user shell. Of course, that would > perhaps let you still be able to recompile things if you had a static > toolchain. :) Having the toolchain static has saved me in exactly this way. -- -- David (obrien@FreeBSD.org) From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 07:01:51 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EEABB106566C; Sat, 28 Apr 2012 07:01:51 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id B89228FC12; Sat, 28 Apr 2012 07:01:51 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3S6xIX9034518; Sat, 28 Apr 2012 02:59:18 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3S6xI1p034517; Sat, 28 Apr 2012 06:59:18 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 06:59:18 GMT Message-Id: <201204280659.q3S6xI1p034517@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on powerpc/powerpc X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 07:01:52 -0000 TB --- 2012-04-28 05:34:44 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 05:34:44 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 05:34:44 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2012-04-28 05:34:44 - cleaning the object tree TB --- 2012-04-28 05:34:44 - cvsupping the source tree TB --- 2012-04-28 05:34:44 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc/powerpc/supfile TB --- 2012-04-28 05:35:36 - building world TB --- 2012-04-28 05:35:36 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 05:35:36 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 05:35:36 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 05:35:36 - SRCCONF=/dev/null TB --- 2012-04-28 05:35:36 - TARGET=powerpc TB --- 2012-04-28 05:35:36 - TARGET_ARCH=powerpc TB --- 2012-04-28 05:35:36 - TZ=UTC TB --- 2012-04-28 05:35:36 - __MAKE_CONF=/dev/null TB --- 2012-04-28 05:35:36 - cd /src TB --- 2012-04-28 05:35:36 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 05:35:37 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 06:47:10 UTC 2012 TB --- 2012-04-28 06:47:10 - generating LINT kernel config TB --- 2012-04-28 06:47:10 - cd /src/sys/powerpc/conf TB --- 2012-04-28 06:47:10 - /usr/bin/make -B LINT TB --- 2012-04-28 06:47:10 - cd /src/sys/powerpc/conf TB --- 2012-04-28 06:47:10 - /usr/sbin/config -m LINT TB --- 2012-04-28 06:47:10 - building LINT kernel TB --- 2012-04-28 06:47:10 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 06:47:10 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 06:47:10 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 06:47:10 - SRCCONF=/dev/null TB --- 2012-04-28 06:47:10 - TARGET=powerpc TB --- 2012-04-28 06:47:10 - TARGET_ARCH=powerpc TB --- 2012-04-28 06:47:10 - TZ=UTC TB --- 2012-04-28 06:47:10 - __MAKE_CONF=/dev/null TB --- 2012-04-28 06:47:10 - cd /src TB --- 2012-04-28 06:47:10 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 06:47:10 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/powerpc/aim/mmu_oea.c cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/powerpc/aim/mmu_oea64.c awk -f /src/sys/tools/makeobjops.awk /src/sys/powerpc/aim/moea64_if.m -c ; cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror moea64_if.c cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/powerpc/aim/moea64_native.c cc1: warnings being treated as errors /src/sys/powerpc/aim/moea64_native.c: In function 'TLBIE': /src/sys/powerpc/aim/moea64_native.c:177: warning: implicit declaration of function 'intr_enable' /src/sys/powerpc/aim/moea64_native.c:177: warning: nested extern declaration of 'intr_enable' [-Wnested-externs] *** Error code 1 Stop in /obj/powerpc.powerpc/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 06:59:18 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 06:59:18 - ERROR: failed to build LINT kernel TB --- 2012-04-28 06:59:18 - 3732.59 user 629.35 system 5073.52 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-powerpc-powerpc.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 10:03:29 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B5CC7106564A; Sat, 28 Apr 2012 10:03:29 +0000 (UTC) (envelope-from rb@gid.co.uk) Received: from mx0.gid.co.uk (mx0.gid.co.uk [194.32.164.250]) by mx1.freebsd.org (Postfix) with ESMTP id 4EECB8FC17; Sat, 28 Apr 2012 10:03:29 +0000 (UTC) Received: from rbpbp.gid.co.uk (80-46-130-69.static.dsl.as9105.com [80.46.130.69]) by mx0.gid.co.uk (8.14.2/8.14.2) with ESMTP id q3SA3MA0052622; Sat, 28 Apr 2012 11:03:22 +0100 (BST) (envelope-from rb@gid.co.uk) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: Bob Bishop In-Reply-To: <20120428031212.GE80419@dragon.NUXI.org> Date: Sat, 28 Apr 2012 11:03:17 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> <20120428031212.GE80419@dragon.NUXI.org> To: obrien@freebsd.org X-Mailer: Apple Mail (2.1084) Cc: Konstantin Belousov , toolchain@freebsd.org, freebsd-current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 10:03:29 -0000 Hi, On 28 Apr 2012, at 04:12, David O'Brien wrote: > On Thu, Apr 26, 2012 at 12:38:03PM +0100, Bob Bishop wrote: >>> Apparently, current dependencies are much more spread, e.g. /bin/sh >>> is dynamically linked [etc] >>=20 >> That seems like a bad mistake, because it would prevent even booting >> single-user if rtld/libraries are broken. >=20 > When one enters single user they are prompted for which shell to use. > If /bin/sh is broken due to being dynamic, '/rescue/sh' will likely = still > work. Yes. You to have a statically linked /rescue/sh on board, so what's the = point of /bin/sh being dynamic? The memory footprint really isn't an = issue, and for my money the default shell ought to be bombproof. -- Bob Bishop rb@gid.co.uk From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 10:23:53 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A248F106566B; Sat, 28 Apr 2012 10:23:53 +0000 (UTC) (envelope-from ohartman@zedat.fu-berlin.de) Received: from outpost1.zedat.fu-berlin.de (outpost1.zedat.fu-berlin.de [130.133.4.66]) by mx1.freebsd.org (Postfix) with ESMTP id 569F88FC08; Sat, 28 Apr 2012 10:23:53 +0000 (UTC) Received: from inpost2.zedat.fu-berlin.de ([130.133.4.69]) by outpost1.zedat.fu-berlin.de (Exim 4.69) with esmtp (envelope-from ) id <1SO4XR-0005mM-Lm>; Sat, 28 Apr 2012 12:06:01 +0200 Received: from e178018189.adsl.alicedsl.de ([85.178.18.189] helo=thor.walstatt.dyndns.org) by inpost2.zedat.fu-berlin.de (Exim 4.69) with esmtpsa (envelope-from ) id <1SO4XR-0003IT-CG>; Sat, 28 Apr 2012 12:06:01 +0200 Message-ID: <4F9BC101.8090305@zedat.fu-berlin.de> Date: Sat, 28 Apr 2012 12:05:53 +0200 From: "O. Hartmann" User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:10.0.3) Gecko/20120314 Thunderbird/10.0.3 MIME-Version: 1.0 To: Current FreeBSD , Ports FreeBSD X-Enigmail-Version: 1.4 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig798FACFB13A706D012E5FD45" X-Originating-IP: 85.178.18.189 Cc: Subject: New Xorg: graphics/dri: fails to compile with CLANG: nouveau_array.c:49:16: error: illegal storage class on function, *extract_u = EXTRACT(char, unsigned, 1); X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 10:23:53 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig798FACFB13A706D012E5FD45 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Compiling Xorg stuff with the switch set in /etc/make.conf for the new Xorg graphics/dri mesa 7.11.x and xorg-server 1.10.6 with CLANG on bot FreeBSD 10 and 9 end up in an error: nouveau_array.c:49:16: error: illegal storage class on function *extract_u =3D EXTRACT(char, unsigned, 1); This error seem to be well known since last year, as this links states: http://lists.freedesktop.org/archives/nouveau/2011-December/009768.html and claimed to be resolved, as this link indicates: http://lists.freedesktop.org/archives/mesa-dev/2012-March/019815.html and http://cgit.freedesktop.org/mesa/mesa/commit/?id=3D4aa1ac5fe94b5696095229= ee3568bf4fa7cfed95 Is there in "official" way to get this fixed with CLANG? I see that files folder in graphics/dri is missing, so none of the fixes for both the faulty source files nouveau_array.c nouveau_render_t.c as indicated by the patches have been fixed permanently for CLANG with FreeBSD so far. It would be a pleasure having a "nice" solution using CLANG. I was looking for a switch allowing to patch the sources upon a criteria, but the ports framework seems not to be capable of such a thing. If there is already a solution I would be pleased to have it, too, if available, otherwise I will go for installation of GIT, sucking in the patches and create myself patchfiles. I'm hesitating to do so at the moment since I don't want to have git installed since I do not use it, yet (updating useless/unused ports is sometimes a waste of time on slow boxes, sorry). Thanks in advance, Oliver --------------enig798FACFB13A706D012E5FD45 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iQEcBAEBAgAGBQJPm8EHAAoJEOgBcD7A/5N8+YEH/1FokHuX4t2Q3+Ubis81l3+F X3TilfjYitxfgPHaDaf/+Zk2Nepu9CjqRgp59jdRj+iEuoL1kPn/Rukh/5/uyA7c eHqXrVelOSy1X0vd+5X7fXq9svgg7ErpurSPiCBSNGFNJJUov9/aL4Jx0Qu4SP/j JHGimgNA8WPodOfz1iXDLdSl5QPiMwub3BX41YegR/xO5l/rXGhvB+SMCWjLfj8z qh86DZ9D1jSQmfiqk6vFfrrqbFa2LnxV5rc6GNx2rp/SCRNYRlp9imsofr/z/pYq okChWINtGLvLuqhKwvS7cDvNAoa5wN4LHav6yCkHfNw1y2sSQ38URLXti/PbeSI= =L+Q7 -----END PGP SIGNATURE----- --------------enig798FACFB13A706D012E5FD45-- From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 10:31:38 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5F1AE106564A; Sat, 28 Apr 2012 10:31:38 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 28D418FC08; Sat, 28 Apr 2012 10:31:38 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SAVbk4030247; Sat, 28 Apr 2012 06:31:37 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SAVbMN030246; Sat, 28 Apr 2012 10:31:37 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 10:31:37 GMT Message-Id: <201204281031.q3SAVbMN030246@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on arm/arm X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 10:31:38 -0000 TB --- 2012-04-28 09:30:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 09:30:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 09:30:00 - starting HEAD tinderbox run for arm/arm TB --- 2012-04-28 09:30:00 - cleaning the object tree TB --- 2012-04-28 09:30:00 - cvsupping the source tree TB --- 2012-04-28 09:30:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/arm/arm/supfile TB --- 2012-04-28 09:32:20 - building world TB --- 2012-04-28 09:32:20 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 09:32:20 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 09:32:20 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 09:32:20 - SRCCONF=/dev/null TB --- 2012-04-28 09:32:20 - TARGET=arm TB --- 2012-04-28 09:32:20 - TARGET_ARCH=arm TB --- 2012-04-28 09:32:20 - TZ=UTC TB --- 2012-04-28 09:32:20 - __MAKE_CONF=/dev/null TB --- 2012-04-28 09:32:20 - cd /src TB --- 2012-04-28 09:32:20 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 09:32:20 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 10:30:51 UTC 2012 TB --- 2012-04-28 10:30:51 - cd /src/sys/arm/conf TB --- 2012-04-28 10:30:51 - /usr/sbin/config -m AVILA TB --- 2012-04-28 10:30:51 - building AVILA kernel TB --- 2012-04-28 10:30:51 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 10:30:51 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 10:30:51 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 10:30:51 - SRCCONF=/dev/null TB --- 2012-04-28 10:30:51 - TARGET=arm TB --- 2012-04-28 10:30:51 - TARGET_ARCH=arm TB --- 2012-04-28 10:30:51 - TZ=UTC TB --- 2012-04-28 10:30:51 - __MAKE_CONF=/dev/null TB --- 2012-04-28 10:30:51 - cd /src TB --- 2012-04-28 10:30:51 - /usr/bin/make -B buildkernel KERNCONF=AVILA >>> Kernel build for AVILA started on Sat Apr 28 10:30:52 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -mbig-endian -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -mcpu=xscale -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -mbig-endian -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -mcpu=xscale -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -mbig-endian -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -mcpu=xscale -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -mbig-endian -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -mcpu=xscale -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/arm.arm/src/sys/AVILA. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 10:31:37 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 10:31:37 - ERROR: failed to build AVILA kernel TB --- 2012-04-28 10:31:37 - 2466.34 user 569.88 system 3696.32 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-arm-arm.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 11:12:18 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 71EAD10657DA; Sat, 28 Apr 2012 11:12:18 +0000 (UTC) (envelope-from c.kworr@gmail.com) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id C6CC88FC08; Sat, 28 Apr 2012 11:12:17 +0000 (UTC) Received: by weyt57 with SMTP id t57so1186988wey.13 for ; Sat, 28 Apr 2012 04:12:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=Sig6glDlvRoLpTKk0ESPVL8VSLQqplhSpW4nyViQ/GY=; b=CcYTmqbYLojUQrx8E2v9nmThC/a6uf65pW5auWpedOm2X5UWnwnAypctVxiwz5y2A3 rc6JCjaZrLYe64RKNBW0IqKn+iVs67ZmLs26D/NhjqMsZJlo5UoDEHhmXx1qD9XP+wZT jHmr0/EsVzR8hyGmSvsqBHXLNJ2xtRN8hOOt5Q67PGtDHZGJwC05KibN914dPAC4iv85 +KNTeOFGclWY7iCQgvhSIo240WDYILgpbAMOkCAaFSc9KmhFb2/6ipvQtyR8Z/YzPN2u w6jabSOujlvEDdH3p9nY6qINk4BpW3gfU+vABPk3L4SPHUEtjGfa90NhGZjAqITYVvf7 DfCg== Received: by 10.180.92.71 with SMTP id ck7mr1446244wib.2.1335611536766; Sat, 28 Apr 2012 04:12:16 -0700 (PDT) Received: from green.tandem.local (12-37-132-95.pool.ukrtel.net. [95.132.37.12]) by mx.google.com with ESMTPS id ff9sm11782534wib.2.2012.04.28.04.12.14 (version=SSLv3 cipher=OTHER); Sat, 28 Apr 2012 04:12:15 -0700 (PDT) Message-ID: <4F9BD08C.4090405@gmail.com> Date: Sat, 28 Apr 2012 14:12:12 +0300 From: Volodymyr Kostyrko User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:12.0) Gecko/20120426 Firefox/12.0 SeaMonkey/2.9 MIME-Version: 1.0 To: "O. Hartmann" References: <4F9BC101.8090305@zedat.fu-berlin.de> In-Reply-To: <4F9BC101.8090305@zedat.fu-berlin.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: Current FreeBSD , Ports FreeBSD Subject: Re: New Xorg: graphics/dri: fails to compile with CLANG: nouveau_array.c:49:16: error: illegal storage class on function, *extract_u = EXTRACT(char, unsigned, 1); X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 11:12:18 -0000 O. Hartmann wrote: > Is there in "official" way to get this fixed with CLANG? I see that > files folder in graphics/dri is missing, so none of the fixes for both > the faulty source files I think the patch should go to graphics/libGL. cd /usr/ports/graphics/libGL/files fetch -rao - 'http://cgit.freedesktop.org/mesa/mesa/patch/?id=4aa1ac5fe94b5696095229ee3568bf4fa7cfed95' | sed -e 's|^--- a/src|--- src|' -e 's|^+++ b/src|+++ src|' > patch-nouveau Should do. -- Sphinx of black quartz judge my vow. From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 12:07:33 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 059B91065670; Sat, 28 Apr 2012 12:07:33 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id C83058FC18; Sat, 28 Apr 2012 12:07:32 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SC7VJn047217; Sat, 28 Apr 2012 08:07:31 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SC7VwX047187; Sat, 28 Apr 2012 12:07:31 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 12:07:31 GMT Message-Id: <201204281207.q3SC7VwX047187@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on i386/pc98 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 12:07:33 -0000 TB --- 2012-04-28 09:30:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 09:30:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 09:30:00 - starting HEAD tinderbox run for i386/pc98 TB --- 2012-04-28 09:30:00 - cleaning the object tree TB --- 2012-04-28 09:30:00 - cvsupping the source tree TB --- 2012-04-28 09:30:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/pc98/supfile TB --- 2012-04-28 09:32:19 - building world TB --- 2012-04-28 09:32:19 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 09:32:19 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 09:32:19 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 09:32:19 - SRCCONF=/dev/null TB --- 2012-04-28 09:32:19 - TARGET=pc98 TB --- 2012-04-28 09:32:19 - TARGET_ARCH=i386 TB --- 2012-04-28 09:32:19 - TZ=UTC TB --- 2012-04-28 09:32:19 - __MAKE_CONF=/dev/null TB --- 2012-04-28 09:32:19 - cd /src TB --- 2012-04-28 09:32:19 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 09:32:19 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 12:00:32 UTC 2012 TB --- 2012-04-28 12:00:32 - generating LINT kernel config TB --- 2012-04-28 12:00:32 - cd /src/sys/pc98/conf TB --- 2012-04-28 12:00:32 - /usr/bin/make -B LINT TB --- 2012-04-28 12:00:32 - cd /src/sys/pc98/conf TB --- 2012-04-28 12:00:32 - /usr/sbin/config -m LINT TB --- 2012-04-28 12:00:32 - building LINT kernel TB --- 2012-04-28 12:00:32 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 12:00:32 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 12:00:32 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 12:00:32 - SRCCONF=/dev/null TB --- 2012-04-28 12:00:32 - TARGET=pc98 TB --- 2012-04-28 12:00:32 - TARGET_ARCH=i386 TB --- 2012-04-28 12:00:32 - TZ=UTC TB --- 2012-04-28 12:00:32 - __MAKE_CONF=/dev/null TB --- 2012-04-28 12:00:32 - cd /src TB --- 2012-04-28 12:00:32 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 12:00:32 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/pc98.i386/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 12:07:31 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 12:07:31 - ERROR: failed to build LINT kernel TB --- 2012-04-28 12:07:31 - 6786.68 user 959.48 system 9450.90 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-pc98.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 12:09:40 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 52C481065673; Sat, 28 Apr 2012 12:09:40 +0000 (UTC) (envelope-from ray@dlink.ua) Received: from smtp.dlink.ua (smtp.dlink.ua [193.138.187.146]) by mx1.freebsd.org (Postfix) with ESMTP id 08F8A8FC1C; Sat, 28 Apr 2012 12:09:39 +0000 (UTC) Received: from terran.dlink.ua (unknown [192.168.10.235]) (Authenticated sender: ray) by smtp.dlink.ua (Postfix) with ESMTPSA id E143DC4936; Sat, 28 Apr 2012 15:09:32 +0300 (EEST) Date: Sat, 28 Apr 2012 15:09:41 +0300 From: Aleksandr Rybalko To: Jason Evans Message-Id: <20120428150941.e0464900.ray@dlink.ua> In-Reply-To: <7AD8956D-AD18-4CAB-9953-06E00185A7DA@freebsd.org> References: <20120421185402.GH1743@albert.catwhisker.org> <7AD8956D-AD18-4CAB-9953-06E00185A7DA@freebsd.org> Organization: D-Link X-Mailer: Sylpheed 2.7.1 (GTK+ 2.20.1; i386-portbld-freebsd8.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: current@freebsd.org Subject: Re: : jemalloc_arena.c:182: Failed assertion: "p[i] == 0" X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 12:09:40 -0000 On Sat, 21 Apr 2012 13:11:16 -0700 Jason Evans wrote: >> On Apr 21, 2012, at 11:54 AM, David Wolfskill wrote: >> > After applying Dimitry Andric's patches to contrib/jemalloc and >> > replacing /usr/bin/as with one built last Sunday, I was finally(!) >> > able to rebuild head as of 234536: >> > >> > FreeBSD freebeast.catwhisker.org 10.0-CURRENT FreeBSD 10.0-CURRENT >> > #797 234536M: Sat Apr 21 10:23:33 PDT 2012 >> > #root@freebeast.catwhisker.org:/usr/obj/usr/src/sys/GENERIC i386 >> > >> > However, as I was copying a /usr/obj hierarchy via tar -- e.g.: >> > >> > root@freebeast:/common/home/david # (cd /var/tmp && rm -fr obj && >> > mkdir obj) && (cd /usr && tar cpf - obj) | (cd /var/tmp && tar xpf >> > -) >> > >> > it ran for a while, then: >> > >> > : jemalloc_arena.c:182: Failed assertion: "p[i] == 0" >> > Abort (core dumped) >> > root@freebeast:/common/home/david # echo $? >> > 134 >> > root@freebeast:/common/home/david # ls -lTio *.core >> > ls: No match. >> > root@freebeast:/common/home/david # >> > >> > So ... no core file, apparently. >> > >> > freebeast(10.0-C)[2] find /usr/src/contrib/jemalloc -type f -name >> > jemalloc_arena.c freebeast(10.0-C)[3] >> > >> > No file named "jemalloc_arena.c", either. >> > >> > But contrib/jemalloc/src/arena.c contains a function, >> > arena_chunk_validate_zeroed(): >> > >> > 175 static inline void >> > 176 arena_chunk_validate_zeroed(arena_chunk_t *chunk, size_t >> > run_ind) 177 { >> > 178 size_t i; >> > 179 UNUSED size_t *p = (size_t *)((uintptr_t)chunk + >> > (run_ind << LG_PAGE)); 180 >> > 181 for (i = 0; i < PAGE / sizeof(size_t); i++) >> > 182 assert(p[i] == 0); >> > 183 } >> > >> > Thoughts? >> >> I received a similar report yesterday in the context of filezilla, >> but didn't get as far as reproducing it. I think the problem is in >> chunk_alloc_dss(), which dangerously claims that newly allocated >> memory is zeroed. It looks like I formalized this bad assumption in >> early 2010, though the bug existed before that. It's a bigger deal >> now because sbrk() is preferred over mmap(), so the bug has >> languished for a couple of years. I'll get a fix committed today >> (and revert the order of preference between sbrk() and mmap()). >> >> By the way, I wonder why not everyone hits this (I don't). >> >> Thanks, >> Jason_______________________________________________ >> freebsd-current@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-current >> To unsubscribe, send any mail to >> "freebsd-current-unsubscribe@freebsd.org" Hi, maybe it somehow related to low count of free memory, because I see that very frequently on my box. (Atheros AR7242 mips32be with 32M of RAM) After "#ifdef" of that function body, box behave good (seems) :) WBW -- Alexandr Rybalko aka Alex RAY From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 12:11:06 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5EA7B1065672; Sat, 28 Apr 2012 12:11:06 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 25B878FC1C; Sat, 28 Apr 2012 12:11:06 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SCB5GC065819; Sat, 28 Apr 2012 08:11:05 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SCB52p065814; Sat, 28 Apr 2012 12:11:05 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 12:11:05 GMT Message-Id: <201204281211.q3SCB52p065814@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on i386/i386 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 12:11:06 -0000 TB --- 2012-04-28 09:30:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 09:30:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 09:30:00 - starting HEAD tinderbox run for i386/i386 TB --- 2012-04-28 09:30:00 - cleaning the object tree TB --- 2012-04-28 09:30:00 - cvsupping the source tree TB --- 2012-04-28 09:30:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/i386/supfile TB --- 2012-04-28 09:32:19 - building world TB --- 2012-04-28 09:32:19 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 09:32:19 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 09:32:19 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 09:32:19 - SRCCONF=/dev/null TB --- 2012-04-28 09:32:19 - TARGET=i386 TB --- 2012-04-28 09:32:19 - TARGET_ARCH=i386 TB --- 2012-04-28 09:32:19 - TZ=UTC TB --- 2012-04-28 09:32:19 - __MAKE_CONF=/dev/null TB --- 2012-04-28 09:32:19 - cd /src TB --- 2012-04-28 09:32:19 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 09:32:19 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 12:02:00 UTC 2012 TB --- 2012-04-28 12:02:00 - generating LINT kernel config TB --- 2012-04-28 12:02:00 - cd /src/sys/i386/conf TB --- 2012-04-28 12:02:00 - /usr/bin/make -B LINT TB --- 2012-04-28 12:02:00 - cd /src/sys/i386/conf TB --- 2012-04-28 12:02:00 - /usr/sbin/config -m LINT TB --- 2012-04-28 12:02:00 - building LINT kernel TB --- 2012-04-28 12:02:00 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 12:02:00 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 12:02:00 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 12:02:00 - SRCCONF=/dev/null TB --- 2012-04-28 12:02:00 - TARGET=i386 TB --- 2012-04-28 12:02:00 - TARGET_ARCH=i386 TB --- 2012-04-28 12:02:00 - TZ=UTC TB --- 2012-04-28 12:02:00 - __MAKE_CONF=/dev/null TB --- 2012-04-28 12:02:00 - cd /src TB --- 2012-04-28 12:02:00 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 12:02:01 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/i386.i386/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 12:11:05 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 12:11:05 - ERROR: failed to build LINT kernel TB --- 2012-04-28 12:11:05 - 6879.70 user 979.66 system 9664.59 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-i386.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 12:19:01 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 69CBE106566C; Sat, 28 Apr 2012 12:19:01 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 35A5A8FC0A; Sat, 28 Apr 2012 12:19:01 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SCJ0YI031718; Sat, 28 Apr 2012 08:19:00 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SCJ020031713; Sat, 28 Apr 2012 12:19:00 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 12:19:00 GMT Message-Id: <201204281219.q3SCJ020031713@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on ia64/ia64 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 12:19:01 -0000 TB --- 2012-04-28 10:31:37 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 10:31:37 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 10:31:37 - starting HEAD tinderbox run for ia64/ia64 TB --- 2012-04-28 10:31:37 - cleaning the object tree TB --- 2012-04-28 10:31:37 - cvsupping the source tree TB --- 2012-04-28 10:31:37 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/ia64/ia64/supfile TB --- 2012-04-28 10:32:31 - building world TB --- 2012-04-28 10:32:31 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 10:32:31 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 10:32:31 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 10:32:31 - SRCCONF=/dev/null TB --- 2012-04-28 10:32:31 - TARGET=ia64 TB --- 2012-04-28 10:32:31 - TARGET_ARCH=ia64 TB --- 2012-04-28 10:32:31 - TZ=UTC TB --- 2012-04-28 10:32:31 - __MAKE_CONF=/dev/null TB --- 2012-04-28 10:32:31 - cd /src TB --- 2012-04-28 10:32:31 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 10:32:32 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 12:11:48 UTC 2012 TB --- 2012-04-28 12:11:48 - generating LINT kernel config TB --- 2012-04-28 12:11:48 - cd /src/sys/ia64/conf TB --- 2012-04-28 12:11:48 - /usr/bin/make -B LINT TB --- 2012-04-28 12:11:48 - cd /src/sys/ia64/conf TB --- 2012-04-28 12:11:48 - /usr/sbin/config -m LINT TB --- 2012-04-28 12:11:48 - building LINT kernel TB --- 2012-04-28 12:11:48 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 12:11:48 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 12:11:48 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 12:11:48 - SRCCONF=/dev/null TB --- 2012-04-28 12:11:48 - TARGET=ia64 TB --- 2012-04-28 12:11:48 - TARGET_ARCH=ia64 TB --- 2012-04-28 12:11:48 - TZ=UTC TB --- 2012-04-28 12:11:48 - __MAKE_CONF=/dev/null TB --- 2012-04-28 12:11:48 - cd /src TB --- 2012-04-28 12:11:48 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 12:11:48 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/ia64/libuwx/src -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mconstant-gp -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/ia64/libuwx/src -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mconstant-gp -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/ia64/libuwx/src -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mconstant-gp -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/ia64/libuwx/src -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mconstant-gp -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/ia64.ia64/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 12:19:00 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 12:19:00 - ERROR: failed to build LINT kernel TB --- 2012-04-28 12:19:00 - 4555.11 user 685.59 system 6443.16 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-ia64-ia64.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 12:43:57 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 771681065670; Sat, 28 Apr 2012 12:43:57 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 2C5278FC12; Sat, 28 Apr 2012 12:43:57 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SChuZj057846; Sat, 28 Apr 2012 08:43:56 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SChunf057843; Sat, 28 Apr 2012 12:43:56 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 12:43:56 GMT Message-Id: <201204281243.q3SChunf057843@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on amd64/amd64 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 12:43:57 -0000 TB --- 2012-04-28 09:30:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 09:30:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 09:30:00 - starting HEAD tinderbox run for amd64/amd64 TB --- 2012-04-28 09:30:00 - cleaning the object tree TB --- 2012-04-28 09:30:00 - cvsupping the source tree TB --- 2012-04-28 09:30:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/amd64/amd64/supfile TB --- 2012-04-28 09:36:07 - building world TB --- 2012-04-28 09:36:07 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 09:36:07 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 09:36:07 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 09:36:07 - SRCCONF=/dev/null TB --- 2012-04-28 09:36:07 - TARGET=amd64 TB --- 2012-04-28 09:36:07 - TARGET_ARCH=amd64 TB --- 2012-04-28 09:36:07 - TZ=UTC TB --- 2012-04-28 09:36:07 - __MAKE_CONF=/dev/null TB --- 2012-04-28 09:36:07 - cd /src TB --- 2012-04-28 09:36:07 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 09:36:08 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> stage 5.1: building 32 bit shim libraries >>> World build completed on Sat Apr 28 12:36:15 UTC 2012 TB --- 2012-04-28 12:36:15 - generating LINT kernel config TB --- 2012-04-28 12:36:15 - cd /src/sys/amd64/conf TB --- 2012-04-28 12:36:15 - /usr/bin/make -B LINT TB --- 2012-04-28 12:36:15 - cd /src/sys/amd64/conf TB --- 2012-04-28 12:36:15 - /usr/sbin/config -m LINT TB --- 2012-04-28 12:36:15 - building LINT kernel TB --- 2012-04-28 12:36:15 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 12:36:15 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 12:36:15 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 12:36:15 - SRCCONF=/dev/null TB --- 2012-04-28 12:36:15 - TARGET=amd64 TB --- 2012-04-28 12:36:15 - TARGET_ARCH=amd64 TB --- 2012-04-28 12:36:15 - TZ=UTC TB --- 2012-04-28 12:36:15 - __MAKE_CONF=/dev/null TB --- 2012-04-28 12:36:15 - cd /src TB --- 2012-04-28 12:36:15 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 12:36:15 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/amd64.amd64/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 12:43:56 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 12:43:56 - ERROR: failed to build LINT kernel TB --- 2012-04-28 12:43:56 - 8252.38 user 1267.02 system 11635.57 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-amd64-amd64.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 13:12:28 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4976B106566C; Sat, 28 Apr 2012 13:12:28 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 083A78FC0A; Sat, 28 Apr 2012 13:12:27 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SDCQJw059222; Sat, 28 Apr 2012 09:12:26 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SDCQca059217; Sat, 28 Apr 2012 13:12:26 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 13:12:26 GMT Message-Id: <201204281312.q3SDCQca059217@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on mips/mips X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 13:12:28 -0000 TB --- 2012-04-28 12:07:32 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 12:07:32 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 12:07:32 - starting HEAD tinderbox run for mips/mips TB --- 2012-04-28 12:07:32 - cleaning the object tree TB --- 2012-04-28 12:07:32 - cvsupping the source tree TB --- 2012-04-28 12:07:32 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/mips/mips/supfile TB --- 2012-04-28 12:09:04 - building world TB --- 2012-04-28 12:09:04 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 12:09:04 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 12:09:04 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 12:09:04 - SRCCONF=/dev/null TB --- 2012-04-28 12:09:04 - TARGET=mips TB --- 2012-04-28 12:09:04 - TARGET_ARCH=mips TB --- 2012-04-28 12:09:04 - TZ=UTC TB --- 2012-04-28 12:09:04 - __MAKE_CONF=/dev/null TB --- 2012-04-28 12:09:04 - cd /src TB --- 2012-04-28 12:09:04 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 12:09:05 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 13:11:21 UTC 2012 TB --- 2012-04-28 13:11:21 - cd /src/sys/mips/conf TB --- 2012-04-28 13:11:21 - /usr/sbin/config -m ADM5120 TB --- 2012-04-28 13:11:21 - skipping ADM5120 kernel TB --- 2012-04-28 13:11:21 - cd /src/sys/mips/conf TB --- 2012-04-28 13:11:21 - /usr/sbin/config -m ALCHEMY TB --- 2012-04-28 13:11:21 - skipping ALCHEMY kernel TB --- 2012-04-28 13:11:21 - cd /src/sys/mips/conf TB --- 2012-04-28 13:11:21 - /usr/sbin/config -m AP94 TB --- 2012-04-28 13:11:21 - building AP94 kernel TB --- 2012-04-28 13:11:21 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 13:11:21 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 13:11:21 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 13:11:21 - SRCCONF=/dev/null TB --- 2012-04-28 13:11:21 - TARGET=mips TB --- 2012-04-28 13:11:21 - TARGET_ARCH=mips TB --- 2012-04-28 13:11:21 - TZ=UTC TB --- 2012-04-28 13:11:21 - __MAKE_CONF=/dev/null TB --- 2012-04-28 13:11:21 - cd /src TB --- 2012-04-28 13:11:21 - /usr/bin/make -B buildkernel KERNCONF=AP94 >>> Kernel build for AP94 started on Sat Apr 28 13:11:21 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=10000 --param large-function-growth=100000 --param max-inline-insns-single=10000 -fno-pic -mno-abicalls -G0 -DKERNLOADADDR=0x80050000 -march=mips32 -msoft-float -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=10000 --param large-function-growth=100000 --param max-inline-insns-single=10000 -fno-pic -mno-abicalls -G0 -DKERNLOADADDR=0x80050000 -march=mips32 -msoft-float -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=10000 --param large-function-growth=100000 --param max-inline-insns-single=10000 -fno-pic -mno-abicalls -G0 -DKERNLOADADDR=0x80050000 -march=mips32 -msoft-float -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=10000 --param large-function-growth=100000 --param max-inline-insns-single=10000 -fno-pic -mno-abicalls -G0 -DKERNLOADADDR=0x80050000 -march=mips32 -msoft-float -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/mips.mips/src/sys/AP94. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 13:12:26 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 13:12:26 - ERROR: failed to build AP94 kernel TB --- 2012-04-28 13:12:26 - 2593.20 user 573.01 system 3894.23 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-mips-mips.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 13:28:00 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 77D07106566B; Sat, 28 Apr 2012 13:28:00 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 42FC38FC0A; Sat, 28 Apr 2012 13:28:00 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SDRxZR045592; Sat, 28 Apr 2012 09:27:59 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SDRxiU045591; Sat, 28 Apr 2012 13:27:59 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 13:27:59 GMT Message-Id: <201204281327.q3SDRxiU045591@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on powerpc/powerpc X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 13:28:00 -0000 TB --- 2012-04-28 12:11:05 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 12:11:05 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 12:11:05 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2012-04-28 12:11:05 - cleaning the object tree TB --- 2012-04-28 12:12:44 - cvsupping the source tree TB --- 2012-04-28 12:12:44 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc/powerpc/supfile TB --- 2012-04-28 12:13:47 - building world TB --- 2012-04-28 12:13:47 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 12:13:47 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 12:13:47 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 12:13:47 - SRCCONF=/dev/null TB --- 2012-04-28 12:13:47 - TARGET=powerpc TB --- 2012-04-28 12:13:47 - TARGET_ARCH=powerpc TB --- 2012-04-28 12:13:47 - TZ=UTC TB --- 2012-04-28 12:13:47 - __MAKE_CONF=/dev/null TB --- 2012-04-28 12:13:47 - cd /src TB --- 2012-04-28 12:13:47 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 12:13:48 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 13:24:28 UTC 2012 TB --- 2012-04-28 13:24:28 - generating LINT kernel config TB --- 2012-04-28 13:24:28 - cd /src/sys/powerpc/conf TB --- 2012-04-28 13:24:28 - /usr/bin/make -B LINT TB --- 2012-04-28 13:24:28 - cd /src/sys/powerpc/conf TB --- 2012-04-28 13:24:28 - /usr/sbin/config -m LINT TB --- 2012-04-28 13:24:28 - building LINT kernel TB --- 2012-04-28 13:24:28 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 13:24:28 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 13:24:28 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 13:24:28 - SRCCONF=/dev/null TB --- 2012-04-28 13:24:28 - TARGET=powerpc TB --- 2012-04-28 13:24:28 - TARGET_ARCH=powerpc TB --- 2012-04-28 13:24:28 - TZ=UTC TB --- 2012-04-28 13:24:28 - __MAKE_CONF=/dev/null TB --- 2012-04-28 13:24:28 - cd /src TB --- 2012-04-28 13:24:28 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 13:24:29 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/powerpc.powerpc/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 13:27:59 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 13:27:59 - ERROR: failed to build LINT kernel TB --- 2012-04-28 13:27:59 - 3306.58 user 610.89 system 4613.91 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-powerpc-powerpc.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 13:51:40 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DF891106566B; Sat, 28 Apr 2012 13:51:40 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id AF60B8FC08; Sat, 28 Apr 2012 13:51:40 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SDpep2098746; Sat, 28 Apr 2012 09:51:40 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SDpePH098745; Sat, 28 Apr 2012 13:51:40 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 13:51:40 GMT Message-Id: <201204281351.q3SDpePH098745@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on sparc64/sparc64 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 13:51:41 -0000 TB --- 2012-04-28 12:43:56 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 12:43:56 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 12:43:56 - starting HEAD tinderbox run for sparc64/sparc64 TB --- 2012-04-28 12:43:57 - cleaning the object tree TB --- 2012-04-28 12:43:57 - cvsupping the source tree TB --- 2012-04-28 12:43:57 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/sparc64/sparc64/supfile TB --- 2012-04-28 12:45:01 - building world TB --- 2012-04-28 12:45:01 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 12:45:01 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 12:45:01 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 12:45:01 - SRCCONF=/dev/null TB --- 2012-04-28 12:45:01 - TARGET=sparc64 TB --- 2012-04-28 12:45:01 - TARGET_ARCH=sparc64 TB --- 2012-04-28 12:45:01 - TZ=UTC TB --- 2012-04-28 12:45:01 - __MAKE_CONF=/dev/null TB --- 2012-04-28 12:45:01 - cd /src TB --- 2012-04-28 12:45:01 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 12:45:02 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 13:47:46 UTC 2012 TB --- 2012-04-28 13:47:46 - generating LINT kernel config TB --- 2012-04-28 13:47:46 - cd /src/sys/sparc64/conf TB --- 2012-04-28 13:47:46 - /usr/bin/make -B LINT TB --- 2012-04-28 13:47:46 - cd /src/sys/sparc64/conf TB --- 2012-04-28 13:47:46 - /usr/sbin/config -m LINT TB --- 2012-04-28 13:47:47 - building LINT kernel TB --- 2012-04-28 13:47:47 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 13:47:47 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 13:47:47 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 13:47:47 - SRCCONF=/dev/null TB --- 2012-04-28 13:47:47 - TARGET=sparc64 TB --- 2012-04-28 13:47:47 - TARGET_ARCH=sparc64 TB --- 2012-04-28 13:47:47 - TZ=UTC TB --- 2012-04-28 13:47:47 - __MAKE_CONF=/dev/null TB --- 2012-04-28 13:47:47 - cd /src TB --- 2012-04-28 13:47:47 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 13:47:47 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/sparc64.sparc64/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 13:51:40 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 13:51:40 - ERROR: failed to build LINT kernel TB --- 2012-04-28 13:51:40 - 3133.87 user 557.91 system 4063.21 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-sparc64-sparc64.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 14:59:56 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5C3E8106566C; Sat, 28 Apr 2012 14:59:56 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 2B7658FC08; Sat, 28 Apr 2012 14:59:56 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SExt3g051847; Sat, 28 Apr 2012 10:59:55 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SExt80051846; Sat, 28 Apr 2012 14:59:55 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 14:59:55 GMT Message-Id: <201204281459.q3SExt80051846@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on powerpc64/powerpc X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 14:59:56 -0000 TB --- 2012-04-28 12:19:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 12:19:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 12:19:00 - starting HEAD tinderbox run for powerpc64/powerpc TB --- 2012-04-28 12:19:00 - cleaning the object tree TB --- 2012-04-28 12:19:00 - cvsupping the source tree TB --- 2012-04-28 12:19:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc64/powerpc/supfile TB --- 2012-04-28 12:20:07 - building world TB --- 2012-04-28 12:20:07 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 12:20:07 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 12:20:07 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 12:20:07 - SRCCONF=/dev/null TB --- 2012-04-28 12:20:07 - TARGET=powerpc TB --- 2012-04-28 12:20:07 - TARGET_ARCH=powerpc64 TB --- 2012-04-28 12:20:07 - TZ=UTC TB --- 2012-04-28 12:20:07 - __MAKE_CONF=/dev/null TB --- 2012-04-28 12:20:07 - cd /src TB --- 2012-04-28 12:20:07 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 12:20:08 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> stage 5.1: building 32 bit shim libraries >>> World build completed on Sat Apr 28 14:56:28 UTC 2012 TB --- 2012-04-28 14:56:28 - generating LINT kernel config TB --- 2012-04-28 14:56:28 - cd /src/sys/powerpc/conf TB --- 2012-04-28 14:56:28 - /usr/bin/make -B LINT TB --- 2012-04-28 14:56:28 - cd /src/sys/powerpc/conf TB --- 2012-04-28 14:56:28 - /usr/sbin/config -m LINT TB --- 2012-04-28 14:56:28 - building LINT kernel TB --- 2012-04-28 14:56:28 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 14:56:28 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 14:56:28 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 14:56:28 - SRCCONF=/dev/null TB --- 2012-04-28 14:56:28 - TARGET=powerpc TB --- 2012-04-28 14:56:28 - TARGET_ARCH=powerpc64 TB --- 2012-04-28 14:56:28 - TZ=UTC TB --- 2012-04-28 14:56:28 - __MAKE_CONF=/dev/null TB --- 2012-04-28 14:56:28 - cd /src TB --- 2012-04-28 14:56:28 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 14:56:28 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/powerpc.powerpc64/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 14:59:55 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 14:59:55 - ERROR: failed to build LINT kernel TB --- 2012-04-28 14:59:55 - 8197.75 user 1064.12 system 9654.42 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-powerpc64-powerpc.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 16:06:35 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CCF6106566B; Sat, 28 Apr 2012 16:06:35 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 538148FC15; Sat, 28 Apr 2012 16:06:35 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SG6S4w035327; Sat, 28 Apr 2012 12:06:28 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SG6Sgg035326; Sat, 28 Apr 2012 16:06:28 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 16:06:28 GMT Message-Id: <201204281606.q3SG6Sgg035326@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on arm/arm X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 16:06:35 -0000 TB --- 2012-04-28 15:00:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 15:00:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 15:00:00 - starting HEAD tinderbox run for arm/arm TB --- 2012-04-28 15:00:00 - cleaning the object tree TB --- 2012-04-28 15:04:00 - cvsupping the source tree TB --- 2012-04-28 15:04:00 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/arm/arm/supfile TB --- 2012-04-28 15:05:08 - building world TB --- 2012-04-28 15:05:08 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 15:05:08 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 15:05:08 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 15:05:08 - SRCCONF=/dev/null TB --- 2012-04-28 15:05:08 - TARGET=arm TB --- 2012-04-28 15:05:08 - TARGET_ARCH=arm TB --- 2012-04-28 15:05:08 - TZ=UTC TB --- 2012-04-28 15:05:08 - __MAKE_CONF=/dev/null TB --- 2012-04-28 15:05:08 - cd /src TB --- 2012-04-28 15:05:08 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 15:05:09 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 16:05:40 UTC 2012 TB --- 2012-04-28 16:05:40 - cd /src/sys/arm/conf TB --- 2012-04-28 16:05:40 - /usr/sbin/config -m AVILA TB --- 2012-04-28 16:05:40 - building AVILA kernel TB --- 2012-04-28 16:05:40 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 16:05:40 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 16:05:40 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 16:05:40 - SRCCONF=/dev/null TB --- 2012-04-28 16:05:40 - TARGET=arm TB --- 2012-04-28 16:05:40 - TARGET_ARCH=arm TB --- 2012-04-28 16:05:40 - TZ=UTC TB --- 2012-04-28 16:05:40 - __MAKE_CONF=/dev/null TB --- 2012-04-28 16:05:40 - cd /src TB --- 2012-04-28 16:05:40 - /usr/bin/make -B buildkernel KERNCONF=AVILA >>> Kernel build for AVILA started on Sat Apr 28 16:05:40 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -mbig-endian -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -mcpu=xscale -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -mbig-endian -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -mcpu=xscale -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -mbig-endian -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -mcpu=xscale -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -mbig-endian -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -mcpu=xscale -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/arm.arm/src/sys/AVILA. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 16:06:28 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 16:06:28 - ERROR: failed to build AVILA kernel TB --- 2012-04-28 16:06:28 - 2473.98 user 574.22 system 3988.14 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-arm-arm.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 16:52:20 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CF7E91065675; Sat, 28 Apr 2012 16:52:20 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id 88F858FC08; Sat, 28 Apr 2012 16:52:20 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:9875:2809:2793:7777] (unknown [IPv6:2001:7b8:3a7:0:9875:2809:2793:7777]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id ADF5B5C59; Sat, 28 Apr 2012 18:52:19 +0200 (CEST) Message-ID: <4F9C2047.8020108@FreeBSD.org> Date: Sat, 28 Apr 2012 18:52:23 +0200 From: Dimitry Andric Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120420 Thunderbird/12.0 MIME-Version: 1.0 To: Volodymyr Kostyrko References: <4F9BC101.8090305@zedat.fu-berlin.de> <4F9BD08C.4090405@gmail.com> In-Reply-To: <4F9BD08C.4090405@gmail.com> X-Enigmail-Version: 1.4.1 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Cc: Current FreeBSD , "O. Hartmann" , Ports FreeBSD Subject: Re: New Xorg: graphics/dri: fails to compile with CLANG: nouveau_array.c:49:16: error: illegal storage class on function, *extract_u = EXTRACT(char, unsigned, 1); X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 16:52:20 -0000 On 2012-04-28 13:12, Volodymyr Kostyrko wrote: > O. Hartmann wrote: >> Is there in "official" way to get this fixed with CLANG? I see that >> files folder in graphics/dri is missing, so none of the fixes for both >> the faulty source files > > I think the patch should go to graphics/libGL. > > cd /usr/ports/graphics/libGL/files > fetch -rao - > 'http://cgit.freedesktop.org/mesa/mesa/patch/?id=4aa1ac5fe94b5696095229ee3568bf4fa7cfed95' > | sed -e 's|^--- a/src|--- src|' -e 's|^+++ b/src|+++ src|' > patch-nouveau > > Should do. Please try this patch (lightly tested): http://www.andric.com/freebsd/clang/clangports-graphics-libGL-3.diff From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 16:59:29 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7FAD21065672; Sat, 28 Apr 2012 16:59:29 +0000 (UTC) (envelope-from tim@kientzle.com) Received: from monday.kientzle.com (99-115-135-74.uvs.sntcca.sbcglobal.net [99.115.135.74]) by mx1.freebsd.org (Postfix) with ESMTP id F1A518FC18; Sat, 28 Apr 2012 16:59:28 +0000 (UTC) Received: (from root@localhost) by monday.kientzle.com (8.14.4/8.14.4) id q3SGxLHh093654; Sat, 28 Apr 2012 16:59:21 GMT (envelope-from tim@kientzle.com) Received: from [192.168.2.143] (CiscoE3000 [192.168.1.65]) by kientzle.com with SMTP id 5jkbja5wwf73r79eaizc9jey9i; Sat, 28 Apr 2012 16:59:21 +0000 (UTC) (envelope-from tim@kientzle.com) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: text/plain; charset=us-ascii From: Tim Kientzle In-Reply-To: Date: Sat, 28 Apr 2012 09:59:20 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <225B99F7-00C7-4C1B-B2EF-8FE7F15A9F1F@kientzle.com> References: <20120426093548.GR2358@deviant.kiev.zoral.com.ua> <5BCE2E77-2B45-43B7-AB1F-6E6C13B87B34@gid.co.uk> <20120428031212.GE80419@dragon.NUXI.org> To: Bob Bishop X-Mailer: Apple Mail (2.1257) Cc: Konstantin Belousov , toolchain@freebsd.org, freebsd-current@freebsd.org Subject: Re: [RFC] Un-staticise the toolchain X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 16:59:29 -0000 On Apr 28, 2012, at 3:03 AM, Bob Bishop wrote: >=20 > On 28 Apr 2012, at 04:12, David O'Brien wrote: >=20 >> On Thu, Apr 26, 2012 at 12:38:03PM +0100, Bob Bishop wrote: >>>> Apparently, current dependencies are much more spread, e.g. /bin/sh >>>> is dynamically linked [etc] >>>=20 >>> That seems like a bad mistake, because it would prevent even booting >>> single-user if rtld/libraries are broken. >>=20 >> When one enters single user they are prompted for which shell to use. >> If /bin/sh is broken due to being dynamic, '/rescue/sh' will likely = still >> work. >=20 > Yes. You to have a statically linked /rescue/sh on board, so what's = the point of /bin/sh being dynamic? The memory footprint really isn't an = issue, and for my money the default shell ought to be bombproof. By "default shell", I think you mean "the shell loaded by default in single user mode". That shell could be /rescue/sh. Single-user recovery does not require /bin/sh being static. Tim From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 17:20:30 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 836A6106566B; Sat, 28 Apr 2012 17:20:30 +0000 (UTC) (envelope-from mexas@bristol.ac.uk) Received: from dirg.bris.ac.uk (dirg.bris.ac.uk [137.222.10.102]) by mx1.freebsd.org (Postfix) with ESMTP id 36E7D8FC17; Sat, 28 Apr 2012 17:20:30 +0000 (UTC) Received: from ncsd.bris.ac.uk ([137.222.10.59] helo=ncs.bris.ac.uk) by dirg.bris.ac.uk with esmtp (Exim 4.72) (envelope-from ) id 1SOBJm-0001yf-JX; Sat, 28 Apr 2012 18:20:22 +0100 Received: from mech-cluster241.men.bris.ac.uk ([137.222.187.241]) by ncs.bris.ac.uk with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1SOBJm-00036C-Bf; Sat, 28 Apr 2012 18:20:22 +0100 Received: from mech-cluster241.men.bris.ac.uk (localhost [127.0.0.1]) by mech-cluster241.men.bris.ac.uk (8.14.5/8.14.5) with ESMTP id q3SHKMwo092280; Sat, 28 Apr 2012 18:20:22 +0100 (BST) (envelope-from mexas@bris.ac.uk) Received: (from mexas@localhost) by mech-cluster241.men.bris.ac.uk (8.14.5/8.14.5/Submit) id q3SHKMVW092279; Sat, 28 Apr 2012 18:20:22 +0100 (BST) (envelope-from mexas@bris.ac.uk) X-Authentication-Warning: mech-cluster241.men.bris.ac.uk: mexas set sender to mexas@bris.ac.uk using -f Date: Sat, 28 Apr 2012 18:20:22 +0100 From: Anton Shterenlikht To: John Baldwin Message-ID: <20120428172021.GA92264@mech-cluster241.men.bris.ac.uk> Mail-Followup-To: John Baldwin , freebsd-current@freebsd.org, Anton Shterenlikht References: <20120426224215.GA79891@mech-cluster241.men.bris.ac.uk> <201204270751.11885.jhb@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201204270751.11885.jhb@freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: freebsd-current@freebsd.org, Anton Shterenlikht Subject: Re: updating from r231158 to 234465: mounting from ufs:/dev/ad4s1a failed with error 19 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 17:20:30 -0000 On Fri, Apr 27, 2012 at 07:51:11AM -0400, John Baldwin wrote: > On Thursday, April 26, 2012 6:42:15 pm Anton Shterenlikht wrote: > > I was updating from r231158 to 234465 > > (amd64 laptop Compaq 6715s), > > and I think I must've messed someting > > up in the kernel config. Now I get > > build error, panic of a loader error, > > depending on which kernel I build. > > > > ********************************************************* > > > > If I build GENERIC, I get: > > > > (transcribed by hand) > > > > mountroot: waiting for device /dev/ad4s1a > > Mounting from ufs:/dev/ad4s1a failed with error 19. > > > > mountroot> ? > > > > List of GEOM managed disk devices: > > > > cd0 > > > > mountroot> > > Hmm, so GENERIC is not finding ad4. Can you look in the dmesg > (using scroll-lock) to see if GENERIC finds your ATA controller > ok? I see only one line: ata0: at channel 0 on atapci0 ata does not appear anywhere else. > > > The device is certainly correct in r231158: > > > > BUZI> df > > Filesystem 512-blocks Used Avail Capacity Mounted on > > /dev/ad4s1a 101554068 46474368 46955376 50% / > > devfs 2 2 0 100% /dev > > BUZI> > > > > ********************************************************* > > > > If I add > > > > device atadisk > > > > to GENERIC, then I get this linking error: > > Yes, you aren't supposed to use 'atadisk' with ATA_CAM. See the UPDATING > entry 20110424 for more details on that. > > However, can you obtain a verbose dmesg from your old kernel? Amazingly (for me) I can't! Twice I got a panic. The third time, and thereafter, I get the same error as with GENERIC: Mounting from ufs:/dev/ad4s1a failed with error 19. I also see: ata0: stat0=0x00 err=0x01 lsb=0x14 msb=0exb ata0: stat1=0x00 err=0x00 lsb=0x00 msb=0x00 ata0: reset tp2 stat0=00 stat1=00 devices=0x10000 Thanks -- Anton Shterenlikht Room 2.6, Queen's Building Mech Eng Dept Bristol University University Walk, Bristol BS8 1TR, UK Tel: +44 (0)117 331 5944 Fax: +44 (0)117 929 4423 From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 17:44:19 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F3DC8106564A; Sat, 28 Apr 2012 17:44:18 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 88C138FC14; Sat, 28 Apr 2012 17:44:18 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SHiHfY058358; Sat, 28 Apr 2012 13:44:17 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SHiHNs058354; Sat, 28 Apr 2012 17:44:17 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 17:44:17 GMT Message-Id: <201204281744.q3SHiHNs058354@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on i386/pc98 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 17:44:20 -0000 TB --- 2012-04-28 15:00:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 15:00:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 15:00:00 - starting HEAD tinderbox run for i386/pc98 TB --- 2012-04-28 15:00:00 - cleaning the object tree TB --- 2012-04-28 15:06:09 - cvsupping the source tree TB --- 2012-04-28 15:06:09 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/pc98/supfile TB --- 2012-04-28 15:08:32 - building world TB --- 2012-04-28 15:08:32 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 15:08:32 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 15:08:32 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 15:08:32 - SRCCONF=/dev/null TB --- 2012-04-28 15:08:32 - TARGET=pc98 TB --- 2012-04-28 15:08:32 - TARGET_ARCH=i386 TB --- 2012-04-28 15:08:32 - TZ=UTC TB --- 2012-04-28 15:08:32 - __MAKE_CONF=/dev/null TB --- 2012-04-28 15:08:32 - cd /src TB --- 2012-04-28 15:08:32 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 15:08:34 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 17:36:50 UTC 2012 TB --- 2012-04-28 17:36:50 - generating LINT kernel config TB --- 2012-04-28 17:36:50 - cd /src/sys/pc98/conf TB --- 2012-04-28 17:36:50 - /usr/bin/make -B LINT TB --- 2012-04-28 17:36:50 - cd /src/sys/pc98/conf TB --- 2012-04-28 17:36:50 - /usr/sbin/config -m LINT TB --- 2012-04-28 17:36:50 - building LINT kernel TB --- 2012-04-28 17:36:50 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 17:36:50 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 17:36:50 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 17:36:50 - SRCCONF=/dev/null TB --- 2012-04-28 17:36:50 - TARGET=pc98 TB --- 2012-04-28 17:36:50 - TARGET_ARCH=i386 TB --- 2012-04-28 17:36:50 - TZ=UTC TB --- 2012-04-28 17:36:50 - __MAKE_CONF=/dev/null TB --- 2012-04-28 17:36:50 - cd /src TB --- 2012-04-28 17:36:50 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 17:36:51 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/pc98.i386/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 17:44:17 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 17:44:17 - ERROR: failed to build LINT kernel TB --- 2012-04-28 17:44:17 - 6852.97 user 977.51 system 9857.13 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-pc98.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 17:46:10 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DFD071065676; Sat, 28 Apr 2012 17:46:10 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id A6E5D8FC17; Sat, 28 Apr 2012 17:46:10 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SHkARj064023; Sat, 28 Apr 2012 13:46:10 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SHkAA4064010; Sat, 28 Apr 2012 17:46:10 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 17:46:10 GMT Message-Id: <201204281746.q3SHkAA4064010@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on i386/i386 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 17:46:11 -0000 TB --- 2012-04-28 15:00:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 15:00:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 15:00:00 - starting HEAD tinderbox run for i386/i386 TB --- 2012-04-28 15:00:00 - cleaning the object tree TB --- 2012-04-28 15:06:39 - cvsupping the source tree TB --- 2012-04-28 15:06:39 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/i386/i386/supfile TB --- 2012-04-28 15:08:49 - building world TB --- 2012-04-28 15:08:49 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 15:08:49 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 15:08:49 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 15:08:49 - SRCCONF=/dev/null TB --- 2012-04-28 15:08:49 - TARGET=i386 TB --- 2012-04-28 15:08:49 - TARGET_ARCH=i386 TB --- 2012-04-28 15:08:49 - TZ=UTC TB --- 2012-04-28 15:08:49 - __MAKE_CONF=/dev/null TB --- 2012-04-28 15:08:49 - cd /src TB --- 2012-04-28 15:08:49 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 15:08:51 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 17:37:31 UTC 2012 TB --- 2012-04-28 17:37:31 - generating LINT kernel config TB --- 2012-04-28 17:37:31 - cd /src/sys/i386/conf TB --- 2012-04-28 17:37:31 - /usr/bin/make -B LINT TB --- 2012-04-28 17:37:31 - cd /src/sys/i386/conf TB --- 2012-04-28 17:37:31 - /usr/sbin/config -m LINT TB --- 2012-04-28 17:37:31 - building LINT kernel TB --- 2012-04-28 17:37:31 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 17:37:31 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 17:37:31 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 17:37:31 - SRCCONF=/dev/null TB --- 2012-04-28 17:37:31 - TARGET=i386 TB --- 2012-04-28 17:37:31 - TARGET_ARCH=i386 TB --- 2012-04-28 17:37:31 - TZ=UTC TB --- 2012-04-28 17:37:31 - __MAKE_CONF=/dev/null TB --- 2012-04-28 17:37:31 - cd /src TB --- 2012-04-28 17:37:31 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 17:37:31 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/i386.i386/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 17:46:10 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 17:46:10 - ERROR: failed to build LINT kernel TB --- 2012-04-28 17:46:10 - 6949.80 user 987.10 system 9969.59 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-i386-i386.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 17:54:07 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 32C0F1065672; Sat, 28 Apr 2012 17:54:07 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id F15128FC12; Sat, 28 Apr 2012 17:54:06 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SHs6aW033314; Sat, 28 Apr 2012 13:54:06 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SHs69m033313; Sat, 28 Apr 2012 17:54:06 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 17:54:06 GMT Message-Id: <201204281754.q3SHs69m033313@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on ia64/ia64 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 17:54:07 -0000 TB --- 2012-04-28 16:06:28 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 16:06:28 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 16:06:28 - starting HEAD tinderbox run for ia64/ia64 TB --- 2012-04-28 16:06:29 - cleaning the object tree TB --- 2012-04-28 16:07:19 - cvsupping the source tree TB --- 2012-04-28 16:07:19 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/ia64/ia64/supfile TB --- 2012-04-28 16:07:44 - building world TB --- 2012-04-28 16:07:44 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 16:07:44 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 16:07:44 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 16:07:44 - SRCCONF=/dev/null TB --- 2012-04-28 16:07:44 - TARGET=ia64 TB --- 2012-04-28 16:07:44 - TARGET_ARCH=ia64 TB --- 2012-04-28 16:07:44 - TZ=UTC TB --- 2012-04-28 16:07:44 - __MAKE_CONF=/dev/null TB --- 2012-04-28 16:07:44 - cd /src TB --- 2012-04-28 16:07:44 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 16:07:45 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 17:46:28 UTC 2012 TB --- 2012-04-28 17:46:28 - generating LINT kernel config TB --- 2012-04-28 17:46:28 - cd /src/sys/ia64/conf TB --- 2012-04-28 17:46:28 - /usr/bin/make -B LINT TB --- 2012-04-28 17:46:28 - cd /src/sys/ia64/conf TB --- 2012-04-28 17:46:28 - /usr/sbin/config -m LINT TB --- 2012-04-28 17:46:28 - building LINT kernel TB --- 2012-04-28 17:46:28 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 17:46:28 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 17:46:28 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 17:46:28 - SRCCONF=/dev/null TB --- 2012-04-28 17:46:28 - TARGET=ia64 TB --- 2012-04-28 17:46:28 - TARGET_ARCH=ia64 TB --- 2012-04-28 17:46:28 - TZ=UTC TB --- 2012-04-28 17:46:28 - __MAKE_CONF=/dev/null TB --- 2012-04-28 17:46:28 - cd /src TB --- 2012-04-28 17:46:28 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 17:46:29 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/ia64/libuwx/src -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mconstant-gp -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/ia64/libuwx/src -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mconstant-gp -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/ia64/libuwx/src -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mconstant-gp -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/ia64/libuwx/src -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mconstant-gp -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/ia64.ia64/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 17:54:06 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 17:54:06 - ERROR: failed to build LINT kernel TB --- 2012-04-28 17:54:06 - 4621.55 user 695.44 system 6457.44 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-ia64-ia64.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 18:06:01 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6120D1065673 for ; Sat, 28 Apr 2012 18:06:01 +0000 (UTC) (envelope-from LukeD@pobox.com) Received: from sasl.smtp.pobox.com (a-pb-sasl-sd.pobox.com [74.115.168.62]) by mx1.freebsd.org (Postfix) with ESMTP id 21DAA8FC1C for ; Sat, 28 Apr 2012 18:06:01 +0000 (UTC) Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 8C1898B8A; Sat, 28 Apr 2012 14:03:43 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=date:from :reply-to:to:cc:subject:in-reply-to:message-id:references :mime-version:content-type; s=sasl; bh=sI7v/OAUIi0MD3NCz/9enhsH9 c0=; b=FO68abxTK/gAIIzxBVkHykztyl1Ct77YGc2UHc4yy+cnGrosMI23JKyOF TDkfUoUC6ecjFGQPQHdMr0quJG4sTIRhBHUPFkc79PYfDRynozsy+R+Zm5ouq2ST sgpN6eISNm8g0CA2MsLmuxdj1ORG484mb7lhoSZwkhrmpkuB7I= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=date:from :reply-to:to:cc:subject:in-reply-to:message-id:references :mime-version:content-type; q=dns; s=sasl; b=IQFN8i9xDeZgsWmj3qL ez0Z8zZZ9m6Eh2LHz7y5vR8Pu8RkmG0kUxDnEFXq2ouMpa9TKzAdHAGwHQsOclgM V54lKyTUSG+eqr6LNoIfPfc3xl5XYr156TlCFm/TH2FCzA+Jna0Z6pDhayABJRrz 6XxoorZ2sa7ClcNH60dEfJUQ= Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 845AB8B89; Sat, 28 Apr 2012 14:03:43 -0400 (EDT) Received: from tower.lukas.is-a-geek.org (unknown [50.35.187.173]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id B131A8B88; Sat, 28 Apr 2012 14:03:42 -0400 (EDT) Date: Sat, 28 Apr 2012 11:03:39 -0700 (PDT) From: Luke Dean X-X-Sender: lukas@tower.lukas.is-a-geek.org To: Chris Rees In-Reply-To: Message-ID: References: <4F746F1E.6090702@mail.zedat.fu-berlin.de> <4F74BCE8.2030802@vangyzen.net> <20120330.151848.41706133.sthaug@nethelp.no> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Pobox-Relay-ID: 7DA909B8-915C-11E1-BF26-8BEB728A0A4D-96347044!a-pb-sasl-sd.pobox.com Cc: freebsd-current@freebsd.org Subject: Re: Using TMPFS for /tmp and /var/run? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Luke Dean List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 18:06:01 -0000 On Fri, 30 Mar 2012, Chris Rees wrote: > On 30 Mar 2012 14:26, wrote: >> >>>> However, if you always want to use tmpfs instead of stable storage, >>> please do not. Some people expect /tmp to be persistent. This is why >>> /etc/defaults/rc.conf has clear_tmp_enable="NO". Changing this would > break >>> the POLA. >>>> >>> This is a mistake. >>> >>> The default should be clear_tmp_enable="YES" >>> if only to uncover those broken configurations that expect /tmp to be >>> persistent. >> >> If you want to break POLA and make a lot of people angry, sure. >> Otherwise no. >> > > I would very much like an example of where /tmp is expected to persist. > > Chris Yes, I'm a month behind on my mailing list reading and this conversation is probably over, but I do have a personal example. In my periodic.conf, I have: daily_clean_tmps_enable="YES" daily_clean_tmps_days="30" I tend to have many distractions and work on many projects at the same time. I don't always know when I'm finished. Sometimes I just lose interest. I often don't remember to clean up after myself. These settings in periodic.conf allow me to set up temporary workspaces in /tmp. If I keep working on a project, my files remain. If I forget about it for a month, periodic will clean up my mess. If someday the default behavior were changed to make /tmp a memory-mounted filesystem or to clean it out on every reboot, I think I could set daily_clean_tmps_dirs to another directory and move my sandbox someplace else. I would very much appreciate some warning, but this would not be a problem for me. From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 18:13:06 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 50622106566B for ; Sat, 28 Apr 2012 18:13:06 +0000 (UTC) (envelope-from utisoft@gmail.com) Received: from mail-bk0-f54.google.com (mail-bk0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id C9F968FC15 for ; Sat, 28 Apr 2012 18:13:05 +0000 (UTC) Received: by bkvi17 with SMTP id i17so503108bkv.13 for ; Sat, 28 Apr 2012 11:13:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=dDtbyF/GI9SZIfQSIufROQiiZlQjL834NyRjywN8ruo=; b=s7V1k5Bitcx3M0MPjWmk256Dnb5oGv15JxzlWTTIX2K3lgJAozD7yR+yJP9+s0aTTK XUjrBp2HvJ0qca/qg9+Hny8/MUfM0yVauVbTINkJnHqS43yXXFKCtbieeDb59sTheHRU BNXpA/tUMBTc6vJc18XpoCoJdkfNXTAx51yVQYblriFk3LEKoj1S9aVZnwmdvtqOLKVb Cds+7sYqlSvZcutM9lGDF4nIUCxChEaIzXCEbRRNBqyCCoFBKkwPwSACwX/AUYIp+tOx oDad5kn9Q0AP6etgxt7KUouo36n38Pi4J7aR2o3kdNC+PGrbqJ5q30OruOie1E7ZT/Jz n6HA== MIME-Version: 1.0 Received: by 10.204.154.28 with SMTP id m28mr5174110bkw.102.1335636784534; Sat, 28 Apr 2012 11:13:04 -0700 (PDT) Received: by 10.204.171.138 with HTTP; Sat, 28 Apr 2012 11:13:04 -0700 (PDT) Received: by 10.204.171.138 with HTTP; Sat, 28 Apr 2012 11:13:04 -0700 (PDT) In-Reply-To: References: <4F746F1E.6090702@mail.zedat.fu-berlin.de> <4F74BCE8.2030802@vangyzen.net> <20120330.151848.41706133.sthaug@nethelp.no> Date: Sat, 28 Apr 2012 18:13:04 +0000 Message-ID: From: Chris Rees To: Luke Dean Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-current@freebsd.org Subject: Re: Using TMPFS for /tmp and /var/run? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 18:13:06 -0000 On 28 Apr 2012 19:04, "Luke Dean" wrote: > > > > On Fri, 30 Mar 2012, Chris Rees wrote: > >> On 30 Mar 2012 14:26, wrote: >>> >>> >>>>> However, if you always want to use tmpfs instead of stable storage, >>>> >>>> please do not. Some people expect /tmp to be persistent. This is why >>>> /etc/defaults/rc.conf has clear_tmp_enable="NO". Changing this would >> >> break >>>> >>>> the POLA. >>>>> >>>>> >>>> This is a mistake. >>>> >>>> The default should be clear_tmp_enable="YES" >>>> if only to uncover those broken configurations that expect /tmp to be >>>> persistent. >>> >>> >>> If you want to break POLA and make a lot of people angry, sure. >>> Otherwise no. >>> >> >> I would very much like an example of where /tmp is expected to persist. >> >> Chris > > > Yes, I'm a month behind on my mailing list reading and this conversation is probably over, but I do have a personal example. > > In my periodic.conf, I have: > daily_clean_tmps_enable="YES" > daily_clean_tmps_days="30" > > I tend to have many distractions and work on many projects at the same > time. I don't always know when I'm finished. Sometimes I just lose > interest. I often don't remember to clean up after myself. > > These settings in periodic.conf allow me to set up temporary workspaces in /tmp. If I keep working on a project, my files remain. If I forget about it for a month, periodic will clean up my mess. > > If someday the default behavior were changed to make /tmp a memory-mounted filesystem or to clean it out on every reboot, I think I could set daily_clean_tmps_dirs to another directory and move my sandbox someplace else. I would very much appreciate some warning, but this would not be a problem for me. You should use /var/tmp for that, or another custom directory if you want your files safe. Chris From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 18:19:01 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 301B5106566B; Sat, 28 Apr 2012 18:19:01 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id DC8A38FC1C; Sat, 28 Apr 2012 18:19:00 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SIJ0RI053391; Sat, 28 Apr 2012 14:19:00 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SIJ0Cs053378; Sat, 28 Apr 2012 18:19:00 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 18:19:00 GMT Message-Id: <201204281819.q3SIJ0Cs053378@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on amd64/amd64 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 18:19:01 -0000 TB --- 2012-04-28 15:00:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 15:00:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 15:00:00 - starting HEAD tinderbox run for amd64/amd64 TB --- 2012-04-28 15:00:00 - cleaning the object tree TB --- 2012-04-28 15:09:18 - cvsupping the source tree TB --- 2012-04-28 15:09:18 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/amd64/amd64/supfile TB --- 2012-04-28 15:09:58 - building world TB --- 2012-04-28 15:09:58 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 15:09:58 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 15:09:58 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 15:09:58 - SRCCONF=/dev/null TB --- 2012-04-28 15:09:58 - TARGET=amd64 TB --- 2012-04-28 15:09:58 - TARGET_ARCH=amd64 TB --- 2012-04-28 15:09:58 - TZ=UTC TB --- 2012-04-28 15:09:58 - __MAKE_CONF=/dev/null TB --- 2012-04-28 15:09:58 - cd /src TB --- 2012-04-28 15:09:58 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 15:09:59 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> stage 5.1: building 32 bit shim libraries >>> World build completed on Sat Apr 28 18:11:49 UTC 2012 TB --- 2012-04-28 18:11:49 - generating LINT kernel config TB --- 2012-04-28 18:11:49 - cd /src/sys/amd64/conf TB --- 2012-04-28 18:11:49 - /usr/bin/make -B LINT TB --- 2012-04-28 18:11:49 - cd /src/sys/amd64/conf TB --- 2012-04-28 18:11:49 - /usr/sbin/config -m LINT TB --- 2012-04-28 18:11:50 - building LINT kernel TB --- 2012-04-28 18:11:50 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 18:11:50 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 18:11:50 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 18:11:50 - SRCCONF=/dev/null TB --- 2012-04-28 18:11:50 - TARGET=amd64 TB --- 2012-04-28 18:11:50 - TARGET_ARCH=amd64 TB --- 2012-04-28 18:11:50 - TZ=UTC TB --- 2012-04-28 18:11:50 - __MAKE_CONF=/dev/null TB --- 2012-04-28 18:11:50 - cd /src TB --- 2012-04-28 18:11:50 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 18:11:50 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -frename-registers -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -DGPROF -falign-functions=16 -DGPROF4 -DGUPROF -fno-builtin -fno-omit-frame-pointer -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -Werror -pg -mprofiler-epilogue /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/amd64.amd64/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 18:19:00 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 18:19:00 - ERROR: failed to build LINT kernel TB --- 2012-04-28 18:19:00 - 8331.03 user 1289.25 system 11939.70 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-amd64-amd64.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 18:29:08 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 86C831065670 for ; Sat, 28 Apr 2012 18:29:08 +0000 (UTC) (envelope-from jasone@FreeBSD.org) Received: from canonware.com (10140.x.rootbsd.net [204.109.63.53]) by mx1.freebsd.org (Postfix) with ESMTP id 62C2A8FC16 for ; Sat, 28 Apr 2012 18:29:08 +0000 (UTC) Received: from [192.168.168.8] (70-91-206-178-BusName-SFBA.hfc.comcastbusiness.net [70.91.206.178]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by canonware.com (Postfix) with ESMTPSA id 27FB928418; Sat, 28 Apr 2012 11:29:02 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: Jason Evans In-Reply-To: <20120428150941.e0464900.ray@dlink.ua> Date: Sat, 28 Apr 2012 11:29:01 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: References: <20120421185402.GH1743@albert.catwhisker.org> <7AD8956D-AD18-4CAB-9953-06E00185A7DA@freebsd.org> <20120428150941.e0464900.ray@dlink.ua> To: Aleksandr Rybalko X-Mailer: Apple Mail (2.1084) Cc: current@freebsd.org Subject: Re: : jemalloc_arena.c:182: Failed assertion: "p[i] == 0" X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 18:29:08 -0000 On Apr 28, 2012, at 5:09 AM, Aleksandr Rybalko wrote: >>> On Apr 21, 2012, at 11:54 AM, David Wolfskill wrote: >>>>=20 >>>> But contrib/jemalloc/src/arena.c contains a function, >>>> arena_chunk_validate_zeroed(): >>>>=20 >>>> 175 static inline void >>>> 176 arena_chunk_validate_zeroed(arena_chunk_t *chunk, size_t >>>> run_ind) 177 { >>>> 178 size_t i; >>>> 179 UNUSED size_t *p =3D (size_t *)((uintptr_t)chunk + >>>> (run_ind << LG_PAGE)); 180 >>>> 181 for (i =3D 0; i < PAGE / sizeof(size_t); i++) >>>> 182 assert(p[i] =3D=3D 0); >>>> 183 } >=20 > maybe it somehow related to low count of free memory, because I see > that very frequently on my box. (Atheros AR7242 mips32be with 32M of > RAM) >=20 > After "#ifdef" of that function body, box behave good (seems) :) Yes, arena_chunk_validate_zeroed() (which is debug-only code) has the = side effect of faulting in untouched pages, so it potentially increases = physical memory usage. In practice, this sanity checking has saved = jemalloc from regressions that would otherwise manifest as mysterious = application memory corruption (and would have prevented even more = regressions, had it existed earlier). You can disable it and many other = performance-sacrificing debug features by defining MALLOC_PRODUCTION in = /etc/make.conf. Jason= From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 18:50:16 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 380AF106566B; Sat, 28 Apr 2012 18:50:16 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id E32DB8FC0A; Sat, 28 Apr 2012 18:50:15 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SIoFWt070097; Sat, 28 Apr 2012 14:50:15 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SIoFRB070096; Sat, 28 Apr 2012 18:50:15 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 18:50:15 GMT Message-Id: <201204281850.q3SIoFRB070096@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on mips/mips X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 18:50:16 -0000 TB --- 2012-04-28 17:44:18 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 17:44:18 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 17:44:18 - starting HEAD tinderbox run for mips/mips TB --- 2012-04-28 17:44:18 - cleaning the object tree TB --- 2012-04-28 17:45:24 - cvsupping the source tree TB --- 2012-04-28 17:45:24 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/mips/mips/supfile TB --- 2012-04-28 17:46:10 - building world TB --- 2012-04-28 17:46:10 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 17:46:10 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 17:46:10 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 17:46:10 - SRCCONF=/dev/null TB --- 2012-04-28 17:46:10 - TARGET=mips TB --- 2012-04-28 17:46:10 - TARGET_ARCH=mips TB --- 2012-04-28 17:46:10 - TZ=UTC TB --- 2012-04-28 17:46:10 - __MAKE_CONF=/dev/null TB --- 2012-04-28 17:46:10 - cd /src TB --- 2012-04-28 17:46:10 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 17:46:11 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 18:49:06 UTC 2012 TB --- 2012-04-28 18:49:06 - cd /src/sys/mips/conf TB --- 2012-04-28 18:49:06 - /usr/sbin/config -m ADM5120 TB --- 2012-04-28 18:49:06 - skipping ADM5120 kernel TB --- 2012-04-28 18:49:06 - cd /src/sys/mips/conf TB --- 2012-04-28 18:49:06 - /usr/sbin/config -m ALCHEMY TB --- 2012-04-28 18:49:06 - skipping ALCHEMY kernel TB --- 2012-04-28 18:49:06 - cd /src/sys/mips/conf TB --- 2012-04-28 18:49:06 - /usr/sbin/config -m AP94 TB --- 2012-04-28 18:49:06 - building AP94 kernel TB --- 2012-04-28 18:49:06 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 18:49:06 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 18:49:06 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 18:49:06 - SRCCONF=/dev/null TB --- 2012-04-28 18:49:06 - TARGET=mips TB --- 2012-04-28 18:49:06 - TARGET_ARCH=mips TB --- 2012-04-28 18:49:06 - TZ=UTC TB --- 2012-04-28 18:49:06 - __MAKE_CONF=/dev/null TB --- 2012-04-28 18:49:06 - cd /src TB --- 2012-04-28 18:49:06 - /usr/bin/make -B buildkernel KERNCONF=AP94 >>> Kernel build for AP94 started on Sat Apr 28 18:49:06 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=10000 --param large-function-growth=100000 --param max-inline-insns-single=10000 -fno-pic -mno-abicalls -G0 -DKERNLOADADDR=0x80050000 -march=mips32 -msoft-float -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=10000 --param large-function-growth=100000 --param max-inline-insns-single=10000 -fno-pic -mno-abicalls -G0 -DKERNLOADADDR=0x80050000 -march=mips32 -msoft-float -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=10000 --param large-function-growth=100000 --param max-inline-insns-single=10000 -fno-pic -mno-abicalls -G0 -DKERNLOADADDR=0x80050000 -march=mips32 -msoft-float -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=8000 --param inline-unit-growth=10000 --param large-function-growth=100000 --param max-inline-insns-single=10000 -fno-pic -mno-abicalls -G0 -DKERNLOADADDR=0x80050000 -march=mips32 -msoft-float -ffreestanding -Werror /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/mips.mips/src/sys/AP94. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 18:50:14 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 18:50:14 - ERROR: failed to build AP94 kernel TB --- 2012-04-28 18:50:14 - 2574.40 user 574.20 system 3956.96 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-mips-mips.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 19:04:15 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 89D87106566B; Sat, 28 Apr 2012 19:04:15 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 53ED98FC08; Sat, 28 Apr 2012 19:04:15 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SJ4Ek8049369; Sat, 28 Apr 2012 15:04:14 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SJ4EWn049368; Sat, 28 Apr 2012 19:04:14 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 19:04:14 GMT Message-Id: <201204281904.q3SJ4EWn049368@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on powerpc/powerpc X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 19:04:15 -0000 TB --- 2012-04-28 17:46:10 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 17:46:10 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 17:46:10 - starting HEAD tinderbox run for powerpc/powerpc TB --- 2012-04-28 17:46:10 - cleaning the object tree TB --- 2012-04-28 17:48:41 - cvsupping the source tree TB --- 2012-04-28 17:48:41 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc/powerpc/supfile TB --- 2012-04-28 17:49:52 - building world TB --- 2012-04-28 17:49:52 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 17:49:52 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 17:49:52 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 17:49:52 - SRCCONF=/dev/null TB --- 2012-04-28 17:49:52 - TARGET=powerpc TB --- 2012-04-28 17:49:52 - TARGET_ARCH=powerpc TB --- 2012-04-28 17:49:52 - TZ=UTC TB --- 2012-04-28 17:49:52 - __MAKE_CONF=/dev/null TB --- 2012-04-28 17:49:52 - cd /src TB --- 2012-04-28 17:49:52 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 17:49:52 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 19:00:26 UTC 2012 TB --- 2012-04-28 19:00:26 - generating LINT kernel config TB --- 2012-04-28 19:00:26 - cd /src/sys/powerpc/conf TB --- 2012-04-28 19:00:26 - /usr/bin/make -B LINT TB --- 2012-04-28 19:00:26 - cd /src/sys/powerpc/conf TB --- 2012-04-28 19:00:26 - /usr/sbin/config -m LINT TB --- 2012-04-28 19:00:27 - building LINT kernel TB --- 2012-04-28 19:00:27 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 19:00:27 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 19:00:27 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 19:00:27 - SRCCONF=/dev/null TB --- 2012-04-28 19:00:27 - TARGET=powerpc TB --- 2012-04-28 19:00:27 - TARGET_ARCH=powerpc TB --- 2012-04-28 19:00:27 - TZ=UTC TB --- 2012-04-28 19:00:27 - __MAKE_CONF=/dev/null TB --- 2012-04-28 19:00:27 - cd /src TB --- 2012-04-28 19:00:27 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 19:00:27 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/powerpc.powerpc/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 19:04:14 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 19:04:14 - ERROR: failed to build LINT kernel TB --- 2012-04-28 19:04:14 - 3286.11 user 608.68 system 4684.34 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-powerpc-powerpc.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 19:29:37 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 55921106564A; Sat, 28 Apr 2012 19:29:37 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 237C18FC14; Sat, 28 Apr 2012 19:29:37 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SJTafY004244; Sat, 28 Apr 2012 15:29:36 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SJTagd004243; Sat, 28 Apr 2012 19:29:36 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 19:29:36 GMT Message-Id: <201204281929.q3SJTagd004243@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on sparc64/sparc64 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 19:29:37 -0000 TB --- 2012-04-28 18:19:00 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 18:19:00 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 18:19:00 - starting HEAD tinderbox run for sparc64/sparc64 TB --- 2012-04-28 18:19:00 - cleaning the object tree TB --- 2012-04-28 18:20:41 - cvsupping the source tree TB --- 2012-04-28 18:20:41 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/sparc64/sparc64/supfile TB --- 2012-04-28 18:21:57 - building world TB --- 2012-04-28 18:21:57 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 18:21:57 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 18:21:57 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 18:21:57 - SRCCONF=/dev/null TB --- 2012-04-28 18:21:57 - TARGET=sparc64 TB --- 2012-04-28 18:21:57 - TARGET_ARCH=sparc64 TB --- 2012-04-28 18:21:57 - TZ=UTC TB --- 2012-04-28 18:21:57 - __MAKE_CONF=/dev/null TB --- 2012-04-28 18:21:57 - cd /src TB --- 2012-04-28 18:21:57 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 18:21:58 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sat Apr 28 19:25:45 UTC 2012 TB --- 2012-04-28 19:25:45 - generating LINT kernel config TB --- 2012-04-28 19:25:45 - cd /src/sys/sparc64/conf TB --- 2012-04-28 19:25:45 - /usr/bin/make -B LINT TB --- 2012-04-28 19:25:45 - cd /src/sys/sparc64/conf TB --- 2012-04-28 19:25:45 - /usr/sbin/config -m LINT TB --- 2012-04-28 19:25:45 - building LINT kernel TB --- 2012-04-28 19:25:45 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 19:25:45 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 19:25:45 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 19:25:45 - SRCCONF=/dev/null TB --- 2012-04-28 19:25:45 - TARGET=sparc64 TB --- 2012-04-28 19:25:45 - TARGET_ARCH=sparc64 TB --- 2012-04-28 19:25:45 - TZ=UTC TB --- 2012-04-28 19:25:45 - __MAKE_CONF=/dev/null TB --- 2012-04-28 19:25:45 - cd /src TB --- 2012-04-28 19:25:45 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 19:25:45 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -mcmodel=medany -msoft-float -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/sparc64.sparc64/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 19:29:36 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 19:29:36 - ERROR: failed to build LINT kernel TB --- 2012-04-28 19:29:36 - 3109.49 user 560.59 system 4236.01 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-sparc64-sparc64.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 20:17:11 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AADAA106566B; Sat, 28 Apr 2012 20:17:11 +0000 (UTC) (envelope-from ray@dlink.ua) Received: from smtp.dlink.ua (smtp.dlink.ua [193.138.187.146]) by mx1.freebsd.org (Postfix) with ESMTP id 62D9C8FC0A; Sat, 28 Apr 2012 20:17:11 +0000 (UTC) Received: from rnote.ddteam.net (4-108-133-95.pool.ukrtel.net [95.133.108.4]) (Authenticated sender: ray) by smtp.dlink.ua (Postfix) with ESMTPSA id EF933C4930; Sat, 28 Apr 2012 23:17:09 +0300 (EEST) Date: Sat, 28 Apr 2012 23:17:03 +0300 From: Aleksandr Rybalko To: Jason Evans Message-Id: <20120428231703.374bc042.ray@dlink.ua> In-Reply-To: References: <20120421185402.GH1743@albert.catwhisker.org> <7AD8956D-AD18-4CAB-9953-06E00185A7DA@freebsd.org> <20120428150941.e0464900.ray@dlink.ua> Organization: D-Link X-Mailer: Sylpheed 3.1.2 (GTK+ 2.24.5; amd64-portbld-freebsd9.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: current@freebsd.org Subject: Re: : jemalloc_arena.c:182: Failed assertion: "p[i] == 0" X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 20:17:11 -0000 On Sat, 28 Apr 2012 11:29:01 -0700 Jason Evans wrote: > On Apr 28, 2012, at 5:09 AM, Aleksandr Rybalko wrote: > >>> On Apr 21, 2012, at 11:54 AM, David Wolfskill wrote: > >>>> > >>>> But contrib/jemalloc/src/arena.c contains a function, > >>>> arena_chunk_validate_zeroed(): > >>>> > >>>> 175 static inline void > >>>> 176 arena_chunk_validate_zeroed(arena_chunk_t *chunk, size_t > >>>> run_ind) 177 { > >>>> 178 size_t i; > >>>> 179 UNUSED size_t *p = (size_t *)((uintptr_t)chunk + > >>>> (run_ind << LG_PAGE)); 180 > >>>> 181 for (i = 0; i < PAGE / sizeof(size_t); i++) > >>>> 182 assert(p[i] == 0); > >>>> 183 } > > > > maybe it somehow related to low count of free memory, because I see > > that very frequently on my box. (Atheros AR7242 mips32be with 32M of > > RAM) > > > > After "#ifdef" of that function body, box behave good (seems) :) > > Yes, arena_chunk_validate_zeroed() (which is debug-only code) has the > side effect of faulting in untouched pages, so it potentially > increases physical memory usage. In practice, this sanity checking > has saved jemalloc from regressions that would otherwise manifest as > mysterious application memory corruption (and would have prevented > even more regressions, had it existed earlier). You can disable it > and many other performance-sacrificing debug features by defining > MALLOC_PRODUCTION in /etc/make.conf. Yeah, found it. Thank you. It is possible to hide such debug code under debug macro, so embedded guys will be more happy about sizes? :) Thank you for that big job! > > Jason_______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to > "freebsd-current-unsubscribe@freebsd.org" -- Aleksandr Rybalko From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 20:36:43 2012 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0EAD1106564A; Sat, 28 Apr 2012 20:36:43 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id CE31E8FC14; Sat, 28 Apr 2012 20:36:42 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q3SKaaKv057050; Sat, 28 Apr 2012 16:36:36 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q3SKaaoo057049; Sat, 28 Apr 2012 20:36:36 GMT (envelope-from tinderbox@freebsd.org) Date: Sat, 28 Apr 2012 20:36:36 GMT Message-Id: <201204282036.q3SKaaoo057049@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on powerpc64/powerpc X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 20:36:43 -0000 TB --- 2012-04-28 17:54:06 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-04-28 17:54:06 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2012-04-28 17:54:06 - starting HEAD tinderbox run for powerpc64/powerpc TB --- 2012-04-28 17:54:06 - cleaning the object tree TB --- 2012-04-28 17:55:36 - cvsupping the source tree TB --- 2012-04-28 17:55:36 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/powerpc64/powerpc/supfile TB --- 2012-04-28 17:56:09 - building world TB --- 2012-04-28 17:56:09 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 17:56:09 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 17:56:09 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 17:56:09 - SRCCONF=/dev/null TB --- 2012-04-28 17:56:09 - TARGET=powerpc TB --- 2012-04-28 17:56:09 - TARGET_ARCH=powerpc64 TB --- 2012-04-28 17:56:09 - TZ=UTC TB --- 2012-04-28 17:56:09 - __MAKE_CONF=/dev/null TB --- 2012-04-28 17:56:09 - cd /src TB --- 2012-04-28 17:56:09 - /usr/bin/make -B buildworld >>> World build started on Sat Apr 28 17:56:10 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> stage 5.1: building 32 bit shim libraries >>> World build completed on Sat Apr 28 20:33:12 UTC 2012 TB --- 2012-04-28 20:33:12 - generating LINT kernel config TB --- 2012-04-28 20:33:12 - cd /src/sys/powerpc/conf TB --- 2012-04-28 20:33:12 - /usr/bin/make -B LINT TB --- 2012-04-28 20:33:13 - cd /src/sys/powerpc/conf TB --- 2012-04-28 20:33:13 - /usr/sbin/config -m LINT TB --- 2012-04-28 20:33:13 - building LINT kernel TB --- 2012-04-28 20:33:13 - CROSS_BUILD_TESTING=YES TB --- 2012-04-28 20:33:13 - MAKEOBJDIRPREFIX=/obj TB --- 2012-04-28 20:33:13 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-04-28 20:33:13 - SRCCONF=/dev/null TB --- 2012-04-28 20:33:13 - TARGET=powerpc TB --- 2012-04-28 20:33:13 - TARGET_ARCH=powerpc64 TB --- 2012-04-28 20:33:13 - TZ=UTC TB --- 2012-04-28 20:33:13 - __MAKE_CONF=/dev/null TB --- 2012-04-28 20:33:13 - cd /src TB --- 2012-04-28 20:33:13 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sat Apr 28 20:33:13 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5212/ar5212_xmit.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc -c -O -pipe -std=c99 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/src/sys -I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=15000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -mcall-aixdesc -ffreestanding -fstack-protector -Werror /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c -I/src/sys/dev/ath -I/src/sys/dev/ath/ath_hal cc1: warnings being treated as errors /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c: In function 'ar5416AniPoll': /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: warning: 'listenTime' may be used uninitialized in this function /src/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c:818: note: 'listenTime' was declared here *** Error code 1 Stop in /obj/powerpc.powerpc64/src/sys/LINT. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-04-28 20:36:36 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-04-28 20:36:36 - ERROR: failed to build LINT kernel TB --- 2012-04-28 20:36:36 - 8174.74 user 1073.34 system 9750.20 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-powerpc64-powerpc.full From owner-freebsd-current@FreeBSD.ORG Sat Apr 28 20:47:28 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 585AD106564A for ; Sat, 28 Apr 2012 20:47:28 +0000 (UTC) (envelope-from erichfreebsdlist@ovitrap.com) Received: from alogreentechnologies.com (alogreentechnologies.com [67.212.226.44]) by mx1.freebsd.org (Postfix) with ESMTP id 2C81E8FC15 for ; Sat, 28 Apr 2012 20:47:28 +0000 (UTC) Received: from amd620.ovitrap.com ([49.128.188.2]) (authenticated bits=0) by alogreentechnologies.com (8.13.1/8.13.1) with ESMTP id q3SKkpSP004487; Sat, 28 Apr 2012 14:46:53 -0600 From: Erich Dollansky To: freebsd-current@freebsd.org Date: Sat, 28 Apr 2012 17:33:29 +0700 User-Agent: KMail/1.13.7 (FreeBSD/8.3-STABLE; KDE/4.7.4; amd64; ; ) References: <201204272308.22440.erichfreebsdlist@ovitrap.com> <201204280850.47758.erichfreebsdlist@ovitrap.com> <20120428015915.GW1669@albert.catwhisker.org> In-Reply-To: <20120428015915.GW1669@albert.catwhisker.org> MIME-Version: 1.0 Message-Id: <201204281733.29639.erichfreebsdlist@ovitrap.com> Content-Type: Text/Plain; charset="iso-8859-6" Content-Transfer-Encoding: 7bit Cc: Subject: Re: compiling world fails with 9.0 and 10.0 from today (28.04) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2012 20:47:28 -0000 Hi, I just came back to the machine and the world and the kernel of 9.0 was compiled without problems on a 8.3 machine. I assume the failure is caused by the default configuration of the 9.0 machine. I will investigate this now. Erich On Saturday 28 April 2012 08:59:15 David Wolfskill wrote: > On Sat, Apr 28, 2012 at 08:50:47AM +0700, Erich Dollansky wrote: > > ... > > I use the following commands to do the compilation: > > > > cd /usr/src > > /usr/bin/nice -n 20 make buildworld > > OK. That should build the userland OK. > > > > Have you reviewed /usr/src/UPDATING? Near the end of that file, there > > > is a list of commands to use to build from sources. Scan for "COMMON > > > ITEMS". > > > > > Do you mean this one? > > > > make kernel-toolchain > > make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE > > make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE > > > > Isn't this the next step after building the world? > > No; I was referring to the part with the sub-heading > > To rebuild everything and install it on the current system. > > or > > To upgrade in-place from 8.x-stable to current > > depending on whether you're tring to update release/9.0 to stable/9 or > release/9.0 to head (for example). > > > ... > > I am currently downloading the 9.0 sources into an empty source tree on a 8.3 machine to see what happens there. > > Note that this is also an upgrade. > > Peace, > david > -- > David H. Wolfskill david@catwhisker.org > Depriving a girl or boy of an opportunity for education is evil. > > See http://www.catwhisker.org/~david/publickey.gpg for my public key. >