From nscott@redhat.com Tue Jul 1 02:02:51 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id CB2AC7F63 for ; Tue, 1 Jul 2014 02:02:51 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 7353EAC009 for ; Tue, 1 Jul 2014 00:02:51 -0700 (PDT) X-ASG-Debug-ID: 1404198165-04bdf05669731b70001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id LkbBZWhzpdKIY8L7 for ; Tue, 01 Jul 2014 00:02:46 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6172jWs029985 for ; Tue, 1 Jul 2014 03:02:45 -0400 Date: Tue, 1 Jul 2014 03:02:45 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: PCP Message-ID: <437785692.1035333.1404198165370.JavaMail.zimbra@redhat.com> In-Reply-To: <1899317607.1034544.1404197955820.JavaMail.zimbra@redhat.com> Subject: pcp updates: nvidia gpu pmda MIME-Version: 1.0 X-ASG-Orig-Subj: pcp updates: nvidia gpu pmda Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: nvidia gpu pmda Thread-Index: sGon69BGsFIK7SaV4Saxg6z1PTQCDQ== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1404198166 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7131 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Changes committed to git://git.performancecopilot.org/pcp.git dev debian/changelog | 3 debian/control | 2 qa/744 | 46 ++ qa/744.out | 199 +++++++++ qa/745 | 51 ++ qa/745.out | 217 +++++++++ qa/common.filter | 3 qa/group | 3 qa/src/.gitignore | 3 qa/src/GNUlocaldefs | 14 qa/src/GNUmakefile | 4 qa/src/nvidia-ml.c | 216 +++++++++ src/pmdas/nvidia/.gitignore | 5 src/pmdas/nvidia/GNUmakefile | 57 ++ src/pmdas/nvidia/Install | 28 + src/pmdas/nvidia/README | 7 src/pmdas/nvidia/Remove | 38 + src/pmdas/nvidia/help | 128 ++++- src/pmdas/nvidia/localnvml.c | 276 ++++++++++++ src/pmdas/nvidia/localnvml.h | 89 ++++ src/pmdas/nvidia/nvidia.c | 739 ++++++++++++++++++++++++++-------- src/pmdas/nvidia/pcp-pmda-nvidia.spec | 158 +++++++ src/pmdas/nvidia/pmns | 30 + src/pmdas/nvidia/root | 10 24 files changed, 2124 insertions(+), 202 deletions(-) commit b09e5de8e453e09ad3a7c5092c3fba8633094f2a Author: Nathan Scott Date: Tue Jul 1 16:57:47 2014 +1000 Error handling and QA testing work for the nvidia PMDA Updates to the PMDA itself include installation of the DSO form, several bug fixes from my earlier round of updates and the addition of error handling around all NVML calls. Tests qa/744 and qa/745 have been added, as well as a simple little shared library implementing the basic NVML interfaces with a static configuration for 2 GPUs (for testing). These tests bail out if a system nvidia-ml.so is found, so that'd be an interesting third case (which I cannot test here, so I've not written the test). commit a0b7b421d70242de4aff1ada437c338d3c6db821 Author: Nathan Scott Date: Tue Jul 1 11:21:42 2014 +1000 Update pmdanvidia help text a bit, based on the API docs commit 320fa34e00127380f3bc5d3792bf64c0071266d4 Author: Nathan Scott Date: Tue Jul 1 11:07:26 2014 +1000 pmdanvidia: support for long form command line options commit 9244538dc0f9a17f0ff8d44ab15b570667abbfc6 Author: Martins Innus Date: Tue Jul 1 11:02:41 2014 +1000 Add Nvidia PMDA files/scripts missing from initial commit commit 2efac89c01a7e975c6cda25ef1716dbee7d9d8a6 Author: Nathan Scott Date: Tue Jul 1 10:50:42 2014 +1000 Followup work on Martins' initial nvidia PMDA This commit explores a mechanism for allowing PCP to provide a nvidia PMDA with runtime link support only (IOW, without a direct complet-time binding to the Nvidia code). Firstly, an audit of the interfaces needed was done, any/all needed interfaces and data structures identified, and header built using http://docs.nvidia.com/deploy/nvml-api/index.html as guide - I don't have the SDK, nor even any Nvidia hardware - fortunately, the API is super-simple. Next, wrappers around the NVML interfaces were added back to the PMDA code, inserting our own little code layer ahead of the nvidia library calls. This also provides the mechanism by which testing can happen (followup commit) when no nvidia hardware/libraries are present. Martins identified a need for improved error handling, and as the API doesn't appear to have a strerror-alike interface for its error codes, one has been added into the wrapper for our own use. Happily (I guess others have walked this path too!) the NVML API provides error codes for "library unavailable" & "function unavailable" already. So, we make use of those for the cases where the PMDA is installed but no library has been configured yet, or the library doesn't have the symbols needed. In my travels I noticed a memfree metric, which the API docs say can differ to "total - used", so I added that metric too. commit c9a7c7680b361dd6064bc3b8c81ef7d53a9a5a72 Author: Martins Innus Date: Mon Jun 30 13:28:00 2014 +1000 Initial version of the nvidia/nvml pmda and spec commit 7c59bf709d51bfc0ec6ac85053c1cbfe484183f5 Author: Nathan Scott Date: Mon Jun 30 12:11:04 2014 +1000 Add note about debian build fix, fallout from last release commit ccdf05003f6f7bbd3cc8d5748f6af847d2ea9917 Author: Xilin Sun Date: Mon Jun 30 12:09:35 2014 +1000 Resolve debian build regression, add autoconf build dependency From nscott@redhat.com Tue Jul 1 02:30:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 7F6537F74 for ; Tue, 1 Jul 2014 02:30:38 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id EEB36AC007 for ; Tue, 1 Jul 2014 00:30:37 -0700 (PDT) X-ASG-Debug-ID: 1404199832-04cbb065351f2600001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id FEVCchPVbQb3hDAA for ; Tue, 01 Jul 2014 00:30:33 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s617UVvP012667; Tue, 1 Jul 2014 03:30:31 -0400 Date: Tue, 1 Jul 2014 03:30:31 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Martins Innus Cc: pcp@oss.sgi.com Message-ID: <1626126016.1041444.1404199831629.JavaMail.zimbra@redhat.com> In-Reply-To: <1015758147.33977940.1403768176429.JavaMail.zimbra@redhat.com> References: <53A995C8.5020904@buffalo.edu> <1015758147.33977940.1403768176429.JavaMail.zimbra@redhat.com> Subject: Re: [pcp] nvidia/nvml pmda MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] nvidia/nvml pmda Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: nvidia/nvml pmda Thread-Index: Jc6EhR7087fI/5ASr7p7uGeSfulie2NI5+wo X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1404199833 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7132 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Hi Martins, ----- Original Message ----- > ----- Original Message ----- > > Attached is a nvidia/nvml pmda for general review and suggestions. It sparked my interest & I hacked on it a bit further (and merged the second update you sent me, thanks for that!), and have merged it into the dev branch now. There's a couple of small things left... > > I still need to do some error checking on metrics that may not be > > [...] I added the error checking, long option support, some QA testing, and the dso independence discussed earlier. Oh - also work a closer look, I added a fetch PDU handler to accompany your existing fetch callback. This means when we get a fetch request, we only refresh the values at the start (once), not once for each metric/instance pair. This is a small efficiency improvement with how we interact with the cards, the functionality is exactly the same as before. Not essential, but it'd also be nice to have a man page as well, if you wouldn't mind writing one? I didn't tackle that side of things, though I did update the help text a bit based on my readings of the API docs (please review? that, and all the code changes :) - heh, thanks!). I've tested this only on "faked-out" hardware - see qa/744 - and not using the real nvidia libraries (I have neither). Any chance you could hack on those aspects before the next release Martins? (after the IB updates you mentioned privately would be perfect, if you can). We aim for a point release in the middle of each month, so there's a couple of weeks until then. Especially the "using real hardware" side of testing would be really good, since I can't do that here. :) The other aspect I could look at is the spec file - you sent through an initial version, which would provide a separate pcp-pmda-nvidia package. However with the way the code is now, we could include this PMDA in the main pcp package if you'd prefer that? (I would, it makes life easier for users - this can be done since the PMDA now functions gracefully with and without the nvidia library, even if the library appears while its already running, it should handle that nicely too. The only change we would need would be a one-line spec update for your existing installations, to ensure existing pcp-pmda-nvidia RPMs you have are replaced by pcp-3.9.7 or later (I'll go and hack on that when I hear back re your packaging preference). cheers. -- Nathan From nscott@redhat.com Tue Jul 1 02:54:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id A35767F74 for ; Tue, 1 Jul 2014 02:54:27 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 8EA068F8052 for ; Tue, 1 Jul 2014 00:54:27 -0700 (PDT) X-ASG-Debug-ID: 1404201262-04cb6c76cf3bd930001-S8gJnT Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by cuda.sgi.com with ESMTP id ZV9OfbSA56FPRpEO for ; Tue, 01 Jul 2014 00:54:22 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.25 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s617sMX9022700; Tue, 1 Jul 2014 03:54:22 -0400 Date: Tue, 1 Jul 2014 03:54:21 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dave Brolley , "Frank Ch. Eigler" Cc: pcp@oss.sgi.com Message-ID: <49426370.1060092.1404201261973.JavaMail.zimbra@redhat.com> In-Reply-To: References: <20140619194444.3B03D58015@fche.csb> <53AB0F27.602@redhat.com> <1063089485.33910956.1403758262805.JavaMail.zimbra@redhat.com> <53AC35B8.3000802@redhat.com> <1193390011.34470957.1403829231937.JavaMail.zimbra@redhat.com> <1374649635.181830.1404090114319.JavaMail.zimbra@redhat.com> Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. MIME-Version: 1.0 X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. Thread-Index: y1O2H0KkGwyCJndYbQsz+ah5eP8Vow== X-Barracuda-Connect: mx4-phx2.redhat.com[209.132.183.25] X-Barracuda-Start-Time: 1404201262 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7132 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain ----- Original Message ----- > [...] > FWIW, since the abi comes to include the version# in the field, it is > IMHO a little worse than just putting the version number right into > the function name. At least with that approach, we would have proper > type checking by the compiler for each version. That's something lacking > in version-tagged structs -- and a hassle with e.g. the pmda structure. > Yep, that is an advantage. The disadvantages though are that over time, the API becomes a real (repetitive) mess, once many extensions exist. If done right (so not like pmda dispatch - but that is a much more complex example, with multiple indirect structures), can give much cleaner code from the callers POV for client tools supporting multiple libpcp variants. The API and header file end up with N x data structures and N x APIs (as does libpcp.so ABI of course) for each new addition. So as N increases, its an increasingly poor choice - the pmapi.h header becomes a twisty maze of very-similar-structs. Plus, there's good precedence with existing APIs ... so lets stick with the current model (that one advantage isn't sufficiently compelling to change things up, IMO). cheers. -- Nathan From jpwhite4@buffalo.edu Tue Jul 1 09:04:47 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id EE6C67F9B for ; Tue, 1 Jul 2014 09:04:46 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 6D312AC002 for ; Tue, 1 Jul 2014 07:04:43 -0700 (PDT) X-ASG-Debug-ID: 1404223481-04cb6c76d03c7900001-S8gJnT Received: from appmailD.acsu.buffalo.edu (appmaild.acsu.buffalo.edu [128.205.5.237]) by cuda.sgi.com with ESMTP id xdMhAsTEjHF0NPbG for ; Tue, 01 Jul 2014 07:04:41 -0700 (PDT) X-Barracuda-Envelope-From: jpwhite4@buffalo.edu X-Barracuda-Apparent-Source-IP: 128.205.5.237 Received: from appmailD.acsu.buffalo.edu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 2FAF11F27D; Tue, 1 Jul 2014 10:04:41 -0400 (EDT) Received: from appmailD.acsu.buffalo.edu (localhost [127.0.0.1]) by appmailD.acsu.buffalo.edu (Postfix) with ESMTP id 11C711F26F; Tue, 1 Jul 2014 10:04:39 -0400 (EDT) Received: from cas-ls1.itorg.ad.buffalo.edu (cas-ls1.acsu.buffalo.edu [128.205.6.47]) by appmailD.acsu.buffalo.edu (Prefixe) with ESMTP id 07C1A1F26E; Tue, 1 Jul 2014 10:04:39 -0400 (EDT) Received: from MB-LS1.itorg.ad.buffalo.edu ([169.254.1.165]) by cas-ls1.itorg.ad.buffalo.edu ([128.205.6.47]) with mapi id 14.03.0195.001; Tue, 1 Jul 2014 10:04:38 -0400 From: "White, Joseph" To: Nathan Scott , "Frank Ch. Eigler" CC: "pcp@oss.sgi.com" Subject: Re: [pcp] New perfevent PMDA Thread-Topic: [pcp] New perfevent PMDA X-ASG-Orig-Subj: Re: [pcp] New perfevent PMDA Thread-Index: AQHPkWQ7+Of6murkTkSMtOpXHkooOZuD2/F2gACGLoCABuXgAA== Date: Tue, 1 Jul 2014 14:04:38 +0000 Message-ID: References: <1005571361.34471510.1403829857835.JavaMail.zimbra@redhat.com> In-Reply-To: <1005571361.34471510.1403829857835.JavaMail.zimbra@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/14.4.2.140509 x-originating-ip: [128.205.40.191] Content-Type: text/plain; charset="utf-8" Content-ID: <94B55441E9CFFE4EB36EAF33EA915271@buffalo.edu> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-PM-Spam-Prob: : 8% X-Barracuda-Connect: appmaild.acsu.buffalo.edu[128.205.5.237] X-Barracuda-Start-Time: 1404223481 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7140 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... VGhlIG1ha2VmaWxlIGluIHRoZSB1bml0dGVzdCBkaXJlY3RvcnkgaGFzIHRhcmdldHMgdGhhdCBj b21waWxlIGFuZCBydW4NCnRoZSB0ZXN0IGhhcm5lc3MuIEl0IGFsc28gcnVucyB0aGUgdGVzdCBo YXJuZXNzIGluIGdjb3YgdG8gcHJvZHVjZSBhIHRlc3QNCmNvdmVyYWdlIHJlcG9ydCBhbmQgcnVu cyB1bmRlciB2YWxncmluZCB0byBjaGVjayB0aGVyZSBhcmUgbm8gbWVtb3J5DQpsZWFrcy4gdmFs Z3JpbmQgYW5kIGdjb3YgbmVlZCB0byBiZSBpbnN0YWxsZWQgZm9yIHRoaXMgdG8gd29yay4NCg0K VGhlIHRlc3QgaGFybmVzcyBpbmNsdWRlcyBtb2NrIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgcGZt IGxpYmFyeSBhbmQgdGVzdA0KZmlsZXMgdGhhdCBzaW11bGF0ZSB0aGUgL3Byb2MgZmlsZXN5c3Rl bS4gVGhlc2UgYWxsb3cgbWUgdG8gdGVzdCB0aGF0DQplcnJvciBjYXNlcyBhcmUgaGFuZGxlZCBj b3JyZWN0bHkgaW4gdGhlIGNvZGUuDQoNCkknbGwgbG9vayBpbnRvIGludGVncmF0aW5nIHRoaXMg d2l0aCB0aGUgUENQIHRlc3Qgc3VpdGUuDQoNClRoYW5rcywNCg0KSm9lDQoNCk9uIDYvMjYvMTQs IDg6NDQgUE0sICJOYXRoYW4gU2NvdHQiIDxuYXRoYW5zQHJlZGhhdC5jb20+IHdyb3RlOg0KDQo+ DQo+DQo+LS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLQ0KPj4gPiBbLi4uXSBUaGlzIGxpbnV4 LXNwZWNpZmljIHBtZGEgZXhwb3NlcyB0aGUgaGFyZHdhcmUgcGVyZm9ybWFuY2UNCj4+ID4gY291 bnRlcnMgYXZhaWxhYmxlIG9uIHJlY2VudCB4ODYgc3lzdGVtcy4gVGhpcyBwbWRhIGhhcyBiZWVu IHJ1bm5pbmcNCj4+ID4gb24gb3VyIGNsdXN0ZXIgdGhlIGxhc3QgMTAgbW9udGhzIHdpdGhvdXQg cHJvYmxlbXMgKEkndmUgYmVlbg0KPj4gPiBtZWFuaW5nIHRvIHN1Ym1pdCB0aGlzIGZvciBpbmNs dXNpb24gZm9yIGEgd2hpbGUhKS4gWy4uLl0NCj4+IA0KPj4gVGhhbmsgeW91IGZvciBwb3N0aW5n LiAgQXMgeW91IHByb2JhYmx5IGtub3csIHdlIGhhdmUgcmVjZW50bHkgc3RhcnRlZA0KPj4gZXhw ZW5kaW5nIGVmZm9ydCBpbiBhIHZlcnkgc2ltaWxhciBkaXJlY3Rpb24sIHNvIHdpbGwgbmVlZCB0 byBjb21wYXJlDQo+PiAmIGNvbnRyYXN0IHRoZSB0d28gdG8gZmlndXJlIG91dCBob3cgdG8gcHJv Y2VlZC4NCj4NCj5QbGVhc2UgYmUgYXdhcmUgdGhhdCB0aGUgd29yZGluZyBvZiB0aGlzIHNlbnRl bmNlIGNvdWxkIGJlIGludGVycHJldGVkIGFzDQo+dGhlICJ3ZSIgKHdobyByZWNlbnRseSBzdGFy dGVkIGV4cGVuZGluZyBlZmZvcnQuLi4pICJ3aWxsIG5lZWQgdG8gY29tcGFyZQ0KPmFuZCBjb250 cmFzdC4uLiIgYmVmb3JlIGFueXRoaW5nIGNhbiBwcm9ncmVzcyBpbiB0ZXJtcyBvZiBpbmNsdWRp bmcgdGhpcw0KPm5ldyBQTURBIHdpdGggdGhlIHJlc3Qgb2YgUENQIC0gd2hpY2ggaXMgbm90IHRo ZSBjYXNlLg0KPg0KPkluIHJlYWxpdHksIG5vIGNvbXBhcmluZyBhbmQgY29udHJhc3RpbmcgaXMg Km5lZWRlZCogYXQgYWxsIChidXQgaXQgd291bGQNCj5iZSBhIGdvb2QgaWRlYSwgZm9yIGVhY2gg aW1wbGVtZW50YXRpb24gdG8gbGVhcm4gZnJvbSB0aGUgb3RoZXIpLiAgUENQIGhhcw0KPmFuIGFy Y2hpdGVjdHVyZSB0aGF0IHdpbGwgYWxsb3cgYm90aCBQTURBcyB0byBleGlzdCBzaWRlLWJ5LXNp ZGUgaW4gdGhlDQo+Z2l0DQo+dHJlZSBhbmQgaW4gdGhlIGJpbmFyeSBwYWNrYWdlcyB0aGF0IGFy ZSBzaGlwcGVkLCBvZiBjb3Vyc2UuDQo+DQo+SSdtIGEgYml0IHNub3dlZCB1bmRlciBhdG0sIGJ1 dCBJIGFtIGV4cGVjdGluZyB0byB0YWtlIGEgY2xvc2VyIGxvb2sgbmV4dA0KPndlZWsgYXQgYm90 aCB0aGVzZSBQTURBcyAod2l0aCB0aGUgZXhwZWN0YXRpb24gdGhhdCBib3RoIHdpbGwgYmUgbWVy Z2VkIGF0DQo+c29tZSBwb2ludCkuDQo+DQo+SSBub3RlIHdpdGggZ3JlYXQgZGVsaWdodCB0aGF0 IHlvdSBhbHJlYWR5IGhhdmUgc2V2ZXJhbCB0ZXN0IHByb2dyYW1zLA0KPkpvZS4NCj5DYW4geW91 IGRlc2NyaWJlIGhvdyB0byBidWlsZCAmIHJ1biB0aG9zZSAtIGlkZWFsbHkgd2UnZCBiZSBpbmNs dWRpbmcNCj50aG9zZQ0KPmluIHRoZSBwY3AtdGVzdHN1aXRlLCB0aGVuIG1hbnkgbW9yZSBwZW9w bGUgd2lsbCBiZSBydW5uaW5nIHRob3NlIHRlc3RzDQo+YWxsDQo+dGhlIHRpbWUuICBNYXJ0aW5z IGhhcyBzb21lIGV4cGVyaWVuY2UgZG9pbmcgdGhpcywgaXQgbWlnaHQgaGVscCB0byB0YWxrDQo+ ZGlyZWN0bHkgd2l0aCBoaW0gdG9vLg0KPg0KPmNoZWVycy4NCj4NCj4tLQ0KPk5hdGhhbg0KDQo= From jpwhite4@buffalo.edu Tue Jul 1 10:24:34 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 4C6067FAB for ; Tue, 1 Jul 2014 10:24:34 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id B0AFDAC002 for ; Tue, 1 Jul 2014 08:24:33 -0700 (PDT) X-ASG-Debug-ID: 1404228267-04cb6c76d13cb450001-S8gJnT Received: from appmailD.acsu.buffalo.edu (appmaild.acsu.buffalo.edu [128.205.5.237]) by cuda.sgi.com with ESMTP id qLrqOzAJzS8psTbV for ; Tue, 01 Jul 2014 08:24:27 -0700 (PDT) X-Barracuda-Envelope-From: jpwhite4@buffalo.edu X-Barracuda-Apparent-Source-IP: 128.205.5.237 Received: from appmailD.acsu.buffalo.edu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id A100F36FF2; Tue, 1 Jul 2014 11:24:27 -0400 (EDT) Received: from appmailD.acsu.buffalo.edu (localhost [127.0.0.1]) by appmailD.acsu.buffalo.edu (Postfix) with ESMTP id 5A17936FDF; Tue, 1 Jul 2014 11:24:26 -0400 (EDT) Received: from cas-nr2.itorg.ad.buffalo.edu (cas-nr2.acsu.buffalo.edu [128.205.6.43]) by appmailD.acsu.buffalo.edu (Prefixe) with ESMTP id 5167736FDC; Tue, 1 Jul 2014 11:24:26 -0400 (EDT) Received: from MB-LS1.itorg.ad.buffalo.edu ([169.254.1.165]) by cas-nr2.itorg.ad.buffalo.edu ([128.205.6.43]) with mapi id 14.03.0195.001; Tue, 1 Jul 2014 11:24:25 -0400 From: "White, Joseph" To: William Cohen , "pcp@oss.sgi.com" Subject: Re: [pcp] New perfevent PMDA Thread-Topic: [pcp] New perfevent PMDA X-ASG-Orig-Subj: Re: [pcp] New perfevent PMDA Thread-Index: AQHPkWQ7+Of6murkTkSMtOpXHkooOZuKb4wAgADuvwA= Date: Tue, 1 Jul 2014 15:24:25 +0000 Message-ID: References: <53B1D222.8010601@redhat.com> In-Reply-To: <53B1D222.8010601@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/14.4.2.140509 x-originating-ip: [128.205.40.191] Content-Type: text/plain; charset="utf-8" Content-ID: <32251ED5C307C6409030972E90B1C9A8@buffalo.edu> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-PM-Spam-Prob: : 8% X-Barracuda-Connect: appmaild.acsu.buffalo.edu[128.205.5.237] X-Barracuda-Start-Time: 1404228267 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7142 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... V2lsbCwNCg0KV2UgaGF2ZSB0d28gcHJvamVjdHM6IFhETW9ELCB3aGljaCBpcyB0aGUgYXVkaXQg c2VydmljZSBmb3IgWFNFREUgYW5kIE9wZW4NClhETW9ELCB3aGljaCBpcyB0aGUgTEdQTCBsaWNl bnNlZCBvcGVuLXNvdXJjZSB2ZXJzaW9uIGF2YWlsYWJsZSBhdA0KaHR0cDovL3hkbW9kLnNvdXJj ZWZvcmdlLm5ldC8uIEluIGEgY291cGxlIG9mIHdlZWtzIHdlIHdpbGwgcmVsZWFzZSBhIG5ldw0K dmVyc2lvbiBvZiBYRE1vRCB0aGF0IGhhcyBzdXBwb3J0IGZvciBpbmdlc3QvYWdncmVnYXRpb24v ZGlzcGxheSBvZg0KcGVyZm9ybWFuY2UgbWV0cmljcyBzdWNoIGFzIEZMT1BTLCBDUFUgdXNhZ2Us IEFwcGxpY2F0aW9uIG5hbWUsIG1lbW9yeQ0KdXNhZ2UsIG1lbW9yeSBiYW5kd2lkdGgsIGV0Yy4g VGhlIFhETW9EIGFyY2hpdGVjdHVyZSBzdXBwb3J0cyBkYXRhIGluZ2VzdA0KZnJvbSBtdWx0aXBs ZSBkaWZmZXJlbnQgc291cmNlcyBidXQgYWxsIG9mIHRoZSBwdWJsaWNseSBhdmFpbGFibGUgZGF0 YSBpcw0KYWN0dWFsbHkgZ2VuZXJhdGVkIGJ5IHRoZSB0YWNjX3N0YXRzIHNvZnR3YXJlDQooaHR0 cHM6Ly9naXRodWIuY29tL3J0ZXZhbnMvdGFjY19zdGF0cyksIHJhdGhlciB0aGFuIFBDUC4NCg0K VGhlIE9wZW4gWERNb0QgcmVsZWFzZXMgbGFnIHNsaWdodGx5IGJlaGluZCB0aGUgWERNb0QgcmVs ZWFzZXMsIGJ1dCB0aGV5DQphcmUgYm90aCBiYXNlZCBvbiB0aGUgc2FtZSBjb2RlLiBJdCBpcyBs aWtlbHkgdGhhdCB3ZSB3aWxsIGhhdmUgc3VwcG9ydA0KZm9yIFBDUCBpbiBhIGZ1dHVyZSBvcGVu IHNvdXJjZSByZWxlYXNlLCBidXQgaXQgaXMgbm90IGF2YWlsYWJsZQ0Kb3V0LW9mLXRoZSBib3gg YXQgdGhlIG1vbWVudC4gSWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGZvbGxvd2luZyB0aGUNCnBy b2dyZXNzIHRoZXJlIGlzIGEgbG93IHRyYWZmaWMgbWFpbGluZyBsaXN0IHRoYXQgd2UgdXNlIHRv IHB1Ymxpc2gNCm5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBsYW5uZWQgcmVsZWFzZXM6DQpodHRw Oi8vbGlzdHNlcnYuYnVmZmFsby5lZHUvY2dpLWJpbi93YT9TVUJFRDE9Y2NyLXhkbW9kLWxpc3Qm QT0xDQoNCg0KVGhlIHBmbSBsaWJyYXJ5IHN1cHBvcnRzIG11bHRpcGxlIGRpZmZlcmVudCBhcmNo aXRlY3R1cmVzIChhcm0gczM5MCBwcGMNCi4uKSBhbmQgdGhlIHBlcmZldmVudCBQTURBIHNob3Vs ZCBiZSBhYmxlIHRvIHJ1biBhbnl3aGVyZSBsaWJwZm0gcnVucy4gSQ0KZG9uJ3QgdGhpbmsgdGhh dCB0aGVyZSBpcyBhbnkgeDg2IHNwZWNpZmljIGNvZGUgaW4gdGhlIHBtZGEsIGhvd2V2ZXIgSQ0K b25seSBoYXZlIGFjY2VzcyB0byB4ODYgaGFyZHdhcmUgc28gSSBjYW4ndCBlYXNpbHkgY29uZmly bSB0aGlzLiBUaGUgb25seQ0KY2hhbmdlIG5lY2Vzc2FyeSBzaG91bGQgYmUgdG8gdXBkYXRlIHRo ZSBjb25maWd1cmF0aW9uIGZpbGUgd2l0aCBzZW5zaWJsZQ0KZGVmYXVsdCB2YWx1ZXMgZm9yIHRo ZSBkaWZmZXJlbnQgUE1Vcy4NCg0KDQpUaGUgcG1kYSBkb2VzIGRlcGVuZCBvbiBwdGhyZWFkcyBh bmQgbXQgYW5kIHRoZSBsaWJyYXJ5IGRlcGVuZGVuY2llcw0Kc2hvdWxkIGJlIHNwZWNpZmllZCBp biB0aGUgbWFrZWZpbGUuIFRoZSBjb21waWxlZCBiaW5hcnkgd29ya3MgZm9yIG1lIG9uDQpDZW50 b3MgNi41IGFuZCBVYnVudHUgMTIuMDQgTFRTLCBwcm9iYWJseSBiZWNhdXNlIHRoZSBsaWJwY3Ag aGFzDQpkZXBlbmRlbmNpZXMgb24gbGlicHRocmVhZHMgYW5kIGxpYm0gc28gdGhlIGxpbmtlciBs aW5rcyB0aGVtIGFueXdheS4gTm90ZQ0KSSd2ZSBvbmx5IGV2ZXIgcnVuIHRoZSBwZXJmZXZlbnQg cG1kYSBpbiBkYWVtb24gbW9kZSwgc2luY2UgaXQgbmVlZHMgcm9vdA0KcHJpdmlsZWdlcy4NCg0K DQpKb2UNCg0KDQpPbiA2LzMwLzE0LCA1OjA5IFBNLCAiV2lsbGlhbSBDb2hlbiIgPHdjb2hlbkBy ZWRoYXQuY29tPiB3cm90ZToNCg0KPk9uIDA2LzI2LzIwMTQgMDE6MjkgUE0sIFdoaXRlLCBKb3Nl cGggd3JvdGU6DQo+PiBIaSwNCj4+IA0KPj4gQXR0YWNoZWQgaXMgYSBwZXJmZXZlbnQgUE1EQSBm b3IgZ2VuZXJhbCByZXZpZXcvY29tbWVudHMvc3VnZ2VzdGlvbnMuDQo+PlRoaXMgbGludXgtc3Bl Y2lmaWMgcG1kYSBleHBvc2VzIHRoZSBoYXJkd2FyZSBwZXJmb3JtYW5jZSBjb3VudGVycw0KPj5h dmFpbGFibGUgb24gcmVjZW50IHg4NiBzeXN0ZW1zLiBUaGlzIHBtZGEgaGFzIGJlZW4gcnVubmlu ZyBvbiBvdXINCj4+Y2x1c3RlciB0aGUgbGFzdCAxMCBtb250aHMgd2l0aG91dCBwcm9ibGVtcyAo SSd2ZSBiZWVuIG1lYW5pbmcgdG8gc3VibWl0DQo+PnRoaXMgZm9yIGluY2x1c2lvbiBmb3IgYSB3 aGlsZSEpLg0KPj4gDQo+PiBOb3RlczoNCj4+IA0KPj4gVGhlIFBNREEgdXNlcyB0aGUgbGlicGZt NCBsaWJyYXJ5IHRvIGFjY2VzcyB0aGUgaGFyZHdhcmUgcGVyZm9ybWFuY2UNCj4+Y291bnRlcnMg c28gYW55IGNvdW50ZXJzIHRoYXQgYXJlIHN1cHBvcnRlZCBpbiBsaWJwZm00IHNob3VsZCBiZQ0K Pj5hdmFpbGFibGUuIEFsc28gaW5jbHVkZWQgaXMgdGhlIGFiaWxpdHkgdG8gcmVhZCB0aGUgSW50 ZWwgUkFQTCBjb3VudGVycw0KPj52aWEgZGlyZWN0IE1TUiBhY2Nlc3MuDQo+PiANCj4+IFRoZSBQ TURBIHN1cHBvcnRzIGF1dG9tYXRpY2FsbHkgbG9hZGluZyBkaWZmZXJlbnQgY291bnRlcnMgZm9y IGVhY2gNCj4+aGFyZHdhcmUgYXJjaGl0ZWN0dXJlLiBBIHNpbmdsZSBjb25maWd1cmF0aW9uIGZp bGUgaXMgdXNlZCB0byBzcGVjaWZ5DQo+PnRoZSBkZXNpcmVkIGNvdW50ZXJzIGZvciBlYWNoIGNo aXBzZXQgZmFtaWx5LiBUaGUgY29uZmlndXJhdGlvbiBmaWxlDQo+PmFsbG93cyBkaWZmZXJlbnQg Y291bnRlcnMgdG8gYmUgcHJvZ3JhbW1lZCBvbiBkaWZmZXJlbnQgQ1BVcyBhbmQNCj4+c3VwcG9y dHMgcm91bmQtcm9iaW4gYXNzaWdubWVudCBvZiB1bmNvcmUgY291bnRlcnMgbmVlZGVkIGZvciBz b21lIEFNRA0KPj5jaGlwcy4gVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBpcyBrbm93biB0byB3 b3JrIG9uIEludGVsIFNhbmR5YnJpZGdlDQo+PkVQLCBJbnRlbCBXZXN0bWVyZSBEUCwgSW50ZWwg TmVoYWxlbSBFWCBhbmQgSW50ZWwgQ29yZTIgY2hpcHNldHMuDQo+PiANCj4+IFRoZSBQTURBIGFj Y2Vzc2VzIHRoZSBzeXN0ZW0td2lkZSBoYXJkd2FyZSBjb3VudGVycyBhbmQgcnVucyBhcyByb290 Lg0KPj5UaGlzIG1lYW5zIHRoYXQgdGhlIGhhcmR3YXJlIGNvdW50ZXJzIGFyZSB1bmF2YWlsYWJs ZSB0byB1c2UgYnkgbm9ybWFsDQo+PnVucHJpdmlsZWdlZCB1c2VyIGFwcGxpY2F0aW9ucyB3aGVu IHRoZXkgYXJlIGluIHVzZSBieSB0aGUgUE1EQS4gVGhlDQo+PlBNREEgcHJvdmlkZXMgYSBtZWNo YW5pc20gdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSB0aGUgc3lzdGVtLXdpZGUNCj4+Y291bnRlcnMg aW4gb3JkZXIgdG8gYWxsb3cgbm9ybWFsIHVzZXJzIHRvIGJlIGFibGUgdG8gdXNlIHRoZSBjb3Vu dGVycw0KPj5pZiB0aGV5IHdpc2guDQo+PiANCj4+IEJ1aWxkIHJlcXVpcmVtZW50czoNCj4+IC0g bGlicGZtNA0KPj4gLSBmbGV4DQo+PiANCj4+IENoZWVycywNCj4+IA0KPj4gSm9lDQo+PiANCj4N Cj4NCj5IaSBKb2UsDQo+DQo+SSBhbSBqdXN0IHN0YXJ0aW5nIHRvIHRha2UgYSBsb29rIGF0IHRo ZSBwZXJmZXZlbnQgcG1kYS4NCj4NCj5Zb3UgbWVudGlvbmVkIHRoYXQgcGVyZmV2ZW50IHBtZGEg aGFzIGJlZW4gdXNlZCBmb3IgdGhlIHBhc3QgMTANCj5tb250aHMuIElzIHBlcmZldmVudCBwbWRh IGJlaW5nIHVzZWQgdG8gY29sbGVjdCBkYXRhIGZvciBYRE1vRA0KPihodHRwczovL3hkbW9kLmNj ci5idWZmYWxvLmVkdS8pPw0KPg0KPlBlb3BsZSBtYXkgd2FudCB0byBydW4gdGhpcyBvbiBvdGhl ciBhcmNoaXRlY3R1cmVzIHN1Y2ggYXMgYXJtLA0KPmFhcmNoNjQsIG9yIHBvd2VyIG9yIGF0IGxl YXN0IGJ1aWxkIHBjcCBvbiB0aG9zZSBhcmNoaXRlY3R1cmVzIHdpdGgNCj5zYW1lIHNvdXJjZXMu IEhhcyB0aGVyZSBiZWVuIGF0dGVtcHQgdG8gY29tcGlsZSB0aGUgY29kZSBvbiBub24teDg2DQo+ YXJjaGl0ZWN0dXJlcw0KPnNvIHRoaXMgd29uJ3QgYnJlYWsgYnVpbGRzIG9uIEZlZG9yYSBvciBk aXN0cmlidXRpb25zIHdpdGggbm9uLXg4Ng0KPmFyY2hpdGVjdHVyZXM/DQo+SG93IHBvcnRhYmxl IGlzIHRoZSBwZXJmIGV2ZW50IHNlbGVjdGlvbiB0byBub24teDg2IGFyY2hpdGVjdHVyZXM/DQo+ DQo+VGhpcyBtaWdodCBiZSBhbiBlcnJvciBvbiBteSBwYXJ0LCBidXQgZG8gdGhlIGxpYnJhcmll cyBmb3IgbWF0aCBhbmQNCj5wdGhyZWFkcyAoLWxtIGFuZCAtbHBodHJlYWQpIG5lZWQgdG8gYmUg c3RhdGVkIGluIHRoZSBHTlVtYWtlZmlsZSBvcg0KPmFyZSB0aG9zZSBwYXNzZWQgYnkgJChQQ1Bf UE1EQUxJQik/DQo+DQo+DQo+LVdpbGwNCj4NCg0K From jpwhite4@buffalo.edu Tue Jul 1 12:01:25 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id CF08629DFA for ; Tue, 1 Jul 2014 12:01:24 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 63E74AC00D for ; Tue, 1 Jul 2014 10:01:24 -0700 (PDT) X-ASG-Debug-ID: 1404234079-04bdf05666748b40001-S8gJnT Received: from appmailD.acsu.buffalo.edu (appmaild.acsu.buffalo.edu [128.205.5.237]) by cuda.sgi.com with ESMTP id h4hll4DwT2HiQvyq for ; Tue, 01 Jul 2014 10:01:19 -0700 (PDT) X-Barracuda-Envelope-From: jpwhite4@buffalo.edu X-Barracuda-Apparent-Source-IP: 128.205.5.237 Received: from appmailD.acsu.buffalo.edu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id F03FD347C1 for ; Tue, 1 Jul 2014 13:01:18 -0400 (EDT) Received: from appmailD.acsu.buffalo.edu (localhost [127.0.0.1]) by appmailD.acsu.buffalo.edu (Postfix) with ESMTP id 6CD02347AB for ; Tue, 1 Jul 2014 13:01:17 -0400 (EDT) Received: from cas-nr3.itorg.ad.buffalo.edu (cas-nr3.acsu.buffalo.edu [128.205.6.44]) by appmailD.acsu.buffalo.edu (Prefixe) with ESMTP id 66CA9347A5 for ; Tue, 1 Jul 2014 13:01:17 -0400 (EDT) Received: from MB-LS1.itorg.ad.buffalo.edu ([169.254.1.165]) by cas-nr3.itorg.ad.buffalo.edu ([128.205.6.44]) with mapi id 14.03.0195.001; Tue, 1 Jul 2014 13:01:17 -0400 From: "White, Joseph" To: "pcp@oss.sgi.com" Subject: Proposed updates to cgroup support in the linux_proc PMDA Thread-Topic: Proposed updates to cgroup support in the linux_proc PMDA X-ASG-Orig-Subj: Proposed updates to cgroup support in the linux_proc PMDA Thread-Index: AQHPlU4RoySNyVksN0OJt2/zRcRE1g== Date: Tue, 1 Jul 2014 17:01:15 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/14.4.2.140509 x-originating-ip: [128.205.40.191] Content-Type: multipart/mixed; boundary="_004_CFD8619AC63Djpwhite4buffaloedu_" MIME-Version: 1.0 X-PM-Spam-Prob: : 8% X-Barracuda-Connect: appmaild.acsu.buffalo.edu[128.205.5.237] X-Barracuda-Start-Time: 1404234079 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7144 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.00 HTML_MESSAGE BODY: HTML included in message --_004_CFD8619AC63Djpwhite4buffaloedu_ Content-Type: multipart/alternative; boundary="_000_CFD8619AC63Djpwhite4buffaloedu_" --_000_CFD8619AC63Djpwhite4buffaloedu_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksDQoNCldlIGhhdmUgYmVlbiB1c2luZyB0aGUgbGludXhfcHJvYyBwbWRhIHRvIG1vbml0b3Ig dGhlIHByb2Nlc3NlcyBvbiBvdXIgY29tcHV0aW5nIGNsdXN0ZXIuICBUaGUgY2x1c3RlciB1c2Vz IFNMVVJNIGFzIHRoZSByZXNvdXJjZSBtYW5hZ2VyIGFuZCBpcyBjb25maWd1cmVkIHRvIHVzZSBj Z3JvdXBzIHRvIGlzb2xhdGUgdGhlIHByb2Nlc3NlcyBmb3IgZGlmZmVyZW50IHVzZXJzIG9uIGEg Z2l2ZW4gcHJvY2Vzc2luZyBub2RlLiAgU0xVUk0gY3JlYXRlcyBjZ3JvdXBzIGZvciBlYWNoIGpv YiBzdGVwIGFuZCB0aGVuIHJlbW92ZXMgdGhlbSBhZnRlciB0aGUgam9iIGVuZHMuIFRoZXJlIGFy ZSBhcHByb3hpbWF0ZWx5IDcgdGhvdXNhbmQgIGpvYnMgcGVyIGRheSBvbiB0aGUgY2x1c3RlciBh bmQgdXN1YWxseSBhIGNvdXBsZSBvZiBqb2Igc3RlcHMgaW4gZWFjaCBqb2IuIEpvYiBkdXJhdGlv biByYW5nZXMgZnJvbSBhIGZldyBzZWNvbmRzIHRvIDcyIGhvdXJzLiBUaGVyZWZvcmUsIHRoZSBh Y3RpdmUgY2dyb3VwcyBvbiBlYWNoIG5vZGUgY2hhbmdlIHJlZ3VsYXJseS4NCg0KV2UgZm91bmQg dGhhdCB0aGUgY2dyb3VwcyBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgbGludXhfcHJvYyBwbWRhIGRp ZG4ndCBmdW5jdGlvbiBwcm9wZXJseSBpbiB0aGlzIHNjZW5hcmlvLiBUaGUgbWFpbiBpc3N1ZXM6 DQoNCi0gSXQgaXMgbm90IHVudXN1YWwgdG8gaGF2ZSBtb3JlIGFjdGl2ZSBjZ3JvdXBzIHRoYW4g dGhlIGxpbWl0IG9mIDMyIGRpZmZlcmVudCBjZ3JvdXBzIGluIHRoZSBwbWRhLiBUaGlzIGNhdXNl cyBpbmZvcm1hdGlvbiBsb3NzLg0KLSBXaGVuIHRoZSBjZ3JvdXBzIGNoYW5nZSwgdGhlIHBtZGEg cmVidWlsZHMgdGhlIG5hbWVzcGFjZS4gSG93ZXZlciwgdGhlcmUgaXMgbm8gbWVjaGFuaXNtIHRv IG5vdGlmeSBleGlzdGluZyBwbWxvZ2dlciBpbnN0YW5jZXMgdGhhdCB0aGUgbmFtZXNwYWNlIGNo YW5nZWQuIFRoaXMgY2F1c2VzIGluZm9ybWF0aW9uIGxvc3MgYXMgdGhlIG5ldy91cGRhdGVkIG5h bWVzcGFjZSBuYW1lcyBkbyBub3QgZ2V0IHN0b3JlZCBpbiB0aGUgbG9nLg0KLSBXaGVuIG9uZSBj Z3JvdXAgaXMgYWRkZWQgb3IgcmVtb3ZlZCwgdGhlbiBhbGwgb2YgdGhlIHBtaWRzIGNhbiBjaGFu Z2UgZm9yIGVudHJpZXMgaW4gdGhlIG5hbWVzcGFjZS4gVGhpcyBjYXVzZXMgaW5mb3JtYXRpb24g bG9zcyBhcyB0aGUgbG9nIGVudHJpZXMgZm9yIG9uZSBjZ3JvdXAgY2FuIGJlIGluY29ycmVjdGx5 IGFzc29jaWF0ZWQgd2l0aCBhbm90aGVyLg0KDQpJbiBvcmRlciB0byB0YWNrbGUgdGhlc2UgcHJv YmxlbXMsIEkgY2hhbmdlZCB0aGUgbGludXhfcHJvYyBwbWRhIHNvIHRoYXQgdGhlIGNncm91cHMg Y29kZSB1c2VzIGluc3RhbmNlIGRvbWFpbnMuIFRoaXMgc29sdmVzIHRoZSBhYm92ZSBpc3N1ZXM6 IE5vIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgY2dyb3VwcywgIHRoZSBsb2dnZXIgaW5mcmFzdHJ1 Y3R1cmUgYWxyZWFkeSBrbm93cyBob3cgdG8gcHJvY2VzcyBkYXRhIHdoZW4gdGhlIGluc3RhbmNl IGRvbWFpbnMgY2hhbmdlIGFuZCB0aGUgcG1kYUNhY2hlIGlzIHVzZWQgdG8gZ3VhcmFudGVlIHRo YXQgdGhlIGluc3RhbmNlIGlkcyBmb3IgZWFjaCBjZ3JvdXAgcmVtYWluIGNvbnN0YW50Lg0KDQpE aXNhZHZhbnRhZ2VzIG9mIHRoaXMgYXBwcm9hY2g6DQoxKSBJdHMgYSBub24gYmFja3dhcmRzIGNv bXBhdGlibGUgY2hhbmdlIHRvIGEgY29yZSBQQ1AgY29tcG9uZW50Lg0KMikgSSB3YXMgbm90IGFi bGUgdG8ga2VlcCB0aGUgZm9ybWF0IG9mIHRoZSB1c2FnZV9wZXJjcHUgbWV0cmljLiBJbiB0aGUg b3JpZ2luYWwgaW1wbGVtZW50YXRpb24sIHRoaXMgdXNlZCB0aGUgQ1BVX0lORE9NIHRvIHJlcG9y dCBtZXRyaWNzIGZvciBlYWNoIGNwdS4gU2luY2UgeW91IGNhbid0IGhhdmUgbmVzdGVkIGluc3Rh bmNlIGRvbWFpbnMsIEkgY2hvc2UgdG8gc2VyaWFsaXNlIHRoZSBwZXJjcHUgZGF0YSBpbnRvIGEg c3RyaW5nLg0KDQpJJ3ZlIGF0dGFjaGVkIGEgcGF0Y2ggZmlsZSB3aXRoIGFsbCBteSBjaGFuZ2Vz ICh0aGlzIGNhbiBiZSB1c2VkIHRvIHBhdGNoIHRoZSBtYWluIGNvZGUgdXNpbmcgInBhdGNoIC1w NCIgZnJvbSB0aGUgc3JjL3BtZGFzIGRpcmVjdG9yeSkuIFdvdWxkIHlvdSBjb25zaWRlciBtYWtp bmcgdGhpcyBub24tYmFja3dhcmRzIGNvbXBhdGlibGUgY2hhbmdlIHRvIHRoZSBsaW51eF9wcm9j IHBtZGEgb3IgZG9lcyBpdCBtYWtlIG1vcmUgc2Vuc2UgdG8gY3JlYXRlIGEgbmV3IGxpbnV4X2Nn cm91cHMgcG1kYT8gQWxzbyBhbnkgdGhvdWdodHMgYXMgdG8gYWx0ZXJuYXRpdmUgd2F5cyB0byBl eHBvc2UgdGhlIHBlcmNwdSBtZXRyaWNzIGZvciBlYWNoIGNncm91cD8NCg0KSm9lDQoNClAuUy4g VGhlIHBhdGNoIGFsc28gaW5jbHVkZXMgc3VwcG9ydCBmb3IgZ3JhYmJpbmcgdGhlIHByb2Nlc3Mg ZW52aXJvbm1lbnQgYW5kIHRoZSBzZXQgb2YgYWxsb3dlZCBjcHVzIGZvciBhbGwgcHJvY2Vzc2Vz LiBUaGVzZSBjaGFuZ2VzIGFyZSBpbmRlcGVuZGVudCBvZiB0aGUgY2dyb3VwIGNoYW5nZXMuDQpQ LlAuUy4gT2J2aW91c2x5IHRoZSBRQSB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbiBhbHNvIG5lZWRz IHVwZGF0aW5nLCBidXQgdGhlIHNjb3BlIG9mIHRoZXNlIHVwZGF0ZXMgd2lsbCBkZXBlbmQgb24g d2hldGhlciB0aGUgZXhpc3RpbmcgcG1kYSBnZXRzIHVwZGF0ZWQgb3IgYSBuZXcgcG1kYSBjcmVh dGVkLg0KDQoNCg== --_000_CFD8619AC63Djpwhite4buffaloedu_ Content-Type: text/html; charset="utf-8" Content-ID: <3125F019F6AA4E4BB687EC567566B0DE@buffalo.edu> Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1zaXplOiAx NHB4OyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsiPg0KPGRpdj5IaSw8L2Rpdj4N CjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PldlIGhhdmUgYmVlbiB1c2luZyB0aGUgbGludXhfcHJv YyBwbWRhIHRvIG1vbml0b3IgdGhlIHByb2Nlc3NlcyBvbiBvdXIgY29tcHV0aW5nIGNsdXN0ZXIu ICZuYnNwO1RoZSBjbHVzdGVyIHVzZXMgU0xVUk0gYXMgdGhlIHJlc291cmNlIG1hbmFnZXIgYW5k IGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGNncm91cHMgdG8gaXNvbGF0ZSB0aGUgcHJvY2Vzc2VzIGZv ciBkaWZmZXJlbnQgdXNlcnMgb24gYSBnaXZlbiBwcm9jZXNzaW5nIG5vZGUuICZuYnNwO1NMVVJN IGNyZWF0ZXMNCiBjZ3JvdXBzIGZvciBlYWNoIGpvYiBzdGVwIGFuZCB0aGVuIHJlbW92ZXMgdGhl bSBhZnRlciB0aGUgam9iIGVuZHMuIFRoZXJlIGFyZSBhcHByb3hpbWF0ZWx5IDcgdGhvdXNhbmQg Jm5ic3A7am9icyBwZXIgZGF5IG9uIHRoZSBjbHVzdGVyIGFuZCB1c3VhbGx5IGEgY291cGxlIG9m IGpvYiBzdGVwcyBpbiBlYWNoIGpvYi4gSm9iIGR1cmF0aW9uIHJhbmdlcyBmcm9tIGEgZmV3IHNl Y29uZHMgdG8gNzIgaG91cnMuIFRoZXJlZm9yZSwgdGhlIGFjdGl2ZSBjZ3JvdXBzDQogb24gZWFj aCBub2RlIGNoYW5nZSByZWd1bGFybHkuPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5X ZSBmb3VuZCB0aGF0IHRoZSBjZ3JvdXBzIGltcGxlbWVudGF0aW9uIGluIHRoZSBsaW51eF9wcm9j IHBtZGEgZGlkbid0IGZ1bmN0aW9uIHByb3Blcmx5IGluIHRoaXMgc2NlbmFyaW8uIFRoZSBtYWlu IGlzc3Vlczo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2Pi0gSXQgaXMgbm90IHVudXN1 YWwgdG8gaGF2ZSBtb3JlIGFjdGl2ZSBjZ3JvdXBzIHRoYW4gdGhlIGxpbWl0IG9mIDMyIGRpZmZl cmVudCBjZ3JvdXBzIGluIHRoZSBwbWRhLiBUaGlzIGNhdXNlcyBpbmZvcm1hdGlvbiBsb3NzLjwv ZGl2Pg0KPGRpdj4tIFdoZW4gdGhlIGNncm91cHMgY2hhbmdlLCB0aGUgcG1kYSByZWJ1aWxkcyB0 aGUgbmFtZXNwYWNlLiBIb3dldmVyLCB0aGVyZSBpcyBubyBtZWNoYW5pc20gdG8gbm90aWZ5IGV4 aXN0aW5nIHBtbG9nZ2VyIGluc3RhbmNlcyB0aGF0IHRoZSBuYW1lc3BhY2UgY2hhbmdlZC4gVGhp cyBjYXVzZXMgaW5mb3JtYXRpb24gbG9zcyBhcyB0aGUgbmV3L3VwZGF0ZWQgbmFtZXNwYWNlIG5h bWVzIGRvIG5vdCBnZXQgc3RvcmVkIGluIHRoZSBsb2cuPC9kaXY+DQo8ZGl2Pi0gV2hlbiBvbmUg Y2dyb3VwIGlzIGFkZGVkIG9yIHJlbW92ZWQsIHRoZW4gYWxsIG9mIHRoZSBwbWlkcyBjYW4gY2hh bmdlIGZvciBlbnRyaWVzIGluIHRoZSBuYW1lc3BhY2UuIFRoaXMgY2F1c2VzIGluZm9ybWF0aW9u IGxvc3MgYXMgdGhlIGxvZyBlbnRyaWVzIGZvciBvbmUgY2dyb3VwIGNhbiBiZSBpbmNvcnJlY3Rs eSBhc3NvY2lhdGVkIHdpdGggYW5vdGhlci48L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2 PkluIG9yZGVyIHRvIHRhY2tsZSB0aGVzZSBwcm9ibGVtcywgSSBjaGFuZ2VkIHRoZSBsaW51eF9w cm9jIHBtZGEgc28gdGhhdCB0aGUgY2dyb3VwcyBjb2RlIHVzZXMgaW5zdGFuY2UgZG9tYWlucy4g VGhpcyBzb2x2ZXMgdGhlIGFib3ZlIGlzc3VlczogTm8gbGltaXQgb24gdGhlIG51bWJlciBvZiBj Z3JvdXBzLCAmbmJzcDt0aGUgbG9nZ2VyIGluZnJhc3RydWN0dXJlIGFscmVhZHkga25vd3MgaG93 IHRvIHByb2Nlc3MgZGF0YSB3aGVuIHRoZSBpbnN0YW5jZQ0KIGRvbWFpbnMgY2hhbmdlIGFuZCB0 aGUgcG1kYUNhY2hlIGlzIHVzZWQgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIGluc3RhbmNlIGlkcyBm b3IgZWFjaCBjZ3JvdXAgcmVtYWluIGNvbnN0YW50LjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4N CjxkaXY+RGlzYWR2YW50YWdlcyBvZiB0aGlzIGFwcHJvYWNoOjwvZGl2Pg0KPGRpdj4xKSBJdHMg YSBub24gYmFja3dhcmRzIGNvbXBhdGlibGUgY2hhbmdlIHRvIGEgY29yZSBQQ1AgY29tcG9uZW50 LjwvZGl2Pg0KPGRpdj4yKSBJIHdhcyBub3QgYWJsZSB0byBrZWVwIHRoZSBmb3JtYXQgb2YgdGhl IHVzYWdlX3BlcmNwdSBtZXRyaWMuIEluIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiwgdGhp cyB1c2VkIHRoZSBDUFVfSU5ET00gdG8gcmVwb3J0IG1ldHJpY3MgZm9yIGVhY2ggY3B1LiBTaW5j ZSB5b3UgY2FuJ3QgaGF2ZSBuZXN0ZWQgaW5zdGFuY2UgZG9tYWlucywgSSBjaG9zZSB0byBzZXJp YWxpc2UgdGhlIHBlcmNwdSBkYXRhIGludG8gYSBzdHJpbmcuPC9kaXY+DQo8ZGl2Pjxicj4NCjwv ZGl2Pg0KPGRpdj5JJ3ZlIGF0dGFjaGVkIGEgcGF0Y2ggZmlsZSB3aXRoIGFsbCBteSBjaGFuZ2Vz ICh0aGlzIGNhbiBiZSB1c2VkIHRvIHBhdGNoIHRoZSBtYWluIGNvZGUgdXNpbmcgJnF1b3Q7cGF0 Y2ggLXA0JnF1b3Q7IGZyb20gdGhlIHNyYy9wbWRhcyBkaXJlY3RvcnkpLiBXb3VsZCB5b3UgY29u c2lkZXIgbWFraW5nIHRoaXMgbm9uLWJhY2t3YXJkcyBjb21wYXRpYmxlIGNoYW5nZSB0byB0aGUg bGludXhfcHJvYyBwbWRhIG9yIGRvZXMgaXQgbWFrZSBtb3JlIHNlbnNlIHRvDQogY3JlYXRlIGEg bmV3IGxpbnV4X2Nncm91cHMgcG1kYT8gQWxzbyBhbnkgdGhvdWdodHMgYXMgdG8gYWx0ZXJuYXRp dmUgd2F5cyB0byBleHBvc2UgdGhlIHBlcmNwdSBtZXRyaWNzIGZvciBlYWNoIGNncm91cD88L2Rp dj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PkpvZTwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4N CjxkaXY+UC5TLiBUaGUgcGF0Y2ggYWxzbyBpbmNsdWRlcyBzdXBwb3J0IGZvciBncmFiYmluZyB0 aGUgcHJvY2VzcyBlbnZpcm9ubWVudCBhbmQgdGhlIHNldCBvZiBhbGxvd2VkIGNwdXMgZm9yIGFs bCBwcm9jZXNzZXMuIFRoZXNlIGNoYW5nZXMgYXJlIGluZGVwZW5kZW50IG9mIHRoZSBjZ3JvdXAg Y2hhbmdlcy48L2Rpdj4NCjxkaXY+UC5QLlMuIE9idmlvdXNseSB0aGUgUUEgdGVzdHMgYW5kIGRv Y3VtZW50YXRpb24gYWxzbyBuZWVkcyB1cGRhdGluZywgYnV0IHRoZSBzY29wZSBvZiB0aGVzZSB1 cGRhdGVzIHdpbGwgZGVwZW5kIG9uIHdoZXRoZXIgdGhlIGV4aXN0aW5nIHBtZGEgZ2V0cyB1cGRh dGVkIG9yIGEgbmV3IHBtZGEgY3JlYXRlZC48L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2 Pjxicj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K --_000_CFD8619AC63Djpwhite4buffaloedu_-- --_004_CFD8619AC63Djpwhite4buffaloedu_ Content-Type: application/octet-stream; name="linux_proc_cgroups.patch" Content-Description: linux_proc_cgroups.patch Content-Disposition: attachment; filename="linux_proc_cgroups.patch"; size=31313; creation-date="Tue, 01 Jul 2014 17:01:15 GMT"; modification-date="Tue, 01 Jul 2014 17:01:15 GMT" Content-ID: Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3BtZGFzL3Byb2MvcGNwLXBtZGEtcHJvYy0zLjkuNC9saW51eF9wcm9jL2Nn cm91cHMuYyBiL3BtZGFzL3Byb2MvcGNwLXBtZGEtcHJvYy0zLjkuNC9saW51eF9wcm9jL2Nncm91 cHMuYwppbmRleCBhMmUxMWYxLi4zOTBkYTI0IDEwMDY0NAotLS0gYS9wbWRhcy9wcm9jL3BjcC1w bWRhLXByb2MtMy45LjQvbGludXhfcHJvYy9jZ3JvdXBzLmMKKysrIGIvcG1kYXMvcHJvYy9wY3At cG1kYS1wcm9jLTMuOS40L2xpbnV4X3Byb2MvY2dyb3Vwcy5jCkBAIC0yOCwxMyArMjgsMTMgQEAK IAogLyogQWRkIG5hbWVzcGFjZSBlbnRyaWVzIGFuZCBwcmVwYXJlIHZhbHVlcyBmb3Igb25lIGNn cm91cGZzIGRpcmVjdG9yeSBlbnRyeSAqLwogc3RydWN0IGNncm91cF9zdWJzeXM7Ci10eXBlZGVm IGludCAoKmNncm91cF9wcmVwYXJlX3QpKF9fcG1uc1RyZWUgKiwgY29uc3QgY2hhciAqLAordHlw ZWRlZiBpbnQgKCpjZ3JvdXBfcHJlcGFyZV90KShjb25zdCBjaGFyICosCiAJCXN0cnVjdCBjZ3Jv dXBfc3Vic3lzICosIGNvbnN0IGNoYXIgKiwgaW50LCBpbnQsIGludCk7Ci1zdGF0aWMgaW50IHBy ZXBhcmVfdWxsKF9fcG1uc1RyZWUgKiwgY29uc3QgY2hhciAqLAorc3RhdGljIGludCBwcmVwYXJl X3VsbChjb25zdCBjaGFyICosCiAJCXN0cnVjdCBjZ3JvdXBfc3Vic3lzICosIGNvbnN0IGNoYXIg KiwgaW50LCBpbnQsIGludCk7Ci1zdGF0aWMgaW50IHByZXBhcmVfc3RyaW5nKF9fcG1uc1RyZWUg KiwgY29uc3QgY2hhciAqLAorc3RhdGljIGludCBwcmVwYXJlX3N0cmluZyhjb25zdCBjaGFyICos CiAJCXN0cnVjdCBjZ3JvdXBfc3Vic3lzICosIGNvbnN0IGNoYXIgKiwgaW50LCBpbnQsIGludCk7 Ci1zdGF0aWMgaW50IHByZXBhcmVfbmFtZWRfdWxsKF9fcG1uc1RyZWUgKiwgY29uc3QgY2hhciAq LAorc3RhdGljIGludCBwcmVwYXJlX25hbWVkX3VsbChjb25zdCBjaGFyICosCiAJCXN0cnVjdCBj Z3JvdXBfc3Vic3lzICosIGNvbnN0IGNoYXIgKiwgaW50LCBpbnQsIGludCk7CiAKIC8qCkBAIC03 Miw2ICs3Miw4IEBAIHR5cGVkZWYgc3RydWN0IGNncm91cF9zdWJzeXMgeyAvKiBjb250ZW50cyBj b3ZlcnMgdGhlIGtub3duIGtlcm5lbCBjZ3JvdXBzICovCiAgICAgaW50CQkJbWV0cmljX2NvdW50 OwkvKiBudW1iZXIgb2YgbWV0cmljcyAoZml4ZWQpICAqLwogICAgIGNncm91cF9ncm91cF90CSpn cm91cHM7CS8qIGFycmF5IG9mIGdyb3VwcyAoZHluYW1pYykgICovCiAgICAgY2dyb3VwX21ldHJp Y3NfdAkqbWV0cmljczsJLyogYXJyYXkgb2YgbWV0cmljcyAoZml4ZWQpICAgKi8KKyAgICBwbUlu RG9tICAgICAgICAgICAgIGluZG9tOyAgICAgICAgICAvKiBUaGUgaW5zdGFuY2UgZG9tYWluIGZv ciBtZXRyaWNzICovCisgICAgaW50CQkJaW5pdGlhbGlzZWQ7CiB9IGNncm91cF9zdWJzeXNfdDsK IAogc3RhdGljIGNncm91cF9tZXRyaWNzX3QgY3B1c2NoZWRfbWV0cmljc1tdID0gewpAQCAtODIs NyArODQsNyBAQCBzdGF0aWMgY2dyb3VwX21ldHJpY3NfdCBjcHVhY2N0X21ldHJpY3NbXSA9IHsK ICAgICB7IC5pdGVtID0gMCwgLnN1ZmZpeCA9ICJzdGF0LnVzZXIiLCAucHJlcGFyZSA9IHByZXBh cmVfbmFtZWRfdWxsIH0sCiAgICAgeyAuaXRlbSA9IDEsIC5zdWZmaXggPSAic3RhdC5zeXN0ZW0i LCAucHJlcGFyZSA9IHByZXBhcmVfbmFtZWRfdWxsIH0sCiAgICAgeyAuaXRlbSA9IDIsIC5zdWZm aXggPSAidXNhZ2UiLCAucHJlcGFyZSA9IHByZXBhcmVfdWxsIH0sCi0gICAgeyAuaXRlbSA9IDMs IC5zdWZmaXggPSAidXNhZ2VfcGVyY3B1IiwgLnByZXBhcmUgPSBwcmVwYXJlX3VsbCB9LAorICAg IHsgLml0ZW0gPSAzLCAuc3VmZml4ID0gInVzYWdlX3BlcmNwdSIsIC5wcmVwYXJlID0gcHJlcGFy ZV9zdHJpbmcsIC5keW5hbWljID0gMSB9LAogfTsKIAogc3RhdGljIGNncm91cF9tZXRyaWNzX3Qg Y3B1c2V0X21ldHJpY3NbXSA9IHsKQEAgLTkzLDggKzk1LDggQEAgc3RhdGljIGNncm91cF9tZXRy aWNzX3QgY3B1c2V0X21ldHJpY3NbXSA9IHsKIHN0YXRpYyBjZ3JvdXBfbWV0cmljc190IG1lbW9y eV9tZXRyaWNzW10gPSB7CiAgICAgeyAuaXRlbSA9IDAsIC5zdWZmaXggPSAic3RhdC5jYWNoZSIs IC5wcmVwYXJlID0gcHJlcGFyZV9uYW1lZF91bGwgfSwKICAgICB7IC5pdGVtID0gMSwgLnN1ZmZp eCA9ICJzdGF0LnJzcyIsIC5wcmVwYXJlID0gcHJlcGFyZV9uYW1lZF91bGwgfSwKLSAgICB7IC5p dGVtID0gMiwgLnN1ZmZpeCA9ICJzdGF0LnBnaW4iLCAucHJlcGFyZSA9IHByZXBhcmVfbmFtZWRf dWxsIH0sCi0gICAgeyAuaXRlbSA9IDMsIC5zdWZmaXggPSAic3RhdC5wZ291dCIsIC5wcmVwYXJl ID0gcHJlcGFyZV9uYW1lZF91bGwgfSwKKyAgICB7IC5pdGVtID0gMiwgLnN1ZmZpeCA9ICJzdGF0 LnBncGdpbiIsIC5wcmVwYXJlID0gcHJlcGFyZV9uYW1lZF91bGwgfSwKKyAgICB7IC5pdGVtID0g MywgLnN1ZmZpeCA9ICJzdGF0LnBncGdvdXQiLCAucHJlcGFyZSA9IHByZXBhcmVfbmFtZWRfdWxs IH0sCiAgICAgeyAuaXRlbSA9IDQsIC5zdWZmaXggPSAic3RhdC5zd2FwIiwgLnByZXBhcmUgPSBw cmVwYXJlX25hbWVkX3VsbCB9LAogICAgIHsgLml0ZW0gPSA1LCAuc3VmZml4ID0gInN0YXQuYWN0 aXZlX2Fub24iLCAucHJlcGFyZSA9IHByZXBhcmVfbmFtZWRfdWxsIH0sCiAgICAgeyAuaXRlbSA9 IDYsIC5zdWZmaXggPSAic3RhdC5pbmFjdGl2ZV9hbm9uIiwgLnByZXBhcmUgPSBwcmVwYXJlX25h bWVkX3VsbCB9LApAQCAtMTUyLDIxICsxNTQsMzMgQEAgcmVhZF92YWx1ZXMoY2hhciAqYnVmZmVy LCBpbnQgc2l6ZSwgY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqc3Vic3lzLAogICAgIHJl dHVybiAwOwogfQogCi1zdGF0aWMgdm9pZAotdXBkYXRlX3BtbnMoX19wbW5zVHJlZSAqcG1ucywg Y2dyb3VwX3N1YnN5c190ICpzdWJzeXMsIGNvbnN0IGNoYXIgKm5hbWUsCi0JCWNncm91cF9tZXRy aWNzX3QgKm1ldHJpY3MsIGludCBncm91cCwgaW50IGRvbWFpbikKK3N0YXRpYyBpbnQgaW5pdGlh bGlzZV9zdWJzeXMoc3RydWN0IGNncm91cF9zdWJzeXMgKnN1YnN5cywgX19wbW5zVHJlZSAqcG1u cywgdW5zaWduZWQgaW50IGRvbWFpbikKIHsKLSAgICBjaGFyIGVudHJ5W01BWFBBVEhMRU5dOwot ICAgIHBtSUQgcG1pZDsKKwljaGFyIGVudHJ5W01BWFBBVEhMRU5dOworCWNncm91cF9tZXRyaWNz X3QgKm1ldHJpYzsKKwlpbnQgaTsKKwlwbUlEIHBtaWQ7CisKKwlpZihzdWJzeXMtPmluaXRpYWxp c2VkKQorCQlyZXR1cm4gMTsKKworCWZvcihpID0gMDsgaSA8IHN1YnN5cy0+bWV0cmljX2NvdW50 OyArK2kpIHsKKwkJbWV0cmljID0gJnN1YnN5cy0+bWV0cmljc1tpXTsKKworCQlzbnByaW50Zihl bnRyeSwgc2l6ZW9mKGVudHJ5KSwgIiVzLmdyb3Vwcy4lcy4lcyIsCisJCQkJQ0dST1VQX1JPT1Qs IHN1YnN5cy0+bmFtZSwgbWV0cmljLT5zdWZmaXgpOwogCi0gICAgc25wcmludGYoZW50cnksIHNp emVvZihlbnRyeSksICIlcy5ncm91cHMuJXMlcy4lcyIsCi0JCQlDR1JPVVBfUk9PVCwgc3Vic3lz LT5uYW1lLCBuYW1lLCBtZXRyaWNzLT5zdWZmaXgpOwotICAgIHBtaWQgPSBjZ3JvdXBfcG1pZF9i dWlsZChkb21haW4sIHN1YnN5cy0+Y2x1c3RlciwgZ3JvdXAsIG1ldHJpY3MtPml0ZW0pOwotICAg IF9fcG1BZGRQTU5TTm9kZShwbW5zLCBwbWlkLCBlbnRyeSk7CisJCXBtaWQgPSBwbWlkX2J1aWxk KGRvbWFpbiwgc3Vic3lzLT5jbHVzdGVyLCBtZXRyaWMtPml0ZW0pOworCQlfX3BtQWRkUE1OU05v ZGUocG1ucywgcG1pZCwgZW50cnkpOworCX0KKworCXN1YnN5cy0+aW5pdGlhbGlzZWQgPSAxOwor CisJcmV0dXJuIDE7CiB9CiAKIHN0YXRpYyBpbnQKLXByZXBhcmVfdWxsKF9fcG1uc1RyZWUgKnBt bnMsIGNvbnN0IGNoYXIgKnBhdGgsIGNncm91cF9zdWJzeXNfdCAqc3Vic3lzLAorcHJlcGFyZV91 bGwoY29uc3QgY2hhciAqcGF0aCwgY2dyb3VwX3N1YnN5c190ICpzdWJzeXMsCiAJCWNvbnN0IGNo YXIgKm5hbWUsIGludCBtZXRyaWMsIGludCBncm91cCwgaW50IGRvbWFpbikKIHsKICAgICBpbnQg Y291bnQgPSAwOwpAQCAtMTk1LDEyICsyMDksMTEgQEAgcHJlcGFyZV91bGwoX19wbW5zVHJlZSAq cG1ucywgY29uc3QgY2hhciAqcGF0aCwgY2dyb3VwX3N1YnN5c190ICpzdWJzeXMsCiAgICAgZ3Jv dXBzLT5tZXRyaWNfdmFsdWVzW21ldHJpY10uaXRlbSA9IG1ldHJpYzsKICAgICBncm91cHMtPm1l dHJpY192YWx1ZXNbbWV0cmljXS5hdG9tcyA9IGF0b21zOwogICAgIGdyb3Vwcy0+bWV0cmljX3Zh bHVlc1ttZXRyaWNdLmF0b21fY291bnQgPSBjb3VudDsKLSAgICB1cGRhdGVfcG1ucyhwbW5zLCBz dWJzeXMsIG5hbWUsIG1ldHJpY3MsIGdyb3VwLCBkb21haW4pOwogICAgIHJldHVybiAwOwogfQog CiBzdGF0aWMgaW50Ci1wcmVwYXJlX25hbWVkX3VsbChfX3BtbnNUcmVlICpwbW5zLCBjb25zdCBj aGFyICpwYXRoLCBjZ3JvdXBfc3Vic3lzX3QgKnN1YnN5cywKK3ByZXBhcmVfbmFtZWRfdWxsKGNv bnN0IGNoYXIgKnBhdGgsIGNncm91cF9zdWJzeXNfdCAqc3Vic3lzLAogCQljb25zdCBjaGFyICpu YW1lLCBpbnQgbWV0cmljLCBpbnQgZ3JvdXAsIGludCBkb21haW4pCiB7CiAgICAgaW50IGksIGNv dW50OwpAQCAtMjUyLDcgKzI2NSw2IEBAIHByZXBhcmVfbmFtZWRfdWxsKF9fcG1uc1RyZWUgKnBt bnMsIGNvbnN0IGNoYXIgKnBhdGgsIGNncm91cF9zdWJzeXNfdCAqc3Vic3lzLAogCSAgICBncm91 cHMtPm1ldHJpY192YWx1ZXNbaV0uaXRlbSA9IGk7CiAJICAgIGdyb3Vwcy0+bWV0cmljX3ZhbHVl c1tpXS5hdG9tcyA9IGF0b21zOwogCSAgICBncm91cHMtPm1ldHJpY192YWx1ZXNbaV0uYXRvbV9j b3VudCA9IDE7Ci0JICAgIHVwZGF0ZV9wbW5zKHBtbnMsIHN1YnN5cywgbmFtZSwgbWV0cmljcywg Z3JvdXAsIGRvbWFpbik7CiAJICAgIGJyZWFrOwogCX0KICAgICB9CkBAIC0yNjEsNyArMjczLDcg QEAgcHJlcGFyZV9uYW1lZF91bGwoX19wbW5zVHJlZSAqcG1ucywgY29uc3QgY2hhciAqcGF0aCwg Y2dyb3VwX3N1YnN5c190ICpzdWJzeXMsCiB9CiAKIHN0YXRpYyBpbnQKLXByZXBhcmVfc3RyaW5n KF9fcG1uc1RyZWUgKnBtbnMsIGNvbnN0IGNoYXIgKnBhdGgsIGNncm91cF9zdWJzeXNfdCAqc3Vi c3lzLAorcHJlcGFyZV9zdHJpbmcoY29uc3QgY2hhciAqcGF0aCwgY2dyb3VwX3N1YnN5c190ICpz dWJzeXMsCiAJCWNvbnN0IGNoYXIgKm5hbWUsIGludCBtZXRyaWMsIGludCBncm91cCwgaW50IGRv bWFpbikKIHsKICAgICBjaGFyIGJ1ZmZlcltNQVhQQVRITEVOXTsKQEAgLTI4MiwyMSArMjk0LDE5 IEBAIHByZXBhcmVfc3RyaW5nKF9fcG1uc1RyZWUgKnBtbnMsIGNvbnN0IGNoYXIgKnBhdGgsIGNn cm91cF9zdWJzeXNfdCAqc3Vic3lzLAogICAgIGdyb3Vwcy0+bWV0cmljX3ZhbHVlc1ttZXRyaWNd Lml0ZW0gPSBtZXRyaWM7CiAgICAgZ3JvdXBzLT5tZXRyaWNfdmFsdWVzW21ldHJpY10uYXRvbXMg PSBhdG9tczsKICAgICBncm91cHMtPm1ldHJpY192YWx1ZXNbbWV0cmljXS5hdG9tX2NvdW50ID0g MTsKLSAgICB1cGRhdGVfcG1ucyhwbW5zLCBzdWJzeXMsIG5hbWUsIG1ldHJpY3MsIGdyb3VwLCBk b21haW4pOwogICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZAogdHJhbnNsYXRlKGNoYXIg KmRlc3QsIGNvbnN0IGNoYXIgKnNyYywgc2l6ZV90IHNpemUpCiB7Ci0gICAgY2hhciAqcDsKLQot ICAgIGlmICgqc3JjICE9ICdcMCcpCS8qIG5vbi1yb290ICovCi0JKmRlc3QgPSAnLic7Ci0gICAg c3RybmNweShkZXN0LCBzcmMsIHNpemUpOwotICAgIGZvciAocCA9IGRlc3Q7ICpwOyBwKyspIHsK LQlpZiAoKnAgPT0gJy8nKQotCSAgICAqcCA9ICcuJzsKKyAgICBpZiAoKnNyYyA9PSAnXDAnKSB7 CisJICAgIHN0cm5jcHkoZGVzdCwgIi8iLCAyKTsKKyAgICB9IGVsc2UgeworCSAgICBzdHJuY3B5 KGRlc3QsIHNyYywgc2l6ZSk7CisgICAgICAgIGlmICggc2l6ZSA+IDAgKSB7CisgICAgICAgICAg ICBkZXN0W3NpemUtMV0gPSAnXDAnOworICAgICAgICB9CiAgICAgfQogfQogCkBAIC0zMDUsMjgg KzMxNSw0MyBAQCBuYW1lc3BhY2UoX19wbW5zVHJlZSAqcG1ucywgY2dyb3VwX3N1YnN5c190ICpz dWJzeXMsCiAJCWNvbnN0IGNoYXIgKmNncm91cHBhdGgsIGNvbnN0IGNoYXIgKmNncm91cG5hbWUs IGludCBkb21haW4pCiB7CiAgICAgaW50IGksIGlkLCBzdHM7CisgICAgaW50cHRyX3QgZGF0YTsK ICAgICBjZ3JvdXBfdmFsdWVzX3QgKmN2cDsKICAgICBjaGFyIGdyb3VwWzEyOF07CiAKICAgICB0 cmFuc2xhdGUoJmdyb3VwWzBdLCBjZ3JvdXBuYW1lLCBzaXplb2YoZ3JvdXApKTsKIAotICAgIC8q IGFsbG9jYXRlIHNwYWNlIGZvciB0aGlzIGdyb3VwICovCi0gICAgc3RzID0gKHN1YnN5cy0+Z3Jv dXBfY291bnQgKyAxKSAqIHNpemVvZihjZ3JvdXBfZ3JvdXBfdCk7Ci0gICAgc3Vic3lzLT5ncm91 cHMgPSAoY2dyb3VwX2dyb3VwX3QgKilyZWFsbG9jKHN1YnN5cy0+Z3JvdXBzLCBzdHMpOwotICAg IGlmIChzdWJzeXMtPmdyb3VwcyA9PSBOVUxMKQotCXJldHVybiAtb3NlcnJvcigpOwotICAgIC8q IGFsbG9jYXRlIHNwYWNlIGZvciBhbGwgdmFsdWVzIHVwLWZyb250ICovCi0gICAgc3RzID0gc3Vi c3lzLT5tZXRyaWNfY291bnQgKiBzaXplb2YoY2dyb3VwX3ZhbHVlc190KTsKLSAgICBpZiAoKGN2 cCA9IChjZ3JvdXBfdmFsdWVzX3QgKiljYWxsb2MoMSwgc3RzKSkgPT0gTlVMTCkKLQlyZXR1cm4g LW9zZXJyb3IoKTsKLSAgICBpZCA9IHN1YnN5cy0+Z3JvdXBfY291bnQrKzsKLSAgICBtZW1zZXQo JnN1YnN5cy0+Z3JvdXBzW2lkXSwgMCwgc2l6ZW9mKGNncm91cF9ncm91cF90KSk7Ci0gICAgc3Vi c3lzLT5ncm91cHNbaWRdLmlkID0gaWQ7Ci0gICAgc3Vic3lzLT5ncm91cHNbaWRdLm1ldHJpY192 YWx1ZXMgPSBjdnA7CisgICAgaW5pdGlhbGlzZV9zdWJzeXMoc3Vic3lzLCBwbW5zLCBkb21haW4p OworCisgICAgaWYoc3Vic3lzLT5pbmRvbSA+IDAgKSB7CisgICAgCXN0cyA9IHBtZGFDYWNoZUxv b2t1cE5hbWUoc3Vic3lzLT5pbmRvbSwgZ3JvdXAsIE5VTEwsICh2b2lkICoqKSZkYXRhKTsKKyAg ICB9IGVsc2UgeworCSAgICBzdHMgPSBQTURBX0NBQ0hFX0lOQUNUSVZFOworICAgIH0KKworICAg IGlmKCBQTURBX0NBQ0hFX0FDVElWRSA9PSBzdHMgKSB7CisgICAgICAgIGlkID0gKGludClkYXRh OworICAgIH0gZWxzZSB7CisJICAgIC8qIGFsbG9jYXRlIHNwYWNlIGZvciB0aGlzIGdyb3VwICov CisJICAgIHN0cyA9IChzdWJzeXMtPmdyb3VwX2NvdW50ICsgMSkgKiBzaXplb2YoY2dyb3VwX2dy b3VwX3QpOworCSAgICBzdWJzeXMtPmdyb3VwcyA9IChjZ3JvdXBfZ3JvdXBfdCAqKXJlYWxsb2Mo c3Vic3lzLT5ncm91cHMsIHN0cyk7CisJICAgIGlmIChzdWJzeXMtPmdyb3VwcyA9PSBOVUxMKQor CQkgICAgcmV0dXJuIC1vc2Vycm9yKCk7CisJICAgIC8qIGFsbG9jYXRlIHNwYWNlIGZvciBhbGwg dmFsdWVzIHVwLWZyb250ICovCisJICAgIHN0cyA9IHN1YnN5cy0+bWV0cmljX2NvdW50ICogc2l6 ZW9mKGNncm91cF92YWx1ZXNfdCk7CisJICAgIGlmICgoY3ZwID0gKGNncm91cF92YWx1ZXNfdCAq KWNhbGxvYygxLCBzdHMpKSA9PSBOVUxMKQorCQkgICAgcmV0dXJuIC1vc2Vycm9yKCk7CisJICAg IGlkID0gc3Vic3lzLT5ncm91cF9jb3VudCsrOworCSAgICBtZW1zZXQoJnN1YnN5cy0+Z3JvdXBz W2lkXSwgMCwgc2l6ZW9mKGNncm91cF9ncm91cF90KSk7CisJICAgIHN1YnN5cy0+Z3JvdXBzW2lk XS5pZCA9IGlkOworCSAgICBzdWJzeXMtPmdyb3Vwc1tpZF0ubWV0cmljX3ZhbHVlcyA9IGN2cDsK KwkgICAgZGF0YSA9IGlkOworCSAgICBwbWRhQ2FjaGVTdG9yZShzdWJzeXMtPmluZG9tLCBQTURB X0NBQ0hFX0FERCwgZ3JvdXAsICh2b2lkICopZGF0YSk7CisgICAgfQogCiAgICAgZm9yIChpID0g MDsgaSA8IHN1YnN5cy0+bWV0cmljX2NvdW50OyBpKyspIHsKIAljZ3JvdXBfbWV0cmljc190ICpt ZXRyaWNzID0gJnN1YnN5cy0+bWV0cmljc1tpXTsKLQltZXRyaWNzLT5wcmVwYXJlKHBtbnMsIGNn cm91cHBhdGgsIHN1YnN5cywgZ3JvdXAsIGksIGlkLCBkb21haW4pOworCW1ldHJpY3MtPnByZXBh cmUoY2dyb3VwcGF0aCwgc3Vic3lzLCBncm91cCwgaSwgaWQsIGRvbWFpbik7CiAgICAgfQogICAg IHJldHVybiAxOwogfQpAQCAtNDY1LDcgKzQ5MCw3IEBAIGNncm91cF9zY2FuKGNvbnN0IGNoYXIg Km1udCwgY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqb3B0aW9ucywKIAljZ3JvdXBwYXRo W3NpemVvZihjZ3JvdXBwYXRoKS0xXSA9ICdcMCc7CiAJbGVuZ3RoID0gc3RybGVuKGNncm91cHBh dGgpOwogICAgIH0gZWxzZSB7Ci0Jc25wcmludGYoY2dyb3VwcGF0aCwgc2l6ZW9mKGNncm91cHBh dGgpLCAiJXMvJXMiLCBtbnQsIHBhdGgpOworCXNucHJpbnRmKGNncm91cHBhdGgsIHNpemVvZihj Z3JvdXBwYXRoKSwgIiVzJXMiLCBtbnQsIHBhdGgpOwogCWxlbmd0aCA9IHN0cmxlbihtbnQpICsg MTsKICAgICB9CiAKQEAgLTQ3NCw3ICs0OTksMTEgQEAgY2dyb3VwX3NjYW4oY29uc3QgY2hhciAq bW50LCBjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICpvcHRpb25zLAogCiAgICAgY2dyb3Vw bmFtZSA9ICZjZ3JvdXBwYXRoW2xlbmd0aF07CiAKLSAgICBzdHMgPSBjZ3JvdXBfbmFtZXNwYWNl KHBtbnMsIG9wdGlvbnMsIGNncm91cHBhdGgsIGNncm91cG5hbWUsIGRvbWFpbik7CisgICAgaWYo cm9vdCkgeworCSAgICBzdHMgPSBjZ3JvdXBfbmFtZXNwYWNlKHBtbnMsIG9wdGlvbnMsIGNncm91 cHBhdGgsIGNncm91cG5hbWUsIGRvbWFpbik7CisgICAgfSBlbHNlIHsKKwkgICAgc3RzID0gMDsK KyAgICB9CiAKICAgICAvKgogICAgICAqIHJlYWRkaXIgLSBkZXNjZW5kIGludG8gZGlyZWN0b3Jp ZXMgdG8gZmluZCBhbGwgY2dyb3VwcywgdGhlbgpAQCAtNTM0LDcgKzU2Myw3IEBAIGNncm91cF9y ZWd1bGFycyhfX3BtbnNUcmVlICpwbW5zLCBpbnQgZG9tYWluKQogfQogCiBpbnQKLXJlZnJlc2hf Y2dyb3VwX2dyb3VwcyhwbWRhRXh0ICpwbWRhLCBwbUluRG9tIG1vdW50cywgX19wbW5zVHJlZSAq KnBtbnMpCityZWZyZXNoX2Nncm91cF9ncm91cHMocG1kYUV4dCAqcG1kYSwgcG1JbkRvbSBtb3Vu dHMsIHBtSW5Eb20gaW5kb21zW10sIF9fcG1uc1RyZWUgKipwbW5zKQogewogICAgIGludCBpLCBq LCBrLCBhOwogICAgIGludCBzdHMsIG10YWIgPSAwLCBkb21haW4gPSBwbWRhLT5lX2RvbWFpbjsK QEAgLTU3MSw3ICs2MDAsMTEgQEAgcmVmcmVzaF9jZ3JvdXBfZ3JvdXBzKHBtZGFFeHQgKnBtZGEs IHBtSW5Eb20gbW91bnRzLCBfX3BtbnNUcmVlICoqcG1ucykKIAkJZnJlZShncm91cC0+cHJvY2Vz c19saXN0LnBpZHMpOwogCSAgICBtZW1zZXQoZ3JvdXAsIDAsIHNpemVvZihjZ3JvdXBfZ3JvdXBf dCkpOwogCX0KKwlwbWRhQ2FjaGVPcChjb250cm9sbGVyc1tpXS5pbmRvbSwgUE1EQV9DQUNIRV9J TkFDVElWRSk7CisKIAljb250cm9sbGVyc1tpXS5ncm91cF9jb3VudCA9IDA7CisJY29udHJvbGxl cnNbaV0uaW5kb20gPSBpbmRvbXNbaV07CisJY29udHJvbGxlcnNbaV0uaW5pdGlhbGlzZWQgPSAw OwogICAgIH0KIAogICAgIHBtZGFDYWNoZU9wKG1vdW50cywgUE1EQV9DQUNIRV9XQUxLX1JFV0lO RCk7CkBAIC01OTYsMzYgKzYyOSw0MyBAQCByZWZyZXNoX2Nncm91cF9ncm91cHMocG1kYUV4dCAq cG1kYSwgcG1JbkRvbSBtb3VudHMsIF9fcG1uc1RyZWUgKipwbW5zKQogaW50CiBjZ3JvdXBfZ3Jv dXBfZmV0Y2goaW50IGNsdXN0ZXIsIGludCBpdGVtLCB1bnNpZ25lZCBpbnQgaW5zdCwgcG1BdG9t VmFsdWUgKmF0b20pCiB7Ci0gICAgaW50IGksIGosIGssIGdpZDsKLQotICAgIGdpZCA9IGNncm91 cF9wbWlkX2dyb3VwKGl0ZW0pOwotICAgIGl0ZW0gPSBjZ3JvdXBfcG1pZF9tZXRyaWMoaXRlbSk7 CisgICAgaW50IHN0cywgaTsKKyAgICBjZ3JvdXBfc3Vic3lzX3QgKnN1YnN5cyA9IE5VTEw7Cisg ICAgaW50cHRyX3QgZGF0YTsKKyAgICBpbnQgZ3JvdXBpZHggPSAwOwogCiAgICAgZm9yIChpID0g MDsgaSA8IHNpemVvZihjb250cm9sbGVycykvc2l6ZW9mKGNvbnRyb2xsZXJzWzBdKTsgaSsrKSB7 Ci0gCWNncm91cF9zdWJzeXNfdCAqc3Vic3lzID0gJmNvbnRyb2xsZXJzW2ldOworICAgICAgICBp ZiAoY29udHJvbGxlcnNbaV0uY2x1c3RlciA9PSBjbHVzdGVyKSB7CisgICAgICAgICAgICBzdWJz eXMgPSAmY29udHJvbGxlcnNbaV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg IH0KIAotCWlmIChzdWJzeXMtPmNsdXN0ZXIgIT0gY2x1c3RlcikKLQkgICAgY29udGludWU7Ci0J Zm9yIChqID0gMDsgaiA8IHN1YnN5cy0+Z3JvdXBfY291bnQ7IGorKykgewotCSAgICBjZ3JvdXBf Z3JvdXBfdCAqZ3JvdXAgPSAmc3Vic3lzLT5ncm91cHNbal07CisgICAgaWYoIHN1YnN5cyA9PSBO VUxMICkgeworICAgICAgICByZXR1cm4gUE1fRVJSX0lOU1Q7CisgICAgfQogCi0JICAgIGlmIChn cm91cC0+aWQgIT0gZ2lkKQotCQljb250aW51ZTsKLQkgICAgZm9yIChrID0gMDsgayA8IHN1YnN5 cy0+bWV0cmljX2NvdW50OyBrKyspIHsKLQkJY2dyb3VwX3ZhbHVlc190ICpjdnAgPSAmZ3JvdXAt Pm1ldHJpY192YWx1ZXNba107Ci0KLQkJaWYgKGN2cC0+aXRlbSAhPSBpdGVtKQotCQkgICAgY29u dGludWU7Ci0JCWlmIChjdnAtPmF0b21fY291bnQgPD0gMCkKLQkJICAgIHJldHVybiBQTV9FUlJf VkFMVUU7Ci0JCWlmIChpbnN0ID09IFBNX0lOX05VTEwpCi0JCSAgICBpbnN0ID0gMDsKLQkJZWxz ZSBpZiAoaW5zdCA+PSBjdnAtPmF0b21fY291bnQpCi0JCSAgICByZXR1cm4gUE1fRVJSX0lOU1Q7 Ci0JCSphdG9tID0gY3ZwLT5hdG9tc1tpbnN0XTsKLQkJcmV0dXJuIDE7Ci0JICAgIH0KLQl9Cisg ICAgc3RzID0gcG1kYUNhY2hlTG9va3VwKHN1YnN5cy0+aW5kb20sIGluc3QsIE5VTEwsICAodm9p ZCAqKikmZGF0YSk7CisgICAgaWYgKHN0cyA8IDApCisgICAgICAgIHJldHVybiBzdHM7CisgICAg aWYgKHN0cyAhPSBQTURBX0NBQ0hFX0FDVElWRSkKKyAgICAgICAgcmV0dXJuIFBNX0VSUl9JTlNU OworCisgICAgZ3JvdXBpZHggPSAoaW50KWRhdGE7CisKKyAgICBjZ3JvdXBfZ3JvdXBfdCAqZ3Jv dXAgPSAmc3Vic3lzLT5ncm91cHNbZ3JvdXBpZHhdOworCisgICAgZm9yIChpID0gMDsgaSA8IHN1 YnN5cy0+bWV0cmljX2NvdW50OyBpKyspIHsKKyAgICAgICAgY2dyb3VwX3ZhbHVlc190ICpjdnAg PSAmZ3JvdXAtPm1ldHJpY192YWx1ZXNbaV07CisKKyAgICAgICAgaWYgKGN2cC0+aXRlbSAhPSBp dGVtKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChjdnAtPmF0b21fY291bnQg PD0gMCkKKyAgICAgICAgICAgIHJldHVybiBQTV9FUlJfVkFMVUU7CisgICAgICAgIGlmIChpbnN0 ID09IFBNX0lOX05VTEwpCisgICAgICAgICAgICBpbnN0ID0gMDsKKyAgICAgICAgKmF0b20gPSBj dnAtPmF0b21zWzBdOworICAgICAgICByZXR1cm4gMTsKICAgICB9CiAgICAgcmV0dXJuIFBNX0VS Ul9QTUlEOwogfQpkaWZmIC0tZ2l0IGEvcG1kYXMvcHJvYy9wY3AtcG1kYS1wcm9jLTMuOS40L2xp bnV4X3Byb2MvY2dyb3Vwcy5oIGIvcG1kYXMvcHJvYy9wY3AtcG1kYS1wcm9jLTMuOS40L2xpbnV4 X3Byb2MvY2dyb3Vwcy5oCmluZGV4IGQ5ZjA3ZmQuLmFhNjI4NDUgMTAwNjQ0Ci0tLSBhL3BtZGFz L3Byb2MvcGNwLXBtZGEtcHJvYy0zLjkuNC9saW51eF9wcm9jL2Nncm91cHMuaAorKysgYi9wbWRh cy9wcm9jL3BjcC1wbWRhLXByb2MtMy45LjQvbGludXhfcHJvYy9jZ3JvdXBzLmgKQEAgLTIyLDYg KzIyLDEzIEBACiAKICNkZWZpbmUgQ0dST1VQX1JPT1QJImNncm91cCIgLyogY2dyb3VwIHJvb3Qg cG1ucyBub2RlICovCiAKKy8qIFRoZSBzdXBwb3J0ZWQga2VybmVsIGNncm91cCBzdWJzeXN0ZW1z ICovCisjZGVmaW5lIENPTlRST0xMRVJfQ1BVU0NIRUQgMAorI2RlZmluZSBDT05UUk9MTEVSX0NQ VVNFVCAxCisjZGVmaW5lIENPTlRST0xMRVJfQ1BVQUNDVCAyCisjZGVmaW5lIENPTlRST0xMRVJf TUVNT1JZIDMKKyNkZWZpbmUgQ09OVFJPTExFUl9ORVRfQ0xTIDQKKyNkZWZpbmUgTUFYX0NPTlRS T0xMRVJfU1VCU1lTVEVNUyA1CiBzdGF0aWMgaW5saW5lIHBtSUQKIGNncm91cF9wbWlkX2J1aWxk KHVuc2lnbmVkIGludCBkb21haW4sIHVuc2lnbmVkIGludCBjbHVzdGVyLAogCQkgIHVuc2lnbmVk IGludCBnaWQsIHVuc2lnbmVkIGludCBtZXRyaWMpCkBAIC00Niw2ICs1Myw2IEBAIGV4dGVybiBj aGFyICpjZ3JvdXBfZmluZF9zdWJzeXMocG1JbkRvbSwgY29uc3QgY2hhciAqKTsKIAogZXh0ZXJu IGludCByZWZyZXNoX2Nncm91cHMocG1kYUV4dCAqLCBfX3BtbnNUcmVlICoqKTsKIGV4dGVybiBp bnQgcmVmcmVzaF9jZ3JvdXBfc3Vic3lzKHBtSW5Eb20pOwotZXh0ZXJuIGludCByZWZyZXNoX2Nn cm91cF9ncm91cHMocG1kYUV4dCAqLCBwbUluRG9tLCBfX3BtbnNUcmVlICoqKTsKK2V4dGVybiBp bnQgcmVmcmVzaF9jZ3JvdXBfZ3JvdXBzKHBtZGFFeHQgKiwgcG1JbkRvbSwgcG1JbkRvbVtdLCBf X3BtbnNUcmVlICoqKTsKIAogZXh0ZXJuIGludCBjZ3JvdXBfZ3JvdXBfZmV0Y2goaW50LCBpbnQs IHVuc2lnbmVkIGludCwgcG1BdG9tVmFsdWUgKik7CmRpZmYgLS1naXQgYS9wbWRhcy9wcm9jL3Bj cC1wbWRhLXByb2MtMy45LjQvbGludXhfcHJvYy9oZWxwIGIvcG1kYXMvcHJvYy9wY3AtcG1kYS1w cm9jLTMuOS40L2xpbnV4X3Byb2MvaGVscAppbmRleCAxZjU4NWM5Li4xNDZkYjJhIDEwMDY0NAot LS0gYS9wbWRhcy9wcm9jL3BjcC1wbWRhLXByb2MtMy45LjQvbGludXhfcHJvYy9oZWxwCisrKyBi L3BtZGFzL3Byb2MvcGNwLXBtZGEtcHJvYy0zLjkuNC9saW51eF9wcm9jL2hlbHAKQEAgLTY2LDYg KzY2LDcgQEAKIEAgcHJvYy5wc2luZm8uc2lnaWdub3JlIHRoZSB2YWx1ZSBpbiB0aGUgc2lnaWdu b3JlIGZpZWxkIG9mIHN0cnVjdCB0YXNrX3N0cnVjdCBmb3IgdGhlIHByb2Nlc3MKIEAgcHJvYy5w c2luZm8uc2lnY2F0Y2ggdGhlIHZhbHVlIGluIHRoZSBzaWdjYXRjaCBmaWVsZCBvZiBzdHJ1Y3Qg dGFza19zdHJ1Y3QgZm9yIHRoZSBwcm9jZXNzCiBAIHByb2MucHNpbmZvLndjaGFuIHdhaXQgY2hh bm5lbCwga2VybmVsIGFkZHJlc3MgdGhpcyBwcm9jZXNzIGlzIGJsb2NrZWQgb3Igc2xlZXBpbmcg b24KK0AgcHJvYy5wc2luZm8uZW52aXJvbiB0aGUgcHJvY2VzcyBlbnZpcm9ubWVudCByZWFkIGZy b20gL3Byb2MvPHBpZD4vZW52aXJvbiB3aXRoIHRoZSBudWxsIGJ5dGVzIHJlcGxhY2VkIHdpdGgg YXNjaWkgc3BhY2UuCiBAIHByb2MucHNpbmZvLm5zd2FwIGNvdW50IG9mIHBhZ2Ugc3dhcCBvcGVy YXRpb25zCiBAIHByb2MucHNpbmZvLmNuc3dhcCBjb3VudCBvZiBwYWdlIHN3YXAgb3BlcmF0aW9u cyBvZiBhbGwgZXhpdGVkIGNoaWxkcmVuCiBAIHByb2MucHNpbmZvLmV4aXRfc2lnbmFsIHRoZSB2 YWx1ZSBpbiB0aGUgZXhpdF9zaWduYWwgZmllbGQgb2Ygc3RydWN0IHRhc2tfc3RydWN0IGZvciB0 aGUgcHJvY2VzcwpAQCAtODksNiArOTAsNyBAQCBUaGUgc2VhcmNoIHBhdGggZm9yIHRoZSBuYW1l bGlzdCBmaWxlIGlzIGFzIGZvbGxvd3M6CiBAIHByb2MucHNpbmZvLnRocmVhZHMgbnVtYmVyIG9m IHRocmVhZHMgKGZyb20gL3Byb2MvPHBpZD4vc3RhdHVzKQogQCBwcm9jLnBzaW5mby5jZ3JvdXBz IGxpc3Qgb2YgcHJvY2Vzc2VzIGNncm91cHMgKGZyb20gL3Byb2MvPHBpZD4vY2dyb3VwKQogQCBw cm9jLnBzaW5mby5sYWJlbHMgbGlzdCBvZiBwcm9jZXNzZXMgc2VjdXJpdHkgbGFiZWxzIChmcm9t IC9wcm9jLzxwaWQ+L2F0dHIvY3VycmVudCkKK0AgcHJvYy5wc2luZm8uY3B1c2FsbG93ZWQgdGhl IGNwdXMgYWxsb3dlZCBsaXN0IChmcm9tIC9wcm9jLzxwaWQ+L3N0YXR1cykKIEAgcHJvYy5tZW1v cnkuc2l6ZSBpbnN0YW50YW5lb3VzIHZpcnR1YWwgc2l6ZSBvZiBwcm9jZXNzLCBleGNsdWRpbmcg cGFnZSB0YWJsZSBhbmQgdGFzayBzdHJ1Y3R1cmUuCiBAIHByb2MubWVtb3J5LnJzcyBpbnN0YW50 YW5lb3VzIHJlc2lkZW50IHNpemUgb2YgcHJvY2VzcywgZXhjbHVkaW5nIHBhZ2UgdGFibGUgYW5k IHRhc2sgc3RydWN0dXJlLgogQCBwcm9jLm1lbW9yeS5zaGFyZSBpbnN0YW50YW5lb3VzIGFtb3Vu dCBvZiBtZW1vcnkgc2hhcmVkIGJ5IHRoaXMgcHJvY2VzcyB3aXRoIG90aGVyIHByb2Nlc3NlcyAK ZGlmZiAtLWdpdCBhL3BtZGFzL3Byb2MvcGNwLXBtZGEtcHJvYy0zLjkuNC9saW51eF9wcm9jL2lu ZG9tLmggYi9wbWRhcy9wcm9jL3BjcC1wbWRhLXByb2MtMy45LjQvbGludXhfcHJvYy9pbmRvbS5o CmluZGV4IDU5ZWNkMmYuLjJiYzg5YzcgMTAwNjQ0Ci0tLSBhL3BtZGFzL3Byb2MvcGNwLXBtZGEt cHJvYy0zLjkuNC9saW51eF9wcm9jL2luZG9tLmgKKysrIGIvcG1kYXMvcHJvYy9wY3AtcG1kYS1w cm9jLTMuOS40L2xpbnV4X3Byb2MvaW5kb20uaApAQCAtMjgsOSArMjgsMTQgQEAKICNkZWZpbmUg U1RSSU5HU19JTkRPTQkJMTAgLyogLSBmYWtlIGluZG9tLCBzdHJpbmcgaGFzaCAqLwogI2RlZmlu ZSBDR1JPVVBfU1VCU1lTX0lORE9NCTIwIC8qIC0gY29udHJvbCBncm91cCBzdWJzeXN0ZW1zICov CiAjZGVmaW5lIENHUk9VUF9NT1VOVFNfSU5ET00JMjEgLyogLSBjb250cm9sIGdyb3VwIG1vdW50 cyAqLworI2RlZmluZSBDR1JPVVBfQ1BVU0NIRURfSU5ET00gICAyNCAvKiAtIGNvbnRyb2wgZ3Jv dXAgZ3JvdXBzLmNwdXNjaGVkICovCisjZGVmaW5lIENHUk9VUF9DUFVTRVRfSU5ET00gICAgIDI1 IC8qIC0gY29udHJvbCBncm91cCBncm91cHMuY3B1c2V0ICovCisjZGVmaW5lIENHUk9VUF9DUFVB Q0NUX0lORE9NICAgIDI2IC8qIC0gY29udHJvbCBncm91cCBncm91cHMuY3B1YWNjdCAqLworI2Rl ZmluZSBDR1JPVVBfTUVNT1JZX0lORE9NICAgICAyNyAvKiAtIGNvbnRyb2wgZ3JvdXAgZ3JvdXBz Lm1lbW9yeSAqLworI2RlZmluZSBDR1JPVVBfTkVUX0NMU19JTkRPTSAgICAyOCAvKiAtIGNvbnRy b2wgZ3JvdXAgZ3JvdXBzLm5ldF9jbHMgKi8KIAogI2RlZmluZSBNSU5fSU5ET00gIDAJCS8qIGZp cnN0IGluZG9tIG51bWJlciB3ZSB1c2UgaGVyZSAqLwotI2RlZmluZSBOVU1fSU5ET01TIDIyCQkv KiBvbmUgbW9yZSB0aGFuIGhpZ2hlc3QgaW5kb20gbnVtYmVyIHdlIHVzZSBoZXJlICovCisjZGVm aW5lIE5VTV9JTkRPTVMgMjkJCS8qIG9uZSBtb3JlIHRoYW4gaGlnaGVzdCBpbmRvbSBudW1iZXIg d2UgdXNlIGhlcmUgKi8KIAogLyoKICAqIHN0YXRpYyBzdHJpbmcgZGljdGlvbmFyeSAtIG9uZSBj b3B5IG9mIG9mdC1yZXBlYXRlZCBzdHJpbmdzOwpkaWZmIC0tZ2l0IGEvcG1kYXMvcHJvYy9wY3At cG1kYS1wcm9jLTMuOS40L2xpbnV4X3Byb2MvcG1kYS5jIGIvcG1kYXMvcHJvYy9wY3AtcG1kYS1w cm9jLTMuOS40L2xpbnV4X3Byb2MvcG1kYS5jCmluZGV4IDM1NjFjZTUuLmQxODMyNWYgMTAwNjQ0 Ci0tLSBhL3BtZGFzL3Byb2MvcGNwLXBtZGEtcHJvYy0zLjkuNC9saW51eF9wcm9jL3BtZGEuYwor KysgYi9wbWRhcy9wcm9jL3BjcC1wbWRhLXByb2MtMy45LjQvbGludXhfcHJvYy9wbWRhLmMKQEAg LTI5Niw2ICsyOTYsMTEgQEAgc3RhdGljIHBtZGFNZXRyaWMgbWV0cmljdGFiW10gPSB7CiAgICAg eyBQTURBX1BNSUQoQ0xVU1RFUl9QSURfU1RBVCw0MSksIFBNX1RZUEVfU1RSSU5HLCBQUk9DX0lO RE9NLCBQTV9TRU1fSU5TVEFOVCwgCiAgICAgUE1EQV9QTVVOSVRTKDAsMCwwLDAsMCwwKX19LAog CisvKiBwcm9jLnBzaW5mby5lbnZpcm9uICovCisgIHsgTlVMTCwKKyAgICB7IFBNREFfUE1JRChD TFVTVEVSX1BJRF9TVEFULDQyKSwgUE1fVFlQRV9TVFJJTkcsIFBST0NfSU5ET00sIFBNX1NFTV9J TlNUQU5ULCAKKyAgICBQTURBX1BNVU5JVFMoMCwwLDAsMCwwLDApfX0sCisKIC8qCiAgKiBwcm9j LzxwaWQ+L3N0YXR1cyBjbHVzdGVyCiAgKiBDbHVzdGVyIGFkZGVkIGJ5IE1pa2UgTWFzb24gPG1t bG54QHVzLmlibS5jb20+CkBAIC00NDYsNiArNDUxLDExIEBAIHN0YXRpYyBwbWRhTWV0cmljIG1l dHJpY3RhYltdID0gewogICAgIHsgUE1EQV9QTUlEKENMVVNURVJfUElEX1NUQVRVUywyOCksIFBN X1RZUEVfVTMyLCBQUk9DX0lORE9NLCBQTV9TRU1fSU5TVEFOVCwgCiAgICAgUE1EQV9QTVVOSVRT KDAsMCwwLDAsMCwwKX19LAogCisvKiBwcm9jLnBzaW5mby5jcHVzYWxsb3dlZCAqLworICB7IE5V TEwsCisgICAgeyBQTURBX1BNSUQoQ0xVU1RFUl9QSURfU1RBVFVTLDI5KSwgUE1fVFlQRV9TVFJJ TkcsIFBST0NfSU5ET00sIFBNX1NFTV9JTlNUQU5ULCAKKyAgICBQTURBX1BNVU5JVFMoMCwwLDAs MCwwLDApfX0sCisKIC8qIHByb2MucHNpbmZvLmNncm91cHMgKi8KICAgeyBOVUxMLAogICAgIHsg UE1EQV9QTUlEKENMVVNURVJfUElEX0NHUk9VUCwwKSwgUE1fVFlQRV9TVFJJTkcsIFBST0NfSU5E T00sIFBNX1NFTV9JTlNUQU5ULCAKQEAgLTYxNSw3NSArNjI1LDc1IEBAIHN0YXRpYyBwbWRhTWV0 cmljIG1ldHJpY3RhYltdID0gewogCiAgICAgLyogY2dyb3VwLmdyb3Vwcy5jcHVzZXQuWzxncm91 cD4uXWNwdXMgKi8KICAgICB7IE5VTEwsIHtQTURBX1BNSUQoQ0xVU1RFUl9DUFVTRVRfR1JPVVBT LDApLCBQTV9UWVBFX1NUUklORywKLSAgICBQTV9JTkRPTV9OVUxMLCBQTV9TRU1fSU5TVEFOVCwg UE1EQV9QTVVOSVRTKDAsMCwwLDAsMCwwKSB9LCB9LAorICAgIENHUk9VUF9DUFVTRVRfSU5ET00s IFBNX1NFTV9JTlNUQU5ULCBQTURBX1BNVU5JVFMoMCwwLDAsMCwwLDApIH0sIH0sCiAKICAgICAv KiBjZ3JvdXAuZ3JvdXBzLmNwdXNldC5bPGdyb3VwPi5dbWVtcyAqLwogICAgIHsgTlVMTCwge1BN REFfUE1JRChDTFVTVEVSX0NQVVNFVF9HUk9VUFMsMSksIFBNX1RZUEVfU1RSSU5HLAotICAgIFBN X0lORE9NX05VTEwsIFBNX1NFTV9JTlNUQU5ULCBQTURBX1BNVU5JVFMoMCwwLDAsMCwwLDApIH0s IH0sCisgICAgQ0dST1VQX0NQVVNFVF9JTkRPTSwgUE1fU0VNX0lOU1RBTlQsIFBNREFfUE1VTklU UygwLDAsMCwwLDAsMCkgfSwgfSwKIAogICAgIC8qIGNncm91cC5ncm91cHMuY3B1YWNjdC5bPGdy b3VwPi5dc3RhdC51c2VyICovCiAgICAgeyBOVUxMLCB7UE1EQV9QTUlEKENMVVNURVJfQ1BVQUND VF9HUk9VUFMsMCksIFBNX1RZUEVfVTY0LAotICAgIFBNX0lORE9NX05VTEwsIFBNX1NFTV9DT1VO VEVSLCBQTURBX1BNVU5JVFMoMCwxLDAsMCxQTV9USU1FX01TRUMsMCkgfSwgfSwKKyAgICBDR1JP VVBfQ1BVQUNDVF9JTkRPTSwgUE1fU0VNX0NPVU5URVIsIFBNREFfUE1VTklUUygwLDEsMCwwLFBN X1RJTUVfTVNFQywwKSB9LCB9LAogCiAgICAgLyogY2dyb3VwLmdyb3Vwcy5jcHVhY2N0Lls8Z3Jv dXA+Ll1zdGF0LnN5c3RlbSAqLwogICAgIHsgTlVMTCwge1BNREFfUE1JRChDTFVTVEVSX0NQVUFD Q1RfR1JPVVBTLDEpLCBQTV9UWVBFX1U2NCwKLSAgICBQTV9JTkRPTV9OVUxMLCBQTV9TRU1fQ09V TlRFUiwgUE1EQV9QTVVOSVRTKDAsMSwwLDAsUE1fVElNRV9NU0VDLDApIH0sIH0sCisgICAgQ0dS T1VQX0NQVUFDQ1RfSU5ET00sIFBNX1NFTV9DT1VOVEVSLCBQTURBX1BNVU5JVFMoMCwxLDAsMCxQ TV9USU1FX01TRUMsMCkgfSwgfSwKIAogICAgIC8qIGNncm91cC5ncm91cHMuY3B1YWNjdC5bPGdy b3VwPi5ddXNhZ2UgKi8KICAgICB7IE5VTEwsIHtQTURBX1BNSUQoQ0xVU1RFUl9DUFVBQ0NUX0dS T1VQUywyKSwgUE1fVFlQRV9VNjQsCi0gICAgUE1fSU5ET01fTlVMTCwgUE1fU0VNX0NPVU5URVIs IFBNREFfUE1VTklUUygwLDEsMCwwLFBNX1RJTUVfTlNFQywwKSB9LCB9LAorICAgIENHUk9VUF9D UFVBQ0NUX0lORE9NLCBQTV9TRU1fQ09VTlRFUiwgUE1EQV9QTVVOSVRTKDAsMSwwLDAsUE1fVElN RV9OU0VDLDApIH0sIH0sCiAKICAgICAvKiBjZ3JvdXAuZ3JvdXBzLmNwdWFjY3QuWzxncm91cD4u XXVzYWdlX3BlcmNwdSAqLwotICAgIHsgTlVMTCwge1BNREFfUE1JRChDTFVTVEVSX0NQVUFDQ1Rf R1JPVVBTLDMpLCBQTV9UWVBFX1U2NCwKLSAgICBDUFVfSU5ET00sIFBNX1NFTV9DT1VOVEVSLCBQ TURBX1BNVU5JVFMoMCwxLDAsMCxQTV9USU1FX05TRUMsMCkgfSwgfSwKKyAgICB7IE5VTEwsIHtQ TURBX1BNSUQoQ0xVU1RFUl9DUFVBQ0NUX0dST1VQUywzKSwgUE1fVFlQRV9TVFJJTkcsCisgICAg Q0dST1VQX0NQVUFDQ1RfSU5ET00sIFBNX1NFTV9JTlNUQU5ULCBQTURBX1BNVU5JVFMoMCwwLDAs MCwwLDApIH0sIH0sCiAKICAgICAvKiBjZ3JvdXAuZ3JvdXBzLmNwdXNjaGVkLls8Z3JvdXA+Ll1z aGFyZXMgKi8KICAgICB7IE5VTEwsIHtQTURBX1BNSUQoQ0xVU1RFUl9DUFVTQ0hFRF9HUk9VUFMs MCksIFBNX1RZUEVfVTY0LAotICAgIFBNX0lORE9NX05VTEwsIFBNX1NFTV9DT1VOVEVSLCBQTURB X1BNVU5JVFMoMCwwLDAsMCwwLDApIH0sIH0sCisgICAgQ0dST1VQX0NQVVNDSEVEX0lORE9NLCBQ TV9TRU1fQ09VTlRFUiwgUE1EQV9QTVVOSVRTKDAsMCwwLDAsMCwwKSB9LCB9LAogCiAgICAgLyog Y2dyb3VwLmdyb3Vwcy5tZW1vcnkuWzxncm91cD4uXXN0YXQuY2FjaGUgKi8KICAgICB7IE5VTEws IHtQTURBX1BNSUQoQ0xVU1RFUl9NRU1PUllfR1JPVVBTLDApLCBQTV9UWVBFX1U2NCwKLSAgICBQ TV9JTkRPTV9OVUxMLCBQTV9TRU1fQ09VTlRFUiwgUE1EQV9QTVVOSVRTKDEsMCwwLFBNX1NQQUNF X0tCWVRFLDAsMCkgfSwgfSwKKyAgICBDR1JPVVBfTUVNT1JZX0lORE9NLCBQTV9TRU1fQ09VTlRF UiwgUE1EQV9QTVVOSVRTKDEsMCwwLFBNX1NQQUNFX0tCWVRFLDAsMCkgfSwgfSwKIAogICAgIC8q IGNncm91cC5ncm91cHMubWVtb3J5Lls8Z3JvdXA+Ll1zdGF0LnJzcyAqLwogICAgIHsgTlVMTCwg e1BNREFfUE1JRChDTFVTVEVSX01FTU9SWV9HUk9VUFMsMSksIFBNX1RZUEVfVTY0LAotICAgIFBN X0lORE9NX05VTEwsIFBNX1NFTV9DT1VOVEVSLCBQTURBX1BNVU5JVFMoMSwwLDAsUE1fU1BBQ0Vf S0JZVEUsMCwwKSB9LCB9LAorICAgIENHUk9VUF9NRU1PUllfSU5ET00sIFBNX1NFTV9DT1VOVEVS LCBQTURBX1BNVU5JVFMoMSwwLDAsUE1fU1BBQ0VfS0JZVEUsMCwwKSB9LCB9LAogCiAgICAgLyog Y2dyb3VwLmdyb3Vwcy5tZW1vcnkuWzxncm91cD4uXXN0YXQucGdpbiAqLwogICAgIHsgTlVMTCwg e1BNREFfUE1JRChDTFVTVEVSX01FTU9SWV9HUk9VUFMsMiksIFBNX1RZUEVfVTY0LAotICAgIFBN X0lORE9NX05VTEwsIFBNX1NFTV9DT1VOVEVSLCBQTURBX1BNVU5JVFMoMSwwLDAsUE1fU1BBQ0Vf S0JZVEUsMCwwKSB9LCB9LAorICAgIENHUk9VUF9NRU1PUllfSU5ET00sIFBNX1NFTV9DT1VOVEVS LCBQTURBX1BNVU5JVFMoMSwwLDAsUE1fU1BBQ0VfS0JZVEUsMCwwKSB9LCB9LAogCiAgICAgLyog Y2dyb3VwLmdyb3Vwcy5tZW1vcnkuWzxncm91cD4uXXN0YXQucGdvdXQgKi8KICAgICB7IE5VTEws IHtQTURBX1BNSUQoQ0xVU1RFUl9NRU1PUllfR1JPVVBTLDMpLCBQTV9UWVBFX1U2NCwKLSAgICBQ TV9JTkRPTV9OVUxMLCBQTV9TRU1fQ09VTlRFUiwgUE1EQV9QTVVOSVRTKDEsMCwwLFBNX1NQQUNF X0tCWVRFLDAsMCkgfSwgfSwKKyAgICBDR1JPVVBfTUVNT1JZX0lORE9NLCBQTV9TRU1fQ09VTlRF UiwgUE1EQV9QTVVOSVRTKDEsMCwwLFBNX1NQQUNFX0tCWVRFLDAsMCkgfSwgfSwKIAogICAgIC8q IGNncm91cC5ncm91cHMubWVtb3J5Lls8Z3JvdXA+Ll1zdGF0LnN3YXAgKi8KICAgICB7IE5VTEws IHtQTURBX1BNSUQoQ0xVU1RFUl9NRU1PUllfR1JPVVBTLDQpLCBQTV9UWVBFX1U2NCwKLSAgICBQ TV9JTkRPTV9OVUxMLCBQTV9TRU1fQ09VTlRFUiwgUE1EQV9QTVVOSVRTKDEsMCwwLFBNX1NQQUNF X0tCWVRFLDAsMCkgfSwgfSwKKyAgICBDR1JPVVBfTUVNT1JZX0lORE9NLCBQTV9TRU1fQ09VTlRF UiwgUE1EQV9QTVVOSVRTKDEsMCwwLFBNX1NQQUNFX0tCWVRFLDAsMCkgfSwgfSwKIAogICAgIC8q IGNncm91cC5ncm91cHMubWVtb3J5Lls8Z3JvdXA+Ll1zdGF0LmFjdGl2ZV9hbm9uICovCiAgICAg eyBOVUxMLCB7UE1EQV9QTUlEKENMVVNURVJfTUVNT1JZX0dST1VQUyw1KSwgUE1fVFlQRV9VNjQs Ci0gICAgUE1fSU5ET01fTlVMTCwgUE1fU0VNX0NPVU5URVIsIFBNREFfUE1VTklUUygxLDAsMCxQ TV9TUEFDRV9LQllURSwwLDApIH0sIH0sCisgICAgQ0dST1VQX01FTU9SWV9JTkRPTSwgUE1fU0VN X0NPVU5URVIsIFBNREFfUE1VTklUUygxLDAsMCxQTV9TUEFDRV9LQllURSwwLDApIH0sIH0sCiAK ICAgICAvKiBjZ3JvdXAuZ3JvdXBzLm1lbW9yeS5bPGdyb3VwPi5dc3RhdC5pbmFjdGl2ZV9hbm9u ICovCiAgICAgeyBOVUxMLCB7UE1EQV9QTUlEKENMVVNURVJfTUVNT1JZX0dST1VQUyw2KSwgUE1f VFlQRV9VNjQsCi0gICAgUE1fSU5ET01fTlVMTCwgUE1fU0VNX0NPVU5URVIsIFBNREFfUE1VTklU UygxLDAsMCxQTV9TUEFDRV9LQllURSwwLDApIH0sIH0sCisgICAgQ0dST1VQX01FTU9SWV9JTkRP TSwgUE1fU0VNX0NPVU5URVIsIFBNREFfUE1VTklUUygxLDAsMCxQTV9TUEFDRV9LQllURSwwLDAp IH0sIH0sCiAKICAgICAvKiBjZ3JvdXAuZ3JvdXBzLm1lbW9yeS5bPGdyb3VwPi5dc3RhdC5hY3Rp dmVfZmlsZSAqLwogICAgIHsgTlVMTCwge1BNREFfUE1JRChDTFVTVEVSX01FTU9SWV9HUk9VUFMs NyksIFBNX1RZUEVfVTY0LAotICAgIFBNX0lORE9NX05VTEwsIFBNX1NFTV9DT1VOVEVSLCBQTURB X1BNVU5JVFMoMSwwLDAsUE1fU1BBQ0VfS0JZVEUsMCwwKSB9LCB9LAorICAgIENHUk9VUF9NRU1P UllfSU5ET00sIFBNX1NFTV9DT1VOVEVSLCBQTURBX1BNVU5JVFMoMSwwLDAsUE1fU1BBQ0VfS0JZ VEUsMCwwKSB9LCB9LAogCiAgICAgLyogY2dyb3VwLmdyb3Vwcy5tZW1vcnkuWzxncm91cD4uXXN0 YXQuaW5hY3RpdmVfZmlsZSAqLwogICAgIHsgTlVMTCwge1BNREFfUE1JRChDTFVTVEVSX01FTU9S WV9HUk9VUFMsOCksIFBNX1RZUEVfVTY0LAotICAgIFBNX0lORE9NX05VTEwsIFBNX1NFTV9DT1VO VEVSLCBQTURBX1BNVU5JVFMoMSwwLDAsUE1fU1BBQ0VfS0JZVEUsMCwwKSB9LCB9LAorICAgIENH Uk9VUF9NRU1PUllfSU5ET00sIFBNX1NFTV9DT1VOVEVSLCBQTURBX1BNVU5JVFMoMSwwLDAsUE1f U1BBQ0VfS0JZVEUsMCwwKSB9LCB9LAogCiAgICAgLyogY2dyb3VwLmdyb3Vwcy5tZW1vcnkuWzxn cm91cD4uXXN0YXQudW5ldmljdGFibGUgKi8KICAgICB7IE5VTEwsIHtQTURBX1BNSUQoQ0xVU1RF Ul9NRU1PUllfR1JPVVBTLDkpLCBQTV9UWVBFX1U2NCwKLSAgICBQTV9JTkRPTV9OVUxMLCBQTV9T RU1fQ09VTlRFUiwgUE1EQV9QTVVOSVRTKDEsMCwwLFBNX1NQQUNFX0tCWVRFLDAsMCkgfSwgfSwK KyAgICBDR1JPVVBfTUVNT1JZX0lORE9NLCBQTV9TRU1fQ09VTlRFUiwgUE1EQV9QTVVOSVRTKDEs MCwwLFBNX1NQQUNFX0tCWVRFLDAsMCkgfSwgfSwKIAogICAgIC8qIGNncm91cC5ncm91cHMubmV0 Y2xhc3MuWzxncm91cD4uXWNsYXNzaWQgKi8KICAgICB7IE5VTEwsIHtQTURBX1BNSUQoQ0xVU1RF Ul9ORVRfQ0xTX0dST1VQUywwKSwgUE1fVFlQRV9VNjQsCi0gICAgUE1fSU5ET01fTlVMTCwgUE1f U0VNX0NPVU5URVIsIFBNREFfUE1VTklUUygxLDAsMCxQTV9TUEFDRV9LQllURSwwLDApIH0sIH0s CisgICAgQ0dST1VQX05FVF9DTFNfSU5ET00sIFBNX1NFTV9DT1VOVEVSLCBQTURBX1BNVU5JVFMo MSwwLDAsUE1fU1BBQ0VfS0JZVEUsMCwwKSB9LCB9LAogCiAvKgogICogcHJvYy88cGlkPi9mZCBj bHVzdGVyCkBAIC03NDksNyArNzU5LDE2IEBAIHJlZnJlc2hfY2dyb3VwcyhwbWRhRXh0ICpwbWRh LCBfX3BtbnNUcmVlICoqdHJlZSkKICAgICByZWZyZXNoX2NwdV9pbmRvbShJTkRPTShDUFVfSU5E T00pKTsKICAgICByZWZyZXNoX2ZpbGVzeXMoSU5ET00oQ0dST1VQX01PVU5UU19JTkRPTSkpOwog ICAgIHJlZnJlc2hfY2dyb3VwX3N1YnN5cyhJTkRPTShDR1JPVVBfU1VCU1lTX0lORE9NKSk7Ci0g ICAgY2hhbmdlZCA9IHJlZnJlc2hfY2dyb3VwX2dyb3VwcyhwbWRhLCBJTkRPTShDR1JPVVBfTU9V TlRTX0lORE9NKSwgdHJlZSk7CisKKyAgICBwbUluRG9tIGdyb3VwaW5kb21zW01BWF9DT05UUk9M TEVSX1NVQlNZU1RFTVNdOworCisgICAgZ3JvdXBpbmRvbXNbQ09OVFJPTExFUl9DUFVTQ0hFRF0g PSBJTkRPTShDR1JPVVBfQ1BVU0NIRURfSU5ET00pOworICAgIGdyb3VwaW5kb21zW0NPTlRST0xM RVJfQ1BVU0VUXSA9IElORE9NKENHUk9VUF9DUFVTRVRfSU5ET00pOworICAgIGdyb3VwaW5kb21z W0NPTlRST0xMRVJfQ1BVQUNDVF0gPSBJTkRPTShDR1JPVVBfQ1BVQUNDVF9JTkRPTSk7CisgICAg Z3JvdXBpbmRvbXNbQ09OVFJPTExFUl9NRU1PUlldID0gSU5ET00oQ0dST1VQX01FTU9SWV9JTkRP TSk7CisgICAgZ3JvdXBpbmRvbXNbQ09OVFJPTExFUl9ORVRfQ0xTXSA9IElORE9NKENHUk9VUF9O RVRfQ0xTX0lORE9NKTsKKworICAgIGNoYW5nZWQgPSByZWZyZXNoX2Nncm91cF9ncm91cHMocG1k YSwgSU5ET00oQ0dST1VQX01PVU5UU19JTkRPTSksIGdyb3VwaW5kb21zLCB0cmVlKTsKIAogICAg IGlmICh0cmVlKSB7CiAJcHJldmlvdXN0aW1lID0gcmlnaHRub3c7CkBAIC04MjIsNiArODQxLDIx IEBAIHByb2NfaW5zdGFuY2UocG1JbkRvbSBpbmRvbSwgaW50IGluc3QsIGNoYXIgKm5hbWUsIF9f cG1JblJlc3VsdCAqKnJlc3VsdCwgcG1kYUV4CiAgICAgY2FzZSBDR1JPVVBfU1VCU1lTX0lORE9N OgogICAgIAluZWVkX3JlZnJlc2hbQ0xVU1RFUl9DR1JPVVBfU1VCU1lTXSsrOwogCWJyZWFrOwor ICAgIGNhc2UgQ0dST1VQX0NQVVNDSEVEX0lORE9NOgorCW5lZWRfcmVmcmVzaFtDTFVTVEVSX0NQ VVNDSEVEX0dST1VQU10rKzsKKwlicmVhazsKKyAgICBjYXNlIENHUk9VUF9DUFVTRVRfSU5ET006 CisJbmVlZF9yZWZyZXNoW0NMVVNURVJfQ1BVU0VUX0dST1VQU10rKzsKKwlicmVhazsKKyAgICBj YXNlIENHUk9VUF9DUFVBQ0NUX0lORE9NOgorCW5lZWRfcmVmcmVzaFtDTFVTVEVSX0NQVUFDQ1Rf R1JPVVBTXSsrOworCWJyZWFrOworICAgIGNhc2UgQ0dST1VQX01FTU9SWV9JTkRPTToKKwluZWVk X3JlZnJlc2hbQ0xVU1RFUl9NRU1PUllfR1JPVVBTXSsrOworCWJyZWFrOworICAgIGNhc2UgQ0dS T1VQX05FVF9DTFNfSU5ET006CisJbmVlZF9yZWZyZXNoW0NMVVNURVJfTkVUX0NMU19HUk9VUFNd Kys7CisJYnJlYWs7CiAgICAgY2FzZSBDR1JPVVBfTU9VTlRTX0lORE9NOgogICAgIAluZWVkX3Jl ZnJlc2hbQ0xVU1RFUl9DR1JPVVBfTU9VTlRTXSsrOwogCWJyZWFrOwpAQCAtODUyLDEyICs4ODYs MTIgQEAgcHJvY19pbnN0YW5jZShwbUluRG9tIGluZG9tLCBpbnQgaW5zdCwgY2hhciAqbmFtZSwg X19wbUluUmVzdWx0ICoqcmVzdWx0LCBwbWRhRXgKICAgICB9CiAKICAgICBzdHMgPSBQTV9FUlJf UEVSTUlTU0lPTjsKLSAgICBoYXZlX2FjY2VzcyA9IHByb2NfY3R4X2FjY2VzcyhwbWRhLT5lX2Nv bnRleHQpIHx8IGFsbF9hY2Nlc3M7CisgICAgaGF2ZV9hY2Nlc3MgPSBhbGxfYWNjZXNzIHx8IHBy b2NfY3R4X2FjY2VzcyhwbWRhLT5lX2NvbnRleHQpOwogICAgIGlmIChoYXZlX2FjY2VzcyB8fCBp bmRvbXAtPnNlcmlhbCAhPSBQUk9DX0lORE9NKSB7CiAJcHJvY19yZWZyZXNoKHBtZGEsIG5lZWRf cmVmcmVzaCk7CiAJc3RzID0gcG1kYUluc3RhbmNlKGluZG9tLCBpbnN0LCBuYW1lLCByZXN1bHQs IHBtZGEpOwogICAgIH0KLSAgICBoYXZlX2FjY2VzcyA9IHByb2NfY3R4X3JldmVydChwbWRhLT5l X2NvbnRleHQpOworICAgIGhhdmVfYWNjZXNzID0gYWxsX2FjY2VzcyB8fCBwcm9jX2N0eF9yZXZl cnQocG1kYS0+ZV9jb250ZXh0KTsKIAogICAgIHJldHVybiBzdHM7CiB9CkBAIC0xMDIzLDYgKzEw NTcsMTAgQEAgcHJvY19mZXRjaENhbGxCYWNrKHBtZGFNZXRyaWMgKm1kZXNjLCB1bnNpZ25lZCBp bnQgaW5zdCwgcG1BdG9tVmFsdWUgKmF0b20pCiAjZW5kaWYKIAkJYnJlYWs7CiAKKwkgICAgY2Fz ZSBQUk9DX1BJRF9TVEFUX0VOVklST046CisJCWF0b20tPmNwID0gZW50cnktPmVudmlyb25fYnVm ID8gZW50cnktPmVudmlyb25fYnVmIDogIiI7CisJCWJyZWFrOworCiAJICAgIGNhc2UgUFJPQ19Q SURfU1RBVF9XQ0hBTl9TWU1CT0w6CiAJCWlmIChlbnRyeS0+d2NoYW5fYnVmKQkvKiAyLjYga2Vy bmVsLCAvcHJvYy88cGlkPi93Y2hhbiAqLwogCQkgICAgYXRvbS0+Y3AgPSBlbnRyeS0+d2NoYW5f YnVmOwpAQCAtMTMxMCw2ICsxMzQ4LDExIEBAIHByb2NfZmV0Y2hDYWxsQmFjayhwbWRhTWV0cmlj ICptZGVzYywgdW5zaWduZWQgaW50IGluc3QsIHBtQXRvbVZhbHVlICphdG9tKQogCSAgICBhdG9t LT51bCA9IChfX3VpbnQzMl90KXN0cnRvdWwoZiwgJnRhaWwsIDApOwogCWJyZWFrOwogCisJY2Fz ZSBQUk9DX1BJRF9TVEFUVVNfQ1BVU0FMTE9XRUQ6CisJaWYgKChhdG9tLT5jcCA9IF9wbV9nZXRm aWVsZChlbnRyeS0+c3RhdHVzX2xpbmVzLmNwdXNhbGxvd2VkLCAxKSkgPT0gTlVMTCkKKwkgICAg cmV0dXJuIFBNX0VSUl9JTlNUOworCWJyZWFrOworCiAJZGVmYXVsdDoKIAkgICAgcmV0dXJuIFBN X0VSUl9QTUlEOwogCX0KQEAgLTE0MjAsMTAgKzE0NjMsMTAgQEAgcHJvY19mZXRjaChpbnQgbnVt cG1pZCwgcG1JRCBwbWlkbGlzdFtdLCBwbVJlc3VsdCAqKnJlc3AsIHBtZGFFeHQgKnBtZGEpCiAJ ICAgIG5lZWRfcmVmcmVzaFtpZHAtPmNsdXN0ZXJdKys7CiAgICAgfQogCi0gICAgaGF2ZV9hY2Nl c3MgPSBwcm9jX2N0eF9hY2Nlc3MocG1kYS0+ZV9jb250ZXh0KSB8fCBhbGxfYWNjZXNzOworICAg IGhhdmVfYWNjZXNzID0gYWxsX2FjY2VzcyB8fCBwcm9jX2N0eF9hY2Nlc3MocG1kYS0+ZV9jb250 ZXh0KTsKICAgICBwcm9jX3JlZnJlc2gocG1kYSwgbmVlZF9yZWZyZXNoKTsKICAgICBzdHMgPSBw bWRhRmV0Y2gobnVtcG1pZCwgcG1pZGxpc3QsIHJlc3AsIHBtZGEpOwotICAgIGhhdmVfYWNjZXNz ID0gcHJvY19jdHhfcmV2ZXJ0KHBtZGEtPmVfY29udGV4dCk7CisgICAgaGF2ZV9hY2Nlc3MgPSBh bGxfYWNjZXNzIHx8IHByb2NfY3R4X3JldmVydChwbWRhLT5lX2NvbnRleHQpOwogICAgIHJldHVy biBzdHM7CiB9CiAKQEAgLTE0MzIsNyArMTQ3NSw3IEBAIHByb2Nfc3RvcmUocG1SZXN1bHQgKnJl c3VsdCwgcG1kYUV4dCAqcG1kYSkKIHsKICAgICBpbnQgaSwgc3RzID0gMDsKIAotICAgIGhhdmVf YWNjZXNzID0gcHJvY19jdHhfYWNjZXNzKHBtZGEtPmVfY29udGV4dCkgfHwgYWxsX2FjY2VzczsK KyAgICBoYXZlX2FjY2VzcyA9IGFsbF9hY2Nlc3MgfHwgcHJvY19jdHhfYWNjZXNzKHBtZGEtPmVf Y29udGV4dCk7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgcmVzdWx0LT5udW1wbWlkOyBpKyspIHsK IAlwbVZhbHVlU2V0ICp2c3AgPSByZXN1bHQtPnZzZXRbaV07CkBAIC0xNDc1LDcgKzE1MTgsNyBA QCBwcm9jX3N0b3JlKHBtUmVzdWx0ICpyZXN1bHQsIHBtZGFFeHQgKnBtZGEpCiAJICAgIGJyZWFr OwogICAgIH0KIAotICAgIGhhdmVfYWNjZXNzID0gcHJvY19jdHhfcmV2ZXJ0KHBtZGEtPmVfY29u dGV4dCk7CisgICAgaGF2ZV9hY2Nlc3MgPSBhbGxfYWNjZXNzIHx8IHByb2NfY3R4X3JldmVydChw bWRhLT5lX2NvbnRleHQpOwogICAgIHJldHVybiBzdHM7CiB9CiAKQEAgLTE1ODIsNiArMTYyNSwx MSBAQCBwcm9jX2luaXQocG1kYUludGVyZmFjZSAqZHApCiAgICAgaW5kb210YWJbU1RSSU5HU19J TkRPTV0uaXRfaW5kb20gPSBTVFJJTkdTX0lORE9NOwogICAgIGluZG9tdGFiW0NHUk9VUF9TVUJT WVNfSU5ET01dLml0X2luZG9tID0gQ0dST1VQX1NVQlNZU19JTkRPTTsKICAgICBpbmRvbXRhYltD R1JPVVBfTU9VTlRTX0lORE9NXS5pdF9pbmRvbSA9IENHUk9VUF9NT1VOVFNfSU5ET007CisgICAg aW5kb210YWJbQ0dST1VQX0NQVVNDSEVEX0lORE9NXS5pdF9pbmRvbSA9IENHUk9VUF9DUFVTQ0hF RF9JTkRPTTsKKyAgICBpbmRvbXRhYltDR1JPVVBfQ1BVU0VUX0lORE9NXS5pdF9pbmRvbSA9IENH Uk9VUF9DUFVTRVRfSU5ET007CisgICAgaW5kb210YWJbQ0dST1VQX0NQVUFDQ1RfSU5ET01dLml0 X2luZG9tID0gQ0dST1VQX0NQVUFDQ1RfSU5ET007CisgICAgaW5kb210YWJbQ0dST1VQX01FTU9S WV9JTkRPTV0uaXRfaW5kb20gPSBDR1JPVVBfTUVNT1JZX0lORE9NOworICAgIGluZG9tdGFiW0NH Uk9VUF9ORVRfQ0xTX0lORE9NXS5pdF9pbmRvbSA9IENHUk9VUF9ORVRfQ0xTX0lORE9NOwogCiAg ICAgcHJvY19waWQuaW5kb20gPSAmaW5kb210YWJbUFJPQ19JTkRPTV07CiAgCkBAIC0xNjA1LDYg KzE2NTMsMTIgQEAgcHJvY19pbml0KHBtZGFJbnRlcmZhY2UgKmRwKQogICAgIHBtZGFDYWNoZU9w KElORE9NKENQVV9JTkRPTSksIFBNREFfQ0FDSEVfQ1VMTCk7CiAgICAgcG1kYUNhY2hlT3AoSU5E T00oQ0dST1VQX1NVQlNZU19JTkRPTSksIFBNREFfQ0FDSEVfQ1VMTCk7CiAgICAgcG1kYUNhY2hl T3AoSU5ET00oQ0dST1VQX01PVU5UU19JTkRPTSksIFBNREFfQ0FDSEVfQ1VMTCk7CisgICAgcG1k YUNhY2hlT3AoSU5ET00oQ0dST1VQX0NQVVNDSEVEX0lORE9NKSwgUE1EQV9DQUNIRV9DVUxMKTsK KyAgICBwbWRhQ2FjaGVPcChJTkRPTShDR1JPVVBfQ1BVU0VUX0lORE9NKSwgUE1EQV9DQUNIRV9D VUxMKTsKKyAgICBwbWRhQ2FjaGVPcChJTkRPTShDR1JPVVBfQ1BVQUNDVF9JTkRPTSksIFBNREFf Q0FDSEVfQ1VMTCk7CisgICAgcG1kYUNhY2hlT3AoSU5ET00oQ0dST1VQX01FTU9SWV9JTkRPTSks IFBNREFfQ0FDSEVfQ1VMTCk7CisgICAgcG1kYUNhY2hlT3AoSU5ET00oQ0dST1VQX05FVF9DTFNf SU5ET00pLCBQTURBX0NBQ0hFX0NVTEwpOworCiB9CiAKIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQg YS9wbWRhcy9wcm9jL3BjcC1wbWRhLXByb2MtMy45LjQvbGludXhfcHJvYy9wcm9jX3BpZC5jIGIv cG1kYXMvcHJvYy9wY3AtcG1kYS1wcm9jLTMuOS40L2xpbnV4X3Byb2MvcHJvY19waWQuYwppbmRl eCA4NDgyYTU1Li41YmM2NmI0IDEwMDY0NAotLS0gYS9wbWRhcy9wcm9jL3BjcC1wbWRhLXByb2Mt My45LjQvbGludXhfcHJvYy9wcm9jX3BpZC5jCisrKyBiL3BtZGFzL3Byb2MvcGNwLXBtZGEtcHJv Yy0zLjkuNC9saW51eF9wcm9jL3Byb2NfcGlkLmMKQEAgLTI2OSw2ICsyNjksOCBAQCByZWZyZXNo X3Byb2NfcGlkbGlzdChwcm9jX3BpZF90ICpwcm9jX3BpZCkKIAkJICAgIGZyZWUoZXAtPmlvX2J1 Zik7CiAJCWlmIChlcC0+d2NoYW5fYnVmICE9IE5VTEwpCiAJCSAgICBmcmVlKGVwLT53Y2hhbl9i dWYpOworCQlpZiAoZXAtPmVudmlyb25fYnVmICE9IE5VTEwpCisJCSAgICBmcmVlKGVwLT5lbnZp cm9uX2J1Zik7CiAKIAkgICAgCWlmIChwcmV2ID09IE5VTEwpCiAJCSAgICBwcm9jX3BpZC0+cGlk aGFzaC5oYXNoW2ldID0gbm9kZS0+bmV4dDsKQEAgLTM2NSw2ICszNjcsOCBAQCBmZXRjaF9wcm9j X3BpZF9zdGF0KGludCBpZCwgcHJvY19waWRfdCAqcHJvY19waWQpCiAgICAgX19wbUhhc2hOb2Rl ICpub2RlID0gX19wbUhhc2hTZWFyY2goaWQsICZwcm9jX3BpZC0+cGlkaGFzaCk7CiAgICAgcHJv Y19waWRfZW50cnlfdCAqZXA7CiAgICAgY2hhciBidWZbMTAyNF07CisgICAgY2hhciAqcDsKKyAg ICBzc2l6ZV90IG5yZWFkOwogCiAgICAgaWYgKG5vZGUgPT0gTlVMTCkgewogI2lmIFBDUF9ERUJV RwpAQCAtNDYzLDYgKzQ2NywzNCBAQCBmZXRjaF9wcm9jX3BpZF9zdGF0KGludCBpZCwgcHJvY19w aWRfdCAqcHJvY19waWQpCiAJZXAtPmZsYWdzIHw9IFBST0NfUElEX0ZMQUdfV0NIQU5fRkVUQ0hF RDsKICAgICB9CiAKKyAgICBpZiAoIShlcC0+ZmxhZ3MgJiBQUk9DX1BJRF9GTEFHX0VOVklST05f RkVUQ0hFRCkpIHsKKwlpZiAoKGZkID0gcHJvY19vcGVuKCJlbnZpcm9uIiwgZXApKSA+PSAwKSB7 CisJICAgIG5yZWFkID0gMDsKKwkgICAgd2hpbGUgKCAobiA9IHJlYWQoZmQsIGJ1Ziwgc2l6ZW9m KGJ1ZikpKSA+IDApIHsKKworCQlpZiAoICggbnJlYWQgKyBuICkgPj0gZXAtPmVudmlyb25fYnVm bGVuICkgeworCQkgICAgZXAtPmVudmlyb25fYnVmbGVuID0gbnJlYWQgKyBuICsgMTsKKwkJICAg IGVwLT5lbnZpcm9uX2J1ZiA9IHJlYWxsb2MoZXAtPmVudmlyb25fYnVmLCBlcC0+ZW52aXJvbl9i dWZsZW4pOworCQl9CisKKwkJLyogUmVwbGFjZSBudWxscyB3aXRoIHNwYWNlcyAqLworCQlmb3Io cCA9IG1lbWNocihidWYsICdcMCcsIG4pOyBwOyBwID0gbWVtY2hyKHAsICdcMCcsIGJ1ZiArIG4g LSBwKSApIHsKKwkJICAgICpwID0gJyAnOworCQl9CisKKwkJbWVtY3B5KCAmZXAtPmVudmlyb25f YnVmW25yZWFkXSwgYnVmLCBuKTsKKwkJbnJlYWQgKz0gbjsKKwkgICAgfQorCSAgICBpZiAoZXAt PmVudmlyb25fYnVmKSB7CisJCWVwLT5lbnZpcm9uX2J1ZltucmVhZF0gPSAnXDAnOworCSAgICB9 CisJICAgIGNsb3NlKGZkKTsKKwl9IGVsc2UgeworCQlmcHJpbnRmKHN0ZGVyciwgIkVycm9yIG9w ZW5pbmcgZW52aXJvbiBmb3IgcGlkICVkIChlcnJvciBpcyAlcylcbiIsIGVwLT5pZCwgc3RyZXJy b3IoZXJybm8pICk7CisJfQorCWVwLT5mbGFncyB8PSBQUk9DX1BJRF9GTEFHX0VOVklST05fRkVU Q0hFRDsKKyAgICB9CisKICAgICBpZiAoc3RzIDwgMCkKICAgICAJcmV0dXJuIE5VTEw7CiAgICAg cmV0dXJuIGVwOwpAQCAtNTQ3LDYgKzU3OSw5IEBAIGZldGNoX3Byb2NfcGlkX3N0YXR1cyhpbnQg aWQsIHByb2NfcGlkX3QgKnByb2NfcGlkKQogCQkgICAgZXAtPnN0YXR1c19saW5lcy5zaWdibGsg PSBzdHJzZXAoJmN1cmxpbmUsICJcbiIpOwogCQkgICAgZXAtPnN0YXR1c19saW5lcy5zaWdpZ24g PSBzdHJzZXAoJmN1cmxpbmUsICJcbiIpOwogCQkgICAgZXAtPnN0YXR1c19saW5lcy5zaWdjZ3Qg PSBzdHJzZXAoJmN1cmxpbmUsICJcbiIpOworCQl9IGVsc2UKKwkJaWYgKHN0cm5jbXAoY3VybGlu ZSwgIkNwdXNfYWxsb3dlZF9saXN0OiIsIDE4KSA9PSAwKSB7CisJICAgICAgICAgICAgZXAtPnN0 YXR1c19saW5lcy5jcHVzYWxsb3dlZCA9IHN0cnNlcCgmY3VybGluZSwgIlxuIik7CiAJCSAgICBi cmVhazsgLyogd2UncmUgZG9uZSAqLwogCQl9IGVsc2UgewogCQkgICAgY3VybGluZSA9IGluZGV4 KGN1cmxpbmUsICdcbicpICsgMTsKZGlmZiAtLWdpdCBhL3BtZGFzL3Byb2MvcGNwLXBtZGEtcHJv Yy0zLjkuNC9saW51eF9wcm9jL3Byb2NfcGlkLmggYi9wbWRhcy9wcm9jL3BjcC1wbWRhLXByb2Mt My45LjQvbGludXhfcHJvYy9wcm9jX3BpZC5oCmluZGV4IDg4MzUxNTcuLmU1MTAxNjQgMTAwNjQ0 Ci0tLSBhL3BtZGFzL3Byb2MvcGNwLXBtZGEtcHJvYy0zLjkuNC9saW51eF9wcm9jL3Byb2NfcGlk LmgKKysrIGIvcG1kYXMvcHJvYy9wY3AtcG1kYS1wcm9jLTMuOS40L2xpbnV4X3Byb2MvcHJvY19w aWQuaApAQCAtNjMsOSArNjMsMTAgQEAKICNkZWZpbmUgUFJPQ19QSURfU1RBVF9UVFlOQU1FICAg ICAgICAzOQogI2RlZmluZSBQUk9DX1BJRF9TVEFUX1dDSEFOX1NZTUJPTCAgIDQwCiAjZGVmaW5l IFBST0NfUElEX1NUQVRfUFNBUkdTICAgICAgICAgNDEKKyNkZWZpbmUgUFJPQ19QSURfU1RBVF9F TlZJUk9OICAgICAgICA0MgogCiAvKiBudW1iZXIgb2YgZmllbGRzIGluIHByb2NfcGlkX3N0YXRf ZW50cnlfdCAqLwotI2RlZmluZSBOUl9QUk9DX1BJRF9TVEFUICAgICAgICAgICAgIDQyCisjZGVm aW5lIE5SX1BST0NfUElEX1NUQVQgICAgICAgICAgICAgNDMKIAogLyoKICAqIG1ldHJpY3MgaW4g L3Byb2MvPHBpZD4vc3RhdHVzCkBAIC0xMDAsOSArMTAxLDEwIEBACiAjZGVmaW5lIFBST0NfUElE X1NUQVRVU19WTUxJQiAgICAgICAgMjYKICNkZWZpbmUgUFJPQ19QSURfU1RBVFVTX1ZNU1dBUAkg ICAgIDI3CiAjZGVmaW5lIFBST0NfUElEX1NUQVRVU19USFJFQURTCSAgICAgMjgKKyNkZWZpbmUg UFJPQ19QSURfU1RBVFVTX0NQVVNBTExPV0VEICAyOQogCiAvKiBudW1iZXIgb2YgbWV0cmljcyBm cm9tIC9wcm9jLzxwaWQ+L3N0YXR1cyAqLwotI2RlZmluZSBOUl9QUk9DX1BJRF9TVEFUVVMgICAg ICAgICAgIDI3CisjZGVmaW5lIE5SX1BST0NfUElEX1NUQVRVUyAgICAgICAgICAgMzAKIAogLyoK ICAqIG1ldHJpY3MgaW4gL3Byb2MvPHBpZD4vc3RhdG0gJiAvcHJvYy88cGlkPi9tYXBzCkBAIC0x NzAsNiArMTcyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewkvKiAvcHJvYy88cGlkPi9zdGF0dXMgKi8K ICAgICBjaGFyICp2bWxpYjsKICAgICBjaGFyICp2bXN3YXA7CiAgICAgY2hhciAqdGhyZWFkczsK KyAgICBjaGFyICpjcHVzYWxsb3dlZDsKIH0gc3RhdHVzX2xpbmVzX3Q7CiAKIHR5cGVkZWYgc3Ry dWN0IHsJLyogL3Byb2MvPHBpZD4vaW8gKi8KQEAgLTE5NCw2ICsxOTcsNyBAQCBlbnVtIHsKICAg ICBQUk9DX1BJRF9GTEFHX0ZEX0ZFVENIRUQJCT0gMTw8OCwKICAgICBQUk9DX1BJRF9GTEFHX0NH Uk9VUF9GRVRDSEVECT0gMTw8OSwKICAgICBQUk9DX1BJRF9GTEFHX0xBQkVMX0ZFVENIRUQJCT0g MTw8MTAsCisgICAgUFJPQ19QSURfRkxBR19FTlZJUk9OX0ZFVENIRUQJPSAxPDwxMSwKIH07CiAK IHR5cGVkZWYgc3RydWN0IHsKQEAgLTIyOSw2ICsyMzMsMTAgQEAgdHlwZWRlZiBzdHJ1Y3Qgewog ICAgIGludAkJCXdjaGFuX2J1ZmxlbjsKICAgICBjaGFyCQkqd2NoYW5fYnVmOwogCisgICAgLyog L3Byb2MvPHBpZD4vZW52aXJvbiBjbHVzdGVyICovCisgICAgaW50IAkJZW52aXJvbl9idWZsZW47 CisgICAgY2hhcgkJKmVudmlyb25fYnVmOworCiAgICAgLyogL3Byb2MvPHBpZD4vZmQgY2x1c3Rl ciAqLwogICAgIGludAkJCWZkX2J1ZmxlbjsKICAgICB1aW50MzJfdAkJZmRfY291bnQ7CmRpZmYg LS1naXQgYS9wbWRhcy9wcm9jL3BjcC1wbWRhLXByb2MtMy45LjQvbGludXhfcHJvYy9yb290X3By b2MgYi9wbWRhcy9wcm9jL3BjcC1wbWRhLXByb2MtMy45LjQvbGludXhfcHJvYy9yb290X3Byb2MK aW5kZXggYjllN2I0Ny4uOGMxZDU2NyAxMDA2NDQKLS0tIGEvcG1kYXMvcHJvYy9wY3AtcG1kYS1w cm9jLTMuOS40L2xpbnV4X3Byb2Mvcm9vdF9wcm9jCisrKyBiL3BtZGFzL3Byb2MvcGNwLXBtZGEt cHJvYy0zLjkuNC9saW51eF9wcm9jL3Jvb3RfcHJvYwpAQCAtNzAsMTEgKzcwLDEzIEBAIHByb2Mu cHNpbmZvIHsKICAgICB0dHluYW1lCQlQUk9DOjg6MzkKICAgICB3Y2hhbl9zICAgICAgICAgICAg IFBST0M6ODo0MAogICAgIHBzYXJncwkJUFJPQzo4OjQxCisgICAgZW52aXJvbgkJUFJPQzo4OjQy CiAgICAgc2lnbmFsX3MgICAgICAgICAgICBQUk9DOjI0OjE2CiAgICAgYmxvY2tlZF9zICAgICAg ICAgICBQUk9DOjI0OjE3CiAgICAgc2lnaWdub3JlX3MgICAgICAgICBQUk9DOjI0OjE4CiAgICAg c2lnY2F0Y2hfcyAgICAgICAgICBQUk9DOjI0OjE5CiAgICAgdGhyZWFkcwkJUFJPQzoyNDoyOAor ICAgIGNwdXNhbGxvd2VkIFBST0M6MjQ6MjkKICAgICBjZ3JvdXBzCQlQUk9DOjExOjAKICAgICBs YWJlbHMJCVBST0M6MTI6MAogfQo= --_004_CFD8619AC63Djpwhite4buffaloedu_-- From minnus@buffalo.edu Tue Jul 1 12:23:51 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id AC0557F92 for ; Tue, 1 Jul 2014 12:23:49 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 57D0530405F for ; Tue, 1 Jul 2014 10:23:46 -0700 (PDT) X-ASG-Debug-ID: 1404235422-04bdf05666749bd0001-S8gJnT Received: from mtareserve1.acsu.buffalo.edu (mtareserve6.acsu.buffalo.edu [128.205.6.4]) by cuda.sgi.com with ESMTP id bZMUbTcQAivX3Jd9 for ; Tue, 01 Jul 2014 10:23:42 -0700 (PDT) X-Barracuda-Envelope-From: minnus@buffalo.edu X-Barracuda-Apparent-Source-IP: 128.205.6.4 Received: from localmailC.acsu.buffalo.edu (localmailc.acsu.buffalo.edu [128.205.5.204]) by mtareserve1.acsu.buffalo.edu (Postfix) with ESMTP id 6968330; Tue, 1 Jul 2014 13:23:42 -0400 (EDT) Received: from localmailC.acsu.buffalo.edu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 636E8C13B; Tue, 1 Jul 2014 13:23:42 -0400 (EDT) Received: from localmailC.acsu.buffalo.edu (localhost [127.0.0.1]) by localmailC.acsu.buffalo.edu (Postfix) with ESMTP id D63EAC131; Tue, 1 Jul 2014 13:23:39 -0400 (EDT) Received: from smtp.buffalo.edu (smtp1.acsu.buffalo.edu [128.205.5.253]) by localmailC.acsu.buffalo.edu (Prefixe) with ESMTP id C5A4CC130; Tue, 1 Jul 2014 13:23:39 -0400 (EDT) Received: from gilmour.ccr.buffalo.edu (gilmour.ccr.buffalo.edu [128.205.40.13]) (Authenticated sender: minnus@buffalo.edu) by smtp.buffalo.edu (Postfix) with ESMTPSA id B7803C0DA; Tue, 1 Jul 2014 13:23:39 -0400 (EDT) Message-ID: <53B2EEA0.7020106@buffalo.edu> Date: Tue, 01 Jul 2014 13:23:44 -0400 From: Martins Innus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Nathan Scott CC: pcp@oss.sgi.com Subject: Re: [pcp] updated infiniband pmda References: <53A998F1.4050003@buffalo.edu> <1097508451.33910731.1403758163030.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: [pcp] updated infiniband pmda In-Reply-To: <1097508451.33910731.1403758163030.JavaMail.zimbra@redhat.com> Content-Type: multipart/mixed; boundary="------------070100040508020700040605" X-PM-EL-Spam-Prob: : 8% X-Barracuda-Connect: mtareserve6.acsu.buffalo.edu[128.205.6.4] X-Barracuda-Start-Time: 1404235422 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7145 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- This is a multi-part message in MIME format. --------------070100040508020700040605 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Nathan, On 6/26/14, 12:49 AM, Nathan Scott wrote: > > - pst->needupdate = 3; /* 0x1 for portinfo, 0x2 for perfdata */ > + pst->needupdate = 11; /* 0x1 for portinfo, 0x2 for perfdata, 0x8 for switch > > e.g. pst->needupdate = IB_PORTINFO | IB_PERFDATA | IB_SWITCH > > (with appropriate #defines, better names, etc) OK, done. > > gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -c -o ib.o ib.c > ib.c: In function ‘ib_fetch_val’: > ib.c:666: warning: pointer targets in passing argument 1 of ‘mad_decode_field’ differ in signedness > /usr/include/infiniband/mad.h:1170: note: expected ‘uint8_t *’ but argument is of type ‘char *’ > ib.c:667: warning: pointer targets in passing argument 1 of ‘mad_decode_field’ differ in signedness > /usr/include/infiniband/mad.h:1170: note: expected ‘uint8_t *’ but argument is of type ‘char *’ > ib.c:893: warning: pointer targets in passing argument 1 of ‘mad_decode_field’ differ in signedness > /usr/include/infiniband/mad.h:1170: note: expected ‘uint8_t *’ but argument is of type ‘char *’ > ib.c:899: warning: pointer targets in passing argument 1 of ‘mad_decode_field’ differ in signedness > /usr/include/infiniband/mad.h:1170: note: expected ‘uint8_t *’ but argument is of type ‘char *’ > ib.c:904: warning: pointer targets in passing argument 1 of ‘mad_decode_field’ differ in signedness > /usr/include/infiniband/mad.h:1170: note: expected ‘uint8_t *’ but argument is of type ‘char *’ > ib.c:910: warning: pointer targets in passing argument 1 of ‘mad_decode_field’ differ in signedness > /usr/include/infiniband/mad.h:1170: note: expected ‘uint8_t *’ but argument is of type ‘char *’ > ib.c:917: warning: pointer targets in passing argument 1 of ‘mad_decode_field’ differ in signedness > /usr/include/infiniband/mad.h:1170: note: expected ‘uint8_t *’ but argument is of type ‘char *’ > ib.c:919: warning: pointer targets in passing argument 1 of ‘mad_decode_field’ differ in signedness > /usr/include/infiniband/mad.h:1170: note: expected ‘uint8_t *’ but argument is of type ‘char *’ > ib.c:927: warning: pointer targets in passing argument 1 of ‘mad_decode_field’ differ in signedness > /usr/include/infiniband/mad.h:1170: note: expected ‘uint8_t *’ but argument is of type ‘char *’ > ib.c:929: warning: pointer targets in passing argument 1 of ‘mad_decode_field’ differ in signedness > /usr/include/infiniband/mad.h:1170: note: expected ‘uint8_t *’ but argument is of type ‘char *’ Fixed. Also included the help file. Thanks Martins --------------070100040508020700040605 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="help" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="help" IwojIENvcHlyaWdodCAoYykgMjAwNywyMDA4IFNpbGljb24gR3JhcGhpY3MsIEluYy4gIEFs bCBSaWdodHMgUmVzZXJ2ZWQuCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAojIHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 IHRoZQojIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIKIyBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoj CiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsIGJ1dAojIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZCiMgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCiMgZm9yIG1vcmUgZGV0YWlscy4KIwojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCiMgd2l0 aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLiwKIyA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBN QSAgMDIxMTEtMTMwNyBVU0EKCkAgaW5maW5pYmFuZC5oY2EudHlwZSBOb2RlIHR5cGUKTm9k ZSB0eXBlOiBjaGFubmVsIGFkYXB0ZXIgKENBKSwgc3dpdGNoLCByb3V0ZXIgZXRjCkAgaW5m aW5pYmFuZC5oY2EuY2FfdHlwZSBIQ0EgdHlwZQpIQ0EgdHlwZSwgZS5nLiBNVDIzMTA4LApA IGluZmluaWJhbmQuaGNhLm51bXBvcnRzIE51bWJlciBvZiBwb3J0cyBvbiBIQ0EKTnVtYmVy IG9mIHBvcnRzIG9uIEhDQQpAIGluZmluaWJhbmQuaGNhLmZ3X3ZlciBWZXJzaW9uIG9mIEhD QSBmaXJtd2FyZQpWZXJzaW9uIG9mIEhDQSBmaXJtd2FyZQpAIGluZmluaWJhbmQuaGNhLmh3 X3ZlciBWZXJzaW9uIG9mIEhDQSBoYXJkd2FyZQpWZXJzaW9uIG9mIEhDQSBoYXJkd2FyZQpA IGluZmluaWJhbmQuaGNhLm5vZGVfZ3VpZCBOb2RlJ3MgR2xvYmFsIFVuaXF1ZSBJZGVudGlm aWVyCk5vZGUncyBHbG9iYWwgVW5pcXVlIElkZW50aWZpZXIgLSA2NCBiaXQgaW50ZWdlciB0 byByZWZlciB0byB0aGUgbm9kZQpAIGluZmluaWJhbmQuaGNhLnN5c3RlbV9ndWlkIFN5c3Rl bSdzIEdsb2JhbCBVbmlxdWUgSWRlbnRpZmllcgpTeXN0ZW0ncyBHbG9iYWwgVW5pcXVlIElk ZW50aWZpZXIgLSA2NCBiaXQgaW50ZWdlciB0byByZWZlciB0byB0aGUgc3lzdGVtCkAgaW5m aW5pYmFuZC5wb3J0Lmd1aWQgUG9ydCdzIEdsb2JhbCBVbmlxdWUgSWRlbnRpZmllcgpQb3J0 J3MgR2xvYmFsIFVuaXF1ZSBJZGVudGlmaWVyIC0gNjQgYml0IGludGVnZXIgdG8gcmVmZXIg dG8gdGhlIHBvcnQKQCBpbmZpbmliYW5kLnBvcnQuZ2lkX3ByZWZpeCBHSUQgcHJlZml4CkdJ RCBwcmVmaXgsIGFzc2lnbmVkIGJ5IHN1Ym5ldCBtYW5hZ2VyCkAgaW5maW5pYmFuZC5wb3J0 LmxpZCBQb3J0J3MgTG9jYWwgSWRlbnRpZmllcgpQb3J0J3MgTG9jYWwgSWRlbnRpZmllciwg YXNzaWduZWQgYnkgc3VibmV0IG1hbmFnZXIKQCBpbmZpbmliYW5kLnBvcnQuc3RhdGUgUG9y dCdzIHN0YXRlClBvcnQncyBzdGF0ZSAtIGNhbiBiZSBBY3RpdmUsIERvd24sIE5vQ2hhbmdl LCBBcm1lZCBvciBJbml0aWFsaXplCkAgaW5maW5pYmFuZC5wb3J0LnBoeXN0YXRlIFBvcnQn cyBwaHlzaWNhbCBzdGF0ZQpQb3J0J3MgcGh5c2ljYWwgc3RhdGUKQCBpbmZpbmliYW5kLnBv cnQucmF0ZSBQb3J0J3MgRGF0YSBSYXRlClBvcnQncyBEYXRhIFJhdGU6IDIsIDUsIDEwIG9y IDIwIEdicHMKQCBpbmZpbmliYW5kLnBvcnQuY2FwYWJpbGl0aWVzIFBvcnQncyBjYXBhYmls aXRpZXMKUG9ydCdzIGNhcGFiaWxpdGllcy4KQCBpbmZpbmliYW5kLnBvcnQubGlua3NwZWVk IEJhc2UgbGluayBzcGVlZCBvZiB0aGUgcG9ydC4KVGhpcyBpcyBhIHN0cmluZyB3aGljaCBy ZXByZXNlbnRzIHRoZSBiYXNlIGxpbmsgc3BlZWQgb2YgdGhlIHBvcnQuCk11bHRpcGx5aW5n IGxpbmsgc3BlZWQgYnkgbGluayB3aWR0aCBnaXZlcyBwb3J0J3MgZGF0YSByYXRlLgpAIGlu ZmluaWJhbmQucG9ydC5saW5rd2lkdGggUG9ydCdzIGxpbmsgd2lkdGguCk51bWJlciBvZiBi aS1kaXJlY3Rpb25hbCBJbmZpbmliYW5kIGxpbmtzIGFjdGl2ZSBvbiB0aGUgcG9ydC4KQWxz byBrbm93biBhcyBYLWZhY3RvciwgYXMgaW4gMVgsIDRYLCAxMlguCkAgaW5maW5pYmFuZC5w b3J0LmluLmJ5dGVzIEJ5dGVzIHJlY2VpdmVkCkNvdW50ZXIgb2YgZGF0YSBvY3RldHMgcmVj ZWl2ZWQgb24gYWxsIFZMcyBhdCB0aGUgcG9ydC4gVGhpcyAKaW5jbHVkZXMgYWxsIG9jdGV0 cyBiZXR3ZWVuIChhbmQgbm90IGluY2x1ZGluZykgdGhlIHN0YXJ0IG9mIApwYWNrZXQgZGVs aW1pdGVyIGFuZCB0aGUgVkNSQywgYW5kIG1heSBpbmNsdWRlIHBhY2tldHMgY29udGFpbmlu ZyBlcnJvcnMuCkl0IGV4Y2x1ZGVzIGFsbCBsaW5rIHBhY2tldHMuIAoKVGhpcyBjb3VudGVy IGlzIGltcGxlbWVudGVkIGJ5IHNhbXBsaW5nIHVuZGVybHlpbmcgc2F0dXJhdGluZyBQb3J0 UmN2RGF0YSAKY291bnRlci4gV2hlbiBhIHZhbHVlIG9mIHNhdHVyYXRlZCBjb3VudGVyIHJl YWNoZXMgcHJlZGVmaW5lZCB0aHJlc2hvbGQsCnRoZSBjb3VudGVyIGlzIHJlc2V0IGFmdGVy IGl0cyB2YWx1ZSBpcyBjb3BpZWQgaW50byBpbnRlcm5hbCBzdGF0ZS4KCkAgaW5maW5pYmFu ZC5wb3J0LmluLnBhY2tldHMgUGFja2V0cyByZWNlaXZlZApDb3VudGVyIG9mIGRhdGEgcGFj a2V0cyByZWNlaXZlZCBvbiBhbGwgVkxzIGF0IHRoZSBwb3J0LiBUaGlzIAptYXkgaW5jbHVk ZSBwYWNrZXRzIGNvbnRhaW5pbmcgZXJyb3JzIGJ1dCBleGNsdWRlcyBhbGwgbGluayBwYWNr ZXRzLiAKCkAgaW5maW5pYmFuZC5wb3J0LmluLmVycm9ycy5kcm9wIFBhY2tldHMgZHJvcHBl ZCBkdWUgdG8gZXJyb3JzCk51bWJlciBvZiBwYWNrZXRzIHJlY2VpdmVkIG9uIHRoZSBwb3J0 IHRoYXQgd2VyZSBkaXNjYXJkZWQgYmVjYXVzZSB0aGV5IApjb3VsZCBub3QgYmUgZm9yd2Fy ZGVkIGJ5IHRoZSBzd2l0Y2ggcmVsYXkgZHVlIHRvIERMSUQgbWFwcGluZywgVkwgbWFwcGlu ZwpvciBsb29waW5nLiBJbXBsZW1lbnRlZCBieSBzYW1wbGluZyAxNiBiaXQgUG9ydFJjdlN3 aXRjaFJlbGF5RXJyb3JzIApjb3VudGVyLgoKQCBpbmZpbmliYW5kLnBvcnQuaW4uZXJyb3Jz LmZpbHRlciBQYWNrZXRzIGZpbHRlcmVkIG91dApOdW1iZXIgb2YgcGFja2V0cyByZWNlaXZl ZCBieSB0aGUgcG9ydCB0aGF0IHdlcmUgZGlzY2FyZGVkIGJlY2F1c2UKaXQgd2FzIGEgcmF3 IHBhY2tldCBhbmQgRmlsdGVyUmF3SW5ib3VuZCBpcyBlbmFibGVkIG9yIGJlY2F1c2UgClBh cnRpdGlvbkVuZm9yY2VtZW50SW5ib3VuZCBpcyBlbmFibGVkIGFuZCBwYWNrZXQgZmFpbGVk IHBhcnRpdGlvbiAKa2V5IGNoZWNrIG9yIElQIHZlcnNpb24gY2hlY2suIEltcGxlbWVudGVk IGJ5IHNhbXBsaW5nICA4IGJpdCAKUG9ydFJjdkNvbnN0cmFpbnRFcnJvcnMgY291bnRlci4K CkAgaW5maW5pYmFuZC5wb3J0LmluLmVycm9ycy5sb2NhbCBQYWNrZXRzIHdpdGggZXJyb3Jz CkNvdW50ZXIgb2YgcGFja2V0cyBjb250YWluaW5nIGxvY2FsIHBoeXNpY2FsIGVycm9ycywg bWFsZm9ybWVkIGRhdGEgb3IgCmxpbmsgcGFja2V0cyBvciBwYWNrZXRzIGRpc2NhcmRlZCBk dWUgdG8gYnVmZmVyIG92ZXJydW4uIEltcGxlbWVudGVkIGJ5CnNhbXBsaW5nIDE2IGJpdCBQ b3J0UmN2RXJyb3JzIGNvdW50ZXIuCgpAIGluZmluaWJhbmQucG9ydC5pbi5lcnJvcnMucmVt b3RlIFBhY2tldHMgd2l0aCBFQlAgZGVsaW1pdGVyLgpOdW1iZXIgb2YgcGFja2V0cyBtYXJr ZWQgd2l0aCBFbmQgQmFkIFBhY2tldCBkZWxpbWl0ZWQgcmVjZWl2ZWQgYnkKdGhlIHBvcnQu IEltcGxlbWVudGVkIGJ5IHNhbXBsaW5nIDE2IGJpdCBQb3J0UmN2UmVtb3RlUGh5c2ljYWxl cnJvcnMgCmNvdW50ZXIuCgpAIGluZmluaWJhbmQucG9ydC5vdXQuYnl0ZXMgQnl0ZXMgdHJh bnNtaXR0ZWQKQ291bnRlciBvZiBkYXRhIG9jdGV0cywgdHJhbnNtaXR0ZWQgb24gYWxsIFZM cyBmcm9tIHRoZSBwb3J0LiBUaGlzIAppbmNsdWRlcyBhbGwgb2N0ZXRzIGJldHdlZW4gKGFu ZCBub3QgaW5jbHVkaW5nKSB0aGUgc3RhcnQgb2YgCnBhY2tldCBkZWxpbWl0ZXIgYW5kIHRo ZSBWQ1JDLCBhbmQgbWF5IGluY2x1ZGUgcGFja2V0cyBjb250YWluaW5nIGVycm9ycy4KSXQg ZXhjbHVkZXMgYWxsIGxpbmsgcGFja2V0cy4gCgpUaGlzIGNvdW50ZXIgaXMgaW1wbGVtZW50 ZWQgYnkgc2FtcGxpbmcgdW5kZXJseWluZyBzYXR1cmF0aW5nIFBvcnRYbXREYXRhIApjb3Vu dGVyLiBXaGVuIGEgdmFsdWUgb2Ygc2F0dXJhdGVkIGNvdW50ZXIgcmVhY2hlcyBwcmVkZWZp bmVkIHRocmVzaG9sZCwKdGhlIGNvdW50ZXIgaXMgcmVzZXQgYWZ0ZXIgaXRzIHZhbHVlIGlz IGNvcGllZCBpbnRvIGludGVybmFsIHN0YXRlLgoKQCBpbmZpbmliYW5kLnBvcnQub3V0LnBh Y2tldHMgUGFja2V0cyB0cmFuc21pdHRlZApDb3VudGVyIG9mIGRhdGEgcGFja2V0cyB0cmFu c21pdHRlZCBvbiBhbGwgVkxzIGZyb20gdGhlIHBvcnQuIFRoaXMgCm1heSBpbmNsdWRlIHBh Y2tldHMgY29udGFpbmluZyBlcnJvcnMgYnV0IGV4Y2x1ZGVzIGFsbCBsaW5rIHBhY2tldHMu IAoKQCBpbmZpbmliYW5kLnBvcnQub3V0LmVycm9ycy5kcm9wIFBhY2tldHMgZHJvcHBlZCB3 aXRob3V0IHRyYW5zbWl0dGluZwpOdW1iZXIgb2Ygb3V0Ym91bmQgcGFja2V0cyB3aGljaCB3 ZXJlIGRyb3BlZCBiZWNhdXNlIHBvcnQgaXMgZG93bgpvciBjb25nZXN0ZWQuIEltcGxlbWVu dGVkIGJ5IHNhbXBsaW5nIDE2IGJpdCBQb3J0WG10RGlzY2FyZCBjb3VudGVyLgoKQCBpbmZp bmliYW5kLnBvcnQub3V0LmVycm9ycy5maWx0ZXIgUGFja2V0cyBmaWx0ZXJlZCBvdXQgYmVm b3JlIHRyYW5zbWl0dGluZwpOdW1iZXIgb2YgcGFja2V0cyBub3QgdHJhbnNtaXR0ZWQgYnkg dGhlIHBvcnQgYmVjYXVzZQppdCB3YXMgYSByYXcgcGFja2V0IGFuZCBGaWx0ZXJSYXdJbmJv dW5kIGlzIGVuYWJsZWQgb3IgYmVjYXVzZSAKUGFydGl0aW9uRW5mb3JjZW1lbnRJbmJvdW5k IGlzIGVuYWJsZWQgYW5kIHBhY2tldCBmYWlsZWQgcGFydGl0aW9uIAprZXkgY2hlY2sgb3Ig SVAgdmVyc2lvbiBjaGVjay4gSW1wbGVtZW50ZWQgYnkgc2FtcGxpbmcgIDggYml0IApQb3J0 WG1pdENvbnN0cmFpbnRFcnJvcnMgY291bnRlci4KCkAgaW5maW5pYmFuZC5wb3J0LnRvdGFs LmJ5dGVzIEJ5dGVzIHRyYW5zbWl0dGVkIGFuZCByZWNlaXZlZApDdW11bGF0aXZlIHZhbHVl IG9mIGluZmluaWJhbmQucG9ydC5pbi5ieXRlcyBhbmQgCmluZmluaWJhbmQucG9ydC5vdXQu Ynl0ZXMsIHByb3ZpZGVkIGZvciBjb252ZW5pZW5jZS4KCkAgaW5maW5pYmFuZC5wb3J0LnRv dGFsLnBhY2tldHMgUGFja2V0cyB0cmFuc21pdHRlZCBhbmQgcmVjZWl2ZWQKQ3VtdWxhdGl2 ZSB2YWx1ZSBvZiBpbmZpbmliYW5kLnBvcnQuaW4ucGFja2V0cyBhbmQgCmluZmluaWJhbmQu cG9ydC5vdXQucGFja2V0cywgcHJvdmlkZWQgZm9yIGNvbnZlbmllbmNlLgoKQCBpbmZpbmli YW5kLnBvcnQudG90YWwuZXJyb3JzLmRyb3AgUGFja2V0IGRyb3BwZWQKQ3VtdWxhdGl2ZSBj b3VudGVyIG9mIGluZmluaWJhbmQucG9ydC5pbi5lcnJvcnMuZHJvcCBhbmQgCmluZmluaWJh bmQub3V0LmVycm9ycy5kcm9wcy4KCkAgaW5maW5pYmFuZC5wb3J0LnRvdGFsLmVycm9ycy5m aWx0ZXIgUGFja2V0IGZpbHRlcmVkIG91dApDdW11bGF0aXZlIGNvdW50ZXIgb2YgaW5maW5p YmFuZC5wb3J0LmluLmVycm9ycy5maWx0ZXIgYW5kIAppbmZpbmliYW5kLm91dC5lcnJvcnMu ZmlsdGVyLgoKQCBpbmZpbmliYW5kLnBvcnQudG90YWwuZXJyb3JzLmxpbmsgTGluayBkb3du ZWQKTnVtYmVyIG9mIHRpbWVzIFBvcnQgVHJhaW5pbmcgc3RhdGUgbWFjaGluZSBoYXMgZmFp bGVkIHRvIApjb21wbGV0ZSBsaW5rIHJlY292ZXJ5IHByb2Nlc3MgYW5kIGRvd25lZCB0aGUg bGluay4gSW1wbGVtZW50ZWQgYnkgCnNhbXBsaW5nIDggYml0IExpbmtEb3duZWRDb3VudGVy LgoKQCBpbmZpbmliYW5kLnBvcnQudG90YWwuZXJyb3JzLnJlY292ZXIgU3VjY2Vzc2Z1bCBy ZWNvdmVyaWVzCk51bWJlciBvZiB0aW1lcyBQb3J0IFRyYWluaW5nIHN0YXRlIG1hY2hpbmUg aGFzIG1hbmFnZWQgc3VjY2Vzc2Z1bGx5CmNvbXBsZXRlIGxpbmsgcmVjb3ZlcnkgcHJvY2Vz cy4gSW1wbGVtZW50ZWQgYnkgc2FtcGxpbmcgOCBiaXQgCkxpbmtFcnJvclJlY292ZXJ5Q291 bnRlci4KCkAgaW5maW5pYmFuZC5wb3J0LnRvdGFsLmVycm9ycy5pbnRlZ3JpdHkgRXhjZXNz aXZlIGxvY2FsIHBoeXNpY2FsIGVycm9ycwpOdW1iZXIgb2YgdGltZXMgdGhlIGNvdW50IG9m IGxvY2FsIHBoeXNpY2FsIGVycm9ycyBleGNlZWRlZCB0aGUgdGhyZXNob2xkLgpJbXBsZW1l bnRlZCBieSBzYW1wbGluZyA0IGJpdCBMb2NhbExpbmtJbnRlZ3JpdHlFcnJvcnMgY291bnRl ci4KCkAgaW5maW5pYmFuZC5wb3J0LnRvdGFsLmVycm9ycy52bDE1IERyb3BwZWQgcGFja2V0 cyB0byBWTDE1Ck51bWJlciBvZiB0aW1lcyBwYWNrZXRzIHRvIFZMMTUgKG1hbmFnZW1lbnQg dmlydHVhbCBsaW5lKSB3YXMgZHJvcHBlZApkdWUgdG8gcmVzb3VyY2UgbGltaXRhdGlvbnMu IEltcGxlbWVudGVkIGJ5IHNhbXBsaW5nIDE2IGJpdCBWTDE1RHJvcHBlZApjb3VudGVyLgoK QCBpbmZpbmliYW5kLnBvcnQudG90YWwuZXJyb3JzLm92ZXJydW4gRXhjZXNzaXZlIEJ1ZmZl ciBPdmVycnVucwpUaGUgbnVtYmVyIG9mIHRpbWVzIGJ1ZmZlciBvdmVycnVuIGVycm9ycyBo YWQgcGVyc2lzdGVkIG92ZXIgbXVsdGlwbGUgCmZsb3cgY29udHJvbCB1cGRhdGUgdGltZXMu ICBJbXBsZW1lbnRlZCBieSBzYW1wbGluZyA0IGJpdCAKRXhjZXNzaXZlQnVmZmVyT3ZlcnJ1 biBjb3VudGVyLgoKQCBpbmZpbmliYW5kLnBvcnQudG90YWwuZXJyb3JzLnN5bWJvbCBUb3Rh bCBudW1iZXIgb2YgbWlub3IgbGluayBlcnJvcnMKVG90YWwgbnVtYmVyIG9mIG1pbm9yIGxp bmsgZXJyb3JzIGRldGVjdGVkIG9uIG9uZSBvciBtb3JlIHBoeXNpY2FsIGxpbmVzLgpJbXBs ZW1lbnRlZCBieSBzYW1wbGluZyAxNiBiaXQgU3ltYm9sRXJyb3JDb3VudGVyLgoKQCBpbmZp bmliYW5kLmNvbnRyb2wucXVlcnlfdGltZW91dCBUaW1lb3V0IGZvciBNQUQgcGVycXVlcnkK VGltZW91dCBpbiBtaWxsaXNlY29uZHMgZm9yIE1BRCBycGNzLiBEZWZhdWx0IHZhbHVlIGlz IDEwMDAgbWlsbGlzZWNvbmRzLgpUaW1lb3V0IGNhbiBiZSBzZXQgcGVyIHBvcnQuCgpAIGlu ZmluaWJhbmQuY29udHJvbC5oaXdhdCBDb3VudGVyIHRocmVzaG9sZCB2YWx1ZXMKVGhyZXNo b2xkIHZhbHVlcyBmb3IgZWFjaCBNQUQgcGVyZm9ybWFuY2UgY291bnRlci4gRHVlIHRvIHNh dHVyYXRpbmcKbmF0dXJlIG9mIHRoZSBjb3VudGVycyB0aGV5J3JlIHJlc2V0IHdoZW4gdmFs dWUgb2YgYSBwYXJ0aWN1bGFyIGNvdW50ZXIKZ2V0cyBhYm92ZSBhIHRocmVzaG9sZC4gU2V0 dGluZyB0aHJlc2hvbGQgdG8gdGhlIG1heGltdW0gdmFsdWUgZGlzYWJsZXMKdGhlIHJlc2V0 IG1lY2hhbmlzbS4KCkAgaW5maW5pYmFuZC5wb3J0LnN3aXRjaC5pbi5ieXRlcyBCeXRlcyBy ZWNlaXZlZCAodXNpbmcgc3dpdGNoIGNvdW50ZXIpCkNvdW50ZXIgZm9yIHRoZSBieXRlcyBy ZWNlaXZlZCBieSBhIHBvcnQuIFRoaXMgaXMgY2FsY3VsYXRlZCB1c2luZyB0aGUgY291bnRl cgpvZiB0aGUgc3dpdGNoIHRoZSBwb3J0IGlzIGF0dGFjaGVkIHRvLgoKQCBpbmZpbmliYW5k LnBvcnQuc3dpdGNoLmluLnBhY2tldHMgUGFja2V0cyByZWNlaXZlZCAodXNpbmcgc3dpdGNo IGNvdW50ZXIpCkNvdW50ZXIgZm9yIHRoZSBwYWNrZXRzIHJlY2VpdmVkIGJ5IGEgcG9ydC4g VGhpcyBpcyBjYWxjdWxhdGVkIHVzaW5nIHRoZQpjb3VudGVyIG9mIHRoZSBzd2l0Y2ggdGhl IHBvcnQgaXMgYXR0YWNoZWQgdG8uCgpAIGluZmluaWJhbmQucG9ydC5zd2l0Y2gub3V0LmJ5 dGVzIEJ5dGVzIHRyYW5zbWl0dGVkICh1c2luZyBzd2l0Y2ggY291bnRlcikKQ291bnRlciBm b3IgdGhlIGJ5dGVzIHRyYW5zbWl0dGVkIGJ5IGEgcG9ydC4gVGhpcyBpcyBjYWxjdWxhdGVk IHVzaW5nIHRoZQpjb3VudGVyIG9mIHRoZSBzd2l0Y2ggdGhlIHBvcnQgaXMgYXR0YWNoZWQg dG8uCgpAIGluZmluaWJhbmQucG9ydC5zd2l0Y2gub3V0LnBhY2tldHMgUGFja2V0cyB0cmFu c21pdHRlZCAodXNpbmcgc3dpdGNoIGNvdW50ZXIpCkNvdW50ZXIgZm9yIHRoZSBwYWNrZXRz IHRyYW5zbWl0dGVkIGJ5IGEgcG9ydC4gVGhpcyBpcyBjYWxjdWxhdGVkIHVzaW5nIHRoZQpj b3VudGVyIG9mIHRoZSBzd2l0Y2ggdGhlIHBvcnQgaXMgYXR0YWNoZWQgdG8uCgpAIGluZmlu aWJhbmQucG9ydC5zd2l0Y2gudG90YWwuYnl0ZXMgQnl0ZXMgdHJhbnNtaXR0ZWQgYW5kIHJl Y2VpdmVkICh1c2luZyBzd2l0Y2ggY291bnRlcnMpCkN1bXVsYXRpdmUgdmFsdWUgb2YgaW5m aW5pYmFuZC5wb3J0LnN3aXRjaC5pbi5ieXRlcyBhbmQgCmluZmluaWJhbmQucG9ydC5zd2l0 Y2gub3V0LmJ5dGVzLCBwcm92aWRlZCBmb3IgY29udmVuaWVuY2UuCgpAIGluZmluaWJhbmQu cG9ydC5zd2l0Y2gudG90YWwucGFja2V0cyBQYWNrZXRzIHRyYW5zbWl0dGVkIGFuZCByZWNl aXZlZCAodXNpbmcgc3dpdGNoIGNvdW50ZXJzKQpDdW11bGF0aXZlIHZhbHVlIG9mIGluZmlu aWJhbmQucG9ydC5zd2l0Y2guaW4ucGFja2V0cyBhbmQgCmluZmluaWJhbmQucG9ydC5zd2l0 Y2gub3V0LnBhY2tldHMsIHByb3ZpZGVkIGZvciBjb252ZW5pZW5jZS4K --------------070100040508020700040605 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="ib.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ib.c" LyoKICogQ29weXJpZ2h0IChDKSAyMDA4IFNpbGljb24gR3JhcGhpY3MsIEluYy4gQWxsIFJp Z2h0cyBSZXNlcnZlZC4KICogCiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CiAqIHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 IHRoZQogKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2Yg dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAqIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CiAqIAogKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwgYnV0CiAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZCiAqIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQogKiBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBJQiBwYXJ0IG9mIHRo ZSBQTURBIC0gaW5pdGlhbGl6YXRpb24sIGZldGNoaW5nIGV0Yy4KICovCiNpbmNsdWRlICJp YnBtZGEuaCIKI2luY2x1ZGUgPGluZmluaWJhbmQvdW1hZC5oPgojaW5jbHVkZSA8aW5maW5p YmFuZC9tYWQuaD4KI2luY2x1ZGUgPGN0eXBlLmg+CgojZGVmaW5lIElCUE1EQV9NQVhfSENB UyAoMTYpCgp0eXBlZGVmIHN0cnVjdCBsb2NhbF9wb3J0X3MgewoJLyoKCSAqIENhY2hlIHRo ZSBjYV9uYW1lIGFuZCBwb3J0bnVtIHRvIGF2b2lkIGEgYnVnIGluIGxpYmlidW1hZCB0aGF0 CgkgKiBsZWFrcyBtZW1vcnkgd2hlbiB1bWFkX3BvcnRfZ2V0KCkgaXMgY2FsbGVkIG92ZXIg YW5kIG92ZXIuCgkgKiBXaXRoIGNhX25hbWUgYW5kIHBvcnRudW0gd2UgY2FuIHNhZmVseSBk byB1bWFkX3BvcnRfcmVsZWFzZSgpCgkgKiBmaXJzdCBhbmQgdGhlbiB1bWFkX3BvcnRfZ2V0 KCkgd2l0aG91dCBmZWFyIHRoYXQgc29tZSBmdXR1cmUKCSAqIHZlcnNpb24gb2YgcmVsZWFz ZSgpIHdpbGwgZGVhbGxvY2F0ZSBwb3J0LT5jYV9uYW1lIGFuZAoJICogcG9ydC0+cG9ydG51 bS4KCSAqLwoJY2hhciBjYV9uYW1lW1VNQURfQ0FfTkFNRV9MRU5dOwoJaW50IHBvcnRudW07 Cgl1bWFkX3BvcnRfdCAqdW1wOwoJdm9pZCAqIGhuZGw7CglpbnQgbmVlZHN1cGRhdGU7Cn0g bG9jYWxfcG9ydF90OwoKLyogdW1hZF9jYV90IHN0YXJ0cyB3aXRoIGEgbmFtZSB3aGljaCBp cyBnb29kIGVub3VnaCBmb3IgdXMgdG8gdXNlICovCnR5cGVkZWYgc3RydWN0IGhjYV9zdGF0 ZV9zIHsKICAgIHVtYWRfY2FfdCBjYTsKICAgIGxvY2FsX3BvcnRfdCBscG9ydHNbVU1BRF9D QV9NQVhfUE9SVFNdOwp9IGhjYV9zdGF0ZV90OwoKLyogSUIgQXJjaGl0ZWN0dXJlIHJlbCAx LjIgZGVtYW5kcyB0aGF0IHBlcmZvcm1hbmNlIGNvdW50ZXJzCiAqIG11c3QgcGxhdGVhdSBv bmNlIHRoZXkgcmVhY2ggMl4zMi4gVGhpcyBzdHJ1Y3R1cmUgaXMgdXNlZAogKiB0byB0cmFj ayB0aGUgY291bnRlcnMgYW5kIHJlc2V0IHRoZW0gd2hlbiB0aGV5IGdldCBjbG9zZSB0bwog KiB0aGUgbWFnaWMgYm91bmRhcnkgKi8KdHlwZWRlZiBzdHJ1Y3QgbWFkX2NvdW50ZXJfcyB7 Cgl1aW50NjRfdCBhY2N1bTsgLyogQWNjdW11bGF0ZWQgdmFsdWUgKi8KCXVpbnQzMl90IHBy ZXY7IC8qIFByZXZpb3VzIHZhbHVlIG9mIHRoZSBjb3VudGVyICovCgl1aW50MzJfdCBjdXI7 IC8qIEN1cnJlbnQgdmFsdWUsIG9ubHkgdmFsaWQgZHVyaW5nIGl0ZXJhdGlvbiAqLwoJdWlu dDMyX3QgaXN2YWxpZDsgLyogSXMgY3VycmVudCB2YWx1ZSB2YWxpZD8gKi8KfSBtYWRfY291 bnRlcl90OwoKdHlwZWRlZiBzdHJ1Y3QgbWFkX2NudF9kZXNjX3MgewoJZW51bSBNQURfRklF TERTIG1hZGlkOyAvKiBJRCBmb3IgdGhlIGNvdW50ZXIgKi8KCWNoYXIgKm5hbWU7CglpbnQg cmVzZXRtYXNrOyAvKiBSZXNldCBtYXNrIGZvciBwb3J0X3BlcmZvcm1hbmNlX3Jlc2V0ICov Cgl1aW50MzJfdCBoaXdhdDsgLyogSWYgY3VycmVudCB2YWx1ZSBpcyBvdmVyIGhpd2F0IG1h cmssIHJlc2V0IGl0ICovCglpbnQgbXVsdGlwbGllcjsKfSBtYWRfY250X2Rlc2NfdDsKCiNk ZWZpbmUgTUFEREVTQ19JTklUKGlkLCBtYXNrLCBzaGZ0LCBtdWwpIFwKCVsgSUJQTURBXyMj aWQgXSB7SUJfUENfIyNpZCMjX0YsICNpZCwgKDE8PG1hc2spLCAoMVU8PHNoZnQpLCBtdWx9 CgpzdGF0aWMgbWFkX2NudF9kZXNjX3QgbWFkX2NudF9kZXNjcmlwdG9yc1tdID0gewogICAg TUFEREVTQ19JTklUKEVSUl9TWU0sICAgICAgICAgMCwgMTUsIDEpLAogICAgTUFEREVTQ19J TklUKExJTktfUkVDT1ZFUlMsICAgMSwgIDcsIDEpLAogICAgTUFEREVTQ19JTklUKExJTktf RE9XTkVELCAgICAgMiwgIDcsIDEpLAogICAgTUFEREVTQ19JTklUKEVSUl9SQ1YsICAgICAg ICAgMywgMTUsIDEpLAogICAgTUFEREVTQ19JTklUKEVSUl9QSFlTUkNWLCAgICAgNCwgMTUs IDEpLAogICAgTUFEREVTQ19JTklUKEVSUl9TV0lUQ0hfUkVMLCAgNSwgMTUsIDEpLAogICAg TUFEREVTQ19JTklUKFhNVF9ESVNDQVJEUywJICA2LCAxNSwgMSksCiAgICBNQURERVNDX0lO SVQoRVJSX1hNVENPTlNUUiwJICA3LCAgNywgMSksCiAgICBNQURERVNDX0lOSVQoRVJSX1JD VkNPTlNUUiwJICA4LCAgNywgMSksCiAgICBNQURERVNDX0lOSVQoRVJSX0xPQ0FMSU5URUcs ICA5LCAgMywgMSksCiAgICBNQURERVNDX0lOSVQoRVJSX0VYQ0VTU19PVlIsIDEwLCAgMywg MSksCiAgICBNQURERVNDX0lOSVQoVkwxNV9EUk9QUEVELCAgIDExLCAxNSwgMSksCiAgICBN QURERVNDX0lOSVQoWE1UX0JZVEVTLCAgICAgIDEyLCAzMSwgNCksCiAgICBNQURERVNDX0lO SVQoUkNWX0JZVEVTLCAgICAgIDEzLCAzMSwgNCksCiAgICBNQURERVNDX0lOSVQoWE1UX1BL VFMsICAgICAgIDE0LCAzMSwgMSksCiAgICBNQURERVNDX0lOSVQoUkNWX1BLVFMsICAgICAg IDE1LCAzMSwgMSkKfTsKCiN1bmRlZiBNQURERVNDX0lOSVQKCnN0YXRpYyBjaGFyICpub2Rl X3R5cGVzW10gPSB7IlVua25vd24iLCAiQ0EiLCAiU3dpdGNoIiwgIlJvdXRlciIsICJpV0FS UCBSTklDIn07CgpzdGF0aWMgY2hhciAqcG9ydF9zdGF0ZXNbXSA9IHsKICAgICJVbmtub3du IiwKICAgICJEb3duIiwKICAgICJJbml0aWFsaXppbmciLAogICAgIkFybWVkIiwKICAgICJB Y3RpdmUiCn07CgpzdGF0aWMgY2hhciAqcG9ydF9waHlzdGF0ZXNbXSA9IHsKICAgICJObyBj aGFuZ2UiLAogICAgIlNsZWVwIiwKICAgICJQb2xsaW5nIiwKICAgICJEaXNhYmxlZCIsCiAg ICAiUG9ydCBDb25maWd1cmF0aW9uIFRyYWluaW5nIiwKICAgICJMaW5rIFVwIiwKICAgICJF cnJvciBSZWNvdmVyeSIsCiAgICAiUEhZIFRlc3QiCn07CgovKiBTaXplIGlzIGFyYml0cmFy eSwgY3VycmVudGx5IG5lZWQgMjg1IGJ5dGVzIGZvciBhbGwgY2FwcyAqLwojZGVmaW5lIElC X0FMTFBPUlRDQVBTVFJMRU4gMzIwCgp0eXBlZGVmIHN0cnVjdCBwb3J0X3N0YXRlX3MgewoJ aWJfcG9ydGlkX3QgcG9ydGlkOwoJbG9jYWxfcG9ydF90ICpscG9ydDsKCWludCBuZWVkdXBk YXRlOwoJaW50IHZhbGlkc3RhdGU7CglpbnQgcmVzZXRtYXNrOwoJaW50IHRpbWVvdXQ7Cgl1 aW50NjRfdCBndWlkOwoJaW50IHJlbXBvcnQ7Cgl1bnNpZ25lZCBjaGFyIHBlcmZkYXRhW0lC X01BRF9TSVpFXTsKCXVuc2lnbmVkIGNoYXIgcG9ydGluZm9bSUJfTUFEX1NJWkVdOwoJdWlu dDhfdCBzd2l0Y2hwZXJmZGF0YVsxMDI0XTsKICAgICAgICBtYWRfY291bnRlcl90IG1hZGNu dHNbQVJSQVlTWihtYWRfY250X2Rlc2NyaXB0b3JzKV07IAoJY2hhciBwY2FwW0lCX0FMTFBP UlRDQVBTVFJMRU5dOwp9IHBvcnRfc3RhdGVfdDsKCnN0YXRpYyBjaGFyIGNvbmZwYXRoW01B WFBBVEhMRU5dOwpzdGF0aWMgaW50IHBvcnRjb3VudDsKLyogTGluZSBudW1iZXIgd2hpbGUg cGFyc2luZyB0aGUgY29uZmlnIGZpbGUgKi8Kc3RhdGljIEZJTEUgKmZjb25mOwpzdGF0aWMg aW50IGxjbnQ7CgojZGVmaW5lIHByaW50X3BhcnNlX2Vycihsb2dsZXZlbCwgZm10LCBhcmdz Li4uKSBcCiAgICBpZiAoZmNvbmYpIHsgXAoJX19wbU5vdGlmeUVycihsb2dsZXZlbCwgIiVz KCVkKTogIiBmbXQsIGNvbmZwYXRoLCBsY250LCBhcmdzKTsgXAogICAgfSBlbHNlIHsgXAoJ X19wbU5vdGlmeUVycihsb2dsZXZlbCwgZm10LCBhcmdzKTsgXAogICAgfQoKc3RhdGljIHZv aWQKbW9uaXRvcl9ndWlkKHBtZGFJbmRvbSAqaXRhYiwgY2hhciAqbmFtZSwgbG9uZyBsb25n IGd1aWQsIGludCBycG9ydCwKCSAgICBjaGFyICpsb2NhbCwgaW50IGxwb3J0KQp7CiAgICBp bnQgaW5zdDsKICAgIGhjYV9zdGF0ZV90ICpoY2EgPSBOVUxMOwogICAgcG9ydF9zdGF0ZV90 ICpwczsKICAgIAogICAgaWYgKHBtZGFDYWNoZUxvb2t1cE5hbWUoaXRhYltJQl9IQ0FfSU5E T01dLml0X2luZG9tLCBsb2NhbCwgTlVMTCwgCgkJCSAgICh2b2lkKiopJmhjYSkgIT0gUE1E QV9DQUNIRV9BQ1RJVkUpIHsKCXByaW50X3BhcnNlX2VycihMT0dfRVJSLCAidW5rbm93biBI Q0EgJyVzJyBpbiAndmlhJyBjbGF1c2VcbiIsIGxvY2FsKTsKCXJldHVybjsKICAgIH0KCiAg ICBpZiAoKGxwb3J0ID49IFVNQURfQ0FfTUFYX1BPUlRTKSB8fCAobHBvcnQgPCAwKSkgewoJ cHJpbnRfcGFyc2VfZXJyKExPR19FUlIsIAoJCSAgICAgICAicG9ydCBudW1iZXIgJWQgaXMg b3V0IG9mIGJvdW5kcyBmb3IgSENBICVzXG4iLAoJCQlscG9ydCwgbG9jYWwpOwoJcmV0dXJu OwogICAgfQogICAgCiAgICBpZiAoaGNhLT5scG9ydHNbbHBvcnRdLmhuZGwgPT0gTlVMTCkg ewoJcHJpbnRfcGFyc2VfZXJyKExPR19FUlIsIAoJCSAgICAgICAicG9ydCAlczolZCBoYXMg ZmFpbGVkIGluaXRpYWxpemF0aW9uXG4iLAoJCQlsb2NhbCwgbHBvcnQpOwoJcmV0dXJuOwog ICAgfQogICAgCiAgICBpZiAoKHBzID0gKHBvcnRfc3RhdGVfdCAqKWNhbGxvYygxLCBzaXpl b2YocG9ydF9zdGF0ZV90KSkpID09IE5VTEwpIHsKCV9fcG1Ob3RpZnlFcnIgKExPR19FUlIs ICJPdXQgb2YgbWVtb3J5IHRvIHNhdmUgc3RhdGUgZm9yICVzXG4iLCBuYW1lKTsKCXJldHVy bjsKICAgIH0KCiAgICBwcy0+Z3VpZCA9IGd1aWQ7CiAgICBwcy0+cmVtcG9ydCA9IHJwb3J0 OwogICAgcHMtPmxwb3J0ID0gaGNhLT5scG9ydHMgKyBscG9ydDsKICAgIHBzLT5wb3J0aWQu bGlkID0gLTE7CiAgICBwcy0+dGltZW91dCA9IDEwMDA7CgogICAgaWYgKChpbnN0ID0gcG1k YUNhY2hlU3RvcmUoaXRhYltJQl9QT1JUX0lORE9NXS5pdF9pbmRvbSwKCQkJICAgIFBNREFf Q0FDSEVfQURELCBuYW1lLCBwcykpIDwgMCkgewoJX19wbU5vdGlmeUVycihMT0dfRVJSLCAi Q2Fubm90IGFkZCAlcyB0byB0aGUgY2FjaGUgLSAlc1xuIiwKCQkJbmFtZSwgcG1FcnJTdHIo aW5zdCkpOwoJZnJlZSAocHMpOwoJcmV0dXJuOwogICAgfQoKICAgIHBvcnRjb3VudCsrOwp9 CgoKc3RhdGljIGludApmb3JlYWNocG9ydChoY2Ffc3RhdGVfdCAqaHN0LCB2b2lkICgqY2Ip KGhjYV9zdGF0ZV90ICosIHVtYWRfcG9ydF90ICosIHZvaWQgKiksCgkgICAgdm9pZCAqY2xv c3VyZSkKewogICAgaW50IHBjbnQgPSBoc3QtPmNhLm51bXBvcnRzOwogICAgaW50IHA7CiAg ICBpbnQgbnBvcnRzID0gMDsKCiAgICBmb3IgKHA9MDsgKHBjbnQgPjApICYmIChwIDwgVU1B RF9DQV9NQVhfUE9SVFMpOyBwKyspIHsKCXVtYWRfcG9ydF90ICpwb3J0ID0gaHN0LT5jYS5w b3J0c1twXTsKCglpZiAocG9ydCApIHsKCSAgICBwY250LS07CgkgICAgbnBvcnRzKys7Cgkg ICAgaWYgKGNiKSB7CgkJY2IgKGhzdCwgcG9ydCwgY2xvc3VyZSk7CgkgICAgfQoJfQogICAg fQogICAgcmV0dXJuIChucG9ydHMpOwp9CgojaWZkZWYgSEFWRV9ORVRXT1JLX0JZVEVPUkRF UgojZGVmaW5lIGd1aWRfaHRvbmxsKGEpIGRvIHsgfSB3aGlsZSAoMCkgLyogbm9vcCAqLwoj ZGVmaW5lIGd1aWRfbnRvaGxsKGEpIGRvIHsgfSB3aGlsZSAoMCkgLyogbm9vcCAqLwojZWxz ZQpzdGF0aWMgdm9pZApndWlkX2h0b25sbChjaGFyICpwKQp7CiAgICBjaGFyICAgICAgICBj OwogICAgaW50ICAgICAgICAgaTsKCiAgICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAg ICAgICAgYyA9IHBbaV07CiAgICAgICAgcFtpXSA9IHBbNy1pXTsKICAgICAgICBwWzctaV0g PSBjOwogICAgfQp9CiNkZWZpbmUgZ3VpZF9udG9obGwodikgZ3VpZF9odG9ubGwodikKI2Vu ZGlmCgpzdGF0aWMgdm9pZApwcmludHBvcnRjb25maWcgKGhjYV9zdGF0ZV90ICpoc3QsIHVt YWRfcG9ydF90ICpwb3J0LCB2b2lkICphcmcpCnsKICAgIHVpbnQ2NF90IGhndWlkID0gcG9y dC0+cG9ydF9ndWlkOwoKICAgIGd1aWRfbnRvaGxsKChjaGFyICopJmhndWlkKTsKCiAgICBm cHJpbnRmIChmY29uZiwgIiVzOiVkIDB4JWxseCAlZCB2aWEgJXM6JWRcbiIsCgkgICAgIHBv cnQtPmNhX25hbWUsIHBvcnQtPnBvcnRudW0sICh1bnNpZ25lZCBsb25nIGxvbmcpaGd1aWQs CgkgICAgIHBvcnQtPnBvcnRudW0sIGhzdC0+Y2EuY2FfbmFtZSwgcG9ydC0+cG9ydG51bSk7 Cn0KCnN0YXRpYyB2b2lkCm1vbml0b3Jwb3J0KGhjYV9zdGF0ZV90ICpoc3QsIHVtYWRfcG9y dF90ICpwb3J0LCB2b2lkICphcmcpCnsKICAgIHBtZGFJbmRvbSAqaXRhYiA9IGFyZzsKICAg IHVpbnQ2NF90IGhndWlkID0gcG9ydC0+cG9ydF9ndWlkOwogICAgY2hhciBuYW1lWzEyOF07 CgogICAgZ3VpZF9udG9obGwoKGNoYXIgKikmaGd1aWQpOwogICAgc3ByaW50ZihuYW1lLCAi JXM6JWQiLCBwb3J0LT5jYV9uYW1lLCBwb3J0LT5wb3J0bnVtKTsKCiAgICBtb25pdG9yX2d1 aWQoaXRhYiwgbmFtZSwgaGd1aWQsIHBvcnQtPnBvcnRudW0sIHBvcnQtPmNhX25hbWUsIHBv cnQtPnBvcnRudW0pOwp9CgoKc3RhdGljIGludCBtZ210X2NsYXNzZXNbXSA9IHtJQl9TTUlf Q0xBU1MsIElCX1NNSV9ESVJFQ1RfQ0xBU1MsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElCX1NBX0NMQVNTLCBJQl9QRVJGT1JNQU5DRV9DTEFTU307CnN0YXRpYyB2b2lkCm9w ZW51bWFkcG9ydCAoaGNhX3N0YXRlX3QgKmhzdCwgdW1hZF9wb3J0X3QgKnBvcnQsIHZvaWQg KmFyZykKewogICAgdm9pZCAqaG5kbCA9IGFyZzsKICAgIGxvY2FsX3BvcnRfdCAqbHA7Cgog ICAgaWYgKChobmRsID0gbWFkX3JwY19vcGVuX3BvcnQocG9ydC0+Y2FfbmFtZSwgcG9ydC0+ cG9ydG51bSwgbWdtdF9jbGFzc2VzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQVJSQVlTWihtZ210X2NsYXNzZXMpKSkgPT0gTlVMTCkgewoJX19wbU5vdGlmeUVycihM T0dfRVJSLCAiQ2Fubm90IG9wZW4gcG9ydCBoYW5kbGUgZm9yICVzOiVkXG4iLAoJCQlwb3J0 LT5jYV9uYW1lLCBwb3J0LT5wb3J0bnVtKTsKICAgIH0KICAgIGxwID0gJmhzdC0+bHBvcnRz W3BvcnQtPnBvcnRudW1dOwogICAgc3RyY3B5KGxwLT5jYV9uYW1lLCBwb3J0LT5jYV9uYW1l KTsKICAgIGxwLT5wb3J0bnVtID0gcG9ydC0+cG9ydG51bTsKICAgIGxwLT51bXAgPSBwb3J0 OwogICAgbHAtPmhuZGwgPSBobmRsOwp9CgpzdGF0aWMgdm9pZApwYXJzZV9jb25maWcocG1k YUluZG9tICppdGFiKQp7CiAgICBjaGFyIGJ1ZmZlclsyMDQ4XTsKCiAgICB3aGlsZSAoKGZn ZXRzKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciktMSwgZmNvbmYpKSAhPSBOVUxMKSB7CgljaGFy ICpwOwoKCWxjbnQrKzsKCgkvKiBzdHJpcCBjb21tZW50cyAqLwoJaWYgKChwID0gc3RyY2hy KGJ1ZmZlciwnIycpKSkKCSAgICAqcD0nXDAnOwoKCWZvciAocCA9IGJ1ZmZlcjsgKnA7IHAr KykgewoJICAgIGlmICghaXNzcGFjZSAoKnApKQoJCWJyZWFrOwoJfQoKCWlmICgqcCAhPSAn XDAnKSB7CgkgICAgY2hhciBuYW1lWzEyOF07CgkgICAgbG9uZyBsb25nIGd1aWQ7CgkgICAg aW50IHJwb3J0OwoJICAgIGNoYXIgbG9jYWxbMTI4XTsKCSAgICBpbnQgbHBvcnQ7CgoJICAg IGlmIChzc2NhbmYocCwgIiVbXiBcdF0lbGx4JWQgdmlhICVbXjpdOiVkIiwKICAgICAgICAg ICAgICAgICAgICAgICBuYW1lLCAmZ3VpZCwgJnJwb3J0LCBsb2NhbCwgJmxwb3J0KSAhPSA1 KSB7CgkJX19wbU5vdGlmeUVyciAoTE9HX0VSUiwgIiVzKCVkKTogY2Fubm90IHBhcnNlIHRo ZSBsaW5lXG4iLAoJCQkgICAgICAgY29uZnBhdGgsIGxjbnQpOwoJCWNvbnRpbnVlOwoJICAg IH0KICAKCSAgICBtb25pdG9yX2d1aWQoaXRhYiwgbmFtZSwgZ3VpZCwgcnBvcnQsIGxvY2Fs LCBscG9ydCk7Cgl9CiAgICB9Cn0KCmludAppYl9sb2FkX2NvbmZpZyhjb25zdCBjaGFyICpj cCwgaW50IHdyaXRlY29uZiwgcG1kYUluZG9tICppdGFiLCB1bnNpZ25lZCBpbnQgbmluZG9t cykKewogICAgY2hhciBoY2FzW0lCUE1EQV9NQVhfSENBU11bVU1BRF9DQV9OQU1FX0xFTl07 CiAgICBoY2Ffc3RhdGVfdCAqc3QgPSBOVUxMOwogICAgaW50IGksIG47CiAgICBpbnQgKCpj bG9zZWYpKEZJTEUgKikgPSBmY2xvc2U7CgogICAgaWYgKG5pbmRvbXMgPD0gSUJfQ05UX0lO RE9NKQoJcmV0dXJuIC1FSU5WQUw7CgogICAgaWYgKHVtYWRfaW5pdCgpKSB7CglfX3BtTm90 aWZ5RXJyKExPR19FUlIsCgkJInVtYWRfaW5pdCgpIGZhaWxlZC4gIE5vIElCIGtlcm5lbCBz dXBwb3J0IG9yIGluY29ycmVjdCBBQkkgdmVyc2lvblxuIik7CglyZXR1cm4gLUVJTzsKICAg IH0KCiAgICBpZiAoKG4gPSB1bWFkX2dldF9jYXNfbmFtZXMoaGNhcywgQVJSQVlTWihoY2Fz KSkpKSB7CglpZiAoKHN0ID0gY2FsbG9jIChuLCBzaXplb2YoaGNhX3N0YXRlX3QpKSkgPT0g TlVMTCkKCSAgICByZXR1cm4gLUVOT01FTTsKICAgIH0gZWxzZQoJLyogTm8gSENBcyAqLwoJ cmV0dXJuIDA7CgogICAgLyogT3BlbiBjb25maWcgZmlsZSAtIGlmIHRoZSBleGVjdXRhYmxl IGJpdCBpcyBzZXQgdGhlbiBhc3N1bWUgdGhhdAogICAgICogdXNlciB3YW50cyBpdCB0byBi ZSBhIHNjcmlwdCBhbmQgcnVuIGl0LCBvdGhlcndpc2UgdHJ5IGxvYWRpbmcgaXQuCiAgICAg Ki8KICAgIHN0cmNweShjb25mcGF0aCwgY3ApOwogICAgaWYgKGFjY2Vzcyhjb25mcGF0aCwg Rl9PSykgPT0gMCkgewoJaWYgKHdyaXRlY29uZikgewoJICAgIF9fcG1Ob3RpZnlFcnIoTE9H X0VSUiwKCQkgICAgIkNvbmZpZyBmaWxlIGV4aXN0cyBhbmQgd3JpdGVjb25mIGFyZyB3YXMg Z2l2ZW4gdG8gcG1kYWliLiAgQWJvcnRpbmcuIik7CgkgICAgZXhpdCgxKTsKCX0KCglpZiAo YWNjZXNzKGNvbmZwYXRoLCBYX09LKSkgewoJICAgIC8qIE5vdCBhbiBleGVjdXRhYmxlLCBq dXN0IHJlYWQgaXQgKi8KCSAgICBmY29uZiA9IGZvcGVuIChjb25mcGF0aCwgInIiKTsKCX0g ZWxzZSB7CgkgICAgZmNvbmYgPSBwb3Blbihjb25mcGF0aCwgInIiKTsKCSAgICBjbG9zZWYg PSBwY2xvc2U7Cgl9IAogICAgfSBlbHNlIGlmICh3cml0ZWNvbmYpIHsKCWZjb25mID0gZm9w ZW4oY29uZnBhdGgsICJ3Iik7CiAgICB9CiAgICAvKiBlbHNlIG5vIGNvbmZpZyBmaWxlOiBK dXN0IG1vbml0b3IgbG9jYWwgcG9ydHMgKi8KCiAgICBmb3IgKGk9MDsgaSA8IG47IGkrKykg ewoJaWYgKHVtYWRfZ2V0X2NhKGhjYXNbaV0sICZzdFtpXS5jYSkgPT0gMCkgewoJICAgIGlu dCBlID0gcG1kYUNhY2hlU3RvcmUoaXRhYltJQl9IQ0FfSU5ET01dLml0X2luZG9tLCBQTURB X0NBQ0hFX0FERCwKCQkJCSAgICBzdFtpXS5jYS5jYV9uYW1lLCAmc3RbaV0uY2EpOwoKCSAg ICBpZiAoZSA8IDApIHsKCQlfX3BtTm90aWZ5RXJyKExPR19FUlIsIAoJCQkiQ2Fubm90IGFk ZCBpbnN0YW5jZSBmb3IgJXMgdG8gdGhlIGNhY2hlIC0gJXNcbiIsCgkJCSBzdFtpXS5jYS5j YV9uYW1lLCBwbUVyclN0cihlKSk7CgkJY29udGludWU7CgkgICAgfQoKCSAgICBmb3JlYWNo cG9ydChzdCtpLCBvcGVudW1hZHBvcnQsIE5VTEwpOwoJICAgIGlmIChmY29uZiA9PSBOVUxM KQoJCS8qIE5vIGNvbmZpZyBmaWxlIC0gbW9uaXRvciBsb2NhbCBwb3J0cyAqLwoJCWZvcmVh Y2hwb3J0KHN0K2ksIG1vbml0b3Jwb3J0LCBpdGFiKTsKCSAgICBpZiAod3JpdGVjb25mKQoJ CWZvcmVhY2hwb3J0KHN0K2ksIHByaW50cG9ydGNvbmZpZywgZmNvbmYpOwoJfQogICAgfQoK ICAgIGlmIChmY29uZikgewoJcGFyc2VfY29uZmlnKGl0YWIpOwoJKCpjbG9zZWYpKGZjb25m KTsKICAgIH0KCiAgICBpZiAod3JpdGVjb25mKQoJLyogQ29uZmlnIGZpbGUgaXMgbm93IHdy aXR0ZW4uICBFeGl0LiAqLwoJZXhpdCgwKTsKCiAgICBpZiAoIXBvcnRjb3VudCkgewoJX19w bU5vdGlmeUVycihMT0dfSU5GTywgIk5vIElCIHBvcnRzIGZvdW5kIHRvIG1vbml0b3IiKTsK ICAgIH0KCiAgICBpdGFiW0lCX0NOVF9JTkRPTV0uaXRfc2V0ID0gKHBtZGFJbnN0aWQgKilj YWxsb2MoQVJSQVlTWihtYWRfY250X2Rlc2NyaXB0b3JzKSwgCgkJCQkJCSAgICAgc2l6ZW9m KHBtZGFJbnN0aWQpKTsKCiAgICBpZiAoaXRhYltJQl9DTlRfSU5ET01dLml0X3NldCA9PSBO VUxMKSB7CglyZXR1cm4gLUVOT01FTTsKICAgIH0KCiAgICBpdGFiW0lCX0NOVF9JTkRPTV0u aXRfbnVtaW5zdCA9IEFSUkFZU1oobWFkX2NudF9kZXNjcmlwdG9ycyk7CiAgICBmb3IgKGk9 MDsgaSA8IEFSUkFZU1oobWFkX2NudF9kZXNjcmlwdG9ycyk7IGkrKykgewoJaXRhYltJQl9D TlRfSU5ET01dLml0X3NldFtpXS5pX2luc3QgPSBpOwoJaXRhYltJQl9DTlRfSU5ET01dLml0 X3NldFtpXS5pX25hbWUgPSBtYWRfY250X2Rlc2NyaXB0b3JzW2ldLm5hbWU7CgogICAgfQoK ICAgIHJldHVybiAwOwp9CgpzdGF0aWMgY2hhciAqCmliX3BvcnRjYXBfdG9fc3RyaW5nKHBv cnRfc3RhdGVfdCAqcHN0KQp7CglzdGF0aWMgc3RydWN0IHsKCQlpbnQgYml0OwoJCWNvbnN0 IGNoYXIgKmNhcDsKCX0gY2FwZGVzdCBbXSA9IHsKCQl7MSwgIlNNIn0sCiAgICAgICAgCXsy LCAiTm90aWNlIn0sCiAgICAgICAgCXszLCAiVHJhcCJ9LAogICAgICAgIAl7NSwgIkF1dG9t YXRpY01pZ3JhdGlvbiJ9LAogICAgICAgIAl7NiwgIlNMTWFwcGluZyJ9LAogICAgICAgIAl7 NywgIk1LZXlOVlJBTSJ9LAogICAgICAgIAl7OCwgIlBLZXlOVlJBTSJ9LAogICAgICAgIAl7 OSwgIkxlZEluZm8ifSwKICAgICAgICAJezEwLCAiU01kaXNhYmxlZCJ9LAogICAgICAgIAl7 MTEsICJTeXN0ZW1JbWFnZUdVSUQifSwKICAgICAgICAJezEyLCAiUGtleVN3aXRjaEV4dGVy bmFsUG9ydFRyYXAifSwKICAgICAgICAJezE2LCAiQ29tbXVuaWNhdG9uTWFuYWdlbWVudCJ9 LAogICAgICAgIAl7MTcsICJTTk1QVHVubmVsaW5nIn0sCiAgICAgICAgCXsxOCwgIlJlaW5p dCJ9LAogICAgICAgIAl7MTksICJEZXZpY2VNYW5hZ2VtZW50In0sCiAgICAgICAgCXsyMCwg IlZlbmRvckNsYXNzIn0sCiAgICAgICAgCXsyMSwgIkRSTm90aWNlIn0sCiAgICAgICAgCXsy MiwgIkNhcGFiaWxpdHlNYXNrTm90aWNlIn0sCiAgICAgICAgCXsyMywgIkJvb3RNYW5hZ2Vt ZW50In0sCiAgICAgICAgCXsyNCwgIklzTGlua1JvdW5kVHJpcExhdGVuY3kifSwKICAgICAg ICAJezI1LCAiQ2xpZW50UmVnaXN0cmF0aW9uIn0KCX07CgljaGFyICpjb21tYSA9ICIiOwoJ aW50IGNvbW1hbGVuID0gMDsKCWludCBpOwoJY2hhciAqcHRyID0gcHN0LT5wY2FwOwoJdWlu dDMyX3QgYnNpeiA9IHNpemVvZihwc3QtPnBjYXApOwoJaW50IHBjYXAgPSBtYWRfZ2V0X2Zp ZWxkKHBzdC0+cG9ydGluZm8sIDAsIElCX1BPUlRfQ0FQTUFTS19GKTsKCgkqcHRyID0nXDAn OwoKCWZvciAoaT0wOyBpIDwgQVJSQVlTWihjYXBkZXN0KTsgaSsrKSB7CgkJaWYgKHBjYXAg JiAoMTw8Y2FwZGVzdFtpXS5iaXQpKSB7CgkJCWludCBzbCA9IHN0cmxlbihjYXBkZXN0W2ld LmNhcCkgKyBjb21tYWxlbjsKCQkJaWYgKHNsIDwgYnNpeikgewoJCQkJc3ByaW50ZiAocHRy LCAiJXMlcyIsIGNvbW1hLCBjYXBkZXN0W2ldLmNhcCk7CgkJCQljb21tYSA9ICIsIjsgY29t bWFsZW49MTsKCQkJCWJzaXogLT0gc2w7CgkJCQlwdHIgKz0gc2w7CgkJCX0KCQl9Cgl9CgoJ cmV0dXJuIChwc3QtPnBjYXApOwp9CgoKLyogVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVk IG11bHRpcGxlIHRpbWVzIGR1cmluZyBzaW5nbGUKICogZmV0Y2ggb3BlcmF0aW9uIHNvIHRh a2UgY2FyZSB0byBhdm9pZCBzaWRlIGVmZmVjdHMsIGZvciBleGFtcGxlLAogKiBpZiB0aGUg InByZXZpb3VzIiB2YWx1ZSBvZiB0aGUgY291bnRlciBpcyBhYm92ZSB0aGUgaGlnaCAKICog d2F0ZXJtYXJrIGFuZCBtdXN0IGJlIHJlc2V0LCBkb24ndCBjaGFuZ2UgdGhlIHByZXZpb3Vz IHZhbHVlIGhlcmUgLSAKICogaXQgIGNvdWxkIGxlYWQgdG8gZG91YmxlIGNvdW50aW5nIG9u IHRoZSBzZWNvbmQgY2FsbCAqLwpzdGF0aWMgdWludDY0X3QKaWJfdXBkYXRlX3BlcmZjbnQg KHBvcnRfc3RhdGVfdCAqcHN0LCBpbnQgdWRhdGEsIGludCAqcnYgKQp7CiAgICBtYWRfY250 X2Rlc2NfdCAqIG1kID0gbWFkX2NudF9kZXNjcmlwdG9ycyArIHVkYXRhOwogICAgbWFkX2Nv dW50ZXJfdCAqbWNudCA9IHBzdC0+bWFkY250cyArIHVkYXRhOwoKICAgIGlmICghbWNudC0+ aXN2YWxpZCkgewogICAgCXVpbnQzMl90IGRlbHRhOwoKCW1jbnQtPmN1ciA9IG1hZF9nZXRf ZmllbGQocHN0LT5wZXJmZGF0YSwgMCwgbWQtPm1hZGlkKTsKCW1jbnQtPmlzdmFsaWQgPSAx OwoKCS8qIElmIHNvbWVvbmUgcmVzZXRzIHRoZSBjb3VudGVycywgdGhlbiBkb24ndCB1cGRh dGUgdGhlIHRoZQoJICogYWNjdW11bGF0ZWQgdmFsdWUgYmVjYXVzZSB3ZSBkb24ndCBrbm93 IHdoYXQgd2FzIHRoZSB2YWx1ZSBiZWZvcmUgaXQKCSAqIHdhcyByZXNldC4gQW5kIGlmIHRo ZSBkaWZmZXJlbmNlIGJldHdlZW4gY3VycmVudCBhbmQgcHJldmlvdXMgdmFsdWUKCSAqIGlz IGxhcmdlciB0aGVuIHRoZSBoaWdoIHdhdGVybWFyayB0aGVuIGRvbid0IHVwZGF0ZSB0aGUg YWNjdW11bGF0ZWQKCSAqIHZhbHVlIGVpdGhlciAtIGN1cnJlbnQgdmFsdWUgY291bGQndmUg cGVnZ2VkIGJlY2F1c2Ugd2UgZGlkbid0IAoJICogZmV0Y2ggb2Z0ZW4gZW5vdWdoICovCglk ZWx0YSA9IG1jbnQtPmN1ciAtIG1jbnQtPnByZXY7CglpZiAoKG1jbnQtPmN1ciA8IG1jbnQt PnByZXYpIHx8IChkZWx0YSA+IG1kLT5oaXdhdCkpIHsgCgkgICAgbWNudC0+aXN2YWxpZCA9 IFBNX0VSUl9WQUxVRTsKCX0gZWxzZSB7CgkgICAgbWNudC0+YWNjdW0gKz0gZGVsdGE7Cgl9 CgoJaWYgKG1jbnQtPmN1ciA+IG1kLT5oaXdhdCkgewoJICAgIHBzdC0+cmVzZXRtYXNrIHw9 IG1kLT5yZXNldG1hc2s7Cgl9CiAgICB9CgogICAgKnJ2ID0gbWNudC0+aXN2YWxpZDsKICAg IHJldHVybiAobWNudC0+YWNjdW0gKiBtZC0+bXVsdGlwbGllcik7Cn0KCnN0YXRpYyBpbnQK aWJfbGlua3dpZHRoIChwb3J0X3N0YXRlX3QgKnBzdCkKewogICAgaW50IHcgPSBtYWRfZ2V0 X2ZpZWxkKHBzdC0+cG9ydGluZm8sIDAsIElCX1BPUlRfTElOS19XSURUSF9BQ1RJVkVfRik7 CgogICAgc3dpdGNoICh3KSB7CiAgICBjYXNlIDE6CglyZXR1cm4gKDEpOwogICAgY2FzZSAy OgogICAgICAgIHJldHVybiAoNCk7CiAgICBjYXNlIDQ6CiAgICAgICAgcmV0dXJuICg4KTsK ICAgIGNhc2UgODoKICAgICAgICByZXR1cm4gKDEyKTsKICAgIH0KICAgIHJldHVybiAoMCk7 Cn0KCmludAppYl9mZXRjaF92YWwocG1kYU1ldHJpYyAqbWRlc2MsIHVuc2lnbmVkIGludCBp bnN0LCBwbUF0b21WYWx1ZSAqYXRvbSkKewogICAgX19wbUluRG9tX2ludCAqaW5kID0gKF9f cG1JbkRvbV9pbnQgKikmKG1kZXNjLT5tX2Rlc2MuaW5kb20pOwogICAgX19wbUlEX2ludAkq aWRwID0gKF9fcG1JRF9pbnQgKikmKG1kZXNjLT5tX2Rlc2MucG1pZCk7CiAgICBpbnQJcnYg PSAxOyAKICAgIHBvcnRfc3RhdGVfdCAqcHN0ID0gTlVMTDsKICAgIGhjYV9zdGF0ZV90ICpo Y2EgPSBOVUxMOwogICAgaW50IHVtYXNrID0gMTw8aWRwLT5jbHVzdGVyOwogICAgaW50IHVk YXRhID0gKGludCkoKF9fcHNpbnRfdCltZGVzYy0+bV91c2VyKTsKICAgIHZvaWQgKmNsb3N1 cmUgPSBOVUxMOwogICAgaW50IHN0OwogICAgY2hhciAqbmFtZSA9IE5VTEw7CgogICAgaWYg KGluc3QgPT0gUE1fSU5ET01fTlVMTCkgewoJcmV0dXJuIFBNX0VSUl9JTlNUOwogICAgfQoK ICAgIGlmIChpbmQtPnNlcmlhbCAhPSBJQl9DTlRfSU5ET00pIHsKCWlmICgoc3QgPSBwbWRh Q2FjaGVMb29rdXAgKG1kZXNjLT5tX2Rlc2MuaW5kb20sIGluc3QsICZuYW1lLAoJCQkJICAg JmNsb3N1cmUpKSAhPSBQTURBX0NBQ0hFX0FDVElWRSkgewoJICAgIGlmIChzdCA9PSBQTURB X0NBQ0hFX0lOQUNUSVZFKQoJCXN0ID0gUE1fRVJSX0lOU1Q7CgkgICAgX19wbU5vdGlmeUVy ciAoTE9HX0VSUiwgIkNhbm5vdCBmaW5kIGluc3RhbmNlICVkIGluIGluZG9tICVzOiAlc1xu IiwKCQkJICAgaW5zdCwgcG1JbkRvbVN0cihtZGVzYy0+bV9kZXNjLmluZG9tKSwgcG1FcnJT dHIoc3QpKTsKCSAgICByZXR1cm4gc3Q7Cgl9CiAgICB9CgogICAgLyogSWYgZmV0Y2hpbmcg ZnJvbSBIQ0EgaW5kb20sIHRoZW4gbm8gcmVmcmVzaGluZyBpcyBuZWNlc3NhcnkgZm9yIHRo ZQogICAgICogbGlmZXRpbWUgb2YgYSBwbWRhLiBQb3J0cyBjb3VsZCBjaGFuZ2Ugc3RhdGUs IHNvIHNvbWUgdXBkYXRlIGNvdWxkIGJlCiAgICAgKiBuZWNlc3NhcnkgKi8KICAgIHN3aXRj aCAoaW5kLT5zZXJpYWwpIHsKICAgIGNhc2UgSUJfUE9SVF9JTkRPTToKCWlmIChpZHAtPmNs dXN0ZXIgPiAzKSB7CgkgICAgcmV0dXJuIFBNX0VSUl9JTlNUOwoJfQoKCXBzdCA9IGNsb3N1 cmU7CgoJaWYgKHBzdC0+bmVlZHVwZGF0ZSAmIHVtYXNrKSB7CgkgICAgbG9jYWxfcG9ydF90 ICpscCA9IHBzdC0+bHBvcnQ7CgoJICAgIC8qIEEgcG9ydCBzdGF0ZSBpcyBjb25zaWRlcmVk IHVwLXRvIGRhdGUgcmVnYXJkbGVzcyBvZiBhbnkKCSAgICAgKiBlcnJvcnMgd2hpY2ggY291 bGQgaGFwcGVuIGxhdGVyIC0gdGhpcyBpcyB1c2VkIHRvIGltcGxlbWVudAoJICAgICAqIG9u ZSBzaG90IHVwZGF0ZXMgKi8KCSAgICBwc3QtPm5lZWR1cGRhdGUgXj0gdW1hc2s7CgoJICAg IC8qIFRoZSBzdGF0ZSBvZiB0aGUgbG9jYWwgcG9ydCB1c2VkIGZvciBxdWVyaWVzIGlzIGNo ZWNrZWQKCSAgICAgKiBvbmNlIHBlciBmZXRjaCByZXF1ZXN0ICovCgkgICAgaWYgKGxwLT5u ZWVkc3VwZGF0ZSkgewoJCXVtYWRfcmVsZWFzZV9wb3J0KGxwLT51bXApOwoJCWlmICh1bWFk X2dldF9wb3J0KGxwLT5jYV9uYW1lLCBscC0+cG9ydG51bSwgbHAtPnVtcCkgIT0gMCkgewoJ CSAgICBfX3BtTm90aWZ5RXJyIChMT0dfRVJSLCAKCQkJCSAgICJDYW5ub3QgZ2V0IHN0YXRl IG9mIHRoZSBwb3J0ICVzOiVkXG4iLAoJCQkJICAgbHAtPnVtcC0+Y2FfbmFtZSwgbHAtPnVt cC0+cG9ydG51bSk7CgkJICAgIHJldHVybiAwOwoJCX0KCQlscC0+bmVlZHN1cGRhdGUgPSAw OwoJICAgIH0KCgkgICAgLyogSWYgdGhlIHBvcnQgd2hpY2ggd2UncmUgc3VwcG9zZWQgdG8g dXNlIHRvIHF1ZXJ5IHRoZSBkYXRhCgkgICAgICogZG9lcyBub3QgaGF2ZSBhIExJRCB0aGVu IHdlIGRvbid0IGV2ZW4gdHJ5IHRvIHF1ZXJ5IGFueXRoaW5nLAoJICAgICAqIGlzIGl0IGdv aW5nIHRvIGZhaWwgYW55d2F5ICovCgkgICAgaWYgKGxwLT51bXAtPmJhc2VfbGlkID09IDAp IHsKCQlyZXR1cm4gMDsgLyogTm8gdmFsdWVzIGF2YWlsYWJsZSAqLwoJICAgIH0KCgkgICAg aWYgKHBzdC0+cG9ydGlkLmxpZCA8IDApIHsKCQlpYl9wb3J0aWRfdCBzbSA9IHswfTsKCQlz bS5saWQgPSBscC0+dW1wLT5zbV9saWQ7CgoJCW1lbXNldCAoJnBzdC0+cG9ydGlkLCAwLCBz aXplb2YgKHBzdC0+cG9ydGlkKSk7CgkJaWYgKGliX3Jlc29sdmVfZ3VpZF92aWEgKCZwc3Qt PnBvcnRpZCwgJnBzdC0+Z3VpZCwgJnNtLAoJCQkJCSBwc3QtPnRpbWVvdXQsIGxwLT5obmRs KSA8IDApIHsKCQkJX19wbU5vdGlmeUVyciAoTE9HX0VSUiwgCgkJCQkgICAgICAgIkNhbm5v dCByZXNvbHZlIEdVSUQgMHglbGx4IGZvciAlcyAiCgkJCQkgICAgICAgInZpYSAgJXM6JWRc biIsIAoJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpcHN0LT5ndWlkLAoJCQkJCW5hbWUsIGxw LT51bXAtPmNhX25hbWUsCgkJCQkJbHAtPnVtcC0+cG9ydG51bSk7CgkJCXBzdC0+cG9ydGlk LmxpZCA9IC0xOwoJCQlyZXR1cm4gMDsKCQl9CgkgICAgfQoKCSAgICBzd2l0Y2ggKGlkcC0+ Y2x1c3RlcikgewoJICAgIGNhc2UgMDogLyogcG9ydCBhdHRyaWJ1dGVzICovCgkJbWVtc2V0 IChwc3QtPnBvcnRpbmZvLCAwLCBzaXplb2YocHN0LT5wb3J0aW5mbykpOwoJCWlmICghc21w X3F1ZXJ5X3ZpYSAocHN0LT5wb3J0aW5mbywgJnBzdC0+cG9ydGlkLAoJCQkJICAgIElCX0FU VFJfUE9SVF9JTkZPLCAwLCBwc3QtPnRpbWVvdXQsCgkJCQkgICAgbHAtPmhuZGwpKSB7CgkJ ICAgIF9fcG1Ob3RpZnlFcnIgKExPR19FUlIsCgkJCQkgICAiQ2Fubm90IGdldCBwb3J0IGlu Zm8gZm9yICVzIHZpYSAlczolZFxuIiwKCQkJCSAgIG5hbWUsIGxwLT51bXAtPmNhX25hbWUs IGxwLT51bXAtPnBvcnRudW0pOwoJCSAgICByZXR1cm4gMDsKCQl9CgkJYnJlYWs7CgoJICAg IGNhc2UgMTogLyogcGVyZm9ybWFuY2UgY291bnRlcnMgKi8KCQkvKiBJIHRob3VnaHQgYWJv dXQgdXBkYXRpbmcgYWxsIGFjY3VtdWxhdGluZyBjb3VudGVycwoJCSAqIGluIGNhc2UgcG9y dF9wZXJmb3JtYW5jZV9xdWVyeSgpIHN1Y2NlZWRzIGJ1dAoJCSAqIGRlY2lkZWQgbm90IHRv IGRvIGl0IHJpZ2h0IG5vdyAtIHVwZGF0aW5nIGFsbCBjb3VudGVycwoJCSAqIGNvdWxkIG1l YW4gbW9yZSByZXNldHMgZXZlbiBpbiBjYXNlIHdoZW4gbm9ib2R5IGlzCgkJICogYWN0dWFs bHkgbG9va2luZyBhdCB0aGUgcGFydGljdWxhciBjb3VudGVyIGFuZCBJJ20KCQkgKiB0cnlp bmcgdG8gbWluaW1pemUgcmVzZXRzLiAqLwoJCW1lbXNldCAocHN0LT5wZXJmZGF0YSwgMCwg c2l6ZW9mIChwc3QtPnBlcmZkYXRhKSk7CgkJaWYgKCFwb3J0X3BlcmZfcXVlcnkocHN0LT5w ZXJmZGF0YSwgJnBzdC0+cG9ydGlkLAoJCQkJIHBzdC0+cmVtcG9ydCwgcHN0LT50aW1lb3V0 LCBscC0+aG5kbCkpIHsKCQkgICAgX19wbU5vdGlmeUVyciAoTE9HX0VSUiwKCQkJCSAgICJD YW5ub3QgZ2V0IHBlcmZvcm1hbmNlIGNvdW50ZXJzIGZvciAlcyAiCgkJCQkgICAidmlhICVz OiVkXG4iLAoJCQkJICAgbmFtZSwgbHAtPnVtcC0+Y2FfbmFtZSwgbHAtPnVtcC0+cG9ydG51 bSk7CgkJICAgIHJldHVybiAwOyAKCQl9CgkJYnJlYWs7CgoJICAgIGNhc2UgMzogeyAvKiBz d2l0Y2ggcGVyZm9ybWFuY2UgY291bnRlcnMgKi8KCgkJLy8gVG8gZmluZCB0aGUgTElEIG9m IHRoZSBzd2l0Y2ggdGhlIEhDQSBpcyBjb25uZWN0ZWQgdG8sCgkJLy8gc2VuZCBhbiBTTVAg b24gdGhlIGRpcmVjdGVkIHJvdXRlIDAsMSBhbmQgYXNrIHRoZSBwb3J0CgkJLy8gdG8gaWRl bnRpZnkgaXRzZWxmLgoJCWliX3BvcnRpZF90IHN3X3BvcnRfaWQgPSB7CgkJICAgIC5kcnBh dGggPSB7CgkJCS5jbnQgPSAxLAoJCQkucCA9IHsgMCwgMSwgfSwKCQkgICAgfSwKCQl9OwoK CQl1aW50OF90IHN3X2luZm9bNjRdOwoJCW1lbXNldChzd19pbmZvLCAwLCBzaXplb2Yoc3df aW5mbykpOwoJCWlmICghc21wX3F1ZXJ5X3ZpYShzd19pbmZvLCAmc3dfcG9ydF9pZCwgSUJf QVRUUl9QT1JUX0lORk8sIDAsCgkJCXBzdC0+dGltZW91dCwgbHAtPmhuZGwpKSB7CgkJICAg IF9fcG1Ob3RpZnlFcnIoTE9HX0VSUiwgCgkJCSAgICAiQ2Fubm90IGdldCBzd2l0Y2ggcG9y dCBpbmZvIGZvciAlcyB2aWEgJXM6JWQuXG4iLAoJCQkgICAgbmFtZSwgbHAtPnVtcC0+Y2Ff bmFtZSwgbHAtPnVtcC0+cG9ydG51bSk7CgkJICAgIHJldHVybiAwOwoJCX0KCgkJaW50IHN3 X2xpZCwgc3dfcG9ydDsKCQltYWRfZGVjb2RlX2ZpZWxkKHN3X2luZm8sIElCX1BPUlRfTElE X0YsICZzd19saWQpOwoJCW1hZF9kZWNvZGVfZmllbGQoc3dfaW5mbywgSUJfUE9SVF9MT0NB TF9QT1JUX0YsICZzd19wb3J0KTsKCgkJc3dfcG9ydF9pZC5saWQgPSBzd19saWQ7CgoJCS8v IFF1ZXJ5IGZvciB0aGUgc3dpdGNoJ3MgcGVyZm9ybWFuY2UgY291bnRlcnMnIHZhbHVlcy4K CQltZW1zZXQocHN0LT5zd2l0Y2hwZXJmZGF0YSwgMCwgc2l6ZW9mKHBzdC0+c3dpdGNocGVy ZmRhdGEpKTsKCQlpZiAoIXBtYV9xdWVyeV92aWEocHN0LT5zd2l0Y2hwZXJmZGF0YSwgJnN3 X3BvcnRfaWQsIHN3X3BvcnQsCgkJCXBzdC0+dGltZW91dCwgSUJfR1NJX1BPUlRfQ09VTlRF UlNfRVhULCBscC0+aG5kbCkpIHsKCQkgICAgX19wbU5vdGlmeUVycihMT0dfRVJSLCAKCQkJ ICAgICJDYW5ub3QgcXVlcnkgcGVyZm9ybWFuY2UgY291bnRlcnMgb2Ygc3dpdGNoIExJRCAl ZCwgcG9ydCAlZC5cbiIsCgkJCSAgICBzd19saWQsIHN3X3BvcnQpOwoJCSAgICByZXR1cm4g MDsKCQl9CgoJCWJyZWFrOwoJICAgIH0KCgkgICAgfQoJICAgIHBzdC0+dmFsaWRzdGF0ZSBe PSB1bWFzazsKCX0gZWxzZSBpZiAoIShwc3QtPnZhbGlkc3RhdGUgJiB1bWFzaykpIHsKCQkv KiBXZSd2ZSBoaXQgYW4gZXJyb3Igb24gdGhlIHByZXZpb3VzIHVwZGF0ZSAtIGNvbnRpbnVl CgkgICAgICAgICAqIHJlcG9ydGluZyBubyBkYXRhIGZvciB0aGlzIGluc3RhbmNlICovCgkJ cmV0dXJuICgwKTsKCX0KCWJyZWFrOwoKICAgIGNhc2UgSUJfSENBX0lORE9NOgoJaGNhID0g Y2xvc3VyZTsKCWJyZWFrOwoKICAgIGNhc2UgSUJfQ05UX0lORE9NOgoJYnJlYWs7CgogICAg ZGVmYXVsdDoKCXJldHVybiAoUE1fRVJSX0lOU1QpOwogICAgfQoKICAgIHN3aXRjaCAoaWRw LT5jbHVzdGVyKSB7CiAgICBjYXNlIDA6IC8qIFVNQUQgZGF0YSAtIGhjYSBuYW1lLCBmd192 ZXJzaW9uLCBudW1iZXIgb2YgcG9ydHMgZXRjICovCglzd2l0Y2goaWRwLT5pdGVtKSB7Cglj YXNlIE1FVFJJQ19pYl9oY2FfaHdfdmVyOgoJICAgIGF0b20tPmNwID0gaGNhLT5jYS5od192 ZXI7CgkgICAgYnJlYWs7CgoJY2FzZSBNRVRSSUNfaWJfaGNhX3N5c3RlbV9ndWlkOgoJICAg IGF0b20tPnVsbCA9IGhjYS0+Y2Euc3lzdGVtX2d1aWQ7CgkgICAgYnJlYWs7CgoJY2FzZSBN RVRSSUNfaWJfaGNhX25vZGVfZ3VpZDoKCSAgICBhdG9tLT51bGwgPSBoY2EtPmNhLm5vZGVf Z3VpZDsKCSAgICBicmVhazsKCgljYXNlIE1FVFJJQ19pYl9oY2FfbnVtcG9ydHM6CgkgICAg YXRvbS0+bCA9IGhjYS0+Y2EubnVtcG9ydHM7CgkgICAgYnJlYWs7CgoJY2FzZSBNRVRSSUNf aWJfaGNhX3R5cGU6CgkgICAgaWYgKGhjYS0+Y2Eubm9kZV90eXBlIDwgQVJSQVlTWihub2Rl X3R5cGVzKSkgewoJICAgIAlhdG9tLT5jcCA9IG5vZGVfdHlwZXNbaGNhLT5jYS5ub2RlX3R5 cGVdOwoJICAgIH0gZWxzZSB7CgkJX19wbU5vdGlmeUVyciAoTE9HX0lORk8sICJVbmtub3du IG5vZGUgdHlwZSAlZCBmb3IgJXNcbiIsIAoJCQkgaGNhLT5jYS5ub2RlX3R5cGUsIGhjYS0+ Y2EuY2FfbmFtZSk7CgkJYXRvbS0+Y3AgPSAiVW5rbm93biI7CgkgICAgfQoJICAgIGJyZWFr OwoKCWNhc2UgTUVUUklDX2liX2hjYV9md192ZXI6CgkgICAgYXRvbS0+Y3AgPSBoY2EtPmNh LmZ3X3ZlcjsKCSAgICBicmVhazsKCgljYXNlIE1FVFJJQ19pYl9wb3J0X2dpZF9wcmVmaXg6 CgkgICAgYXRvbS0+dWxsID0gbWFkX2dldF9maWVsZDY0KHBzdC0+cG9ydGluZm8sIDAsIElC X1BPUlRfR0lEX1BSRUZJWF9GKTsKCSAgICBicmVhazsKCgljYXNlIE1FVFJJQ19pYl9wb3J0 X3JhdGU6CgkgICAgYXRvbS0+bCA9IGliX2xpbmt3aWR0aChwc3QpICogCgkJICAgICAgKDUg KiBtYWRfZ2V0X2ZpZWxkIChwc3QtPnBvcnRpbmZvLCAwLCAKCQkJCQkgIElCX1BPUlRfTElO S19TUEVFRF9BQ1RJVkVfRikpLzI7CgkgICAgYnJlYWs7CgoJY2FzZSBNRVRSSUNfaWJfcG9y dF9saWQ6CgkgICAgYXRvbS0+bCA9IHBzdC0+cG9ydGlkLmxpZDsKCSAgICBicmVhazsKCglj YXNlIE1FVFJJQ19pYl9wb3J0X2NhcGFiaWxpdGllczoKCSAgICBhdG9tLT5jcCA9IGliX3Bv cnRjYXBfdG9fc3RyaW5nKHBzdCk7CgkgICAgYnJlYWs7CgoJY2FzZSBNRVRSSUNfaWJfcG9y dF9waHlzdGF0ZToKCSAgICBzdCA9IG1hZF9nZXRfZmllbGQgKHBzdC0+cG9ydGluZm8sIDAs IElCX1BPUlRfUEhZU19TVEFURV9GKTsKCSAgICBpZiAoc3QgPCBBUlJBWVNaKHBvcnRfcGh5 c3RhdGVzKSkgewoJICAgIAlhdG9tLT5jcCA9IHBvcnRfcGh5c3RhdGVzW3N0XTsKCSAgICB9 IGVsc2UgewoJCV9fcG1Ob3RpZnlFcnIgKExPR19JTkZPLCAiVW5rbm93biBwb3J0IFBIWSBz dGF0ZSAlZCBvbiAlc1xuIiwKCQkJICAgICAgIHN0LCBuYW1lKTsKCSAgICAgICAgYXRvbS0+ Y3AgPSAiVW5rbm93biI7CgkgICAgfQoJICAgIGJyZWFrOwoKCWNhc2UgTUVUUklDX2liX3Bv cnRfZ3VpZDoKCSAgICBhdG9tLT51bGwgPSBwc3QtPmd1aWQ7CgkgICAgYnJlYWs7CgoJY2Fz ZSBNRVRSSUNfaWJfaGNhX2NhX3R5cGU6CgkgICAgYXRvbS0+Y3AgPSBoY2EtPmNhLmNhX3R5 cGU7CgkgICAgYnJlYWs7CgoJY2FzZSBNRVRSSUNfaWJfcG9ydF9zdGF0ZToKCSAgICBzdCA9 IG1hZF9nZXRfZmllbGQgKHBzdC0+cG9ydGluZm8sIDAsIElCX1BPUlRfU1RBVEVfRik7Cgkg ICAgaWYgKHN0IDwgQVJSQVlTWihwb3J0X3N0YXRlcykpIHsKCSAgICAJYXRvbS0+Y3AgPSBw b3J0X3N0YXRlc1tzdF07CgkgICAgfSBlbHNlIHsKCQlfX3BtTm90aWZ5RXJyIChMT0dfSU5G TywgIlVua25vd24gcG9ydCBzdGF0ZSAlZCBvbiAlc1xuIiwKCQkJICAgICAgIHN0LCBuYW1l KTsKCSAgICAgICAgYXRvbS0+Y3AgPSAiVW5rbm93biI7CgkgICAgfQoJICAgIGJyZWFrOwoK CWNhc2UgTUVUUklDX2liX3BvcnRfbGlua3NwZWVkOgoJICAgIHN3aXRjaCAoKHN0ID0gbWFk X2dldF9maWVsZChwc3QtPnBvcnRpbmZvLCAwLAoJCQkJICAgICAgICBJQl9QT1JUX0xJTktf U1BFRURfQUNUSVZFX0YpKSkgewoJICAgIGNhc2UgMToKCQlhdG9tLT5jcCA9ICIyLjUgR3Bi cyI7CgkJYnJlYWs7CgkgICAgY2FzZSAyOgogICAgICAgIAlhdG9tLT5jcCA9ICI1LjAgR2Jw cyI7CgkJYnJlYWs7CgkgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgYXRvbS0+Y3AgPSAi MTAuMCBHYnBzIjsKICAgICAgICAgICAgICAgIGJyZWFrOwoJICAgIGRlZmF1bHQ6CgkJX19w bU5vdGlmeUVyciAoTE9HX0lORk8sICJVbmtub3duIGxpbmsgc3BlZWQgJWQgb24gJXNcbiIs CgkJCQlzdCwgbmFtZSk7CiAgICAgICAgICAgICAgICBhdG9tLT5jcCAgPSAiVW5rbm93biI7 CiAgICAgICAgICAgICAgICBicmVhazsKCSAgICB9CgkgICAgYnJlYWs7CgoJY2FzZSBNRVRS SUNfaWJfcG9ydF9saW5rd2lkdGg6CgkgICAgYXRvbS0+bCA9IGliX2xpbmt3aWR0aChwc3Qp OwoJICAgIGJyZWFrOwoKCWRlZmF1bHQ6CgkgICAgcnYgPSBQTV9FUlJfUE1JRDsKCSAgICBi cmVhazsKCX0KCWJyZWFrOwoKICAgIGNhc2UgMTogLyogRmV0Y2ggdmFsdWVzIGZyb20gbWFk IHJwYyByZXNwb25zZSAqLwogICAgICAgIGlmICgodWRhdGEgPj0gMCkgJiYgKHVkYXRhIDwg QVJSQVlTWihtYWRfY250X2Rlc2NyaXB0b3JzKSkpIHsKCSAgICAvKiBJZiBhIG1ldHJpYyBo YXMgdWRhdGEgc2V0IHRoZW4gaXQncyBvbmUgb2YgdGhlICJkaXJlY3QiIAoJICAgICAqIG1l dHJpY3MgLSBqdXN0IHVwZGF0ZSB0aGUgYWNjdW11bGF0ZWQgY291bnRlcgoJICAgICAqIGFu ZCBzdHVmZiBpdHMgdmFsdWUgaW50byBwbUF0b21WYWx1ZSAqLwoJICAgIHN3aXRjaCAobWRl c2MtPm1fZGVzYy50eXBlKSB7CgkgICAgY2FzZSBQTV9UWVBFXzMyOgoJCWF0b20tPmwgPSAo aW50MzJfdClpYl91cGRhdGVfcGVyZmNudCAocHN0LCB1ZGF0YSwgJnJ2KTsKCQlicmVhazsK CSAgICBjYXNlIFBNX1RZUEVfNjQ6CgkJYXRvbS0+bGwgPSBpYl91cGRhdGVfcGVyZmNudCAo cHN0LCB1ZGF0YSwgJnJ2KTsKCQlicmVhazsKCSAgICBkZWZhdWx0OgoJCXJ2ID0gUE1fRVJS X0lOU1Q7CgkJYnJlYWs7CgkgICAgfQoJfSBlbHNlIHsKCSAgICBpbnQgcnYxPTAsIHJ2Mj0w OwoJICAgIC8qIFN5bnRoZXRpYyBtZXRyaWNzICovCgkgICAgc3dpdGNoIChpZHAtPml0ZW0p IHsKCSAgICBjYXNlIE1FVFJJQ19pYl9wb3J0X3RvdGFsX2J5dGVzOgoJCWF0b20tPmxsID0g aWJfdXBkYXRlX3BlcmZjbnQgKHBzdCwgSUJQTURBX1hNVF9CWVRFUywgJnJ2MSkKCQkJICsg aWJfdXBkYXRlX3BlcmZjbnQgKHBzdCwgSUJQTURBX1JDVl9CWVRFUywgJnJ2Mik7CgkJYnJl YWs7CgoJICAgIGNhc2UgTUVUUklDX2liX3BvcnRfdG90YWxfcGFja2V0czoKCQlhdG9tLT5s bCA9IGliX3VwZGF0ZV9wZXJmY250IChwc3QsIElCUE1EQV9YTVRfUEtUUywgJnJ2MSkKCQkJ ICsgaWJfdXBkYXRlX3BlcmZjbnQgKHBzdCwgSUJQTURBX1JDVl9QS1RTLCAmcnYyKTsKCQli cmVhazsKCgkgICAgY2FzZSBNRVRSSUNfaWJfcG9ydF90b3RhbF9lcnJvcnNfZHJvcDoKCQlh dG9tLT5sID0gKGludCkoaWJfdXBkYXRlX3BlcmZjbnQgKHBzdCwgSUJQTURBX0VSUl9TV0lU Q0hfUkVMLCAmcnYxKSAKCQkJKyBpYl91cGRhdGVfcGVyZmNudCAocHN0LCBJQlBNREFfWE1U X0RJU0NBUkRTLCAmcnYyKSk7CgkJYnJlYWs7CgoJICAgIGNhc2UgTUVUUklDX2liX3BvcnRf dG90YWxfZXJyb3JzX2ZpbHRlcjoKCQlhdG9tLT5sID0gKGludCkoaWJfdXBkYXRlX3BlcmZj bnQgKHBzdCwgSUJQTURBX0VSUl9YTVRDT05TVFIsICZydjEpIAoJCQkrIGliX3VwZGF0ZV9w ZXJmY250IChwc3QsIElCUE1EQV9FUlJfUkNWQ09OU1RSLCAmcnYyKSk7CgkJYnJlYWs7CgoJ ICAgIGRlZmF1bHQ6CgkJcnYgPSBQTV9FUlJfUE1JRDsKCQlicmVhazsKCSAgICB9CgoJICAg IGlmICgocnYxIDwgMCkgfHwgKHJ2MiA8IDApKSB7CgkJcnYgPSAocnYxIDwgMCkgPyBydjEg OiBydjI7CgkgICAgfQoJfQoJYnJlYWs7CgogICAgY2FzZSAyOiAvKiBDb250cm9sIHN0cnVj dHVyZXMgKi8KCXN3aXRjaCAoaWRwLT5pdGVtKSB7CgljYXNlIE1FVFJJQ19pYl9jb250cm9s X3F1ZXJ5X3RpbWVvdXQ6CgkgICAgYXRvbS0+bCA9IHBzdC0+dGltZW91dDsKCSAgICBicmVh azsKCgljYXNlIE1FVFJJQ19pYl9jb250cm9sX2hpd2F0OgoJICAgIGlmIChpbnN0IDwgQVJS QVlTWihtYWRfY250X2Rlc2NyaXB0b3JzKSkgewoJCWF0b20tPnVsID0gbWFkX2NudF9kZXNj cmlwdG9yc1tpbnN0XS5oaXdhdDsKCSAgICB9IGVsc2UgewoJCXJ2ID0gUE1fRVJSX0lOU1Q7 CgkgICAgfQoJICAgIGJyZWFrOwoKCWRlZmF1bHQ6CgkgICAgcnYgPSBQTV9FUlJfUE1JRDsK CSAgICBicmVhazsKCX0KCWJyZWFrOwoKICAgIGNhc2UgMzogLyogRmV0Y2ggdmFsdWVzIGZy b20gc3dpdGNoIHJlc3BvbnNlICovCgoJLy8gKFRoZSB2YWx1ZXMgYXJlICJzd2FwcGVkIiBi ZWNhdXNlIHdoYXQgdGhlIHBvcnQgcmVjZWl2ZXMgaXMgd2hhdCB0aGUKCS8vIHN3aXRjaCBz ZW5kcywgYW5kIHZpY2UgdmVyc2EuKQoJc3dpdGNoIChpZHAtPml0ZW0pIHsKCSAgICBjYXNl IE1FVFJJQ19pYl9wb3J0X3N3aXRjaF9pbl9ieXRlczogewoJCW1hZF9kZWNvZGVfZmllbGQo cHN0LT5zd2l0Y2hwZXJmZGF0YSwgCgkJICAgIAlJQl9QQ19FWFRfWE1UX0JZVEVTX0YsICZh dG9tLT51bGwpOwogICAgCQlhdG9tLT51bGwgKj0gNDsgLy8gVE9ETzogcHJvZ3JhbW1hdGlj YWxseSBkZXRlcm1pbmUgbGluayB3aWR0aAoJCWJyZWFrOwoJICAgIH0KCSAgICBjYXNlIE1F VFJJQ19pYl9wb3J0X3N3aXRjaF9pbl9wYWNrZXRzOiB7CgkJbWFkX2RlY29kZV9maWVsZChw c3QtPnN3aXRjaHBlcmZkYXRhLCAKCQkgICAgCUlCX1BDX0VYVF9YTVRfUEtUU19GLCAmYXRv bS0+dWxsKTsKCQlicmVhazsKCSAgICB9CgkgICAgY2FzZSBNRVRSSUNfaWJfcG9ydF9zd2l0 Y2hfb3V0X2J5dGVzOiB7CgkJbWFkX2RlY29kZV9maWVsZChwc3QtPnN3aXRjaHBlcmZkYXRh LCAKCQkgICAgCUlCX1BDX0VYVF9SQ1ZfQllURVNfRiwgJmF0b20tPnVsbCk7CiAgICAJCWF0 b20tPnVsbCAqPSA0OyAvLyBUT0RPOiBwcm9ncmFtbWF0aWNhbGx5IGRldGVybWluZSBsaW5r IHdpZHRoCgkJYnJlYWs7CgkgICAgfQoJICAgIGNhc2UgTUVUUklDX2liX3BvcnRfc3dpdGNo X291dF9wYWNrZXRzOiB7CgkJbWFkX2RlY29kZV9maWVsZChwc3QtPnN3aXRjaHBlcmZkYXRh LCAKCQkgICAgCUlCX1BDX0VYVF9SQ1ZfUEtUU19GLCAmYXRvbS0+dWxsKTsKCQlicmVhazsK CSAgICB9CgkgICAgY2FzZSBNRVRSSUNfaWJfcG9ydF9zd2l0Y2hfdG90YWxfYnl0ZXM6IHsK CSAgICAJdWludDY0X3Qgc3dfcnhfYnl0ZXMsIHN3X3R4X2J5dGVzOwoJICAgIAlpbnQgaWJf bHc7CgkJbWFkX2RlY29kZV9maWVsZChwc3QtPnN3aXRjaHBlcmZkYXRhLCAKCQkJSUJfUENf RVhUX1JDVl9CWVRFU19GLCAmc3dfcnhfYnl0ZXMpOwoJCW1hZF9kZWNvZGVfZmllbGQocHN0 LT5zd2l0Y2hwZXJmZGF0YSwgCgkJCUlCX1BDX0VYVF9YTVRfQllURVNfRiwgJnN3X3R4X2J5 dGVzKTsKCQlpYl9sdyA9IDQ7IC8vIFRPRE86IHByb2dyYW1tYXRpY2FsbHkgZGV0ZXJtaW5l IGxpbmsgd2lkdGgKCQlhdG9tLT51bGwgPSAoc3dfcnhfYnl0ZXMgKiBpYl9sdykgKyAoc3df dHhfYnl0ZXMgKiBpYl9sdyk7CgkgICAgCWJyZWFrOwoJICAgIH0KCSAgICBjYXNlIE1FVFJJ Q19pYl9wb3J0X3N3aXRjaF90b3RhbF9wYWNrZXRzOiB7CgkgICAgCXVpbnQ2NF90IHN3X3J4 X3BhY2tldHMsIHN3X3R4X3BhY2tldHM7CgkJbWFkX2RlY29kZV9maWVsZChwc3QtPnN3aXRj aHBlcmZkYXRhLAoJCQlJQl9QQ19FWFRfUkNWX1BLVFNfRiwgJnN3X3J4X3BhY2tldHMpOwoJ CW1hZF9kZWNvZGVfZmllbGQocHN0LT5zd2l0Y2hwZXJmZGF0YSwKCQkJSUJfUENfRVhUX1hN VF9QS1RTX0YsICZzd190eF9wYWNrZXRzKTsKCQlhdG9tLT51bGwgPSBzd19yeF9wYWNrZXRz ICsgc3dfdHhfcGFja2V0czsKCSAgICAJYnJlYWs7CgkgICAgfQoJICAgIGRlZmF1bHQ6IHsK CQlydiA9IFBNX0VSUl9QTUlEOwoJCWJyZWFrOwoJICAgIH0KCX0KCWJyZWFrOwoKICAgIGRl ZmF1bHQ6CglydiA9IFBNX0VSUl9QTUlEOwoJYnJlYWs7CiAgICB9CgogICAgcmV0dXJuIHJ2 Owp9CgovKiBXYWxrIHRoZSBpbnN0YW5jZXMgYW5kIGFybSBuZWVkdXBkYXRlIGZsYWcgaW4g ZWFjaCBpbnN0YW5jZSdzCiAqIHN0YXRlLiBUaGUgYWN0dWFsbCB1cGRhdGluZyBpcyBkb25l IGluIHRoZSBmZXRjaCBmdW5jdGlvbiAqLwp2b2lkCmliX3JlYXJtX2Zvcl91cGRhdGUodm9p ZCAqc3RhdGUpCnsKICAgIHBvcnRfc3RhdGVfdCAqcHN0ID0gc3RhdGU7CgogICAgcHN0LT5s cG9ydC0+bmVlZHN1cGRhdGUgPSAxOwoKICAgIHBzdC0+bmVlZHVwZGF0ZSA9IElCX1BPUlRJ TkZPX1VQREFURSB8IElCX0hDQV9QRVJGX1VQREFURSB8IElCX1NXSVRDSF9QRVJGX1VQREFU RTsKICAgIHBzdC0+dmFsaWRzdGF0ZSA9IDQ7IC8qIDB4NCBmb3IgdGltZW91dCB3aGljaCBp cyBhbHdheXMgdmFsaWQgKi8KfQoKdm9pZAppYl9yZXNldF9wZXJmY291bnRlcnMgKHZvaWQg KnN0YXRlKQp7CiAgICBpbnQgbTsKICAgIHBvcnRfc3RhdGVfdCAqcHN0ID0gc3RhdGU7Cgog ICAgaWYgKHBzdC0+cmVzZXRtYXNrICYmIChwc3QtPnBvcnRpZC5saWQgIT0gMCkpIHsKCW1l bXNldCAocHN0LT5wZXJmZGF0YSwgMCwgc2l6ZW9mIChwc3QtPnBlcmZkYXRhKSk7CgoJaWYg KHBvcnRfcGVyZl9yZXNldChwc3QtPnBlcmZkYXRhLCAmcHN0LT5wb3J0aWQsIHBzdC0+cmVt cG9ydCwKCQkJcHN0LT5yZXNldG1hc2ssIHBzdC0+dGltZW91dCwgcHN0LT5scG9ydC0+aG5k bCkpIHsKCSAgICBpbnQgajsKCgkgICAgZm9yIChqPTA7IGogPCBBUlJBWVNaKG1hZF9jbnRf ZGVzY3JpcHRvcnMpOyBqKyspIHsKCQlpZiAocHN0LT5yZXNldG1hc2sgJiAoMTw8aikpIHsK CQkgICAgcHN0LT5tYWRjbnRzW2pdLnByZXYgPSAwOwoJCSAgICBwc3QtPm1hZGNudHNbal0u aXN2YWxpZCA9IDA7CgkJfQoJICAgIH0KCX0KICAgIH0KICAgIHBzdC0+cmVzZXRtYXNrID0g MDsKCiAgICBmb3IgKG09MDsgbSA8IEFSUkFZU1oobWFkX2NudF9kZXNjcmlwdG9ycyk7IG0r KykgewoJaWYgKHBzdC0+bWFkY250c1ttXS5pc3ZhbGlkKSB7CgkgICAgcHN0LT5tYWRjbnRz W21dLnByZXYgPSBwc3QtPm1hZGNudHNbbV0uY3VyOwoJICAgIHBzdC0+bWFkY250c1ttXS5p c3ZhbGlkID0gMDsKCX0KICAgIH0KfQoKaW50CmliX3N0b3JlKHBtUmVzdWx0ICpyZXN1bHQs IHBtZGFFeHQgKnBtZGEpCnsKICAgIGludCBpOwoKICAgIGZvciAoaSA9IDA7IGkgPCByZXN1 bHQtPm51bXBtaWQgOyBpKyspIHsKCXBtVmFsdWVTZXQgKnZzID0gcmVzdWx0LT52c2V0W2ld OwoJX19wbUlEX2ludCAqcG1pZHAgPSAoX19wbUlEX2ludCAqKSZ2cy0+cG1pZDsKCWludCBp bnN0OwoKCWlmIChwbWlkcC0+Y2x1c3RlciAhPSAyKSB7CgkgICAgcmV0dXJuICgtRUFDQ0VT KTsKCX0KCglpZiAodnMtPnZhbGZtdCAhPSBQTV9WQUxfSU5TSVRVKSB7CgkgICAgcmV0dXJu ICgtRUlOVkFMKTsKCX0KCglmb3IgKGluc3Q9MDsgaW5zdCA8IHZzLT5udW12YWw7IGluc3Qr KykgewoJICAgIGludCBpZCA9IHZzLT52bGlzdFtpbnN0XS5pbnN0OwoJICAgIHZvaWQgKmNs b3N1cmUgPSBOVUxMOwoKCSAgICBzd2l0Y2ggKHBtaWRwLT5pdGVtKSB7CgkgICAgY2FzZSBN RVRSSUNfaWJfY29udHJvbF9xdWVyeV90aW1lb3V0OgoJCWlmIChwbWRhQ2FjaGVMb29rdXAg KHBtZGEtPmVfaW5kb21zW0lCX1BPUlRfSU5ET01dLml0X2luZG9tLAoJCQkJICAgICBpZCwg TlVMTCwgJmNsb3N1cmUpID09IFBNREFfQ0FDSEVfQUNUSVZFKSB7CgkJICAgIHBvcnRfc3Rh dGVfdCAqcHN0ID0gY2xvc3VyZTsKCQkgICAgcHN0LT50aW1lb3V0ID0gdnMtPnZsaXN0W2lu c3RdLnZhbHVlLmx2YWw7CgkJfSBlbHNlIHsKCQkgICAgcmV0dXJuIChQTV9FUlJfSU5TVCk7 CgkJfQoJCWJyZWFrOwoKCSAgICBjYXNlIE1FVFJJQ19pYl9jb250cm9sX2hpd2F0OgoJCWlm ICgoaWQgPCAwKSB8fAoJCSAgICAoaWQgPiBwbWRhLT5lX2luZG9tc1tJQl9DTlRfSU5ET01d Lml0X251bWluc3QpKSB7CgkJICAgIHJldHVybiAoUE1fRVJSX0lOU1QpOwoJCX0gCgoJCW1h ZF9jbnRfZGVzY3JpcHRvcnNbaWRdLmhpd2F0ID0gKHVpbnQzMl90KXZzLT52bGlzdFtpbnN0 XS52YWx1ZS5sdmFsOwoJCWJyZWFrOwoKCSAgICBkZWZhdWx0OgoJCXJldHVybiAoLUVBQ0NF Uyk7CgkgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9Cgo= --------------070100040508020700040605 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="ibpmda.h" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ibpmda.h" LyogCiAqIENvcHlyaWdodCAoQykgMjAxMyBSZWQgSGF0LgogKiBDb3B5cmlnaHQgKEMpIDIw MDcsMjAwOCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAq IAogKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeSBpdAogKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKICogRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo YXQgeW91cgogKiBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKiAKICogVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws IGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWQogKiBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICog Zm9yIG1vcmUgZGV0YWlscy4KICovCgojaWZuZGVmIF9JQlBNREFfSAojZGVmaW5lIF9JQlBN REFfSAoKI2luY2x1ZGUgPHBjcC9wbWFwaS5oPgojaW5jbHVkZSA8cGNwL2ltcGwuaD4KI2lu Y2x1ZGUgPHBjcC9wbWRhLmg+CiNpbmNsdWRlICJkb21haW4uaCIKCiNpZmRlZiBIQVZFX1BP UlRfUEVSRk9STUFOQ0VfUVVFUllfVklBCiNkZWZpbmUgcG9ydF9wZXJmX3F1ZXJ5KGRhdGEs IGRzdCwgcG9ydCwgdGltZW91dCwgc3JjcG9ydCkgXAoJcG9ydF9wZXJmb3JtYW5jZV9xdWVy eV92aWEoZGF0YSwgZHN0LCBwb3J0LCB0aW1lb3V0LCBzcmNwb3J0KQojZGVmaW5lIHBvcnRf cGVyZl9yZXNldChkYXRhLCBkc3QsIHBvcnQsIG1hc2ssIHRpbWVvdXQsIHNyY3BvcnQpIFwK CXBvcnRfcGVyZm9ybWFuY2VfcmVzZXRfdmlhKGRhdGEsIGRzdCwgcG9ydCwgbWFzaywgdGlt ZW91dCwgc3JjcG9ydCkKI2Vsc2UKI2RlZmluZSBwb3J0X3BlcmZfcXVlcnkoZGF0YSwgZHN0 LCBwb3J0LCB0aW1lb3V0LCBzcmNwb3J0KSBcCglwbWFfcXVlcnlfdmlhKGRhdGEsIGRzdCwg cG9ydCwgdGltZW91dCwgSUJfR1NJX1BPUlRfQ09VTlRFUlMsIHNyY3BvcnQpCiNkZWZpbmUg cG9ydF9wZXJmX3Jlc2V0KGRhdGEsIGRzdCwgcG9ydCwgbWFzaywgdGltZW91dCwgc3JjcG9y dCkgXAoJcGVyZm9ybWFuY2VfcmVzZXRfdmlhKGRhdGEsIGRzdCwgcG9ydCwgbWFzaywgdGlt ZW91dCwgSUJfR1NJX1BPUlRfQ09VTlRFUlMsIHNyY3BvcnQpCiNlbmRpZgoKCnZvaWQgaWJw bWRhX2luaXQgKGNvbnN0IGNoYXIgKmNvbmZpZ3BhdGgsIGludCwgcG1kYUludGVyZmFjZSAq KTsKCmludCBpYl9mZXRjaF92YWwocG1kYU1ldHJpYyAqLCB1bnNpZ25lZCBpbnQsIHBtQXRv bVZhbHVlICopOwppbnQgaWJfbG9hZF9jb25maWcoY29uc3QgY2hhciAqLCBpbnQsIHBtZGFJ bmRvbSAqLCB1bnNpZ25lZCBpbnQpOwp2b2lkIGliX3JlYXJtX2Zvcl91cGRhdGUodm9pZCAq KTsKdm9pZCBpYl9yZXNldF9wZXJmY291bnRlcnMgKHZvaWQgKik7CmludCBpYl9zdG9yZShw bVJlc3VsdCAqLCBwbWRhRXh0ICopOwoKI2RlZmluZSBJQl9IQ0FfSU5ET00gICAgMAojZGVm aW5lIElCX1BPUlRfSU5ET00gICAxCiNkZWZpbmUgSUJfQ05UX0lORE9NICAgIDIKCiNkZWZp bmUgSUJfUE9SVElORk9fVVBEQVRFIDB4MQojZGVmaW5lIElCX0hDQV9QRVJGX1VQREFURSAw eDIKI2RlZmluZSBJQl9TV0lUQ0hfUEVSRl9VUERBVEUgMHg4CgojZGVmaW5lIEFSUkFZU1oo YSkgKHNpemVvZihhKS9zaXplb2YoYVswXSkpCgojZGVmaW5lIE1FVFJJQ19pYl9oY2FfdHlw ZQkJMAojZGVmaW5lIE1FVFJJQ19pYl9oY2FfY2FfdHlwZQkJMSAKI2RlZmluZSBNRVRSSUNf aWJfaGNhX251bXBvcnRzCQkyCiNkZWZpbmUgTUVUUklDX2liX2hjYV9md192ZXIJCTMKI2Rl ZmluZSBNRVRSSUNfaWJfaGNhX2h3X3ZlcgkJNAojZGVmaW5lIE1FVFJJQ19pYl9oY2Ffbm9k ZV9ndWlkCQk1CiNkZWZpbmUgTUVUUklDX2liX2hjYV9zeXN0ZW1fZ3VpZAk2CiNkZWZpbmUg TUVUUklDX2liX3BvcnRfZ3VpZAkJNyAKI2RlZmluZSBNRVRSSUNfaWJfcG9ydF9naWRfcHJl Zml4CTgKI2RlZmluZSBNRVRSSUNfaWJfcG9ydF9saWQJCTkKI2RlZmluZSBNRVRSSUNfaWJf cG9ydF9zdGF0ZQkJMTAgCiNkZWZpbmUgTUVUUklDX2liX3BvcnRfcGh5c3RhdGUJCTExCiNk ZWZpbmUgTUVUUklDX2liX3BvcnRfcmF0ZQkJMTIKI2RlZmluZSBNRVRSSUNfaWJfcG9ydF9j YXBhYmlsaXRpZXMJMTMKI2RlZmluZSBNRVRSSUNfaWJfcG9ydF9saW5rc3BlZWQJMTQKI2Rl ZmluZSBNRVRSSUNfaWJfcG9ydF9saW5rd2lkdGgJMTUKCi8qIFBlci1wb3J0IHBlcmZvcm1h bmNlIGNvdW50ZXJzLCBjbHVzdGVyICMxICovCiNkZWZpbmUgTUVUUklDX2liX3BvcnRfaW5f Ynl0ZXMgICAgICAgICAgICAgICAgICAwCiNkZWZpbmUgTUVUUklDX2liX3BvcnRfaW5fcGFj a2V0cyAgICAgICAgICAgICAgICAxCiNkZWZpbmUgTUVUUklDX2liX3BvcnRfb3V0X2J5dGVz ICAgICAgICAgICAgICAgICAyCiNkZWZpbmUgTUVUUklDX2liX3BvcnRfb3V0X3BhY2tldHMg ICAgICAgICAgICAgICAzCiNkZWZpbmUgTUVUUklDX2liX3BvcnRfaW5fZXJyb3JzX2Ryb3Ag ICAgICAgICAgICA0CiNkZWZpbmUgTUVUUklDX2liX3BvcnRfb3V0X2Vycm9yc19kcm9wICAg ICAgICAgICA1CiNkZWZpbmUgTUVUUklDX2liX3BvcnRfdG90YWxfYnl0ZXMgICAgICAgICAg ICAgICA2CiNkZWZpbmUgTUVUUklDX2liX3BvcnRfdG90YWxfcGFja2V0cyAgICAgICAgICAg ICA3CiNkZWZpbmUgTUVUUklDX2liX3BvcnRfdG90YWxfZXJyb3JzX2Ryb3AgICAgICAgICA4 CiNkZWZpbmUgTUVUUklDX2liX3BvcnRfaW5fZXJyb3JzX2ZpbHRlciAgICAgICAgICA5CiNk ZWZpbmUgTUVUUklDX2liX3BvcnRfaW5fZXJyb3JzX2xvY2FsICAgICAgICAgICAxMAojZGVm aW5lIE1FVFJJQ19pYl9wb3J0X2luX2Vycm9yc19yZW1vdGUgICAgICAgICAgMTEKI2RlZmlu ZSBNRVRSSUNfaWJfcG9ydF9vdXRfZXJyb3JzX2ZpbHRlciAgICAgICAgIDEyCiNkZWZpbmUg TUVUUklDX2liX3BvcnRfdG90YWxfZXJyb3JzX2ZpbHRlciAgICAgICAxMwojZGVmaW5lIE1F VFJJQ19pYl9wb3J0X3RvdGFsX2Vycm9yc19saW5rICAgICAgICAgMTQKI2RlZmluZSBNRVRS SUNfaWJfcG9ydF90b3RhbF9lcnJvcnNfcmVjb3ZlciAgICAgIDE1CiNkZWZpbmUgTUVUUklD X2liX3BvcnRfdG90YWxfZXJyb3JzX2ludGVncml0eSAgICAxNgojZGVmaW5lIE1FVFJJQ19p Yl9wb3J0X3RvdGFsX2Vycm9yc192bDE1ICAgICAgICAgMTcKI2RlZmluZSBNRVRSSUNfaWJf cG9ydF90b3RhbF9lcnJvcnNfb3ZlcnJ1biAgICAgIDE4CiNkZWZpbmUgTUVUUklDX2liX3Bv cnRfdG90YWxfZXJyb3JzX3N5bWJvbCAgICAgICAxOQoKLyogQ29udHJvbCBtZXRyaWNzICov CiNkZWZpbmUgTUVUUklDX2liX2NvbnRyb2xfcXVlcnlfdGltZW91dAkwCiNkZWZpbmUgTUVU UklDX2liX2NvbnRyb2xfaGl3YXQJCTEKCi8qIFBlci1wb3J0IHN3aXRjaCBwZXJmb3JtYW5j ZSBjb3VudGVycywgY2x1c3RlciAjMyAqLwojZGVmaW5lIE1FVFJJQ19pYl9wb3J0X3N3aXRj aF9pbl9ieXRlcwkJMAojZGVmaW5lIE1FVFJJQ19pYl9wb3J0X3N3aXRjaF9pbl9wYWNrZXRz CTEKI2RlZmluZSBNRVRSSUNfaWJfcG9ydF9zd2l0Y2hfb3V0X2J5dGVzCQkyCiNkZWZpbmUg TUVUUklDX2liX3BvcnRfc3dpdGNoX291dF9wYWNrZXRzCTMKI2RlZmluZSBNRVRSSUNfaWJf cG9ydF9zd2l0Y2hfdG90YWxfYnl0ZXMJNAojZGVmaW5lIE1FVFJJQ19pYl9wb3J0X3N3aXRj aF90b3RhbF9wYWNrZXRzCTUKCmVudW0gaWJwbWRfY25kaWQgewoJSUJQTURBX0VSUl9TWU0g PSAwLAoJSUJQTURBX0xJTktfUkVDT1ZFUlMsCglJQlBNREFfTElOS19ET1dORUQsCglJQlBN REFfRVJSX1JDViwKCUlCUE1EQV9FUlJfUEhZU1JDViwKCUlCUE1EQV9FUlJfU1dJVENIX1JF TCwKCUlCUE1EQV9YTVRfRElTQ0FSRFMsCglJQlBNREFfRVJSX1hNVENPTlNUUiwKCUlCUE1E QV9FUlJfUkNWQ09OU1RSLAoJSUJQTURBX0VSUl9MT0NBTElOVEVHLAoJSUJQTURBX0VSUl9F WENFU1NfT1ZSLAoJSUJQTURBX1ZMMTVfRFJPUFBFRCwKCUlCUE1EQV9YTVRfQllURVMsCglJ QlBNREFfUkNWX0JZVEVTLAoJSUJQTURBX1hNVF9QS1RTLAoJSUJQTURBX1JDVl9QS1RTCn07 CgojZW5kaWYgLyogX0lCUE1EQV9IICovCg== --------------070100040508020700040605-- From minnus@buffalo.edu Tue Jul 1 12:38:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 57CE029DFA for ; Tue, 1 Jul 2014 12:38:27 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id B88A3AC00D for ; Tue, 1 Jul 2014 10:38:26 -0700 (PDT) X-ASG-Debug-ID: 1404236300-04cb6c76d03d0f60001-S8gJnT Received: from mtareserve1.acsu.buffalo.edu (mtareserve6.acsu.buffalo.edu [128.205.6.4]) by cuda.sgi.com with ESMTP id eXVK718gZxDrNAd0 for ; Tue, 01 Jul 2014 10:38:21 -0700 (PDT) X-Barracuda-Envelope-From: minnus@buffalo.edu X-Barracuda-Apparent-Source-IP: 128.205.6.4 Received: from localmailB.acsu.buffalo.edu (localmailb.acsu.buffalo.edu [128.205.5.200]) by mtareserve1.acsu.buffalo.edu (Postfix) with ESMTP id CC97F193; Tue, 1 Jul 2014 13:38:20 -0400 (EDT) Received: from localmailB.acsu.buffalo.edu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id C66BDF3BA; Tue, 1 Jul 2014 13:38:20 -0400 (EDT) Received: from localmailB.acsu.buffalo.edu (localhost [127.0.0.1]) by localmailB.acsu.buffalo.edu (Postfix) with ESMTP id 6FA1BF3B2; Tue, 1 Jul 2014 13:38:18 -0400 (EDT) Received: from smtp.buffalo.edu (smtp3.acsu.buffalo.edu [128.205.5.226]) by localmailB.acsu.buffalo.edu (Prefixe) with ESMTP id 5FA70F3B1; Tue, 1 Jul 2014 13:38:18 -0400 (EDT) Received: from gilmour.ccr.buffalo.edu (gilmour.ccr.buffalo.edu [128.205.40.13]) (Authenticated sender: minnus@buffalo.edu) by smtp.buffalo.edu (Postfix) with ESMTPSA id 519F3C1EC; Tue, 1 Jul 2014 13:38:18 -0400 (EDT) Message-ID: <53B2F20E.7080600@buffalo.edu> Date: Tue, 01 Jul 2014 13:38:22 -0400 From: Martins Innus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Nathan Scott CC: PCP Subject: Re: [pcp] nvidia/nvml pmda References: <53A995C8.5020904@buffalo.edu> <1015758147.33977940.1403768176429.JavaMail.zimbra@redhat.com> <1626126016.1041444.1404199831629.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: [pcp] nvidia/nvml pmda In-Reply-To: <1626126016.1041444.1404199831629.JavaMail.zimbra@redhat.com> Content-Type: multipart/mixed; boundary="------------030603090404010802050405" X-PM-EL-Spam-Prob: : 8% X-Barracuda-Connect: mtareserve6.acsu.buffalo.edu[128.205.6.4] X-Barracuda-Start-Time: 1404236301 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7145 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- This is a multi-part message in MIME format. --------------030603090404010802050405 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Nathan, On 7/1/14, 3:30 AM, Nathan Scott wrote: > I added the error checking, long option support, some QA testing, and > the dso independence discussed earlier. Oh - also work a closer look, > I added a fetch PDU handler to accompany your existing fetch callback. > This means when we get a fetch request, we only refresh the values at > the start (once), not once for each metric/instance pair. This is a > small efficiency improvement with how we interact with the cards, the > functionality is exactly the same as before. Wow! looks great. > > Not essential, but it'd also be nice to have a man page as well, if you > wouldn't mind writing one? I didn't tackle that side of things, though > I did update the help text a bit based on my readings of the API docs > (please review? that, and all the code changes :) - heh, thanks!). OK, attached. > > I've tested this only on "faked-out" hardware - see qa/744 - and not > using the real nvidia libraries (I have neither). Any chance you could > hack on those aspects before the next release Martins? (after the IB > updates you mentioned privately would be perfect, if you can). We aim > for a point release in the middle of each month, so there's a couple of > weeks until then. Especially the "using real hardware" side of testing > would be really good, since I can't do that here. :) OK, included are new files that have changes to make this work on real hardware. A typo fix in the dlopen and then a change in the error handling. I'm not entirely happy with my error changes, but I think its in a direction to get it working. Cards may not neccesarrily support all the possible metrics so the pmda should fail to return any metrics. For instance we have older Tesla GPU cards that don't return anything for the temp and fan metrics, but everything else is ok. > > The other aspect I could look at is the spec file - you sent through an > initial version, which would provide a separate pcp-pmda-nvidia package. > However with the way the code is now, we could include this PMDA in the > main pcp package if you'd prefer that? (I would, it makes life easier > for users - this can be done since the PMDA now functions gracefully > with and without the nvidia library, even if the library appears while > its already running, it should handle that nicely too. Yeah, I think including it in the main package would be preferable. I just sent along our existing spec file for completeness. > > The only change we would need would be a one-line spec update for your > existing installations, to ensure existing pcp-pmda-nvidia RPMs you have > are replaced by pcp-3.9.7 or later (I'll go and hack on that when I hear > back re your packaging preference). > Sounds Good, Thanks! Martins --------------030603090404010802050405 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="localnvml.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="localnvml.c" LyoKICogQ29weXJpZ2h0IChjKSAyMDE0IFJlZCBIYXQuCiAqCiAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 IGl0CiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5IHRoZQogKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAqIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKICogV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO VEFCSUxJVFkKICogb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAqIGZvciBtb3JlIGRldGFpbHMuCiAq LwojaW5jbHVkZSAicG1hcGkuaCIKI2lmIGRlZmluZWQoSEFWRV9ETEZDTl9IKQojaW5jbHVk ZSA8ZGxmY24uaD4KI2VuZGlmCiNpbmNsdWRlICJsb2NhbG52bWwuaCIKCi8qCiAqIEltcGxl bWVudHMgTlZNTCBpbnRlcmZhY2VzIGJhc2VkIG9uOgogKiBodHRwOi8vZG9jcy5udmlkaWEu Y29tL2RlcGxveS9udm1sLWFwaS9pbmRleC5odG1sCiAqIC4uLiB1c2luZyBlaXRoZXIgYSBk bG9wZW4nZCAzcmQgcGFydHkgb3IgIm5vIHZhbHVlcyBhdmFpbGFibGUiLgogKi8KCnN0cnVj dCB7CiAgICBjb25zdCBjaGFyCSpzeW1ib2w7CiAgICB2b2lkCSpoYW5kbGU7Cn0gbnZtbF9z eW10YWJbXSA9IHsKICAgIHsgLnN5bWJvbCA9ICJudm1sSW5pdCIgfSwKICAgIHsgLnN5bWJv bCA9ICJudm1sU2h1dGRvd24iIH0sCiAgICB7IC5zeW1ib2wgPSAibnZtbERldmljZUdldENv dW50IiB9LAogICAgeyAuc3ltYm9sID0gIm52bWxEZXZpY2VHZXRIYW5kbGVCeUluZGV4IiB9 LAogICAgeyAuc3ltYm9sID0gIm52bWxEZXZpY2VHZXROYW1lIiB9LAogICAgeyAuc3ltYm9s ID0gIm52bWxEZXZpY2VHZXRQY2lJbmZvIiB9LAogICAgeyAuc3ltYm9sID0gIm52bWxEZXZp Y2VHZXRGYW5TcGVlZCIgfSwKICAgIHsgLnN5bWJvbCA9ICJudm1sRGV2aWNlR2V0VGVtcGVy YXR1cmUiIH0sCiAgICB7IC5zeW1ib2wgPSAibnZtbERldmljZUdldFV0aWxpemF0aW9uUmF0 ZXMiIH0sCiAgICB7IC5zeW1ib2wgPSAibnZtbERldmljZUdldE1lbW9yeUluZm8iIH0sCiAg ICB7IC5zeW1ib2wgPSAibnZtbERldmljZUdldFBlcmZvcm1hbmNlU3RhdGUiIH0sCn07CmVu dW0gewogICAgTlZNTF9JTklULAogICAgTlZNTF9TSFVURE9XTiwKICAgIE5WTUxfREVWSUNF X0dFVF9DT1VOVCwKICAgIE5WTUxfREVWSUNFX0dFVF9IQU5ETEVCWUlOREVYLAogICAgTlZN TF9ERVZJQ0VfR0VUX05BTUUsCiAgICBOVk1MX0RFVklDRV9HRVRfUENJSU5GTywKICAgIE5W TUxfREVWSUNFX0dFVF9GQU5TUEVFRCwKICAgIE5WTUxfREVWSUNFX0dFVF9URU1QRVJBVFVS RSwKICAgIE5WTUxfREVWSUNFX0dFVF9VVElMSVpBVElPTlJBVEVTLAogICAgTlZNTF9ERVZJ Q0VfR0VUX01FTU9SWUlORk8sCiAgICBOVk1MX0RFVklDRV9HRVRfUEVSRk9STUFOQ0VTVEFU RSwKICAgIE5WTUxfU1lNQk9MX0NPVU5UCn07CnR5cGVkZWYgaW50ICgqbG9jYWxfaW5pdF90 KSh2b2lkKTsKdHlwZWRlZiBpbnQgKCpsb2NhbF9zaHV0ZG93bl90KSh2b2lkKTsKdHlwZWRl ZiBpbnQgKCpsb2NhbF9kZXZfZ2V0X2NvdW50X3QpKHVuc2lnbmVkIGludCAqKTsKdHlwZWRl ZiBpbnQgKCpsb2NhbF9kZXZfZ2V0X2hhbmRsZWJ5aW5kZXhfdCkodW5zaWduZWQgaW50LCBu dm1sRGV2aWNlX3QgKik7CnR5cGVkZWYgaW50ICgqbG9jYWxfZGV2X2dldF9uYW1lX3QpKG52 bWxEZXZpY2VfdCwgY2hhciAqLCB1bnNpZ25lZCBpbnQpOwp0eXBlZGVmIGludCAoKmxvY2Fs X2Rldl9nZXRfcGNpaW5mb190KShudm1sRGV2aWNlX3QsIG52bWxQY2lJbmZvX3QgKik7CnR5 cGVkZWYgaW50ICgqbG9jYWxfZGV2X2dldF9mYW5zcGVlZF90KShudm1sRGV2aWNlX3QsIHVu c2lnbmVkIGludCAqKTsKdHlwZWRlZiBpbnQgKCpsb2NhbF9kZXZfZ2V0X3RlbXBlcmF0dXJl X3QpKG52bWxEZXZpY2VfdCwgbnZtbFRlbXBlcmF0dXJlU2Vuc29yc190LCB1bnNpZ25lZCBp bnQgKik7CnR5cGVkZWYgaW50ICgqbG9jYWxfZGV2X2dldF91dGlsaXphdGlvbnJhdGVzX3Qp KG52bWxEZXZpY2VfdCwgbnZtbFV0aWxpemF0aW9uX3QgKik7CnR5cGVkZWYgaW50ICgqbG9j YWxfZGV2X2dldF9tZW1vcnlpbmZvX3QpKG52bWxEZXZpY2VfdCwgbnZtbE1lbW9yeV90ICop Owp0eXBlZGVmIGludCAoKmxvY2FsX2Rldl9nZXRfcGVyZm9ybWFuY2VzdGF0ZV90KShudm1s RGV2aWNlX3QsIG52bWxQc3RhdGVzX3QgKik7CgpzdGF0aWMgaW50CnJlc29sdmVfc3ltYm9s cyh2b2lkKQp7CiAgICBzdGF0aWMgdm9pZCAqbnZtbF9kc287CiAgICBpbnQgaTsKCiAgICBp ZiAobnZtbF9kc28gIT0gTlVMTCkKCXJldHVybiAwOwogICAgaWYgKChudm1sX2RzbyA9IGRs b3BlbigibGlibnZpZGlhLW1sLnNvIiwgUlRMRF9OT1cpKSA9PSBOVUxMKXsKCV9fcG1Ob3Rp ZnlFcnIoTE9HX0lORk8sICJDb3VsZG4ndCBsb2FkIG52bWwgTGlicmFyeSIpOwoJX19wbU5v dGlmeUVycihMT0dfSU5GTywgImRsZXJyb3IoKTogJXMiLCBkbGVycm9yKCkpOwoJcmV0dXJu IE5WTUxfRVJST1JfTElCUkFSWV9OT1RfRk9VTkQ7IAogICAgfQogICAgZWxzZXsKCV9fcG1O b3RpZnlFcnIoTE9HX0lORk8sICJEaWQgbG9hZCBudm1sIExpYnJhcnkiKTsKICAgIH0KICAg IGZvciAoaSA9IDA7IGkgPCBOVk1MX1NZTUJPTF9DT1VOVDsgaSsrKQoJbnZtbF9zeW10YWJb aV0uaGFuZGxlID0gZGxzeW0obnZtbF9kc28sIG52bWxfc3ltdGFiW2ldLnN5bWJvbCk7CiAg ICByZXR1cm4gMDsKfQoKaW50CmxvY2FsTnZtbEluaXQodm9pZCkKewogICAgbG9jYWxfaW5p dF90IGluaXQ7CiAgICB2b2lkICpmdW5jOwogICAgaW50IHN0cyA9IHJlc29sdmVfc3ltYm9s cygpOwoKICAgIGlmIChzdHMgIT0gMCkKCXJldHVybiBzdHM7CiAgICBpZiAoKGZ1bmMgPSBu dm1sX3N5bXRhYltOVk1MX0lOSVRdLmhhbmRsZSkgPT0gTlVMTCkKCXJldHVybiBOVk1MX0VS Uk9SX0ZVTkNUSU9OX05PVF9GT1VORDsKICAgIGluaXQgPSAobG9jYWxfaW5pdF90KWZ1bmM7 CiAgICByZXR1cm4gaW5pdCgpOwp9CgppbnQKbG9jYWxOdm1sU2h1dGRvd24odm9pZCkKewog ICAgbG9jYWxfc2h1dGRvd25fdCBzaHV0ZG93bjsKICAgIHZvaWQgKmZ1bmMgPSBudm1sX3N5 bXRhYltOVk1MX1NIVVRET1dOXS5oYW5kbGU7CgogICAgaWYgKCFmdW5jKQoJcmV0dXJuIE5W TUxfRVJST1JfRlVOQ1RJT05fTk9UX0ZPVU5EOwogICAgc2h1dGRvd24gPSAobG9jYWxfc2h1 dGRvd25fdClmdW5jOwogICAgcmV0dXJuIHNodXRkb3duKCk7Cn0KCmludApsb2NhbE52bWxE ZXZpY2VHZXRDb3VudCh1bnNpZ25lZCBpbnQgKmNvdW50KQp7CiAgICBsb2NhbF9kZXZfZ2V0 X2NvdW50X3QgZGV2X2dldF9jb3VudDsKICAgIHZvaWQgKmZ1bmMgPSBudm1sX3N5bXRhYltO Vk1MX0RFVklDRV9HRVRfQ09VTlRdLmhhbmRsZTsKCiAgICBpZiAoIWZ1bmMpCglyZXR1cm4g TlZNTF9FUlJPUl9GVU5DVElPTl9OT1RfRk9VTkQ7CiAgICBkZXZfZ2V0X2NvdW50ID0gKGxv Y2FsX2Rldl9nZXRfY291bnRfdClmdW5jOwogICAgcmV0dXJuIGRldl9nZXRfY291bnQoY291 bnQpOwp9CgppbnQKbG9jYWxOdm1sRGV2aWNlR2V0SGFuZGxlQnlJbmRleCh1bnNpZ25lZCBp bnQgaW5kZXgsIG52bWxEZXZpY2VfdCAqZGV2aWNlKQp7CiAgICBsb2NhbF9kZXZfZ2V0X2hh bmRsZWJ5aW5kZXhfdCBkZXZfZ2V0X2hhbmRsZWJ5aW5kZXg7CiAgICB2b2lkICpmdW5jID0g bnZtbF9zeW10YWJbTlZNTF9ERVZJQ0VfR0VUX0hBTkRMRUJZSU5ERVhdLmhhbmRsZTsKCiAg ICBpZiAoIWZ1bmMpCglyZXR1cm4gTlZNTF9FUlJPUl9GVU5DVElPTl9OT1RfRk9VTkQ7CiAg ICBkZXZfZ2V0X2hhbmRsZWJ5aW5kZXggPSAobG9jYWxfZGV2X2dldF9oYW5kbGVieWluZGV4 X3QpZnVuYzsKICAgIHJldHVybiBkZXZfZ2V0X2hhbmRsZWJ5aW5kZXgoaW5kZXgsIGRldmlj ZSk7Cn0KCmludApsb2NhbE52bWxEZXZpY2VHZXROYW1lKG52bWxEZXZpY2VfdCBkZXZpY2Us IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGludCBzaXplKQp7CiAgICBsb2NhbF9kZXZfZ2V0X25h bWVfdCBkZXZfZ2V0X25hbWU7CiAgICB2b2lkICpmdW5jID0gbnZtbF9zeW10YWJbTlZNTF9E RVZJQ0VfR0VUX05BTUVdLmhhbmRsZTsKCiAgICBpZiAoIWZ1bmMpCglyZXR1cm4gTlZNTF9F UlJPUl9GVU5DVElPTl9OT1RfRk9VTkQ7CiAgICBkZXZfZ2V0X25hbWUgPSAobG9jYWxfZGV2 X2dldF9uYW1lX3QpZnVuYzsKICAgIHJldHVybiBkZXZfZ2V0X25hbWUoZGV2aWNlLCBuYW1l LCBzaXplKTsKfQoKaW50CmxvY2FsTnZtbERldmljZUdldFBjaUluZm8obnZtbERldmljZV90 IGRldmljZSwgbnZtbFBjaUluZm9fdCAqaW5mbykKewogICAgbG9jYWxfZGV2X2dldF9wY2lp bmZvX3QgZGV2X2dldF9wY2lpbmZvOwogICAgdm9pZCAqZnVuYyA9IG52bWxfc3ltdGFiW05W TUxfREVWSUNFX0dFVF9QQ0lJTkZPXS5oYW5kbGU7CgogICAgaWYgKCFmdW5jKQoJcmV0dXJu IE5WTUxfRVJST1JfRlVOQ1RJT05fTk9UX0ZPVU5EOwogICAgZGV2X2dldF9wY2lpbmZvID0g KGxvY2FsX2Rldl9nZXRfcGNpaW5mb190KWZ1bmM7CiAgICByZXR1cm4gZGV2X2dldF9wY2lp bmZvKGRldmljZSwgaW5mbyk7Cn0KCmludApsb2NhbE52bWxEZXZpY2VHZXRGYW5TcGVlZChu dm1sRGV2aWNlX3QgZGV2aWNlLCB1bnNpZ25lZCBpbnQgKnNwZWVkKQp7CiAgICBsb2NhbF9k ZXZfZ2V0X2ZhbnNwZWVkX3QgZGV2X2dldF9mYW5zcGVlZDsKICAgIHZvaWQgKmZ1bmMgPSBu dm1sX3N5bXRhYltOVk1MX0RFVklDRV9HRVRfRkFOU1BFRURdLmhhbmRsZTsKCiAgICBpZiAo IWZ1bmMpCglyZXR1cm4gTlZNTF9FUlJPUl9GVU5DVElPTl9OT1RfRk9VTkQ7CiAgICBkZXZf Z2V0X2ZhbnNwZWVkID0gKGxvY2FsX2Rldl9nZXRfZmFuc3BlZWRfdClmdW5jOwogICAgcmV0 dXJuIGRldl9nZXRfZmFuc3BlZWQoZGV2aWNlLCBzcGVlZCk7Cn0KCmludApsb2NhbE52bWxE ZXZpY2VHZXRUZW1wZXJhdHVyZShudm1sRGV2aWNlX3QgZGV2aWNlLCBudm1sVGVtcGVyYXR1 cmVTZW5zb3JzX3QgY29kZSwgdW5zaWduZWQgaW50ICp0ZW1wKQp7CiAgICBsb2NhbF9kZXZf Z2V0X3RlbXBlcmF0dXJlX3QgZGV2X2dldF90ZW1wZXJhdHVyZTsKICAgIHZvaWQgKmZ1bmMg PSBudm1sX3N5bXRhYltOVk1MX0RFVklDRV9HRVRfVEVNUEVSQVRVUkVdLmhhbmRsZTsKCiAg ICBpZiAoIWZ1bmMpCglyZXR1cm4gTlZNTF9FUlJPUl9GVU5DVElPTl9OT1RfRk9VTkQ7CiAg ICBkZXZfZ2V0X3RlbXBlcmF0dXJlID0gKGxvY2FsX2Rldl9nZXRfdGVtcGVyYXR1cmVfdClm dW5jOwogICAgcmV0dXJuIGRldl9nZXRfdGVtcGVyYXR1cmUoZGV2aWNlLCBjb2RlLCB0ZW1w KTsKfQoKaW50CmxvY2FsTnZtbERldmljZUdldFV0aWxpemF0aW9uUmF0ZXMobnZtbERldmlj ZV90IGRldmljZSwgbnZtbFV0aWxpemF0aW9uX3QgKnV0aWwpCnsKICAgIGxvY2FsX2Rldl9n ZXRfdXRpbGl6YXRpb25yYXRlc190IGRldl9nZXRfdXRpbGl6YXRpb25yYXRlczsKICAgIHZv aWQgKmZ1bmMgPSBudm1sX3N5bXRhYltOVk1MX0RFVklDRV9HRVRfVVRJTElaQVRJT05SQVRF U10uaGFuZGxlOwoKICAgIGlmICghZnVuYykKCXJldHVybiBOVk1MX0VSUk9SX0ZVTkNUSU9O X05PVF9GT1VORDsKICAgIGRldl9nZXRfdXRpbGl6YXRpb25yYXRlcyA9IChsb2NhbF9kZXZf Z2V0X3V0aWxpemF0aW9ucmF0ZXNfdClmdW5jOwogICAgcmV0dXJuIGRldl9nZXRfdXRpbGl6 YXRpb25yYXRlcyhkZXZpY2UsIHV0aWwpOwp9CgppbnQKbG9jYWxOdm1sRGV2aWNlR2V0TWVt b3J5SW5mbyhudm1sRGV2aWNlX3QgZGV2aWNlLCBudm1sTWVtb3J5X3QgKm1lbW9yeSkKewog ICAgbG9jYWxfZGV2X2dldF9tZW1vcnlpbmZvX3QgZGV2X2dldF9tZW1vcnlpbmZvOwogICAg dm9pZCAqZnVuYyA9IG52bWxfc3ltdGFiW05WTUxfREVWSUNFX0dFVF9NRU1PUllJTkZPXS5o YW5kbGU7CgogICAgaWYgKCFmdW5jKQoJcmV0dXJuIE5WTUxfRVJST1JfRlVOQ1RJT05fTk9U X0ZPVU5EOwogICAgZGV2X2dldF9tZW1vcnlpbmZvID0gKGxvY2FsX2Rldl9nZXRfbWVtb3J5 aW5mb190KWZ1bmM7CiAgICByZXR1cm4gZGV2X2dldF9tZW1vcnlpbmZvKGRldmljZSwgbWVt b3J5KTsKfQoKaW50CmxvY2FsTnZtbERldmljZUdldFBlcmZvcm1hbmNlU3RhdGUobnZtbERl dmljZV90IGRldmljZSwgbnZtbFBzdGF0ZXNfdCAqc3RhdGUpCnsKICAgIGxvY2FsX2Rldl9n ZXRfcGVyZm9ybWFuY2VzdGF0ZV90IGRldl9nZXRfcGVyZm9ybWFuY2VzdGF0ZTsKICAgIHZv aWQgKmZ1bmMgPSBudm1sX3N5bXRhYltOVk1MX0RFVklDRV9HRVRfUEVSRk9STUFOQ0VTVEFU RV0uaGFuZGxlOwoKICAgIGlmICghZnVuYykKCXJldHVybiBOVk1MX0VSUk9SX0ZVTkNUSU9O X05PVF9GT1VORDsKICAgIGRldl9nZXRfcGVyZm9ybWFuY2VzdGF0ZSA9IChsb2NhbF9kZXZf Z2V0X3BlcmZvcm1hbmNlc3RhdGVfdClmdW5jOwogICAgcmV0dXJuIGRldl9nZXRfcGVyZm9y bWFuY2VzdGF0ZShkZXZpY2UsIHN0YXRlKTsKfQoKY29uc3QgY2hhciAqCmxvY2FsTnZtbEVy clN0cihudm1sUmV0dXJuX3Qgc3RzKQp7CiAgICBpbnQgaTsKICAgIHN0YXRpYyBjb25zdCBj aGFyICp1bmtub3duID0gIk5vIHN1Y2ggZXJyb3IgY29kZSI7CiAgICBzdGF0aWMgc3RydWN0 IHsKCWludAkJY29kZTsKCWNvbnN0IGNoYXIJKm1zZzsKICAgIH0gdGFibGVbXSA9IHsgewoJ TlZNTF9TVUNDRVNTLAoiVGhlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bCIgfSwgewoJTlZN TF9FUlJPUl9VTklOSVRJQUxJWkVELAoiTlZNTCB3YXMgbm90IGZpcnN0IGluaXRpYWxpemVk IHdpdGggbnZtbEluaXQoKSIgfSwgewoJTlZNTF9FUlJPUl9JTlZBTElEX0FSR1VNRU5ULAoi QSBzdXBwbGllZCBhcmd1bWVudCBpcyBpbnZhbGlkIiB9LCB7CglOVk1MX0VSUk9SX05PVF9T VVBQT1JURUQsCiJUaGUgcmVxdWVzdGVkIG9wZXJhdGlvbiBpcyBub3QgYXZhaWxhYmxlIG9u IHRhcmdldCBkZXZpY2UiIH0sIHsKCU5WTUxfRVJST1JfTk9fUEVSTUlTU0lPTiwKIlRoZSBj dXJyZW50IHVzZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIGZvciBvcGVyYXRpb24iIH0s IHsKCU5WTUxfRVJST1JfQUxSRUFEWV9JTklUSUFMSVpFRCwKIkRlcHJlY2F0ZWQgZXJyb3Ig Y29kZSAoNSkiIH0sIHsKCU5WTUxfRVJST1JfTk9UX0ZPVU5ELAoiQSBxdWVyeSB0byBmaW5k IGFuIG9iamVjdCB3YXMgdW5zdWNjZXNzZnVsIiB9LCB7CglOVk1MX0VSUk9SX0lOU1VGRklD SUVOVF9TSVpFLAoiQW4gaW5wdXQgYXJndW1lbnQgaXMgbm90IGxhcmdlIGVub3VnaCIgfSwg ewoJTlZNTF9FUlJPUl9JTlNVRkZJQ0lFTlRfUE9XRVIsCiJBIGRldmljZSdzIGV4dGVybmFs IHBvd2VyIGNhYmxlcyBhcmUgbm90IHByb3Blcmx5IGF0dGFjaGVkIiB9LCB7CglOVk1MX0VS Uk9SX0RSSVZFUl9OT1RfTE9BREVELAoiTlZJRElBIGRyaXZlciBpcyBub3QgbG9hZGVkIiB9 LCB7CglOVk1MX0VSUk9SX1RJTUVPVVQsCiJVc2VyIHByb3ZpZGVkIHRpbWVvdXQgcGFzc2Vk IiB9LCB7CglOVk1MX0VSUk9SX0lSUV9JU1NVRSwKIk5WSURJQSBLZXJuZWwgZGV0ZWN0ZWQg YW4gaW50ZXJydXB0IGlzc3VlIHdpdGggYSBHUFUiIH0sIHsKCU5WTUxfRVJST1JfTElCUkFS WV9OT1RfRk9VTkQsCiJOVk1MIFNoYXJlZCBMaWJyYXJ5IGNvdWxkbid0IGJlIGZvdW5kIG9y IGxvYWRlZCIgfSwgewoJTlZNTF9FUlJPUl9GVU5DVElPTl9OT1RfRk9VTkQsCiJMb2NhbCB2 ZXJzaW9uIG9mIE5WTUwgZG9lc24ndCBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbiIgfSwgewoJ TlZNTF9FUlJPUl9DT1JSVVBURURfSU5GT1JPTSwKImluZm9ST00gaXMgY29ycnVwdGVkIiB9 LCB7CglOVk1MX0VSUk9SX0dQVV9JU19MT1NULAoiVGhlIEdQVSBoYXMgZmFsbGVuIG9mZiB0 aGUgYnVzIG9yIGhhcyBvdGhlcndpc2UgYmVjb21lIGluYWNjZXNzaWJsZSIgfSwgewoJTlZN TF9FUlJPUl9VTktOT1dOLAoiQW4gaW50ZXJuYWwgZHJpdmVyIGVycm9yIG9jY3VycmVkIgog ICAgfSB9OwoKICAgIGZvciAoaSA9IDA7IGkgPCAoc2l6ZW9mKHRhYmxlKS9zaXplb2YodGFi bGVbMF0pKTsgaSsrKSB7CglpZiAodGFibGVbaV0uY29kZSA9PSBzdHMpCgkgICAgcmV0dXJu IHRhYmxlW2ldLm1zZzsKICAgIH0KICAgIHJldHVybiB1bmtub3duOwp9Cg== --------------030603090404010802050405 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="nvidia.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="nvidia.c" LyoKICogQ29weXJpZ2h0IChjKSAyMDE0IFJlZCBIYXQuCiAqCiAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 IGl0CiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5IHRoZQogKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAqIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKICogV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO VEFCSUxJVFkKICogb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAqIGZvciBtb3JlIGRldGFpbHMuCiAq LwojaW5jbHVkZSAicG1hcGkuaCIKI2luY2x1ZGUgImltcGwuaCIKI2luY2x1ZGUgInBtZGEu aCIKI2luY2x1ZGUgImRvbWFpbi5oIgojaW5jbHVkZSAibG9jYWxudm1sLmgiCgovLyBHQ0FS RF9JTkRPTSBzdHJ1Y3QsIHN0YXRzIHRoYXQgYXJlIHBlciBjYXJkCnR5cGVkZWYgc3RydWN0 IHsKCiAgICBpbnQJCQljYXJkaWQ7CiAgICBpbnQJCQlmYWlsZWRbMTJdOwogICAgY2hhcgkJ Km5hbWU7CiAgICBjaGFyCQkqYnVzaWQ7CiAgICBpbnQJCQl0ZW1wOwogICAgaW50CQkJZmFu c3BlZWQ7CiAgICBpbnQJCQlwZXJmc3RhdGU7CiAgICBudm1sVXRpbGl6YXRpb25fdAlhY3Rp dmU7CiAgICBudm1sTWVtb3J5X3QJbWVtb3J5OwovLyAgICB1bnNpZ25lZCBsb25nIGxvbmcJ bWVtdXNlZDsKLy8gICAgdW5zaWduZWQgbG9uZyBsb25nCW1lbXRvdGFsOwoKfSBudmluZm9f dDsKCi8vIG92ZXJhbGwgc3RydWN0LCBob2xkcyBpbnN0YW5jZSB2YWx1ZXMsIGluZG9tIGFy cmF5cyBhbmQgaW5zdGFuY2Ugc3RydWN0IGFycmF5cwp0eXBlZGVmIHN0cnVjdCB7CgogICAg aW50IG51bWNhcmRzOwogICAgaW50IG1heGNhcmRzOwogICAgbnZpbmZvX3QgKm52aW5mbzsK ICAgIHBtZGFJbmRvbSAqbnZpbmRvbTsKCn0gcGNwX252aW5mb190OwoKLy8gZWFjaCBJTkRP TSwgdGhpcyBvbmx5IGhhcyBvbmUsIGNvcnJlc3BvbmRpbmcgdG8gdmFsdWVzIHRoYXQgY2hh bmdlIHBlciBjYXJkCnBtZGFJbmRvbSBpbmRvbXRhYltdID0gewojZGVmaW5lIEdDQVJEX0lO RE9NICAgICAwCiAgICB7IEdDQVJEX0lORE9NLCAwLCBOVUxMIH0sCn07CgpzdGF0aWMgcGNw X252aW5mb190IHBjcF9udmluZm87CgoKLy8gbGlzdCBvZiBtZXRyaWNzIHdlIHdhbnQgdG8g ZXhwb3J0Ci8vIGFsbCBpbiBjbHVzdGVyIDAsIHdpdGggaW5jcmVhc2luZyBpdGVtIGlkcwpz dGF0aWMgcG1kYU1ldHJpYyBtZXRyaWN0YWJbXSA9IHsKLyogbnVtIGNhcmRzICwgbm8gaW5k b20gKi8KICAgIHsgTlVMTCwgCiAgICAgIHsgUE1EQV9QTUlEKDAsMCksIFBNX1RZUEVfVTMy LCBQTV9JTkRPTV9OVUxMLCBQTV9TRU1fSU5TVEFOVCwgCiAgICAgICAgUE1EQV9QTVVOSVRT KDAsIDAsIDAsIDAsIDAsIDApIH0gfSwKLyogY2FyZCBpZCAqLwogICAgeyBOVUxMLCAKICAg ICAgeyBQTURBX1BNSUQoMCwxKSwgUE1fVFlQRV9VMzIsIEdDQVJEX0lORE9NLCBQTV9TRU1f SU5TVEFOVCwgCiAgICAgICAgUE1EQV9QTVVOSVRTKDAsIDAsIDAsIDAsIDAsIDApIH0gfSwK LyogY2FyZCBuYW1lICovCiAgICB7IE5VTEwsIAogICAgICB7IFBNREFfUE1JRCgwLDIpLCBQ TV9UWVBFX1NUUklORywgR0NBUkRfSU5ET00sIFBNX1NFTV9JTlNUQU5ULCAKICAgICAgICBQ TURBX1BNVU5JVFMoMCwgMCwgMCwgMCwgMCwgMCkgfSB9LAovKiBidXMgaWQgKi8KICAgIHsg TlVMTCwgCiAgICAgIHsgUE1EQV9QTUlEKDAsMyksIFBNX1RZUEVfU1RSSU5HLCBHQ0FSRF9J TkRPTSwgUE1fU0VNX0lOU1RBTlQsIAogICAgICAgIFBNREFfUE1VTklUUygwLCAwLCAwLCAw LCAwLCAwKSB9IH0sCi8qIHRlbXAgKi8KICAgIHsgTlVMTCwgCiAgICAgIHsgUE1EQV9QTUlE KDAsNCksIFBNX1RZUEVfVTMyLCBHQ0FSRF9JTkRPTSwgUE1fU0VNX0lOU1RBTlQsIAogICAg ICAgIFBNREFfUE1VTklUUygwLCAwLCAwLCAwLCAwLCAwKSB9IH0sCi8qIGZhbnNwZWVkICov CiAgICB7IE5VTEwsIAogICAgICB7IFBNREFfUE1JRCgwLDUpLCBQTV9UWVBFX1UzMiwgR0NB UkRfSU5ET00sIFBNX1NFTV9JTlNUQU5ULCAKICAgICAgICBQTURBX1BNVU5JVFMoMCwgMCwg MCwgMCwgMCwgMCkgfSB9LAovKiBwZXJmIHN0YXRlICovCiAgICB7IE5VTEwsIAogICAgICB7 IFBNREFfUE1JRCgwLDYpLCBQTV9UWVBFX1UzMiwgR0NBUkRfSU5ET00sIFBNX1NFTV9JTlNU QU5ULCAKICAgICAgICBQTURBX1BNVU5JVFMoMCwgMCwgMCwgMCwgMCwgMCkgfSB9LAovKiBn cHUgYWN0aXZlICovCiAgICB7IE5VTEwsIAogICAgICB7IFBNREFfUE1JRCgwLDcpLCBQTV9U WVBFX1UzMiwgR0NBUkRfSU5ET00sIFBNX1NFTV9JTlNUQU5ULCAKICAgICAgICBQTURBX1BN VU5JVFMoMCwgMCwgMCwgMCwgMCwgMCkgfSB9LAovKiBtZW0gYWN0aXZlICovCiAgICB7IE5V TEwsIAogICAgICB7IFBNREFfUE1JRCgwLDgpLCBQTV9UWVBFX1UzMiwgR0NBUkRfSU5ET00s IFBNX1NFTV9JTlNUQU5ULCAKICAgICAgICBQTURBX1BNVU5JVFMoMCwgMCwgMCwgMCwgMCwg MCkgfSB9LAovKiBtZW0gdXNlZCAqLwogICAgeyBOVUxMLCAKICAgICAgeyBQTURBX1BNSUQo MCw5KSwgUE1fVFlQRV9VNjQsIEdDQVJEX0lORE9NLCBQTV9TRU1fSU5TVEFOVCwgCiAgICAg ICAgUE1EQV9QTVVOSVRTKDEsIDAsIDAsIFBNX1NQQUNFX0JZVEUsIDAsIDApIH0gfSwKLyog bWVtIHRvdGFsICovCiAgICB7IE5VTEwsIAogICAgICB7IFBNREFfUE1JRCgwLDEwKSwgUE1f VFlQRV9VNjQsIEdDQVJEX0lORE9NLCBQTV9TRU1fRElTQ1JFVEUsIAogICAgICAgIFBNREFf UE1VTklUUygxLCAwLCAwLCBQTV9TUEFDRV9CWVRFLCAwLCAwKSB9IH0sCi8qIG1lbSBmcmVl ICovCiAgICB7IE5VTEwsIAogICAgICB7IFBNREFfUE1JRCgwLDExKSwgUE1fVFlQRV9VNjQs IEdDQVJEX0lORE9NLCBQTV9TRU1fSU5TVEFOVCwKICAgICAgICBQTURBX1BNVU5JVFMoMSwg MCwgMCwgUE1fU1BBQ0VfQllURSwgMCwgMCkgfSB9LAp9OwoKc3RhdGljIGNoYXIJbXlwYXRo W01BWFBBVEhMRU5dOwpzdGF0aWMgaW50CWlzRFNPID0gMTsKc3RhdGljIGludAludm1sRFNP X2xvYWRlZDsKCnN0YXRpYyBpbnQKc2V0dXBfZ2NhcmRfaW5kb20odm9pZCkKewogICAgdW5z aWduZWQgaW50IGRldmljZV9jb3VudCA9IDA7CiAgICBwbWRhSW5kb20gKmlkcCA9ICZpbmRv bXRhYltHQ0FSRF9JTkRPTV07CiAgICBjaGFyIGdwdW5hbWVbMzJdLCAqbmFtZTsKICAgIHNp emVfdCBzaXplOwogICAgaW50IGksIHN0czsKCiAgICAvKiBJbml0aWFsaXplIGluc3RhbmNl IGRvbWFpbiBhbmQgaW5zdGFuY2VzLiAqLwogICAgaWYgKChzdHMgPSBsb2NhbE52bWxEZXZp Y2VHZXRDb3VudCgmZGV2aWNlX2NvdW50KSkgIT0gTlZNTF9TVUNDRVNTKSB7CglfX3BtTm90 aWZ5RXJyKExPR19FUlIsICJudm1sRGV2aWNlR2V0Q291bnQ6ICVzIiwKCQkJbG9jYWxOdm1s RXJyU3RyKHN0cykpOwoJcmV0dXJuIHN0czsKICAgIH0KCiAgICBwY3BfbnZpbmZvLm52aW5k b20gPSBpZHA7CiAgICBwY3BfbnZpbmZvLm52aW5kb20tPml0X251bWluc3QgPSAwOwoKICAg IHNpemUgPSBkZXZpY2VfY291bnQgKiBzaXplb2YocG1kYUluc3RpZCk7CiAgICBwY3BfbnZp bmZvLm52aW5kb20tPml0X3NldCA9IChwbWRhSW5zdGlkICopbWFsbG9jKHNpemUpOwogICAg aWYgKCFwY3BfbnZpbmZvLm52aW5kb20tPml0X3NldCkgewoJX19wbU5vTWVtKCJnY2FyZCBp bmRvbSIsIHNpemUsIFBNX1JFQ09WX0VSUik7CglyZXR1cm4gLUVOT01FTTsKICAgIH0KCiAg ICBzaXplID0gZGV2aWNlX2NvdW50ICogc2l6ZW9mKG52aW5mb190KTsKICAgIGlmICgocGNw X252aW5mby5udmluZm8gPSAobnZpbmZvX3QgKiltYWxsb2Moc2l6ZSkpID09IE5VTEwpIHsK CV9fcG1Ob01lbSgiZ2NhcmQgdmFsdWVzIiwgc2l6ZSwgUE1fUkVDT1ZfRVJSKTsKCWZyZWUo cGNwX252aW5mby5udmluZG9tLT5pdF9zZXQpOwoJcmV0dXJuIC1FTk9NRU07CiAgICB9CiAg ICBtZW1zZXQocGNwX252aW5mby5udmluZm8sIDAsIHNpemUpOwoKICAgIGZvciAoaSA9IDA7 IGkgPCBkZXZpY2VfY291bnQ7IGkrKykgewoJcGNwX252aW5mby5udmluZG9tLT5pdF9zZXRb aV0uaV9pbnN0ID0gaTsKCXNucHJpbnRmKGdwdW5hbWUsIHNpemVvZihncHVuYW1lKSwgImdw dSVkIiwgaSk7CglpZiAoKG5hbWUgPSBzdHJkdXAoZ3B1bmFtZSkpID09IE5VTEwpIHsKCSAg ICBfX3BtTm9NZW0oImdjYXJkIGluc3RuYW1lIiwgc3RybGVuKGdwdW5hbWUpLCBQTV9SRUNP Vl9FUlIpOwoJICAgIHdoaWxlICgtLWkpCgkJZnJlZShwY3BfbnZpbmZvLm52aW5kb20tPml0 X3NldFtpXS5pX25hbWUpOwoJICAgIGZyZWUocGNwX252aW5mby5udmluZG9tLT5pdF9zZXQp OwoJICAgIGZyZWUocGNwX252aW5mby5udmluZm8pOwoJICAgIHJldHVybiAtRU5PTUVNOwoJ fQoJcGNwX252aW5mby5udmluZG9tLT5pdF9zZXRbaV0uaV9uYW1lID0gbmFtZTsKICAgIH0K CiAgICBwY3BfbnZpbmZvLm51bWNhcmRzID0gMDsKICAgIHBjcF9udmluZm8ubWF4Y2FyZHMg PSBkZXZpY2VfY291bnQ7CiAgICBwY3BfbnZpbmZvLm52aW5kb20tPml0X251bWluc3QgPSBk ZXZpY2VfY291bnQ7CiAgICByZXR1cm4gMDsKfQoKc3RhdGljIGludApyZWZyZXNoKHBjcF9u dmluZm9fdCAqcGNwX252aW5mbykKewogICAgdW5zaWduZWQgaW50IGRldmljZV9jb3VudCwg aSwgajsKICAgIG52bWxEZXZpY2VfdCBkZXZpY2U7CiAgICBjaGFyIG5hbWVbTlZNTF9ERVZJ Q0VfTkFNRV9CVUZGRVJfU0laRV07CiAgICBudm1sUGNpSW5mb190IHBjaTsKICAgIHVuc2ln bmVkIGludCBmYW5zcGVlZDsKICAgIHVuc2lnbmVkIGludCB0ZW1wZXJhdHVyZTsKICAgIG52 bWxVdGlsaXphdGlvbl90IHV0aWxpemF0aW9uOwogICAgbnZtbE1lbW9yeV90IG1lbW9yeTsK ICAgIG52bWxQc3RhdGVzX3QgcHN0YXRlOwogICAgY2hhciAqZmFpbGZ1bmMgPSBOVUxMOwog ICAgaW50IHN0czsKCiAgICBpZiAoIW52bWxEU09fbG9hZGVkKSB7CglpZiAobG9jYWxOdm1s SW5pdCgpID09IE5WTUxfRVJST1JfTElCUkFSWV9OT1RfRk9VTkQpCgkgICAgcmV0dXJuIDA7 CglzZXR1cF9nY2FyZF9pbmRvbSgpOwoJbnZtbERTT19sb2FkZWQgPSAxOwogICAgfQoKICAg IGlmICgoc3RzID0gbG9jYWxOdm1sRGV2aWNlR2V0Q291bnQoJmRldmljZV9jb3VudCkpICE9 IDApIHsKCV9fcG1Ob3RpZnlFcnIoTE9HX0VSUiwgIm52bWxEZXZpY2VHZXRDb3VudDogJXMi LAoJCQlsb2NhbE52bWxFcnJTdHIoc3RzKSk7CglyZXR1cm4gc3RzOwogICAgfQoKICAgIHBj cF9udmluZm8tPm51bWNhcmRzID0gZGV2aWNlX2NvdW50OwoKICAgIGZvciAoaSA9IDA7IGkg PCBkZXZpY2VfY291bnQgJiYgaSA8IHBjcF9udmluZm8tPm1heGNhcmRzOyBpKyspIHsKCXBj cF9udmluZm8tPm52aW5mb1tpXS5jYXJkaWQgPSBpOwoJZm9yKCBqID0gMDsgaiA8IDEyIDsg aisrKXsKCSAgICBwY3BfbnZpbmZvLT5udmluZm9baV0uZmFpbGVkW2pdID0gMDsKCX0KCWlm ICgoc3RzID0gbG9jYWxOdm1sRGV2aWNlR2V0SGFuZGxlQnlJbmRleChpLCAmZGV2aWNlKSkp IHsKCSAgICBmYWlsZnVuYyA9ICJudm1sRGV2aWNlR2V0SGFuZGxlQnlJbmRleCI7CgkgICAg Zm9yKCBqID0gMDsgaiA8IDEyIDsgaisrKXsKICAgICAgICAgICAgCXBjcF9udmluZm8tPm52 aW5mb1tpXS5mYWlsZWRbal0gPSAxOwogICAgICAgICAgICB9CgkgICAgZ290byBmYWlsZWQ7 Cgl9CglpZiAoKHN0cyA9IGxvY2FsTnZtbERldmljZUdldE5hbWUoZGV2aWNlLCBuYW1lLCBz aXplb2YobmFtZSkpKSkgewoJICAgIHBjcF9udmluZm8tPm52aW5mb1tpXS5mYWlsZWRbMl0g PSAxOwoJICAgIC8vZmFpbGZ1bmMgPSAibnZtbERldmljZUdldE5hbWUiOwoJICAgIC8vZ290 byBmYWlsZWQ7Cgl9CiAgICAgICAgaWYgKChzdHMgPSBsb2NhbE52bWxEZXZpY2VHZXRQY2lJ bmZvKGRldmljZSwgJnBjaSkpKSB7CgkgICAgcGNwX252aW5mby0+bnZpbmZvW2ldLmZhaWxl ZFszXSA9IDE7CgkgICAgLy9mYWlsZnVuYyA9ICJudm1sRGV2aWNlR2V0UGNpSW5mbyI7Cgkg ICAgLy9nb3RvIGZhaWxlZDsKCX0KICAgICAgICBpZiAoKHN0cyA9IGxvY2FsTnZtbERldmlj ZUdldEZhblNwZWVkKGRldmljZSwgJmZhbnNwZWVkKSkpIHsKCSAgICBwY3BfbnZpbmZvLT5u dmluZm9baV0uZmFpbGVkWzVdID0gMTsKCSAgICAvL2ZhaWxmdW5jID0gIm52bWxEZXZpY2VH ZXRGYW5TcGVlZCI7CgkgICAgLy9nb3RvIGZhaWxlZDsKCX0KICAgICAgICBpZiAoKHN0cyA9 IGxvY2FsTnZtbERldmljZUdldFRlbXBlcmF0dXJlKGRldmljZSwgTlZNTF9URU1QRVJBVFVS RV9HUFUsICZ0ZW1wZXJhdHVyZSkpKSB7CgkgICAgcGNwX252aW5mby0+bnZpbmZvW2ldLmZh aWxlZFs0XSA9IDE7CgkgICAgLy9mYWlsZnVuYyA9ICJudm1sRGV2aWNlR2V0VGVtcGVyYXR1 cmUiOwoJICAgIC8vZ290byBmYWlsZWQ7Cgl9CiAgICAgICAgaWYgKChzdHMgPSBsb2NhbE52 bWxEZXZpY2VHZXRVdGlsaXphdGlvblJhdGVzKGRldmljZSwgJnV0aWxpemF0aW9uKSkpIHsK CSAgICBwY3BfbnZpbmZvLT5udmluZm9baV0uZmFpbGVkWzddID0gMTsKCSAgICBwY3BfbnZp bmZvLT5udmluZm9baV0uZmFpbGVkWzhdID0gMTsKCSAgICAvL2ZhaWxmdW5jID0gIm52bWxE ZXZpY2VHZXRVdGlsaXphdGlvblJhdGVzIjsKCSAgICAvL2dvdG8gZmFpbGVkOwoJfQogICAg ICAgIGlmICgoc3RzID0gbG9jYWxOdm1sRGV2aWNlR2V0TWVtb3J5SW5mbyhkZXZpY2UsICZt ZW1vcnkpKSkgewoJICAgIHBjcF9udmluZm8tPm52aW5mb1tpXS5mYWlsZWRbOV0gPSAxOwoJ ICAgIHBjcF9udmluZm8tPm52aW5mb1tpXS5mYWlsZWRbMTBdID0gMTsKCSAgICBwY3BfbnZp bmZvLT5udmluZm9baV0uZmFpbGVkWzExXSA9IDE7CgkgICAgLy9mYWlsZnVuYyA9ICJudm1s RGV2aWNlR2V0TWVtb3J5SW5mbyI7CgkgICAgLy9nb3RvIGZhaWxlZDsKCX0KCWlmICgoc3Rz ID0gbG9jYWxOdm1sRGV2aWNlR2V0UGVyZm9ybWFuY2VTdGF0ZShkZXZpY2UsICZwc3RhdGUp KSkgewoJICAgIHBjcF9udmluZm8tPm52aW5mb1tpXS5mYWlsZWRbNl0gPSAxOwoJICAgIC8v ZmFpbGZ1bmMgPSAibnZtbERldmljZUdldFBlcmZvcm1hbmNlU3RhdGUiOwoJICAgIC8vZ290 byBmYWlsZWQ7Cgl9CgoJaWYgKHBjcF9udmluZm8tPm52aW5mb1tpXS5uYW1lID09IE5VTEwp CgkgICAgcGNwX252aW5mby0+bnZpbmZvW2ldLm5hbWUgPSBzdHJkdXAobmFtZSk7CglpZiAo cGNwX252aW5mby0+bnZpbmZvW2ldLmJ1c2lkID09IE5VTEwpCgkgICAgcGNwX252aW5mby0+ bnZpbmZvW2ldLmJ1c2lkID0gc3RyZHVwKHBjaS5idXNJZCk7CglwY3BfbnZpbmZvLT5udmlu Zm9baV0udGVtcCA9IHRlbXBlcmF0dXJlOwoJcGNwX252aW5mby0+bnZpbmZvW2ldLmZhbnNw ZWVkID0gZmFuc3BlZWQ7CglwY3BfbnZpbmZvLT5udmluZm9baV0ucGVyZnN0YXRlID0gcHN0 YXRlOwoJcGNwX252aW5mby0+bnZpbmZvW2ldLmFjdGl2ZSA9IHV0aWxpemF0aW9uOwkvKiBz dHJ1Y3QgY29weSAqLwoJcGNwX252aW5mby0+bnZpbmZvW2ldLm1lbW9yeSA9IG1lbW9yeTsJ CS8qIHN0cnVjdCBjb3B5ICovCgljb250aW51ZTsKCiAgICBmYWlsZWQ6CglfX3BtTm90aWZ5 RXJyKExPR19FUlIsICIlczogJXMiLCBmYWlsZnVuYywgbG9jYWxOdm1sRXJyU3RyKHN0cykp OwoJLy9wY3BfbnZpbmZvLT5udmluZm9baV0uZmFpbGVkID0gMTsKICAgIH0KCiAgICByZXR1 cm4gMDsKfQoKLyoKICogV3JhcHBlciBmb3IgcG1kYUZldGNoIHdoaWNoIHJlZnJlc2ggdGhl IHNldCBvZiB2YWx1ZXMgb25jZSBwZXIgZmV0Y2gKICogUERVLiAgVGhlIGZldGNoQ2FsbGJh Y2sgaXMgdGhlbiBjYWxsZWQgb25jZSBwZXItbWV0cmljL2luc3RhbmNlIHBhaXIKICogdG8g cGVyZm9ybSB0aGUgYWN0dWFsIGZpbGxpbmcgb2YgdGhlIHBtUmVzdWx0ICh2aWEgZWFjaCBw bUF0b21WYWx1ZSkuCiAqLwpzdGF0aWMgaW50Cm52aWRpYV9mZXRjaChpbnQgbnVtcG1pZCwg cG1JRCBwbWlkbGlzdFtdLCBwbVJlc3VsdCAqKnJlc3AsIHBtZGFFeHQgKnBtZGEpCnsKICAg IHJlZnJlc2goJnBjcF9udmluZm8pOwogICAgcmV0dXJuIHBtZGFGZXRjaChudW1wbWlkLCBw bWlkbGlzdCwgcmVzcCwgcG1kYSk7Cn0KCnN0YXRpYyBpbnQKbnZpZGlhX2ZldGNoQ2FsbEJh Y2socG1kYU1ldHJpYyAqbWRlc2MsIHVuc2lnbmVkIGludCBpbnN0LCBwbUF0b21WYWx1ZSAq YXRvbSkKewogICAgX19wbUlEX2ludAkqaWRwID0gKF9fcG1JRF9pbnQgKikmKG1kZXNjLT5t X2Rlc2MucG1pZCk7CgogICAgaWYgKGlkcC0+Y2x1c3RlciAhPSAwKQoJcmV0dXJuIFBNX0VS Ul9QTUlEOwogICAgaWYgKGlkcC0+aXRlbSAhPSAwICYmIGluc3QgPiBpbmRvbXRhYltHQ0FS RF9JTkRPTV0uaXRfbnVtaW5zdCkKCXJldHVybiBQTV9FUlJfSU5TVDsKCiAgICBzd2l0Y2gg KGlkcC0+aXRlbSkgewogICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgYXRvbS0+dWwgPSBw Y3BfbnZpbmZvLm51bWNhcmRzOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE6 CiAgICAgICAgICAgIGF0b20tPnVsID0gcGNwX252aW5mby5udmluZm9baW5zdF0uY2FyZGlk OwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDI6CgkgICAgaWYgKHBjcF9udmlu Zm8ubnZpbmZvW2luc3RdLmZhaWxlZFsyXSkKCQlyZXR1cm4gUE1fRVJSX1ZBTFVFOwogICAg ICAgICAgICBhdG9tLT5jcCA9IHBjcF9udmluZm8ubnZpbmZvW2luc3RdLm5hbWU7CiAgICAg ICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMzoKCSAgICBpZiAocGNwX252aW5mby5udmlu Zm9baW5zdF0uZmFpbGVkWzNdKQoJCXJldHVybiBQTV9FUlJfVkFMVUU7CiAgICAgICAgICAg IGF0b20tPmNwID0gcGNwX252aW5mby5udmluZm9baW5zdF0uYnVzaWQ7CiAgICAgICAgICAg IGJyZWFrOwogICAgICAgIGNhc2UgNDoKCSAgICBpZiAocGNwX252aW5mby5udmluZm9baW5z dF0uZmFpbGVkWzRdKQoJCXJldHVybiBQTV9FUlJfVkFMVUU7CiAgICAgICAgICAgIGF0b20t PnVsID0gcGNwX252aW5mby5udmluZm9baW5zdF0udGVtcDsKICAgICAgICAgICAgYnJlYWs7 CiAgICAgICAgY2FzZSA1OgoJICAgIGlmIChwY3BfbnZpbmZvLm52aW5mb1tpbnN0XS5mYWls ZWRbNV0pCgkJcmV0dXJuIFBNX0VSUl9WQUxVRTsKICAgICAgICAgICAgYXRvbS0+dWwgPSBw Y3BfbnZpbmZvLm52aW5mb1tpbnN0XS5mYW5zcGVlZDsKICAgICAgICAgICAgYnJlYWs7CiAg ICAgICAgY2FzZSA2OgoJICAgIGlmIChwY3BfbnZpbmZvLm52aW5mb1tpbnN0XS5mYWlsZWRb Nl0pCgkJcmV0dXJuIFBNX0VSUl9WQUxVRTsKICAgICAgICAgICAgYXRvbS0+dWwgPSBwY3Bf bnZpbmZvLm52aW5mb1tpbnN0XS5wZXJmc3RhdGU7CiAgICAgICAgICAgIGJyZWFrOwogICAg ICAgIGNhc2UgNzoKCSAgICBpZiAocGNwX252aW5mby5udmluZm9baW5zdF0uZmFpbGVkWzdd KQoJCXJldHVybiBQTV9FUlJfVkFMVUU7CiAgICAgICAgICAgIGF0b20tPnVsID0gcGNwX252 aW5mby5udmluZm9baW5zdF0uYWN0aXZlLmdwdTsKICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgY2FzZSA4OgoJICAgIGlmIChwY3BfbnZpbmZvLm52aW5mb1tpbnN0XS5mYWlsZWRbOF0p CgkJcmV0dXJuIFBNX0VSUl9WQUxVRTsKICAgICAgICAgICAgYXRvbS0+dWwgPSBwY3BfbnZp bmZvLm52aW5mb1tpbnN0XS5hY3RpdmUubWVtb3J5OwogICAgICAgICAgICBicmVhazsKICAg ICAgICBjYXNlIDk6CgkgICAgaWYgKHBjcF9udmluZm8ubnZpbmZvW2luc3RdLmZhaWxlZFs5 XSkKCQlyZXR1cm4gUE1fRVJSX1ZBTFVFOwogICAgICAgICAgICBhdG9tLT51bGwgPSBwY3Bf bnZpbmZvLm52aW5mb1tpbnN0XS5tZW1vcnkudXNlZDsKICAgICAgICAgICAgYnJlYWs7CiAg ICAgICAgY2FzZSAxMDoKCSAgICBpZiAocGNwX252aW5mby5udmluZm9baW5zdF0uZmFpbGVk WzEwXSkKCQlyZXR1cm4gUE1fRVJSX1ZBTFVFOwogICAgICAgICAgICBhdG9tLT51bGwgPSBw Y3BfbnZpbmZvLm52aW5mb1tpbnN0XS5tZW1vcnkudG90YWw7CiAgICAgICAgICAgIGJyZWFr OwogICAgICAgIGNhc2UgMTE6CgkgICAgaWYgKHBjcF9udmluZm8ubnZpbmZvW2luc3RdLmZh aWxlZFsxMV0pCgkJcmV0dXJuIFBNX0VSUl9WQUxVRTsKICAgICAgICAgICAgYXRvbS0+dWxs ID0gcGNwX252aW5mby5udmluZm9baW5zdF0ubWVtb3J5LmZyZWU7CiAgICAgICAgICAgIGJy ZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiBQTV9FUlJfUE1JRDsK ICAgIH0KCiAgICByZXR1cm4gMDsKfQoKLyoqCiAqIEluaXRpYWxpemVzIHRoZSBwYXRoIHRv IHRoZSBoZWxwIGZpbGUgZm9yIHRoaXMgUE1EQS4KICovCnN0YXRpYyB2b2lkCmluaXRpYWxp emVIZWxwUGF0aCgpCnsKICAgIGludCBzZXAgPSBfX3BtUGF0aFNlcGFyYXRvcigpOwogICAg c25wcmludGYobXlwYXRoLCBzaXplb2YobXlwYXRoKSwgIiVzJWMiICJudmlkaWEiICIlYyIg ImhlbHAiLAogICAgICAgICAgICBwbUdldENvbmZpZygiUENQX1BNREFTX0RJUiIpLCBzZXAs IHNlcCk7Cn0KCnZvaWQgCl9fUE1EQV9JTklUX0NBTEwKbnZpZGlhX2luaXQocG1kYUludGVy ZmFjZSAqZHApCnsKICAgIGludCBzdHM7CgogICAgaWYgKGlzRFNPKSB7CiAgICAJaW5pdGlh bGl6ZUhlbHBQYXRoKCk7CiAgICAJcG1kYURTTyhkcCwgUE1EQV9JTlRFUkZBQ0VfMiwgIm52 aWRpYSBEU08iLCBteXBhdGgpOwogICAgfQoKICAgIGlmIChkcC0+c3RhdHVzICE9IDApCgly ZXR1cm47CgogICAgaWYgKChzdHMgPSBsb2NhbE52bWxJbml0KCkpID09IE5WTUxfU1VDQ0VT UykgewoJc2V0dXBfZ2NhcmRfaW5kb20oKTsKCW52bWxEU09fbG9hZGVkID0gMTsKICAgIH0K ICAgIGVsc2UgewoJLyoKCSAqIFRoaXMgaXMgT0ssIGp1c3QgY29udGludWUgb24gdW50aWwg aXQgKmlzKiBpbnN0YWxsZWQ7CgkgKiB1bnRpbCB0aGF0IHRpbWUsIHNpbXBseSByZXBvcnQg Im5vIHZhbHVlcyBhdmFpbGFibGUiLgoJICovCglfX3BtTm90aWZ5RXJyKExPR19JTkZPLCAi TlZJRElBIE5WTUwgbGlicmFyeSBjdXJyZW50bHkgdW5hdmFpbGFibGUiKTsKICAgIH0KCiAg ICAvLyBTZXQgZmV0Y2ggY2FsbGJhY2sgZnVuY3Rpb24uCiAgICBkcC0+dmVyc2lvbi5hbnku ZmV0Y2ggPSBudmlkaWFfZmV0Y2g7CiAgICBwbWRhU2V0RmV0Y2hDYWxsQmFjayhkcCwgbnZp ZGlhX2ZldGNoQ2FsbEJhY2spOwoKICAgIHBtZGFJbml0KGRwLCBpbmRvbXRhYiwgc2l6ZW9m KGluZG9tdGFiKS9zaXplb2YoaW5kb210YWJbMF0pLCAKCSAgICAgbWV0cmljdGFiLCBzaXpl b2YobWV0cmljdGFiKS9zaXplb2YobWV0cmljdGFiWzBdKSk7Cn0KCnN0YXRpYyBwbUxvbmdP cHRpb25zIGxvbmdvcHRzW10gPSB7CiAgICBQTURBX09QVElPTlNfSEVBREVSKCJPcHRpb25z IiksCiAgICBQTU9QVF9ERUJVRywKICAgIFBNREFPUFRfRE9NQUlOLAogICAgUE1EQU9QVF9M T0dGSUxFLAogICAgUE1PUFRfSEVMUCwKICAgIFBNREFfT1BUSU9OU19FTkQKfTsKCnN0YXRp YyBwbWRhT3B0aW9ucyBvcHRzID0gewogICAgLnNob3J0X29wdGlvbnMgPSAiRDpkOmw6PyIs CiAgICAubG9uZ19vcHRpb25zID0gbG9uZ29wdHMsCn07CgppbnQKbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCnsKICAgIHBtZGFJbnRlcmZhY2UJZGVzYzsKCiAgICBpc0RTTyA9IDA7 CiAgICBfX3BtU2V0UHJvZ25hbWUoYXJndlswXSk7CgogICAgaW5pdGlhbGl6ZUhlbHBQYXRo KCk7CiAgICBwbWRhRGFlbW9uKCZkZXNjLCBQTURBX0lOVEVSRkFDRV8yLCBwbVByb2duYW1l LCBOVk1MLAoJCSJudmlkaWEubG9nIiwgbXlwYXRoKTsKCiAgICBwbWRhR2V0T3B0aW9ucyhh cmdjLCBhcmd2LCAmb3B0cywgJmRlc2MpOwogICAgaWYgKG9wdHMuZXJyb3JzKSB7CglwbWRh VXNhZ2VNZXNzYWdlKCZvcHRzKTsKCWV4aXQoMSk7CiAgICB9CgogICAgcG1kYU9wZW5Mb2co JmRlc2MpOwogICAgbnZpZGlhX2luaXQoJmRlc2MpOwogICAgcG1kYUNvbm5lY3QoJmRlc2Mp OwogICAgcG1kYU1haW4oJmRlc2MpOwoKICAgIGV4aXQoMCk7Cn0K --------------030603090404010802050405 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="pmdanvidia.1" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pmdanvidia.1" J1wibWFjcm8gc3RkbWFjcm8KLlwiCi5cIiBDb3B5cmlnaHQgKGMpIDIwMTQgUmVkIEhhdC4K LlwiCi5cIiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAouXCIgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCi5cIiBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us IG9yIChhdCB5b3VyCi5cIiBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgouXCIKLlwiIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLCBidXQKLlwiIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZCi5cIiBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKLlwiIGZvciBtb3JlIGRldGFpbHMuCi5cIgouVEggUE1EQU5WSURJQSAxICJQQ1Ai ICJQZXJmb3JtYW5jZSBDby1QaWxvdCIKLlNIIE5BTUUKXGYzcG1kYW52aWRpYVxmMSBcLSBu dmlkaWEgZ3B1IG1ldHJpY3MgZG9tYWluIGFnZW50IChQTURBKQouU0ggU1lOT1BTSVMKXGYz JFBDUF9QTURBU19ESVIvbnZpZGlhL3BtZGFudmlkaWFcZjEKW1xmM1wtZFxmMSBcZjJkb21h aW5cZjFdCltcZjNcLWxcZjEgXGYybG9nZmlsZVxmMV0KLlNIIERFU0NSSVBUSU9OCi5CIHBt ZGFudmlkaWEKaXMgYSBQZXJmb3JtYW5jZSBNZXRyaWNzIERvbWFpbiBBZ2VudCAoUE1EQSkg d2hpY2ggZXh0cmFjdHMKcGVyZm9ybWFuY2UgbWV0cmljcyBkZXNjcmliaW5nIHRoZSBtZXRy aWNzIGF2YWlsYWJsZSBvbiBOVklESUEKR1BVIGNhcmRzIHZpYSB0aGUgbnZtbCBsaWJyYXJ5 Ci5QUApUaGUKLkIgbnZpZGlhClBNREEgZXhwb3J0cyBtZXRyaWNzIHRoYXQgbWVhc3VyZSBn cHUgYWN0aXZpdHksIG1lbW9yeSB1dGlsaXphdGlvbiwKZmFuIHNwZWVkLCBldGMgb24gTlZJ RElBIFRlc2xhIGFuZCBRdWFkcm8gY2FyZHMuICBNZXRyaWNzIGFyZSB1bmxpa2VseQp0byBi ZSBhdmFpbGFibGUgZm9yIGNvbnN1bWVyIGNsYXNzIGNhcmRzLgouUFAKQSBicmllZiBkZXNj cmlwdGlvbiBvZiB0aGUKLkIgcG1kYW52aWRpYQpjb21tYW5kIGxpbmUgb3B0aW9ucyBmb2xs b3dzOgouVFAgNQouQiBcLWQKSXQgaXMgYWJzb2x1dGVseSBjcnVjaWFsIHRoYXQgdGhlIHBl cmZvcm1hbmNlIG1ldHJpY3MKLkkgZG9tYWluCm51bWJlciBzcGVjaWZpZWQgaGVyZSBpcyB1 bmlxdWUgYW5kIGNvbnNpc3RlbnQuClRoYXQgaXMsCi5JIGRvbWFpbgpzaG91bGQgYmUgZGlm ZmVyZW50IGZvciBldmVyeSBQTURBIG9uIHRoZSBvbmUgaG9zdCwgYW5kIHRoZSBzYW1lCi5J IGRvbWFpbgpudW1iZXIgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBzYW1lIFBNREEgb24gYWxs IGhvc3RzLgouVFAKLkIgXC1sCkxvY2F0aW9uIG9mIHRoZSBsb2cgZmlsZS4gIEJ5IGRlZmF1 bHQsIGEgbG9nIGZpbGUgbmFtZWQKLkkgbnZpZGlhLmxvZwppcyB3cml0dGVuIGluIHRoZSBj dXJyZW50IGRpcmVjdG9yeSBvZgouQlIgcG1jZCAoMSkKd2hlbgouQiBwbWRhbnZpZGlhCmlz IHN0YXJ0ZWQsIGkuZS4KLkJSICRQQ1BfTE9HX0RJUi9wbWNkIC4KSWYgdGhlIGxvZyBmaWxl IGNhbm5vdApiZSBjcmVhdGVkIG9yIGlzIG5vdCB3cml0YWJsZSwgb3V0cHV0IGlzIHdyaXR0 ZW4gdG8gdGhlIHN0YW5kYXJkIGVycm9yIGluc3RlYWQuCi5TSCBJTlNUQUxMQVRJT04KVGhl Ci5CIG52aWRpYQpQTURBIGlzIG5vdCBpbnN0YWxsZWQgYW5kIGF2YWlsYWJsZSBieSBkZWZh dWx0LgpJZiB5b3Ugd2FudCB0byB1bmRvIHRoZSBpbnN0YWxsYXRpb24sIGRvIHRoZSBmb2xs b3dpbmcgYXMgcm9vdDoKLlBQCi5mdCBDVwoubmYKLmluICswLjVpCiMgY2QgJFBDUF9QTURB U19ESVIvbnZpZGlhCiMgLi9SZW1vdmUKLmluCi5maQouZnQgMQouUFAKSWYgeW91IHdhbnQg dG8gZXN0YWJsaXNoIGFjY2VzcyB0byB0aGUgbmFtZXMsIGhlbHAgdGV4dCBhbmQgdmFsdWVz IGZvciB0aGUgbnZpZGlhCnBlcmZvcm1hbmNlIG1ldHJpY3Mgb25jZSBtb3JlLCBhZnRlciBy ZW1vdmFsLCBkbyB0aGUgZm9sbG93aW5nIGFzIHJvb3Q6Ci5QUAouZnQgQ1cKLm5mCi5pbiAr MC41aQojIGNkICRQQ1BfUE1EQVNfRElSL252aWRpYQojIC4vSW5zdGFsbAouaW4KLmZpCi5m dCAxCi5QUAouQiBwbWRhbnZpZGlhCmlzIGxhdW5jaGVkIGJ5Ci5CUiBwbWNkICgxKQphbmQg c2hvdWxkIG5ldmVyIGJlIGV4ZWN1dGVkIGRpcmVjdGx5LgpUaGUgSW5zdGFsbCBhbmQgUmVt b3ZlIHNjcmlwdHMgbm90aWZ5Ci5CUiBwbWNkICgxKQp3aGVuIHRoZSBhZ2VudCBpcyBpbnN0 YWxsZWQgb3IgcmVtb3ZlZC4KLlNIIEZJTEVTCi5QRCAwCi5UUCAxMAouQiAkUENQX1BNQ0RD T05GX1BBVEgKY29tbWFuZCBsaW5lIG9wdGlvbnMgdXNlZCB0byBsYXVuY2gKLkIgcG1kYW52 aWRpYQouVFAgMTAKLkIgJFBDUF9QTURBU19ESVIvbnZpZGlhL2hlbHAKZGVmYXVsdCBoZWxw IHRleHQgZmlsZSBmb3IgdGhlIG52aWRpYSBtZXRyaWNzCi5UUCAxMAouQiAkUENQX1BNREFT X0RJUi9udmlkaWEvSW5zdGFsbAppbnN0YWxsYXRpb24gc2NyaXB0IGZvciB0aGUKLkIgcG1k YW52aWRpYQphZ2VudAouVFAgMTAKLkIgJFBDUF9QTURBU19ESVIvbnZpZGlhL1JlbW92ZQp1 bmRvIGluc3RhbGxhdGlvbiBzY3JpcHQgZm9yIHRoZSAKLkIgcG1kYW52aWRpYQphZ2VudAou VFAgMTAKLkIgJFBDUF9MT0dfRElSL3BtY2QvbnZpZGlhLmxvZwpkZWZhdWx0IGxvZyBmaWxl IGZvciBlcnJvciBtZXNzYWdlcyBhbmQgb3RoZXIgaW5mb3JtYXRpb24gZnJvbQouQiBwbWRh bnZpZGlhCi5QRAouU0ggIlBDUCBFTlZJUk9OTUVOVCIKRW52aXJvbm1lbnQgdmFyaWFibGVz IHdpdGggdGhlIHByZWZpeAouQiBQQ1BfCmFyZSB1c2VkIHRvIHBhcmFtZXRlcml6ZSB0aGUg ZmlsZSBhbmQgZGlyZWN0b3J5IG5hbWVzCnVzZWQgYnkgUENQLgpPbiBlYWNoIGluc3RhbGxh dGlvbiwgdGhlIGZpbGUKLkkgL2V0Yy9wY3AuY29uZgpjb250YWlucyB0aGUgbG9jYWwgdmFs dWVzIGZvciB0aGVzZSB2YXJpYWJsZXMuClRoZQouQiAkUENQX0NPTkYKdmFyaWFibGUgbWF5 IGJlIHVzZWQgdG8gc3BlY2lmeSBhbiBhbHRlcm5hdGl2ZQpjb25maWd1cmF0aW9uIGZpbGUs CmFzIGRlc2NyaWJlZCBpbgouQlIgcGNwLmNvbmYgKDUpLgouU0ggU0VFIEFMU08KLkJSIFBD UEludHJvICgxKSwKLkJSIHBtY2QgKDEpLAouQlIgcGNwLmNvbmYgKDUpCmFuZAouQlIgcGNw LmVudiAoNSkuCg== --------------030603090404010802050405-- From minnus@buffalo.edu Tue Jul 1 13:23:54 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 1A5B57FA7 for ; Tue, 1 Jul 2014 13:23:54 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id F001530404E for ; Tue, 1 Jul 2014 11:23:50 -0700 (PDT) X-ASG-Debug-ID: 1404239029-04bdf0566674c690001-S8gJnT Received: from mtareserve1.acsu.buffalo.edu (mtareserve6.acsu.buffalo.edu [128.205.6.4]) by cuda.sgi.com with ESMTP id IEjkn4Ex63c5aACO for ; Tue, 01 Jul 2014 11:23:49 -0700 (PDT) X-Barracuda-Envelope-From: minnus@buffalo.edu X-Barracuda-Apparent-Source-IP: 128.205.6.4 Received: from localmailB.acsu.buffalo.edu (localmailb.acsu.buffalo.edu [128.205.5.200]) by mtareserve1.acsu.buffalo.edu (Postfix) with ESMTP id 0816E484 for ; Tue, 1 Jul 2014 14:23:49 -0400 (EDT) Received: from localmailB.acsu.buffalo.edu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 03F06E591 for ; Tue, 1 Jul 2014 14:23:49 -0400 (EDT) Received: from localmailB.acsu.buffalo.edu (localhost [127.0.0.1]) by localmailB.acsu.buffalo.edu (Postfix) with ESMTP id 82E43E58A for ; Tue, 1 Jul 2014 14:23:48 -0400 (EDT) Received: from smtp.buffalo.edu (smtp3.acsu.buffalo.edu [128.205.5.226]) by localmailB.acsu.buffalo.edu (Prefixe) with ESMTP id 773F3E589 for ; Tue, 1 Jul 2014 14:23:48 -0400 (EDT) Received: from gilmour.ccr.buffalo.edu (gilmour.ccr.buffalo.edu [128.205.40.13]) (Authenticated sender: minnus@buffalo.edu) by smtp.buffalo.edu (Postfix) with ESMTPSA id 6D1FAC551 for ; Tue, 1 Jul 2014 14:23:48 -0400 (EDT) Message-ID: <53B2FCB9.4040809@buffalo.edu> Date: Tue, 01 Jul 2014 14:23:53 -0400 From: Martins Innus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: Current Work Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: Current Work Content-Transfer-Encoding: 7bit X-PM-EL-Spam-Prob: : 8% X-Barracuda-Connect: mtareserve6.acsu.buffalo.edu[128.205.6.4] X-Barracuda-Start-Time: 1404239029 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7148 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi, Along with recent submissions that Joe, Tom and and I have sent, I just wanted to send a note of other things that will be coming soon in case others have comment: 1. A SLURM pmda that is basically done and just needs some more testing. 2. Additions to the systemtap pmda. I saw a few messages that others are working on systemtap integration and thought I would mention this. Our need is to track system call counts and types across all processes. I have just been adding to the existing example systemtap pmda, but maybe there is a better way to manage what may be a desire to have multiple systemtap configs running through pcp? 3. I will wait for comments on Joe's linux_proc changes and then I will continue trying to revive the hotprocs pmda. 4. We have a Panasas FS pmda that works but we have no real time/interest in continuing to work on it. Its not really ready for inclusion, but I can post it if anyone has interest. I just don't want to clutter the tree with code no one may ever use/test/update. Thanks Martins From aather@netflix.com Tue Jul 1 13:44:29 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID, WEIRD_PORT autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id AD4F67FA8 for ; Tue, 1 Jul 2014 13:44:29 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 8CE838F8059 for ; Tue, 1 Jul 2014 11:44:26 -0700 (PDT) X-ASG-Debug-ID: 1404240264-04cbb065352096f0001-S8gJnT Received: from mail-qa0-f44.google.com (mail-qa0-f44.google.com [209.85.216.44]) by cuda.sgi.com with ESMTP id FP88RvE03K8ov26c (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Tue, 01 Jul 2014 11:44:24 -0700 (PDT) X-Barracuda-Envelope-From: aather@netflix.com X-Barracuda-Apparent-Source-IP: 209.85.216.44 Received: by mail-qa0-f44.google.com with SMTP id hw13so8037382qab.17 for ; Tue, 01 Jul 2014 11:44:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Rd+/gfE+cDnKyLdCSw009ZMCtYcCwirj8r9skfYz0WY=; b=PkJT6PROJdKadWBKksdSOqk1t/RJhFVtvtE4mKTLB5DecbhMKukKNjNq+ILkibYWIS 9UYaE8TnS6ifsmLR0wIO/VUXsGKndgasvxPL9cGcWbaVuR0bb2L7WlW0a2FY3Hazmy/w JecdeV0YDHaWrrTjQaxXny4xtU4/WnrplRkn0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=Rd+/gfE+cDnKyLdCSw009ZMCtYcCwirj8r9skfYz0WY=; b=XY8I0Wr4/bOz5qxEqhK5M33S5wgeiDNqzK/SvrgsHVgCQLt66HHbChKRIvuQmw5yvT oiaXEiOmCNx6wZQMThccykoVMQabpdsRvFjXfw/ieGuBWNo00KlwNwSXSmGJiMk9hYzJ DDPoAYkj050irmqhXPVtmvl8dDRoNdjkFjHGB9fAFSrlz+asS2ZRMdE5CtbXgbg+oT3A Fs+aHzUZSBmqhAM3n5LlW+zYWfxQA0UpSvuPaJh4lsDzqbYOIaH1qaKatVHv50wSROse EkeDEZlwJzuWU0V5zMn+aoCqGPUufrmdXx/ahtFNoG03MFgxCofXH19YZ/3+DYsYnfkW Sjug== X-Gm-Message-State: ALoCoQn7S7Q8I1PSYIyA+h8d1EIdVaewxUTDbcEiFahsfrox96x9Kw1XomHKtJr7Nq15GKZmlEQx MIME-Version: 1.0 X-Received: by 10.140.30.73 with SMTP id c67mr71143319qgc.16.1404240264032; Tue, 01 Jul 2014 11:44:24 -0700 (PDT) Received: by 10.229.241.68 with HTTP; Tue, 1 Jul 2014 11:44:23 -0700 (PDT) In-Reply-To: <20140629220735.GA13993@redhat.com> References: <002d01cf9284$dc8fe570$95afb050$@internode.on.net> <002f01cf9285$f0c63160$d2529420$@internode.on.net> <20140629220735.GA13993@redhat.com> Date: Tue, 1 Jul 2014 11:44:23 -0700 Message-ID: Subject: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent From: Amer Ather X-ASG-Orig-Subj: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent To: "Frank Ch. Eigler" Cc: Ken McDonell , pcp@oss.sgi.com, Martin Spier Content-Type: multipart/alternative; boundary=001a113a35a41e155b04fd262a04 X-Barracuda-Connect: mail-qa0-f44.google.com[209.85.216.44] X-Barracuda-Start-Time: 1404240264 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.50 X-Barracuda-Spam-Status: No, SCORE=0.50 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE, WEIRD_PORT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7148 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.50 WEIRD_PORT URI: Uses non-standard port number for HTTP 0.00 HTML_MESSAGE BODY: HTML included in message --001a113a35a41e155b04fd262a04 Content-Type: text/plain; charset=UTF-8 We need some additional help with derived metrics As suggested, I created some derived CPU metrics: kernel.pct.cpu.user = 100 * kernel.all.cpu.user / (hinv.ncpu * 1000) kernel.pct.cpu.sys = 100 * kernel.all.cpu.sys / (hinv.ncpu * 1000) kernel.pct.cpu.idle = 100 * kernel.all.cpu.idle / (hinv.ncpu * 1000) kernel.pct.cpu.nice = 100 * kernel.all.cpu.nice / (hinv.ncpu * 1000) kernel.pct.cpu.intr = 100 * kernel.all.cpu.intr / (hinv.ncpu * 1000) kernel.pct.cpu.wait.total = 100 * kernel.all.cpu.wait.total / (hinv.ncpu * 1000) ... grafana/graphite reports these values from archives correctly in percent. However, pmapi fetch returns wrong values: http://ec2-204-236-180-248.us-west-1.compute.amazonaws.com:7002/pmapi/1121044401/_fetch?names=kernel.pct.cpu.sys ,kernel.pct.cpu.user # PCP_DERIVED_CONFIG=pctavg pminfo -f kernel.pct.cpu.user kernel.pct.cpu.user * value 12359528.75* What is the difference between grafana/graphite fetching from archive logs and fetching via pmapi or pminfo? How to fix it? Thanks, Amer. On Sun, Jun 29, 2014 at 3:07 PM, Frank Ch. Eigler wrote: > Hi - > > > I tried to rebuild pmwebd with graphite support from fche git branch but > > getting errors when try building pmwebapi. Last time it built fine. Is > > there any change made to the repo? [...] > > Please try again now. > > > /usr/bin/ld: pmgraphite.o: undefined reference to symbol 'pthread_create@ > > @GLIBC_2.2.5' > > Fixed with a new commit pushed to the branch. > > - FChE > -- Thanks, Amer Ather Cloud Performance Engineering My Location --001a113a35a41e155b04fd262a04 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
We need some additional help with derived metrics

=
As suggested, I created some derived CPU metrics:

=
kernel.pct.cpu.user =3D 100 * kernel.all.cpu.user / (hinv.ncpu * = 1000)
kernel.pct.cpu.sys =C2=A0=3D 100 * kernel.all.cpu.sys / (hinv.ncpu * 1= 000)
kernel.pct.cpu.idle =3D 100 * kernel.all.cpu.idle / (hinv.nc= pu * 1000)
kernel.pct.cpu.nice =3D 100 * kernel.all.cpu.nice / (h= inv.ncpu * 1000)
kernel.pct.cpu.intr =3D 100 * kernel.all.cpu.intr / (hinv.ncpu * 1000)=
kernel.pct.cpu.wait.total =3D 100 * kernel.all.cpu.wait.total / = (hinv.ncpu * 1000)
...

grafa= na/graphite reports these values from archives correctly in percent. Howeve= r, pmapi fetch returns wrong values:



# PCP_DERIVED_CONFIG=3Dpctavg p= minfo -f kernel.pct.cpu.user

kernel.pct.cpu.user
=C2=A0 =C2=A0 value 12359528.75

= What is the difference between grafana/graphite fetching from archive logs = and fetching via pmapi or pminfo? How to fix it?

T= hanks,
Amer.



On Sun,= Jun 29, 2014 at 3:07 PM, Frank Ch. Eigler <fche@redhat.com> w= rote:
Hi -

> I tried to rebuild pmwebd with graphite support from fche git branch b= ut
> getting errors when try building pmwebapi. Last time it built fine. Is=
> there any change made to the repo? [...]

Please try again now.

> /usr/bin/ld: pmgraphite.o: undefined reference to symbol 'pthread_= create@
> @GLIBC_2.2.5'

Fixed with a new commit pushed to the branch.

- FChE



--
Thanks,

Amer Ather
Cloud Performance Engi= neering
--001a113a35a41e155b04fd262a04-- From nscott@redhat.com Tue Jul 1 20:13:03 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 3EF8D7F53 for ; Tue, 1 Jul 2014 20:13:03 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 2DF26304053 for ; Tue, 1 Jul 2014 18:12:59 -0700 (PDT) X-ASG-Debug-ID: 1404263574-04cb6c76d03de5b0001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id qS9tEi33R2xU3rCm for ; Tue, 01 Jul 2014 18:12:54 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s621CrAL028185 for ; Tue, 1 Jul 2014 21:12:53 -0400 Date: Tue, 1 Jul 2014 21:12:53 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: PCP Message-ID: <716367546.1530203.1404263573706.JavaMail.zimbra@redhat.com> In-Reply-To: <1620233112.1529035.1404262950994.JavaMail.zimbra@redhat.com> Subject: pcp updates: nvidia+ib pmda updates, qa MIME-Version: 1.0 X-ASG-Orig-Subj: pcp updates: nvidia+ib pmda updates, qa Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: nvidia+ib pmda updates, qa Thread-Index: 5UplTBUv9flq+zsgVq6HfYCR9+roYg== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1404263574 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7158 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Changes committed to git://git.performancecopilot.org/pcp.git dev build/rpm/fedora.spec | 1 build/rpm/pcp.spec.in | 1 man/man1/GNUmakefile | 2 man/man1/pmdanvidia.1 | 136 ++++++++++++ qa/744 | 2 qa/744.out | 1 qa/745 | 2 qa/745.out | 1 qa/src/GNUlocaldefs | 15 - qa/src/GNUmakefile | 2 src/pmdas/GNUmakefile | 2 src/pmdas/infiniband/help | 24 ++ src/pmdas/infiniband/ib.c | 103 +++++++++ src/pmdas/infiniband/ibpmda.h | 12 + src/pmdas/nvidia/GNUmakefile | 1 src/pmdas/nvidia/localnvml.c | 6 src/pmdas/nvidia/nvidia.c | 356 +++++++++++++++------------------- src/pmdas/nvidia/pcp-pmda-nvidia.spec | 158 --------------- 18 files changed, 459 insertions(+), 366 deletions(-) commit 74d0c7212c0905a18c0f982a2635b5215791e53c Author: Nathan Scott Date: Wed Jul 2 10:59:01 2014 +1000 Fix QA test case build issue, use regular dso linkage commit 8a2610892e91f20f78a978c52e56efd1b48728f4 Author: Martins Innus Date: Wed Jul 2 10:18:52 2014 +1000 pmdainfiniband: add switch counter metrics commit 7e47bb10d8c3cc4dafc49f2a18e5e8dc548d2f40 Author: Nathan Scott Date: Wed Jul 2 10:13:24 2014 +1000 pmdanvidia: remove hard-coded DSO suffix style commit a5a728aa91a5f25f5393c87c553e8ad02aef4001 Author: Nathan Scott Date: Wed Jul 2 10:12:26 2014 +1000 pmdanvidia: QA update for Martins last round, less hard-coding commit 535c55cce3d56bbb396455cee9e1ab189173c109 Author: Martins Innus Date: Wed Jul 2 09:19:07 2014 +1000 pmdanvidia: man page, bug fixes, fine-grained error handling commit a6b34a9b4e193fa8af63b5cd4264f92ac32669b9 Author: Nathan Scott Date: Wed Jul 2 09:02:20 2014 +1000 pmdanvidia: add into the build, update spec files as discussed From nscott@redhat.com Tue Jul 1 20:23:50 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 17FB47F5D for ; Tue, 1 Jul 2014 20:23:50 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id A7F8FAC00B for ; Tue, 1 Jul 2014 18:23:46 -0700 (PDT) X-ASG-Debug-ID: 1404264224-04bdf05669758f10001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id w058fvpwq2BmHcki for ; Tue, 01 Jul 2014 18:23:44 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s621NgMF029768; Tue, 1 Jul 2014 21:23:42 -0400 Date: Tue, 1 Jul 2014 21:23:42 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Martins Innus Cc: PCP Message-ID: <871495836.1531233.1404264222672.JavaMail.zimbra@redhat.com> In-Reply-To: <53B2F20E.7080600@buffalo.edu> References: <53A995C8.5020904@buffalo.edu> <1015758147.33977940.1403768176429.JavaMail.zimbra@redhat.com> <1626126016.1041444.1404199831629.JavaMail.zimbra@redhat.com> <53B2F20E.7080600@buffalo.edu> Subject: Re: [pcp] nvidia/nvml pmda MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] nvidia/nvml pmda Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: nvidia/nvml pmda Thread-Index: PUYO0sDq5FHpmUIz4WNVs6i1MPiH1A== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1404264224 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7160 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... ----- Original Message ----- > [...] > OK, included are new files that have changes to make this work on real > hardware. A typo fix in the dlopen and then a change in the error > handling. I'm not entirely happy with my error changes, but I think its > in a direction to get it working. Cards may not neccesarrily support > all the possible metrics so the pmda should fail to return any metrics. > For instance we have older Tesla GPU cards that don't return anything > for the temp and fan metrics, but everything else is ok. Ah, yes - good points all round. I've taken your error handling work and built on it further - I think it fixes everything we've discussed - could you review latest code in git dev branch once more? Thanks! cheers. -- Nathan From nscott@redhat.com Tue Jul 1 20:46:41 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=WEIRD_PORT autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 066987F5D for ; Tue, 1 Jul 2014 20:46:41 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 75193AC00B for ; Tue, 1 Jul 2014 18:46:39 -0700 (PDT) X-ASG-Debug-ID: 1404265597-04cbb065362153a0001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id kUyBwoTpMNElnprw for ; Tue, 01 Jul 2014 18:46:37 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s621kZNT024838; Tue, 1 Jul 2014 21:46:35 -0400 Date: Tue, 1 Jul 2014 21:46:34 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Amer Ather Cc: "Frank Ch. Eigler" , Martin Spier , pcp@oss.sgi.com Message-ID: <1820565649.1533935.1404265594896.JavaMail.zimbra@redhat.com> In-Reply-To: References: <002d01cf9284$dc8fe570$95afb050$@internode.on.net> <002f01cf9285$f0c63160$d2529420$@internode.on.net> <20140629220735.GA13993@redhat.com> Subject: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp grafana and graphite - How to convert pcp metric values into percent Thread-Index: IUSlwQILz9MNmBJfO+UGWgqWlj/xUQ== X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1404265597 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.52 X-Barracuda-Spam-Status: No, SCORE=0.52 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC, WEIRD_PORT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7160 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.50 WEIRD_PORT URI: Uses non-standard port number for HTTP Hi Amer, ----- Original Message ----- > We need some additional help with derived metrics > > As suggested, I created some derived CPU metrics: > > kernel.pct.cpu.user = 100 * kernel.all.cpu.user / (hinv.ncpu * 1000) > kernel.pct.cpu.sys = 100 * kernel.all.cpu.sys / (hinv.ncpu * 1000) > kernel.pct.cpu.idle = 100 * kernel.all.cpu.idle / (hinv.ncpu * 1000) > kernel.pct.cpu.nice = 100 * kernel.all.cpu.nice / (hinv.ncpu * 1000) > kernel.pct.cpu.intr = 100 * kernel.all.cpu.intr / (hinv.ncpu * 1000) > kernel.pct.cpu.wait.total = 100 * kernel.all.cpu.wait.total / (hinv.ncpu * > 1000) > ... > > grafana/graphite reports these values from archives correctly in percent. > However, pmapi fetch returns wrong values: > > http://ec2-204-236-180-248.us-west-1.compute.amazonaws.com:7002/pmapi/1121044401/_fetch?names=kernel.pct.cpu.sys > , kernel.pct.cpu.user > > > # PCP_DERIVED_CONFIG=pctavg pminfo -f kernel.pct.cpu.user > > kernel.pct.cpu.user > value 12359528.75 > > What is the difference between grafana/graphite fetching from archive logs > and fetching via pmapi or pminfo? How to fix it? The answer lies in understanding the units and semantics of these metrics, which you can dig into using the -d (--desc) option to pminfo, which dumps the pmDesc structure - see pmLookupDesc(3) for further into. In your case the structure is built on the fly by libpcp using each line in your config file... $ PCP_DERIVED_CONFIG=/home/nathans/pctavg pminfo -fd kernel.pct.cpu.user kernel.pct.cpu.user Data Type: double InDom: PM_INDOM_NULL 0xffffffff Semantics: counter Units: millisec value 21477.375 So, these are counter metrics, and they are exported in milliseconds. In order to achieve the utilization metric you're after, the counter needs to be converted to a rate (change-in-value over change-in-time) and the units converted to a utilization (initially normalized, then multiplied by 100 to produce a percent). Its not clear exactly what the web client is doing here, but these derived metrics should not need the final "... * 1000)" bit - I think thats making some incorrect assumptions, it should just be using "hinv.ncpu". So using pmval instead, with this config... $ cat pctavg2 kernel.pct.cpu.user = 100 * kernel.all.cpu.user / hinv.ncpu kernel.pct.cpu.sys = 100 * kernel.all.cpu.sys / hinv.ncpu kernel.pct.cpu.idle = 100 * kernel.all.cpu.idle / hinv.ncpu kernel.pct.cpu.nice = 100 * kernel.all.cpu.nice / hinv.ncpu kernel.pct.cpu.intr = 100 * kernel.all.cpu.intr / hinv.ncpu kernel.pct.cpu.wait.total = 100 * kernel.all.cpu.wait.total / hinv.ncpu ... gives a detailed account of the transformations that pmval makes here; e.g. for my (very idle) desktop... $ PCP_DERIVED_CONFIG=/home/nathans/pctavg2 pmval -f3 -s3 kernel.pct.cpu.idle metric: kernel.pct.cpu.idle host: smash semantics: cumulative counter (converting to rate) units: millisec (converting to time utilization) samples: 3 interval: 1.00 sec 99.071 98.684 99.188 ... those values are correct, and show the appropriate transformation of semantics and units that you're after from a client in this situation. Hopefully Frank can point out what the graph* client is doing differently for us here - I think the fix will need to be over in that code. cheers. -- Nathan From nscott@redhat.com Tue Jul 1 21:02:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id EC98E7F5D for ; Tue, 1 Jul 2014 21:02:17 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 877DFAC00B for ; Tue, 1 Jul 2014 19:02:14 -0700 (PDT) X-ASG-Debug-ID: 1404266532-04cb6c76cf3df9e0001-S8gJnT Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by cuda.sgi.com with ESMTP id WXOL8nKKC0NOfPoY for ; Tue, 01 Jul 2014 19:02:12 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.25 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6222AWA021529; Tue, 1 Jul 2014 22:02:10 -0400 Date: Tue, 1 Jul 2014 22:02:10 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Joseph White Cc: pcp@oss.sgi.com Message-ID: <1254885004.1536965.1404266530785.JavaMail.zimbra@redhat.com> In-Reply-To: References: <1005571361.34471510.1403829857835.JavaMail.zimbra@redhat.com> Subject: Re: [pcp] New perfevent PMDA MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] New perfevent PMDA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: [pcp] New perfevent PMDA Thread-Index: AQHPkWQ7+Of6murkTkSMtOpXHkooOZuD2/F2gACGLoCABuXgAG08kBZI X-Barracuda-Connect: mx4-phx2.redhat.com[209.132.183.25] X-Barracuda-Start-Time: 1404266532 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7160 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Hi Joe, ----- Original Message ----- > The makefile in the unittest directory has targets that compile and run > the test harness. It also runs the test harness in gcov to produce a test > coverage report and runs under valgrind to check there are no memory > leaks. valgrind and gcov need to be installed for this to work. > > The test harness includes mock implementations of the pfm libary and test > files that simulate the /proc filesystem. These allow me to test that > error cases are handled correctly in the code. Wow. At one fell swoop you achieved the level of testing we've only just started to reach in other areas (like pmdaproc, and pmdanvidia) and then slam-dunked it with coverage information as well. :) Well played! > I'll look into integrating this with the PCP test suite. Thanks. The recent nvidia library and PMDA additions (tests 744, 745) might give some pointers for your shared library and the valgrind use. The qa/README file has more general tips too. Another quirk (just bit me with nvidia testing) is to remember the pcp-testsuite rpm has extra needs - this package is used here (@redhat) by our testing folks for a fully automated/deployed test run across many hosts, architectures and platform releases. The toplevel "Makepkgs" should prove handy for you as it builds that too, catching these odd cases. Hoping to get more detailed code review for you and Lukas later today. cheers. -- Nathan From kenj@internode.on.net Tue Jul 1 22:25:19 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id ADE6A7F5D for ; Tue, 1 Jul 2014 22:25:19 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id A745A30405F for ; Tue, 1 Jul 2014 20:25:16 -0700 (PDT) X-ASG-Debug-ID: 1404271512-04cbb06537217f70001-S8gJnT Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id Z0Jt2yuQm6Nge1JM for ; Tue, 01 Jul 2014 20:25:12 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjwDAHB6s1OvLVMil2dsb2JhbABag1+Cd8NrAwIBgScPAQEBAQEIFgc8hAQBBQgCHQESTAMCBhcyGT4CBBMLBYgxxSwXjyaEQwWQdIs6lg8r Received: from mail.messagemedia.com.au (HELO bozohorize) ([175.45.83.34]) by ipmail06.adl6.internode.on.net with ESMTP; 02 Jul 2014 12:55:11 +0930 From: "Ken McDonell" To: References: <20140702025553.EFA21A357E@bozo-vm.localdomain> In-Reply-To: <20140702025553.EFA21A357E@bozo-vm.localdomain> Subject: pcp updates - pmie rulesets and assorted changes Date: Wed, 2 Jul 2014 13:25:11 +1000 X-ASG-Orig-Subj: pcp updates - pmie rulesets and assorted changes Message-ID: <00b101cf95a5$3c2e6650$b48b32f0$@internode.on.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 15.0 Thread-Index: AQFhPw0SfWgkvz6RCxwDBD47v6V8nZxozDwg Content-Language: en-au X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404271512 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.01 X-Barracuda-Spam-Status: No, SCORE=0.01 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7162 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== These commits add pmie rulesets (man page is still to come). Also some assorted sample PMDA, QA and odds and sods changes. Changes committed to git://oss.sgi.com/kenj/pcp.git dev qa/002.out | 1 qa/003 | 2 qa/029.out | 2 qa/055.out | 12 qa/108.out | 2 qa/149.out.linux | 1 qa/156.out.3 | 6 qa/162.out.5 | 1 qa/256.out.2 | 2 qa/273.out | 5 qa/310.out | 4 qa/319.out | 56 - qa/501-linux.out | 144 ++-- qa/509.out.2 | 1 qa/523.out.2 | 24 qa/549 | 2 qa/549.out | 2 qa/569.out | 5 qa/744 | 48 + qa/744.out | 200 ++++++ qa/745 | 53 + qa/745.out | 218 ++++++ qa/828 | 32 qa/834 | 507 +++++++++++++++ qa/834.out | 170 +++++ qa/admin/check-vm | 1 qa/common.config | 2 qa/common.filter | 3 qa/group | 8 src/pmdas/sample/GNUmakefile | 2 src/pmdas/sample/get_next_pmid | 48 + src/pmdas/sample/help | 1 src/pmdas/sample/pmns | 4 src/pmdas/sample/src/sample.c | 4 src/pmie/src/act.sk | 36 - src/pmie/src/andor.c | 132 ++-- src/pmie/src/dstruct.c | 16 src/pmie/src/dstruct.h | 18 src/pmie/src/eval.c | 23 src/pmie/src/fun.h | 1 src/pmie/src/grammar.y | 56 + src/pmie/src/lexicon.c | 14 src/pmie/src/match_inst.c | 30 src/pmie/src/meta | 40 - src/pmie/src/misc.sk | 115 ++- src/pmie/src/pragmatics.c | 2 src/pmie/src/show.c | 86 +- src/pmie/src/syntax.c | 89 +- src/pmie/src/syntax.h | 2 ... commit 525ce0256c25c32d55fbb06514864109ce53f8ce Merge: 74d0c72 ac93b8a Author: Ken McDonell Date: Wed Jul 2 12:48:53 2014 +1000 Merge branch 'pmie-group' into dev commit ac93b8a81548e59d8b4eda71659ae668c2fe5415 Author: Ken McDonell Date: Wed Jul 2 09:38:46 2014 +1000 pmie - initial working version of rulesets Adds unknown -> action and otherwise -> action clause to deal with exceptions and "when all else fails" cases. commit 08fa5b9bcb4fc4de2a5a7bd853390b45bae0c879 Author: Ken McDonell Date: Wed Jul 2 09:36:05 2014 +1000 qa/834 (new) - extensive exercising of pmie rulesets commit 7a3026aeab3264bfb991e8655a3f4c970e381d68 Author: Ken McDonell Date: Wed Jul 2 09:34:27 2014 +1000 qa/549 - unknown is now a reserved word for pmie test used to include unknown = ... need to change this to notknown = ... commit fad90eb786ce08f366150b2701f195aa25df9af2 Author: Ken McDonell Date: Wed Jul 2 07:58:30 2014 +1000 qa changes for new sample PMDA metric sample.bad.novalues and sampledso.bad.novalues are new. commit ae055c8a9eea9837be98c6896e291554f8ed1e0d Author: Ken McDonell Date: Wed Jul 2 06:29:38 2014 +1000 sample PMDA - add missing help text for sample.bad.novalues commit 371417e2110e2d6bb3312cc4aa4aba42bd126939 Author: Ken McDonell Date: Tue Jul 1 07:03:50 2014 +1000 qa assorted - track pmie changes These ones are in particular for this one: pmie - with -v use "unknown" instead of "?" for boolean values that caused some cosmetic QA fallout. commit 09307d4dcd8f56fda373ba2ac3f2a70aa5bf2306 Author: Ken McDonell Date: Tue Jul 1 07:02:56 2014 +1000 qa/828 - tune the valgrind suppressions These seem to work better across several platforms and valgrind flavours. commit f1683469dd35949c5df80d1a11b34eb4553dfa3d Author: Ken McDonell Date: Tue Jul 1 07:02:23 2014 +1000 qa/group - 501 is local, not remote commit c986d27f544a804c10121c7d56696b815d17b6bf Author: Ken McDonell Date: Tue Jul 1 07:01:22 2014 +1000 qa/common.config - tweak kenj's qa machines config commit b0db75aa3726cb9e914e2cb6034c1c727391eed6 Author: Ken McDonell Date: Tue Jul 1 07:00:38 2014 +1000 qa/admin/check-vm - add curl to the list of things we need for QA commit 2289808c81bb7be9b4a9f9d75e1a18ed0684979e Author: Ken McDonell Date: Mon Jun 30 07:20:52 2014 +1000 qa/group - 055 is not remote commit da2826c4f23581e527d5cd9ae4e8f5cbafe3aeac Author: Ken McDonell Date: Mon Jun 30 07:13:42 2014 +1000 sample PMDA - add sample.bad.novalues A scalar metric that never has any values ... used for pmie testing initially. commit 43eb4a1eea6c913b461bf46d6b8dc32d2702a188 Author: Ken McDonell Date: Mon Jun 30 07:11:20 2014 +1000 sample PMDA - add helper script get_next_pmid Scans the PMNS to find the next bunch of unassigned PMIDs. Just for the sample PMDA which has grown to the point where it is not immediately obvious which PMIDs have been used. commit b41da65074b52fc7bee1737b4b83dd5aeace398f Author: Ken McDonell Date: Mon Jun 30 07:08:02 2014 +1000 pmie - internal refactoring for booleans This should be completely cosmetic, but makes the code more readable and less exposed to cpp name conflicts. The boolean constants have been mapped as follows: FALSE -> B_FALSE, TRUE -> B_TRUE and DUNNO -> B_UNKNOWN and the typedef Truth renamed Boolean. commit 75d844f33e278621c94ca4615f4289cf280c06f6 Author: Ken McDonell Date: Mon Jun 30 06:53:03 2014 +1000 pmie - with -v use "unknown" instead of "?" for boolean values With rulesets we're making the Kleene logic (3-valued boolean logic) more visible, so report values as "unknown" where appropriate. "?" is retained for the non-boolean values that are unknown or undefined. commit 6aa9b0d80d1f042977f1a0c32d2e205aaf52c003 Author: Ken McDonell Date: Sat Jun 28 18:31:34 2014 +1000 interim commit for new pmie "ruleset" functionality commit 0b967667eda32ee970868864d0ae726ac94d6475 Author: Ken McDonell Date: Sat Jun 28 07:13:31 2014 +1000 Fix rpm builds for rpm versions prior to 4.6 For the pcp-doc package, conditionally exclude BuildArch: noarch if the rpm version is not 4.6 or later. From fche@redhat.com Tue Jul 1 22:33:10 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 644687F5D for ; Tue, 1 Jul 2014 22:33:10 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 689568F8040 for ; Tue, 1 Jul 2014 20:33:10 -0700 (PDT) X-ASG-Debug-ID: 1404271985-04cb6c76d03e2380001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id fp3ksbAYKcgW3FRB (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 01 Jul 2014 20:33:06 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s623X30K008304 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 1 Jul 2014 23:33:03 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s623X3pf027901; Tue, 1 Jul 2014 23:33:03 -0400 Received: by fche.csb (Postfix, from userid 2569) id CD72758106; Tue, 1 Jul 2014 23:33:02 -0400 (EDT) To: Amer Ather Cc: pcp@oss.sgi.com, Martin Spier Subject: Re: pcp grafana and graphite - How to convert pcp metric values into percent References: <002d01cf9284$dc8fe570$95afb050$@internode.on.net> <002f01cf9285$f0c63160$d2529420$@internode.on.net> <20140629220735.GA13993@redhat.com> X-ASG-Orig-Subj: Re: pcp grafana and graphite - How to convert pcp metric values into percent From: fche@redhat.com (Frank Ch. Eigler) Date: Tue, 01 Jul 2014 23:33:02 -0400 In-Reply-To: (Amer Ather's message of "Tue, 1 Jul 2014 11:44:23 -0700") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404271986 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Amer Ather writes: > [...] grafana/graphite reports these values from archives correctly > in percent. However, pmapi fetch returns wrong values: [...] The graphite emulation code in pmwebd performs rate conversion (since it has easy historical data to go from); the PMWEBAPI part passes raw metric values (and libpcp doesn't want to rate-convert [1]). This could explain the mismatch between your expectations and what you're seeing. [1] http://oss.sgi.com/archives/pcp/2014-05/msg00104.html - FChE From nscott@redhat.com Tue Jul 1 23:26:34 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 50E9D7F5D for ; Tue, 1 Jul 2014 23:26:34 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4C5AF304053 for ; Tue, 1 Jul 2014 21:26:31 -0700 (PDT) X-ASG-Debug-ID: 1404275187-04cb6c76d03e3eb0001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id A2Pe8T9LJJBota8q for ; Tue, 01 Jul 2014 21:26:28 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s624QQCK004655; Wed, 2 Jul 2014 00:26:26 -0400 Date: Wed, 2 Jul 2014 00:26:26 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Joseph White Cc: pcp@oss.sgi.com Message-ID: <1293521587.1555994.1404275186280.JavaMail.zimbra@redhat.com> In-Reply-To: References: Subject: Re: [pcp] Proposed updates to cgroup support in the linux_proc PMDA MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] Proposed updates to cgroup support in the linux_proc PMDA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: Proposed updates to cgroup support in the linux_proc PMDA Thread-Index: AQHPlU4RoySNyVksN0OJt2/zRcRE1rR0jcxX X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1404275188 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7163 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Hi Joe, ----- Original Message ----- > Hi, > > We have been using the linux_proc pmda to monitor the processes on our > computing cluster. The cluster uses SLURM as the resource manager and is > configured to use cgroups to isolate the processes for different users on a > given processing node. SLURM creates cgroups for each job step and then > removes them after the job ends. There are approximately 7 thousand jobs per > day on the cluster and usually a couple of job steps in each job. Job > duration ranges from a few seconds to 72 hours. Therefore, the active > cgroups on each node change regularly. Yep - I've been recently hacking on cgroups too, and ran into similar kinds of issues. Another problem is the way group names are encoded in the metric namespace means not all cgroups can be represented that way, and those that can't are silently ignored as well. I tend to agree that using an instance domain is the right way to go here. The backward compat scenario is of concern, but there are things we can do. One approach would be to use a differently named metric hierarchy, so not cgroup.groups.* (which we could drop when we move to the new mechanism - the PMAPI provides clear error handling semantics for unavailable metric names) - perhaps cgroup.pergroup.* or something like that. One big fly in the ointment is that the dev branch has moved ahead of your patch, and blkio cgroups metrics have been added. These metrics have an instance domain too (disks) - so, this complication has grown. It has a slightly problematic indom too, as the PMDA has to transform the device major:minor pair into the external disk names people expect to see. > [...] > In order to tackle these problems, I changed the linux_proc pmda so that the > cgroups code uses instance domains. This solves the above issues: No limit > on the number of cgroups, the logger infrastructure already knows how to > process data when the instance domains change and the pmdaCache is used to > guarantee that the instance ids for each cgroup remain constant. *nod*, good approach. > Disadvantages of this approach: > 1) Its a non backwards compatible change to a core PCP component. > 2) I was not able to keep the format of the usage_percpu metric. In the > original implementation, this used the CPU_INDOM to report metrics for each > cpu. Since you can't have nested instance domains, I chose to serialise the > percpu data into a string. > > I've attached a patch file with all my changes (this can be used to patch the > main code using "patch -p4" from the src/pmdas directory). Would you > consider making this non-backwards compatible change to the linux_proc pmda > or does it make more sense to create a new linux_cgroups pmda? Also any > thoughts as to alternative ways to expose the percpu metrics for each > cgroup? > (see detailed discussion below) > P.S. The patch also includes support for grabbing the process environment and > the set of allowed cpus for all processes. These changes are independent of > the cgroup changes. (yep, what state are those changes in? Could you send this separately with an outline describing the change in more detail? thanks.) > P.P.S. Obviously the QA tests and documentation also needs updating, but the > scope of these updates will depend on whether the existing pmda gets updated > or a new pmda created. I think we should fix what we have, and move to the much-better-sounding approach you have outlined here, with some indom handling tweaks. First issue will be moving your patch forward to the current dev branch, where the earth has moved significantly under your feet. Then there's the instance naming problem, for some metrics. One possible way to go there would be to append the current instance name onto the group name, with an unlikely-to-conflict separator (so, not a space, nor a slash). $ pminfo -f cgroup.groups.cpuacct.libvirt.lxc.usage_percpu cgroup.groups.cpuacct.libvirt.lxc.usage_percpu inst [0 or "cpu0"] value 0 inst [1 or "cpu1"] value 0 inst [2 or "cpu2"] value 0 inst [3 or "cpu3"] value 0 inst [4 or "cpu4"] value 0 inst [5 or "cpu5"] value 0 inst [6 or "cpu6"] value 0 inst [7 or "cpu7"] value 0 $ pminfo -f cgroup.groups.blkio.io_wait_time.total cgroup.groups.blkio.io_wait_time.total inst [0 or "sda"] value 32426373113 inst [3 or "sdb"] value 14667215520290 inst [5 or "sr0"] value 0 So, we could move to names like cgroup.pergroup.cpuacct "libvirt/lxc::cpu0", and cgroup.pergroup.blkio "libvirt/lxc::sda", "::sdb", and so on ...? cheers. -- Nathan From nscott@redhat.com Tue Jul 1 23:35:28 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id E50027F5F for ; Tue, 1 Jul 2014 23:35:28 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id B4AC48F8033 for ; Tue, 1 Jul 2014 21:35:25 -0700 (PDT) X-ASG-Debug-ID: 1404275724-04bdf0566975e8d0001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id 8qfwllbsmq3L7nP7 for ; Tue, 01 Jul 2014 21:35:24 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s624ZMbI005614; Wed, 2 Jul 2014 00:35:22 -0400 Date: Wed, 2 Jul 2014 00:35:22 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Martins Innus Cc: pcp@oss.sgi.com Message-ID: <896681629.1558997.1404275722202.JavaMail.zimbra@redhat.com> In-Reply-To: <53B2FCB9.4040809@buffalo.edu> References: <53B2FCB9.4040809@buffalo.edu> Subject: Re: [pcp] Current Work MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] Current Work Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: Current Work Thread-Index: CndQqLLInhYMyEHzCa9nyMAsHNaGJA== X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1404275724 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7164 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... ----- Original Message ----- > Hi, > Along with recent submissions that Joe, Tom and and I have sent, I > just wanted to send a note of other things that will be coming soon in > case others have comment: Great - thanks for sharing. > 1. A SLURM pmda that is basically done and just needs some more testing. Good stuff. > 2. Additions to the systemtap pmda. I saw a few messages that others > are working on systemtap integration and thought I would mention this. > Our need is to track system call counts and types across all processes. > I have just been adding to the existing example systemtap pmda, but > maybe there is a better way to manage what may be a desire to have > multiple systemtap configs running through pcp? I'll pass on this one, and leave it for David/Frank to advise. I guess if you have additions to the existing perl script that are working well for you now though, feel free to send 'em through of course. > 3. I will wait for comments on Joe's linux_proc changes and then I will > continue trying to revive the hotprocs pmda. (both sound like good ideas) > 4. We have a Panasas FS pmda that works but we have no real > time/interest in continuing to work on it. Its not really ready for > inclusion, but I can post it if anyone has interest. I just don't want > to clutter the tree with code no one may ever use/test/update. Ah - yeah, do send it - it can certainly be added into the source tree, even if it isn't tested/shipped yet. It will be readily available for anyone who needs it there, so they can pick up where you've left off. cheers. -- Nathan From kenj@internode.on.net Wed Jul 2 00:55:05 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id DB9FC7F5D for ; Wed, 2 Jul 2014 00:55:05 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id AE3E2304053 for ; Tue, 1 Jul 2014 22:55:02 -0700 (PDT) X-ASG-Debug-ID: 1404280496-04bdf05668760c40001-S8gJnT Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id eYMjWSLt81gIekBA for ; Tue, 01 Jul 2014 22:54:57 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhMNAEyes1N20WM//2dsb2JhbABagw2DScN4A4EUF3WECggCHhIcMAUGYiAfAQQeBYgxmkCqYIt7AYNAhC0FkHSddYNUKw Received: from ppp118-209-99-63.lns20.mel4.internode.on.net (HELO bozohorize) ([118.209.99.63]) by ipmail07.adl2.internode.on.net with ESMTP; 02 Jul 2014 15:24:56 +0930 From: "Ken McDonell" To: Subject: recent buld regression for inifinband PMDA on debian Date: Wed, 2 Jul 2014 15:54:44 +1000 X-ASG-Orig-Subj: recent buld regression for inifinband PMDA on debian Message-ID: <006b01cf95ba$27501890$75f049b0$@internode.on.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 15.0 Thread-Index: Ac+Vuh9U/W8PBwaVQGORXyQl+PspQQ== Content-Language: en-au X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1404280496 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.01 X-Barracuda-Spam-Status: No, SCORE=0.01 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7166 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== === infiniband === gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -c -o ib.o ib.c ib.c: In function 'ib_fetch_val': ib.c:673:3: warning: implicit declaration of function 'pma_query_via' [-Wimplicit-function-declaration] gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -o pmdaib -Wall -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src ib.o pmda.o -libmad -libumad -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src -lpcp_pmda -lpcp ib.o: In function `ib_fetch_val': /home/kenj/src/pcp/src/pmdas/infiniband/ib.c:673: undefined reference to `pma_query_via' collect2: error: ld returned 1 exit status make[2]: *** [pmdaib] Error 1 From nscott@redhat.com Wed Jul 2 02:14:01 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 2283F7F5D for ; Wed, 2 Jul 2014 02:14:01 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 069258F8039 for ; Wed, 2 Jul 2014 00:14:00 -0700 (PDT) X-ASG-Debug-ID: 1404285235-04cbb0653621e870001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id FsrABwvFlfe6gARh for ; Wed, 02 Jul 2014 00:13:55 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s627Dovv028819; Wed, 2 Jul 2014 03:13:50 -0400 Date: Wed, 2 Jul 2014 03:13:50 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Ken McDonell , Martins Innus Cc: pcp@oss.sgi.com Message-ID: <853918576.1602669.1404285230879.JavaMail.zimbra@redhat.com> In-Reply-To: <006b01cf95ba$27501890$75f049b0$@internode.on.net> References: <006b01cf95ba$27501890$75f049b0$@internode.on.net> Subject: Re: [pcp] recent buld regression for inifinband PMDA on debian MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] recent buld regression for inifinband PMDA on debian Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: recent buld regression for inifinband PMDA on debian Thread-Index: Ac+Vuh9U/W8PBwaVQGORXyQl+PspQTOFR+S0 X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1404285235 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7167 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Hi Martins, Debian has an old(er) version of infiniband, it looks like we'll need to figure out a way to make the call we need on older versions, or we could add to configure.ac in the infiniband section (around 1120) so that we can conditionally enable building with these new metrics? (see also HAVE_PORT_PERFORMANCE_QUERY_VIA in ibpmda.h for one such workaround from awhile back) thanks! ----- Original Message ----- > === infiniband === > gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all > -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" > -I../../../src/include -I../../../src/include/pcp -c -o ib.o ib.c > ib.c: In function 'ib_fetch_val': > ib.c:673:3: warning: implicit declaration of function 'pma_query_via' > [-Wimplicit-function-declaration] > gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all > -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" > -I../../../src/include -I../../../src/include/pcp -o pmdaib -Wall > -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src ib.o pmda.o > -libmad -libumad -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src > -lpcp_pmda -lpcp > ib.o: In function `ib_fetch_val': > /home/kenj/src/pcp/src/pmdas/infiniband/ib.c:673: undefined reference to > `pma_query_via' > collect2: error: ld returned 1 exit status > make[2]: *** [pmdaib] Error 1 > > _______________________________________________ > pcp mailing list > pcp@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/pcp > From kenj@internode.on.net Wed Jul 2 03:03:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 7B8067F5D for ; Wed, 2 Jul 2014 03:03:18 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 6901A30405F for ; Wed, 2 Jul 2014 01:03:18 -0700 (PDT) X-ASG-Debug-ID: 1404288192-04cb6c76d23e9eb0001-S8gJnT Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id LHByGhvEFTLKjUDo for ; Wed, 02 Jul 2014 01:03:13 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqN9AIS8s1N20YDzPGdsb2JhbABagw2DScN0AQQDgQ4XBAEBAQE4NYQKCAIeEhwwBQZiIAoOBwEEHgWIMZphqmKPPIQtBZB0oUkr Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO bozohorize) ([118.209.128.243]) by ipmail06.adl6.internode.on.net with ESMTP; 02 Jul 2014 17:32:50 +0930 From: "Ken McDonell" To: Subject: new build warning Date: Wed, 2 Jul 2014 18:02:49 +1000 X-ASG-Orig-Subj: new build warning Message-ID: <00ab01cf95cc$0599b460$10cd1d20$@internode.on.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 15.0 Thread-Index: Ac+Vy411eyCG65XDQQCzIjNWNpw1Dg== Content-Language: en-au X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404288192 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.01 X-Barracuda-Spam-Status: No, SCORE=0.01 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7168 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== Again seen on Debian (but I suspect everywhere) ... Does this library built in qa/src really need a local rule? If so, we need some makefile mumbo jumbo to make this warning go away. GNUlocaldefs:769: warning: overriding commands for target `libnvidia-ml.so' ../../src/include/buildrules:72: warning: ignoring old commands for target `libnvidia-ml.so' From nscott@redhat.com Wed Jul 2 05:57:07 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0485D7F37 for ; Wed, 2 Jul 2014 05:57:07 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 89FA6AC00E for ; Wed, 2 Jul 2014 03:57:03 -0700 (PDT) X-ASG-Debug-ID: 1404298617-04cbb06535223da0001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id G0ERkcJkDAna1y0d for ; Wed, 02 Jul 2014 03:56:57 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s62AuvPb007092 for ; Wed, 2 Jul 2014 06:56:57 -0400 Date: Wed, 2 Jul 2014 06:56:57 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: PCP Message-ID: <1842046426.1854815.1404298617278.JavaMail.zimbra@redhat.com> In-Reply-To: <38276723.1854720.1404298597682.JavaMail.zimbra@redhat.com> Subject: pcp updates: qa dso build MIME-Version: 1.0 X-ASG-Orig-Subj: pcp updates: qa dso build Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.12] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: qa dso build Thread-Index: oLG+icF1VSQDkWgjv79BPRCNkwI65Q== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1404298617 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7171 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Changes committed to git://git.performancecopilot.org/pcp.git dev qa/src/GNUlocaldefs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit c7b9eccdf7c43894b746b499352cd7ff85944f14 Author: Nathan Scott Date: Wed Jul 2 20:55:57 2014 +1000 QA makefile mumbo jumbo to make a build warning go away From minnus@buffalo.edu Wed Jul 2 08:12:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 8EB927F55 for ; Wed, 2 Jul 2014 08:12:15 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 54394304066 for ; Wed, 2 Jul 2014 06:12:15 -0700 (PDT) X-ASG-Debug-ID: 1404306729-04bdf0566676c840001-S8gJnT Received: from mtareserve1.acsu.buffalo.edu (mtareserve6.acsu.buffalo.edu [128.205.6.4]) by cuda.sgi.com with ESMTP id vjmmGbw06HRUTMXc for ; Wed, 02 Jul 2014 06:12:09 -0700 (PDT) X-Barracuda-Envelope-From: minnus@buffalo.edu X-Barracuda-Apparent-Source-IP: 128.205.6.4 Received: from localmailA.acsu.buffalo.edu (localmaila.acsu.buffalo.edu [128.205.5.196]) by mtareserve1.acsu.buffalo.edu (Postfix) with ESMTP id 2F3D1C6C; Wed, 2 Jul 2014 09:12:09 -0400 (EDT) Received: from localmailA.acsu.buffalo.edu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 29299D9CA; Wed, 2 Jul 2014 09:12:09 -0400 (EDT) Received: from localmailA.acsu.buffalo.edu (localhost [127.0.0.1]) by localmailA.acsu.buffalo.edu (Postfix) with ESMTP id 578FBD9C7; Wed, 2 Jul 2014 09:12:08 -0400 (EDT) Received: from smtp.buffalo.edu (smtp1.acsu.buffalo.edu [128.205.5.253]) by localmailA.acsu.buffalo.edu (Prefixe) with ESMTP id 4103BD9C6; Wed, 2 Jul 2014 09:12:08 -0400 (EDT) Received: from gilmour.ccr.buffalo.edu (gilmour.ccr.buffalo.edu [128.205.40.13]) (Authenticated sender: minnus@buffalo.edu) by smtp.buffalo.edu (Postfix) with ESMTPSA id 361B5C1ED; Wed, 2 Jul 2014 09:12:08 -0400 (EDT) Message-ID: <53B4052C.7010903@buffalo.edu> Date: Wed, 02 Jul 2014 09:12:12 -0400 From: Martins Innus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Nathan Scott , Ken McDonell CC: pcp@oss.sgi.com Subject: Re: [pcp] recent buld regression for inifinband PMDA on debian References: <006b01cf95ba$27501890$75f049b0$@internode.on.net> <853918576.1602669.1404285230879.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: [pcp] recent buld regression for inifinband PMDA on debian In-Reply-To: <853918576.1602669.1404285230879.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-PM-EL-Spam-Prob: : 8% X-Barracuda-Connect: mtareserve6.acsu.buffalo.edu[128.205.6.4] X-Barracuda-Start-Time: 1404306729 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7173 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Ken, Sorry about that. Can you let me know what version of libibmad you have on this system? Also if HAVE_PORT_PERFORMANCE_QUERY_VIA is defined in your build? Thanks Martins On 7/2/14, 3:13 AM, Nathan Scott wrote: > Hi Martins, > > Debian has an old(er) version of infiniband, it looks like we'll need > to figure out a way to make the call we need on older versions, or we > could add to configure.ac in the infiniband section (around 1120) so > that we can conditionally enable building with these new metrics? > (see also HAVE_PORT_PERFORMANCE_QUERY_VIA in ibpmda.h for one such > workaround from awhile back) > > thanks! > > > ----- Original Message ----- >> === infiniband === >> gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all >> -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" >> -I../../../src/include -I../../../src/include/pcp -c -o ib.o ib.c >> ib.c: In function 'ib_fetch_val': >> ib.c:673:3: warning: implicit declaration of function 'pma_query_via' >> [-Wimplicit-function-declaration] >> gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all >> -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" >> -I../../../src/include -I../../../src/include/pcp -o pmdaib -Wall >> -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src ib.o pmda.o >> -libmad -libumad -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src >> -lpcp_pmda -lpcp >> ib.o: In function `ib_fetch_val': >> /home/kenj/src/pcp/src/pmdas/infiniband/ib.c:673: undefined reference to >> `pma_query_via' >> collect2: error: ld returned 1 exit status >> make[2]: *** [pmdaib] Error 1 >> >> _______________________________________________ >> pcp mailing list >> pcp@oss.sgi.com >> http://oss.sgi.com/mailman/listinfo/pcp >> > -- --------------------------------------------------------------------- Martins Innus minnus@ccr.buffalo.edu Lead Scientific & Urban Visualization Specialist (716) 881-8928 Center for Computational Research New York State Center of Excellence in Bioinformatics & Life Sciences University at Buffalo www.ccr.buffalo.edu From lberk@redhat.com Wed Jul 2 08:53:39 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 177CD7F54 for ; Wed, 2 Jul 2014 08:53:39 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id AE51CAC00E for ; Wed, 2 Jul 2014 06:53:35 -0700 (PDT) X-ASG-Debug-ID: 1404309214-04bdf0566676e380001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id XFJtxhKf68f4vy1J (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 02 Jul 2014 06:53:34 -0700 (PDT) X-Barracuda-Envelope-From: lberk@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s62DrXLT028970 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 2 Jul 2014 09:53:34 -0400 Received: from redhat.com (vpn-62-155.rdu2.redhat.com [10.10.62.155]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s62DrVMK028861 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Wed, 2 Jul 2014 09:53:32 -0400 Date: Wed, 2 Jul 2014 09:53:31 -0400 From: Lukas Berk To: William Cohen Cc: pcp@oss.sgi.com Subject: Re: [pcp] PCP papi PMDA Message-ID: <20140702135330.GD12723@redhat.com> X-ASG-Orig-Subj: Re: [pcp] PCP papi PMDA Reply-To: Lukas Berk References: <20140625024307.GA9275@redhat.com> <53B1AF59.9080506@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="zbGR4y+acU1DwHSi" Content-Disposition: inline In-Reply-To: <53B1AF59.9080506@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404309214 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 --zbGR4y+acU1DwHSi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hey, Thanks for taking a look! Comments inline. * William Cohen [2014-06-30 14:41]: [...] > The following is more of an desired future feature that requires > changes to current papi. It would be really nice if this (and other > pmdas) allowed grouping by cgroups. This would be really useful for > things using containers such as docker and openshift. Then it would > make it easy to pick out problem containers. Absolutely agreed, definitely an end goal. > Some processors do not implement all versions of > pap.kernel.L[123].[IDT]CM listed in metrictab imlemented. Do these > fail gracefully in the papi pmda? Currently papi pmda will just respond with a value of 0 for the given (unavailable) metric, I'd agree that this needs to fail with a slightly more explicit, and helpful, message. > Is it expected when trying my locally built pcp RPM with papi patches > I needed to manually do the following or is something missing for the > install? >=20 > cd /var/lib/pcp/pmdas/papi > sudo ./Install Yes, aiui this is a fairly standard way to install pmdas. > "pminfo -FT papi" only appears to work as root? Shouldn't there be a > note on that? Or would it be possible to pminfo just check to see that > the event is available within a process and extrapolate that it should > be aavailable system-wide? =20 Yes, use of perf counters is restricted to root/privileged users currently. I can definitely add a note about that (is there a precedent to how pcp advises users on this?). In the future, when per-process use is supported, I think it would make sense to allow users to check the metrics of their own processes, and then extrapolate that the counter is available system wide for root use. > Also got messages like the following for virtually all of the events > (there isn't anything else using the pmu at the moment): >=20 > papi.kernel.L1_STM > Help: > Level 1 store misses. > Error: Try again. Information not currently available Yes, that makes sense. With the activate-metric-when-asked-for approach, the pmda takes the first request and activates the papi counter and returns the error that the information isn't available yet. Subsequent requests will provide the metric values. > In papi_fetchCallBack() the switch statement codes the magic numbers > to various entries. Isn't there a more compact and regular way to > code that? Would it be possible to use negative number for control > and have the events be positive to avoid having to offset some values by = 1? Looking at that portion of the code, you're absolutely correct. After refactoring out the PAPI_add_event code, there's no real reason to have the switch statement in the fetchcallback. FWIW the 'offset by 1' is an artifact of the enable_counters variable (used in the pmstore enabling counters approach). I'll reorganize the pmns and fetchcallback function as needed. Thanks for the feedback! Cheers, Lukas --zbGR4y+acU1DwHSi Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJTtA7aAAoJEAaRCclx+kwJxP0P/2I78FSriyc0nTJmqOLj3SVu 5R850//+DAFrzSG7+OocnLcHh/CMo+4LSlreekeN3HofRl6jAt/Fv6xpuij2tcEo VhkaYoyFLBx/8VkzQ5jofFhvxhksurP9XfosTEeovV3nz1DlQqKhYiC1FhEiuXlQ VDx1aszbLL3Zcgxq63Mw8c5BaZf6PYtIK7B065fkuPu0Tp3QBByJli62uXM3sScD UolCrcwLGJ7DlZguJ4x12Pdcw2Cg3tZvzlMvAfpCtRuzs/EIoLMDPAPH5FwG6nmy BiyqFPnMSXvcz5/70a5qIov3pmNLmmALyiq86tOEEr6VDf+PPhbc88MKdR/EovG6 tNj1TqKrfLdLL5aWa1Dajcb32U2nwaewhB4PKZy9kQJ6NMaU0A1S2uL1HtFHES89 D0Li+YrMBnsEYS1VQ/wSUohOFBqLsS1TsU7MzUtdwk9r6fusWorLMCOvu1UtJm13 NZZp9oWJC8aU97IJvLUM5f2IJgX274bh4bDsRnapDjclruI2i/1p1CKD0cr8xkeI 74JX/8K9/UBmFDu//F2quTgTXbTDEdHm1qZAtjLw3tpAwehBbaOYbcqmXg6z8msg Etu1pF0aU07TlRCyiVzTaAnJ6xOc3I2INxSyDvaGWhCJSp6v8LJZejuJn8Pm5rGa jMD7v5idqUsDF0v3+V7r =xLJJ -----END PGP SIGNATURE----- --zbGR4y+acU1DwHSi-- From minnus@buffalo.edu Wed Jul 2 09:14:53 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 20C677F54 for ; Wed, 2 Jul 2014 09:14:53 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id ED697304070 for ; Wed, 2 Jul 2014 07:14:49 -0700 (PDT) X-ASG-Debug-ID: 1404310484-04cb6c76cf3f3f30001-S8gJnT Received: from mtareserve1.acsu.buffalo.edu (mtareserve6.acsu.buffalo.edu [128.205.6.4]) by cuda.sgi.com with ESMTP id C3m4KB9oVIg1UYOi for ; Wed, 02 Jul 2014 07:14:44 -0700 (PDT) X-Barracuda-Envelope-From: minnus@buffalo.edu X-Barracuda-Apparent-Source-IP: 128.205.6.4 Received: from localmailA.acsu.buffalo.edu (localmaila.acsu.buffalo.edu [128.205.5.196]) by mtareserve1.acsu.buffalo.edu (Postfix) with ESMTP id 7E1931D1; Wed, 2 Jul 2014 10:14:44 -0400 (EDT) Received: from localmailA.acsu.buffalo.edu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 772A7F911; Wed, 2 Jul 2014 10:14:44 -0400 (EDT) Received: from localmailA.acsu.buffalo.edu (localhost [127.0.0.1]) by localmailA.acsu.buffalo.edu (Postfix) with ESMTP id 86E45F90C; Wed, 2 Jul 2014 10:14:43 -0400 (EDT) Received: from smtp.buffalo.edu (smtp2.acsu.buffalo.edu [128.205.5.254]) by localmailA.acsu.buffalo.edu (Prefixe) with ESMTP id 692D8F90B; Wed, 2 Jul 2014 10:14:43 -0400 (EDT) Received: from gilmour.ccr.buffalo.edu (gilmour.ccr.buffalo.edu [128.205.40.13]) (Authenticated sender: minnus@buffalo.edu) by smtp.buffalo.edu (Postfix) with ESMTPSA id 32399C742; Wed, 2 Jul 2014 10:14:43 -0400 (EDT) Message-ID: <53B413D7.4060003@buffalo.edu> Date: Wed, 02 Jul 2014 10:14:47 -0400 From: Martins Innus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Nathan Scott , Ken McDonell CC: pcp@oss.sgi.com Subject: Re: [pcp] recent buld regression for inifinband PMDA on debian References: <006b01cf95ba$27501890$75f049b0$@internode.on.net> <853918576.1602669.1404285230879.JavaMail.zimbra@redhat.com> <53B4052C.7010903@buffalo.edu> X-ASG-Orig-Subj: Re: [pcp] recent buld regression for inifinband PMDA on debian In-Reply-To: <53B4052C.7010903@buffalo.edu> Content-Type: multipart/mixed; boundary="------------060506090605030106090408" X-PM-EL-Spam-Prob: : 8% X-Barracuda-Connect: mtareserve6.acsu.buffalo.edu[128.205.6.4] X-Barracuda-Start-Time: 1404310484 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7174 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- This is a multi-part message in MIME format. --------------060506090605030106090408 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit So there already was a check for this method in configure.ac, but as far as i can tell its not used anywhere. This patch should work, but untested since I don't have a system with the older API. I don't think its possible to provide these metrics when using an old version, since there doesn't appear to be any other way to access these counters. From my reading of the libibmad history, these counters should be available if using libibmad 1.3.2 or newer. Martins On 7/2/14, 9:12 AM, Martins Innus wrote: > Ken, > > Sorry about that. Can you let me know what version of libibmad > you have on this system? Also if > > HAVE_PORT_PERFORMANCE_QUERY_VIA > > is defined in your build? > > Thanks > > Martins > > > On 7/2/14, 3:13 AM, Nathan Scott wrote: >> Hi Martins, >> >> Debian has an old(er) version of infiniband, it looks like we'll need >> to figure out a way to make the call we need on older versions, or we >> could add to configure.ac in the infiniband section (around 1120) so >> that we can conditionally enable building with these new metrics? >> (see also HAVE_PORT_PERFORMANCE_QUERY_VIA in ibpmda.h for one such >> workaround from awhile back) >> >> thanks! >> >> >> ----- Original Message ----- >>> === infiniband === >>> gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all >>> -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" >>> -I../../../src/include -I../../../src/include/pcp -c -o ib.o ib.c >>> ib.c: In function 'ib_fetch_val': >>> ib.c:673:3: warning: implicit declaration of function 'pma_query_via' >>> [-Wimplicit-function-declaration] >>> gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all >>> -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" >>> -I../../../src/include -I../../../src/include/pcp -o pmdaib -Wall >>> -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src ib.o pmda.o >>> -libmad -libumad -L../../../src/libpcp/src >>> -L../../../src/libpcp_pmda/src >>> -lpcp_pmda -lpcp >>> ib.o: In function `ib_fetch_val': >>> /home/kenj/src/pcp/src/pmdas/infiniband/ib.c:673: undefined >>> reference to >>> `pma_query_via' >>> collect2: error: ld returned 1 exit status >>> make[2]: *** [pmdaib] Error 1 >>> >>> _______________________________________________ >>> pcp mailing list >>> pcp@oss.sgi.com >>> http://oss.sgi.com/mailman/listinfo/pcp >>> >> > > -- --------------------------------------------------------------------- Martins Innus minnus@ccr.buffalo.edu Lead Scientific & Urban Visualization Specialist (716) 881-8928 Center for Computational Research New York State Center of Excellence in Bioinformatics & Life Sciences University at Buffalo www.ccr.buffalo.edu --------------060506090605030106090408 Content-Type: text/x-diff; name="pmaqueryvia.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="pmaqueryvia.patch" diff --git a/src/pmdas/infiniband/ib.c b/src/pmdas/infiniband/ib.c index 6e8a9cf..b3dc182 100644 --- a/src/pmdas/infiniband/ib.c +++ b/src/pmdas/infiniband/ib.c @@ -642,6 +642,8 @@ ib_fetch_val(pmdaMetric *mdesc, unsigned int inst, pmAtomValue *atom) case 3: { /* switch performance counters */ +#ifdef HAVE_PMA_QUERY_VIA + // To find the LID of the switch the HCA is connected to, // send an SMP on the directed route 0,1 and ask the port // to identify itself. @@ -677,7 +679,7 @@ ib_fetch_val(pmdaMetric *mdesc, unsigned int inst, pmAtomValue *atom) sw_lid, sw_port); return 0; } - +#endif break; } @@ -885,6 +887,8 @@ ib_fetch_val(pmdaMetric *mdesc, unsigned int inst, pmAtomValue *atom) case 3: /* Fetch values from switch response */ +#ifdef HAVE_PMA_QUERY_VIA + // (The values are "swapped" because what the port receives is what the // switch sends, and vice versa.) switch (idp->item) { @@ -935,6 +939,11 @@ ib_fetch_val(pmdaMetric *mdesc, unsigned int inst, pmAtomValue *atom) break; } } +#else + + return PM_ERR_VALUE; + +#endif break; default: --------------060506090605030106090408-- From brolley@redhat.com Wed Jul 2 11:05:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 29DE67F61 for ; Wed, 2 Jul 2014 11:05:08 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id D885D8F8039 for ; Wed, 2 Jul 2014 09:05:07 -0700 (PDT) X-ASG-Debug-ID: 1404317103-04bdf05668773b20001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id FaAXxdXY3CzcOWZ0 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 02 Jul 2014 09:05:03 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s62G524k026515 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 2 Jul 2014 12:05:02 -0400 Received: from [10.15.16.224] ([10.15.16.224]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s62G51VS032302 for ; Wed, 2 Jul 2014 12:05:01 -0400 Message-ID: <53B42DA6.4020300@redhat.com> Date: Wed, 02 Jul 2014 12:04:54 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: PCP Mailing List Subject: Performance of Service Discovery via Probing Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: Performance of Service Discovery via Probing Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404317103 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 fche and I had discussed the (poor) performance of service discovery via active probing and I've spent some time looking into it. We discussed a target rate of 50 connection attempts per second per thread where he was observing a total time of about 4 minutes to scan the Toronto office's two /24 inet networks using 10 threads. I implemented a timeout=N.N option for the probe mechanism, where N.N is a floating point number representing the maximum number of seconds to wait for a connection attempt. For example: pmfind -m probe=10.15.16.0/24,timeout=0.1 The default is the target 0.02 seconds mentioned above. While doing so, I discovered the following bugs which were affecting the existing performance. The first was in the secure (NSPR) implementation of __pmConnect() which was unconditionally applying the timeout of __pmConnectTimeout() (default 3 seconds) to PR_Connect(). The problem with this is that often, __pmConnect() is called via __pmConnectTo() which sets the FNDELAY flag for the socket and expects __pmConnect() to return immediately. These callers then enforce the timeout they want using __pmSelectWrite(). The active probing code is among these callers and, so it was unable to reduce the timeout for a failed connection to anything less than __pmConnectTimeOut(). This problem has been solved by using PR_INTERVAL_NO_WAIT with PR_Connect when the FNDELAY flag has been set. The second bug was not affecting failed connection timeouts and was masked by a third bug. The wait time for a retry after a failed attempt to create a new socket was erroneously set to 100 seconds instead of the intended 0.1 seconds (microseconds vs nanoseconds). However this bug was masked by another bug for which the probing code was overwriting this timeout with the value of __pmConnectTimeout() (default 3 seconds). As a result of these bugs, each failed connection attempt could take up to 6 seconds by default. With the fixes and the new default, I can now scan each of the Toronto office's /24 inet networks in: approximately 0.04 seconds with the default settings (255 threads): 0.04 seconds/connection/thread approximately 0.50 seconds with 10 threads: 0.019 seconds/connection/thread approximately 4.15 seconds with 1 thread: 0.016 seconds/connection/thread One can see that that latter two meet the performance goal. We also see that, while increasing the number of threads increases the time taken per connection attempt in each thread, the overall time can decrease dramatically. ------------------------------------------------ commit 4870755fe7d28f323f525195cadc35424590db39 Author: Dave Brolley Date: Wed Jul 2 10:39:17 2014 -0400 Implement 'timeout' option for 'probe' service discovery mechanism. timeout=N.N, where N.N is a floating point number specifying the maximum number of seconds to wait for each connection attempt to fail. Current default is 0.02 seconds which allows for 50 connection attempts per second per thread. Other timeout related bugs found and fixed in the process: - Retry timeout was erroneously set to 1000 seconds and not 0.1 seconds as was intended. - The retry timeout was being reset to __pmConnectTimeout() on the first connection attempt. commit 75e40a1a033df79ca36b4034670bede4ba39ebdf Author: Dave Brolley Date: Wed Jul 2 10:32:21 2014 -0400 Respect FNDELAY in __pmConnect() for secure connections. The secure (NSPR) implementation of __pmConnect() was unconditionally applying __pmConnectTimeout() to PR_Connect(), even when FNDELAY was set for the file descriptor. For FNDELAY sockets, this timeout is applied again during the subsequent call to __pmSelectWrite(). As a result, failed connections on secure sockets were taking twice as long as for non-secure sockets. Correct this by using PR_INTERVAL_NO_WAIT when FNDELAY is set. From brolley@redhat.com Wed Jul 2 11:09:54 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 7B4D37F62 for ; Wed, 2 Jul 2014 11:09:54 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 1AFB5AC00F for ; Wed, 2 Jul 2014 09:09:50 -0700 (PDT) X-ASG-Debug-ID: 1404317389-04bdf05668773eb0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id pIiJ7D5gnrTgtddx (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 02 Jul 2014 09:09:49 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s62G9m3q012608 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 2 Jul 2014 12:09:49 -0400 Received: from [10.15.16.224] ([10.15.16.224]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s62G9lxv011721 for ; Wed, 2 Jul 2014 12:09:48 -0400 Message-ID: <53B42EC4.9070201@redhat.com> Date: Wed, 02 Jul 2014 12:09:40 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: PCP Mailing List Subject: Default Number of Threads for Service Discovery via Active Probing Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: Default Number of Threads for Service Discovery via Active Probing Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404317389 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Frank had asked me on IRC to consider lowering the default number of threads use for this. There is currently a hard limit of FD_SETSIZE which is 1024 on linux and this is also the default. This was chosen since it is the maximum number of open file descriptors that can be tolerated by libpcp due to the use of __pmFdSet. However, while this is the hard upper limit, the code currently automatically reduces this to the size of the subnet being probed. So, for example, for a /24 inet network, this is automatically be reduced to 256. Thus the hard limit of 1024 would only be enforced when probing a network of size 1024 or greater (inet /22 or more) The current max stack size for the worker threads is 2 * PTHREAD_STACK_MIN which is 2 * 16k on linux. 1024 threads would then be 32M of stack on linux. I see that solaris uses _sysconf(_SC_THREAD_STACK_MIN). Perhaps one way to do this would be to decide what the maximum amount of total stack we want to use is and then to divide that by the amount of stack used per thread. Of course, the hard limit of FD_SETSIZE would still be applied. Thoughts? Dave From aather@netflix.com Wed Jul 2 12:57:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID, WEIRD_PORT autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 108217F54 for ; Wed, 2 Jul 2014 12:57:35 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id E461A304039 for ; Wed, 2 Jul 2014 10:57:31 -0700 (PDT) X-ASG-Debug-ID: 1404323848-04cb6c76d13fd330001-S8gJnT Received: from mail-qg0-f42.google.com (mail-qg0-f42.google.com [209.85.192.42]) by cuda.sgi.com with ESMTP id qQJbZh0z4AtIMeON (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 02 Jul 2014 10:57:29 -0700 (PDT) X-Barracuda-Envelope-From: aather@netflix.com X-Barracuda-Apparent-Source-IP: 209.85.192.42 Received: by mail-qg0-f42.google.com with SMTP id e89so5218235qgf.15 for ; Wed, 02 Jul 2014 10:57:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=CS2X57KqAFYpFnhY9xjk65NnFLuz6AtEsktb4D5RYmI=; b=Xe5kbj/AKE2OjbPhGRZGYYfKXm/plER0hfrYmBSU48c7sGIg6lsBB3e4yoFTUZ8IcI m17dahwC1JVEHvhTW/5oJkK8w0GRT3KiYs9s4kubOxMVoDjqzK8oGMm47X6T0VGAGz+h uFpaoDRwtSvG+7j8vq+mPYM1A27+GLiaqoY5Q= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=CS2X57KqAFYpFnhY9xjk65NnFLuz6AtEsktb4D5RYmI=; b=mYvsoq9nTYI/Op2I1bNJziscmJIglGuQEQf+4f7GXHzeiEBFHCzdCI7VSW1ow91HN4 +tMnId7c1LWbSAuGaRbW/TC5SFYU4Em4oUWan23GHmLvm/CFawVmCsypxM+BKd+JtH1m vDVHNgFGxmq3lY8FRFRg/HwMfZo7CsQ0QsKAIf739xjKgC84WPfty/A+5YmtbXoUVVue CEo4TF8wEJmhKLVEkWdTStprjz7KnxseLTHlb8F8r0KivO0cYsW0Dcx3zqH9n4yKxYs2 cmKaxcsCb0UuuxVC6dxTMrPDImqvZfzFHQbzHX82VHVFqB+BlK4xmhW18NP0P+BL/dvl /V8w== X-Gm-Message-State: ALoCoQkOJvx6IQ5D7b0gZQQIj8WvahPsinNc6/vbJamN1BFoNn5aiptzHn+XN9K6aXaAEWdmpqIE MIME-Version: 1.0 X-Received: by 10.224.13.82 with SMTP id b18mr47638638qaa.8.1404323848533; Wed, 02 Jul 2014 10:57:28 -0700 (PDT) Received: by 10.229.241.68 with HTTP; Wed, 2 Jul 2014 10:57:28 -0700 (PDT) In-Reply-To: References: <002d01cf9284$dc8fe570$95afb050$@internode.on.net> <002f01cf9285$f0c63160$d2529420$@internode.on.net> <20140629220735.GA13993@redhat.com> Date: Wed, 2 Jul 2014 10:57:28 -0700 Message-ID: Subject: Re: pcp grafana and graphite - How to convert pcp metric values into percent From: Amer Ather X-ASG-Orig-Subj: Re: pcp grafana and graphite - How to convert pcp metric values into percent To: "Frank Ch. Eigler" Cc: pcp@oss.sgi.com, Martin Spier Content-Type: multipart/alternative; boundary=047d7bdca91e24502f04fd39a0bd X-Barracuda-Connect: mail-qg0-f42.google.com[209.85.192.42] X-Barracuda-Start-Time: 1404323849 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.50 X-Barracuda-Spam-Status: No, SCORE=0.50 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE, WEIRD_PORT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7180 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.50 WEIRD_PORT URI: Uses non-standard port number for HTTP 0.00 HTML_MESSAGE BODY: HTML included in message --047d7bdca91e24502f04fd39a0bd Content-Type: text/plain; charset=UTF-8 Frank and Nathan, So what I understand that rate conversion does not work for PMWEBAPI client but works fine for pmval and pmwebd graphite extension. I tested it and that is exactly what I am seeing. pmval is doing rate conversion, but curl is returning raw values. That means our UI client has to do rate conversion when using PMWEBAPI call. $cat pctavg kernel.pct.cpu.user = 100 * kernel.all.cpu.user / hinv.ncpu kernel.pct.cpu.sys = 100 * kernel.all.cpu.sys / hinv.ncpu kernel.pct.cpu.idle = 100 * kernel.all.cpu.idle / hinv.ncpu kernel.pct.cpu.nice = 100 * kernel.all.cpu.nice / hinv.ncpu kernel.pct.cpu.intr = 100 * kernel.all.cpu.intr / hinv.ncpu kernel.pct.cpu.wait.total = 100 * kernel.all.cpu.wait.total / hinv.ncpu PCP_DERIVED_CONFIG=pctavg pmval -f3 -s3 kernel.pct.cpu.user metric: kernel.pct.cpu.user host: kvick-trustyhvm-i-1e814740 semantics: cumulative counter (converting to rate) units: millisec (converting to time utilization) samples: 3 interval: 1.00 sec * 40.487* * 42.235 * curl.sh: -------- CONTEXT=`curl -s -S " http://ec2-204-236-180-248.us-west-1.compute.amazonaws.com:7002/pmapi/context?local=ANYTHING"|awk '{print $3}'` echo "New Context received from server: $CONTEXT" curl -s -S " http://ec2-204-236-180-248.us-west-1.compute.amazonaws.com:7002/pmapi/$CONTEXT/_fetch?names=kernel.pct.cpu.idle,kernel.pct.cpu.sys,kernel.pct.cpu.user " # ./curl.sh New Context received from server: 253643307 { "timestamp": { "s":1404323698, "us":955081 }, "values": [ { "pmid":2143289350, "name":"kernel.pct.cpu.idle","instances": [ *{"value":1.92329e+11}] },* { "pmid":2143289349, "name":"kernel.pct.cpu.sys","instances": [ *{"value":1.53737e+10}] },* { "pmid":2143289348, "name":"kernel.pct.cpu.user","instances": [ *{"value":1.51585e+10}] }] }* Amer. On Tue, Jul 1, 2014 at 8:33 PM, Frank Ch. Eigler wrote: > Amer Ather writes: > > > [...] grafana/graphite reports these values from archives correctly > > in percent. However, pmapi fetch returns wrong values: [...] > > The graphite emulation code in pmwebd performs rate conversion (since > it has easy historical data to go from); the PMWEBAPI part passes raw > metric values (and libpcp doesn't want to rate-convert [1]). This > could explain the mismatch between your expectations and what you're > seeing. > > [1] http://oss.sgi.com/archives/pcp/2014-05/msg00104.html > > - FChE > -- Thanks, Amer Ather Cloud Performance Engineering My Location --047d7bdca91e24502f04fd39a0bd Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Frank and Nathan,

So what I = understand that rate conversion does not work for PMWEBAPI client but works= fine for pmval and pmwebd graphite extension.=C2=A0

I tested it and that is exactly what I am seeing. pmval is doing rate co= nversion, but curl is returning raw values. That means our UI client has to= do rate conversion when using PMWEBAPI call.

$cat pctavg
kernel.pct.cpu.user =3D 100 *= kernel.all.cpu.user / hinv.ncpu=C2=A0
kernel.pct.cpu.sys =C2=A0= =3D 100 * kernel.all.cpu.sys / hinv.ncpu=C2=A0
kernel.pct.cpu.idl= e =3D 100 * kernel.all.cpu.idle / hinv.ncpu=C2=A0
kernel.pct.cpu.nice =3D 100 * kernel.all.cpu.nice / hinv.ncpu=C2=A0
kernel.pct.cpu.intr =3D 100 * kernel.all.cpu.intr / hinv.ncpu=C2=A0=
kernel.pct.cpu.wait.total =3D 100 * kernel.all.cpu.wait.total / = hinv.ncpu


PCP_DERIVED_CONFIG=3Dpctavg pmval -= f3 -s3 kernel.pct.cpu.user

metric: =C2=A0 =C2=A0ke= rnel.pct.cpu.user
host: =C2=A0 =C2=A0 =C2=A0kvick-trustyhvm-i-1e8= 14740
semantics: cumulative counter (converting to rate)
units: =C2=A0 =C2=A0 millisec (converting to time utilization)
samples: =C2=A0 3
interval: =C2=A01.00 sec
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A040.487
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A042.235=C2=A0

curl.sh:
--------


echo "New Context received from server: $CONTEXT&q= uot;


# ./curl.sh

New Con= text received from server: 253643307
{ "timestamp": { &= quot;s":1404323698, "us":955081 },
"values&qu= ot;: [
{ "pmid":2143289350, "name":"kernel.pct.cpu.i= dle","instances": [
{"value":1.92329e= +11}] },
{ "pmid":2143289349, "name":&quo= t;kernel.pct.cpu.sys","instances": [
{"value":1.53737e+10}] },
{ "pmid"= ;:2143289348, "name":"kernel.pct.cpu.user","instan= ces": [
{"value":1.51585e+10}] }] }

Amer.



On Tue, Jul 1, 2014= at 8:33 PM, Frank Ch. Eigler <fche@redhat.com> wrote:
Amer Ather <aather@netflix.com> writes:

> [...] =C2=A0grafana/graphite reports these values from archives correc= tly
> in percent. =C2=A0However, pmapi fetch returns wrong values: [...]

The graphite emulation code in pmwebd performs rate conversion (since
it has easy historical data to go from); the PMWEBAPI part passes raw
metric values (and libpcp doesn't want to rate-convert [1]). =C2=A0This=
could explain the mismatch between your expectations and what you're seeing.

[1] http://oss.sgi.com/archives/pcp/2014-05/msg00104.html

- FChE



--
Thanks,

Amer Ather
Cloud Performance Engi= neering
--047d7bdca91e24502f04fd39a0bd-- From fche@redhat.com Wed Jul 2 13:04:31 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 2FD2B7F54 for ; Wed, 2 Jul 2014 13:04:31 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 10785304082 for ; Wed, 2 Jul 2014 11:04:27 -0700 (PDT) X-ASG-Debug-ID: 1404324266-04cbb065372338f0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id kPsMhRVCCnYjUTyS (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 02 Jul 2014 11:04:27 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s62I4OlW016398 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 2 Jul 2014 14:04:25 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s62I4OGX006878; Wed, 2 Jul 2014 14:04:24 -0400 Received: by fche.csb (Postfix, from userid 2569) id F376D58180; Wed, 2 Jul 2014 14:04:23 -0400 (EDT) Date: Wed, 2 Jul 2014 14:04:23 -0400 From: "Frank Ch. Eigler" To: Amer Ather Cc: pcp@oss.sgi.com, Martin Spier Subject: Re: pcp grafana and graphite - How to convert pcp metric values into percent Message-ID: <20140702180423.GB13559@redhat.com> X-ASG-Orig-Subj: Re: pcp grafana and graphite - How to convert pcp metric values into percent References: <002d01cf9284$dc8fe570$95afb050$@internode.on.net> <002f01cf9285$f0c63160$d2529420$@internode.on.net> <20140629220735.GA13993@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.2i X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404324267 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi - > So what I understand that rate conversion does not work for PMWEBAPI client > but works fine for pmval and pmwebd graphite extension. Exactly, though I wouldn't say "works" or "does not work". Rate conversion was not intended to be done by the PMWEBAPI layer: it's a very shallow mapping of the C PMAPI. > I tested it and that is exactly what I am seeing. pmval is doing rate > conversion, but curl is returning raw values. OK. > That means our UI client has to do rate conversion when using > PMWEBAPI call. ... or else we can extend PMWEBAPI to have a rate-conversion option. What that needs is a history component - previous records from which to compute deltas. PMWEBAPI's non-live (archive) support is pretty weak too; we could improve both these aspects if you need them. - FChE From minnus@buffalo.edu Wed Jul 2 14:49:01 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 3228E7F54 for ; Wed, 2 Jul 2014 14:49:01 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 1918A8F8052 for ; Wed, 2 Jul 2014 12:48:57 -0700 (PDT) X-ASG-Debug-ID: 1404330536-04cbb06537237660001-S8gJnT Received: from mtareserve1.acsu.buffalo.edu (mtareserve6.acsu.buffalo.edu [128.205.6.4]) by cuda.sgi.com with ESMTP id 5Cayj9UR4YnMTOOA for ; Wed, 02 Jul 2014 12:48:56 -0700 (PDT) X-Barracuda-Envelope-From: minnus@buffalo.edu X-Barracuda-Apparent-Source-IP: 128.205.6.4 Received: from localmailA.acsu.buffalo.edu (localmaila.acsu.buffalo.edu [128.205.5.196]) by mtareserve1.acsu.buffalo.edu (Postfix) with ESMTP id B3920BA5; Wed, 2 Jul 2014 15:48:56 -0400 (EDT) Received: from localmailA.acsu.buffalo.edu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id AE4EB5396; Wed, 2 Jul 2014 15:48:56 -0400 (EDT) Received: from localmailA.acsu.buffalo.edu (localhost [127.0.0.1]) by localmailA.acsu.buffalo.edu (Postfix) with ESMTP id 17A0C5390; Wed, 2 Jul 2014 15:48:56 -0400 (EDT) Received: from smtp.buffalo.edu (smtp2.acsu.buffalo.edu [128.205.5.254]) by localmailA.acsu.buffalo.edu (Prefixe) with ESMTP id 07CFF538F; Wed, 2 Jul 2014 15:48:56 -0400 (EDT) Received: from gilmour.ccr.buffalo.edu (gilmour.ccr.buffalo.edu [128.205.40.13]) (Authenticated sender: minnus@buffalo.edu) by smtp.buffalo.edu (Postfix) with ESMTPSA id D78EFCFFD; Wed, 2 Jul 2014 15:48:55 -0400 (EDT) Message-ID: <53B4622C.7010806@buffalo.edu> Date: Wed, 02 Jul 2014 15:49:00 -0400 From: Martins Innus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Nathan Scott CC: PCP Subject: Re: [pcp] nvidia/nvml pmda References: <53A995C8.5020904@buffalo.edu> <1015758147.33977940.1403768176429.JavaMail.zimbra@redhat.com> <1626126016.1041444.1404199831629.JavaMail.zimbra@redhat.com> <53B2F20E.7080600@buffalo.edu> <871495836.1531233.1404264222672.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: [pcp] nvidia/nvml pmda In-Reply-To: <871495836.1531233.1404264222672.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-PM-EL-Spam-Prob: : 8% X-Barracuda-Connect: mtareserve6.acsu.buffalo.edu[128.205.6.4] X-Barracuda-Start-Time: 1404330536 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7183 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Nathan, On 7/1/14, 9:23 PM, Nathan Scott wrote: > > ----- Original Message ----- >> [...] >> OK, included are new files that have changes to make this work on real >> hardware. A typo fix in the dlopen and then a change in the error >> handling. I'm not entirely happy with my error changes, but I think its >> in a direction to get it working. Cards may not neccesarrily support >> all the possible metrics so the pmda should fail to return any metrics. >> For instance we have older Tesla GPU cards that don't return anything >> for the temp and fan metrics, but everything else is ok. > Ah, yes - good points all round. I've taken your error handling work and > built on it further - I think it fixes everything we've discussed - could > you review latest code in git dev branch once more? Thanks! > From looking at the code, all looks good, but the pmda fails to start: Log for pmdanvidia on k05n28 started Wed Jul 2 15:40:30 2014 [Wed Jul 2 15:40:30] pmdanvidia(34601) Info: Successfully loaded NVIDIA NVML library [Wed Jul 2 15:40:35] pmdanvidia(34601) Critical: __pmdaSetupPDU: PMDA pmdanvidia send creds: Broken pipe [Wed Jul 2 15:40:35] pmdanvidia(34601) Error: PMDA Initialisation Failed Log finished Wed Jul 2 15:40:35 2014 From a quick look I can't figure out what is going on. Built the rpms from git of today and then an upgrade. I will keep looking. Martins From kenj@internode.on.net Wed Jul 2 15:00:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 755677F54 for ; Wed, 2 Jul 2014 15:00:38 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id DE6C7AC013 for ; Wed, 2 Jul 2014 13:00:37 -0700 (PDT) X-ASG-Debug-ID: 1404331234-04cb6c76d0401e10001-S8gJnT Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id A1VAAnbk68G7dHDr for ; Wed, 02 Jul 2014 13:00:35 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApgcAJFktFN20YDzPGdsb2JhbAANTYtewBoEAQEBATiEd300AjIaDQgBAbMUnQ0Xi30Bh24Fskw Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail06.adl2.internode.on.net with ESMTP; 03 Jul 2014 05:30:13 +0930 Message-ID: <53B4659D.10601@internode.on.net> Date: Thu, 03 Jul 2014 06:03:41 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: PCP Subject: build regression - nvidia pmda Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: build regression - nvidia pmda Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404331235 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7183 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Seeing this on Ubuntu 14.04 64-bit gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -DDSOSUFFIX=\"so\" -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.5\" -I../../../src/include -I../../../src/include/pcp -o pmdanvidia -Wall -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src localnvml.o nvidia.o -lpcp_pmda -lpcp /usr/bin/ld: localnvml.o: undefined reference to symbol 'dlsym@@GLIBC_2.2.5' //lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status From minnus@buffalo.edu Wed Jul 2 15:01:23 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 6E6F77F54 for ; Wed, 2 Jul 2014 15:01:23 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id EF10DAC018 for ; Wed, 2 Jul 2014 13:01:22 -0700 (PDT) X-ASG-Debug-ID: 1404331278-04bdf0566877d480001-S8gJnT Received: from mtareserve1.acsu.buffalo.edu (mtareserve6.acsu.buffalo.edu [128.205.6.4]) by cuda.sgi.com with ESMTP id 6XLkyLNv1JCU3ggy for ; Wed, 02 Jul 2014 13:01:18 -0700 (PDT) X-Barracuda-Envelope-From: minnus@buffalo.edu X-Barracuda-Apparent-Source-IP: 128.205.6.4 Received: from localmailC.acsu.buffalo.edu (localmailc.acsu.buffalo.edu [128.205.5.204]) by mtareserve1.acsu.buffalo.edu (Postfix) with ESMTP id EC576CA7; Wed, 2 Jul 2014 16:01:17 -0400 (EDT) Received: from localmailC.acsu.buffalo.edu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id E52B6DFA4; Wed, 2 Jul 2014 16:01:17 -0400 (EDT) Received: from localmailC.acsu.buffalo.edu (localhost [127.0.0.1]) by localmailC.acsu.buffalo.edu (Postfix) with ESMTP id 65B51DF9F; Wed, 2 Jul 2014 16:01:17 -0400 (EDT) Received: from smtp.buffalo.edu (smtp2.acsu.buffalo.edu [128.205.5.254]) by localmailC.acsu.buffalo.edu (Prefixe) with ESMTP id 58B07DF9E; Wed, 2 Jul 2014 16:01:17 -0400 (EDT) Received: from gilmour.ccr.buffalo.edu (gilmour.ccr.buffalo.edu [128.205.40.13]) (Authenticated sender: minnus@buffalo.edu) by smtp.buffalo.edu (Postfix) with ESMTPSA id 3B80DC138; Wed, 2 Jul 2014 16:01:17 -0400 (EDT) Message-ID: <53B46512.2030201@buffalo.edu> Date: Wed, 02 Jul 2014 16:01:22 -0400 From: Martins Innus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Nathan Scott CC: PCP Subject: Re: [pcp] nvidia/nvml pmda References: <53A995C8.5020904@buffalo.edu> <1015758147.33977940.1403768176429.JavaMail.zimbra@redhat.com> <1626126016.1041444.1404199831629.JavaMail.zimbra@redhat.com> <53B2F20E.7080600@buffalo.edu> <871495836.1531233.1404264222672.JavaMail.zimbra@redhat.com> <53B4622C.7010806@buffalo.edu> X-ASG-Orig-Subj: Re: [pcp] nvidia/nvml pmda In-Reply-To: <53B4622C.7010806@buffalo.edu> Content-Type: multipart/mixed; boundary="------------090402060000080807060004" X-PM-EL-Spam-Prob: : 8% X-Barracuda-Connect: mtareserve6.acsu.buffalo.edu[128.205.6.4] X-Barracuda-Start-Time: 1404331278 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7183 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- This is a multi-part message in MIME format. --------------090402060000080807060004 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit > > Log for pmdanvidia on k05n28 started Wed Jul 2 15:40:30 2014 > > [Wed Jul 2 15:40:30] pmdanvidia(34601) Info: Successfully loaded > NVIDIA NVML library > [Wed Jul 2 15:40:35] pmdanvidia(34601) Critical: __pmdaSetupPDU: PMDA > pmdanvidia send creds: Broken pipe > [Wed Jul 2 15:40:35] pmdanvidia(34601) Error: PMDA Initialisation Failed > > Log finished Wed Jul 2 15:40:35 2014 > > > From a quick look I can't figure out what is going on. Built the rpms > from git of today and then an upgrade. I will keep looking. Looks like it was a slow start issue. This appears to fix it. Martins --------------090402060000080807060004 Content-Type: text/x-diff; name="nvidia.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="nvidia.patch" diff --git a/src/pmdas/nvidia/nvidia.c b/src/pmdas/nvidia/nvidia.c index d095671..849f51f 100644 --- a/src/pmdas/nvidia/nvidia.c +++ b/src/pmdas/nvidia/nvidia.c @@ -383,8 +383,8 @@ main(int argc, char **argv) } pmdaOpenLog(&desc); - nvidia_init(&desc); pmdaConnect(&desc); + nvidia_init(&desc); pmdaMain(&desc); exit(0); --------------090402060000080807060004-- From kenj@internode.on.net Wed Jul 2 15:09:20 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 2CB947F54 for ; Wed, 2 Jul 2014 15:09:20 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 9B14EAC013 for ; Wed, 2 Jul 2014 13:09:19 -0700 (PDT) X-ASG-Debug-ID: 1404331756-04cb6c76d24024a0001-S8gJnT Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id oMMmKxexjkeKemTf for ; Wed, 02 Jul 2014 13:09:17 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArocALlltFN20YDzPGdsb2JhbAANTQ6HGYQ3u2aDFwGBHQQBAQEBOIQ4AQEBBCMVQAEQCw4KAgIFFgsCAgkDAgECATEUBgEMAQcBAbMYd5wXF4EsilEBgyQHgneBTAEEsXhU Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail06.adl2.internode.on.net with ESMTP; 03 Jul 2014 05:39:16 +0930 Message-ID: <53B467BD.5010601@internode.on.net> Date: Thu, 03 Jul 2014 06:12:45 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Martins Innus , Nathan Scott CC: pcp@oss.sgi.com Subject: Re: [pcp] recent buld regression for inifinband PMDA on debian References: <006b01cf95ba$27501890$75f049b0$@internode.on.net> <853918576.1602669.1404285230879.JavaMail.zimbra@redhat.com> <53B4052C.7010903@buffalo.edu> <53B413D7.4060003@buffalo.edu> X-ASG-Orig-Subj: Re: [pcp] recent buld regression for inifinband PMDA on debian In-Reply-To: <53B413D7.4060003@buffalo.edu> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404331756 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7183 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 03/07/14 00:14, Martins Innus wrote: > So there already was a check for this method in configure.ac, but as far > as i can tell its not used anywhere. This patch should work, but > untested since I don't have a system with the older API. > > I don't think its possible to provide these metrics when using an old > version, since there doesn't appear to be any other way to access these > counters. > > From my reading of the libibmad history, these counters should be > available if using libibmad 1.3.2 or newer. Thanks for the prompt response Martins. I've reviewed and applied the patch ... it fixes the problem on the Debian machine. I have committed the patch to my git tree locally and it will flow North later today. Cheers, Ken. From kenj@internode.on.net Wed Jul 2 15:12:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 893127F54 for ; Wed, 2 Jul 2014 15:12:22 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5FE72304066 for ; Wed, 2 Jul 2014 13:12:19 -0700 (PDT) X-ASG-Debug-ID: 1404331937-04bdf0566977dae0001-S8gJnT Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id wTlHV4cJNPLYMGq3 for ; Wed, 02 Jul 2014 13:12:17 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aq8cAOVmtFN20YDzPGdsb2JhbAANTYteu2eDFwGBHQQBAQEBOIQ4AQEBBDhAEQsYCRYPCQMCAQIBMRQTCAEBsxidDhePKRaELQEEpkmMAw Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail06.adl2.internode.on.net with ESMTP; 03 Jul 2014 05:42:16 +0930 Message-ID: <53B46871.5040600@internode.on.net> Date: Thu, 03 Jul 2014 06:15:45 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: Re: [pcp] Performance of Service Discovery via Probing References: <53B42DA6.4020300@redhat.com> X-ASG-Orig-Subj: Re: [pcp] Performance of Service Discovery via Probing In-Reply-To: <53B42DA6.4020300@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404331937 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7183 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 03/07/14 02:04, Dave Brolley wrote: > ... > While doing so, I discovered the following bugs which were affecting the > existing performance. > > The first was in the secure (NSPR) ... > > The second bug was not affecting failed connection timeouts and was > masked by a third bug. ... > ... However this bug > was masked by another bug ... Good catch(es) Dave. From kenj@internode.on.net Wed Jul 2 15:30:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id C862C7F54 for ; Wed, 2 Jul 2014 15:30:48 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 9B469304070 for ; Wed, 2 Jul 2014 13:30:48 -0700 (PDT) X-ASG-Debug-ID: 1404333046-04bdf0566877e400001-S8gJnT Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id PFxnZ91CSMPbrVEI for ; Wed, 02 Jul 2014 13:30:46 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aq8cAJ1rtFN20YDzPGdsb2JhbAANTYteu2iDFwGBHQQBAQEBOIQ5AQEEOEEQCw4EDyUPAjIGDgYBDAEHAQGzGZ0KF48iB4RDAQSweIFU Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail06.adl2.internode.on.net with ESMTP; 03 Jul 2014 06:00:27 +0930 Message-ID: <53B46CB4.40409@internode.on.net> Date: Thu, 03 Jul 2014 06:33:56 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Amer Ather , "Frank Ch. Eigler" CC: Martin Spier , pcp@oss.sgi.com Subject: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent References: <002d01cf9284$dc8fe570$95afb050$@internode.on.net> <002f01cf9285$f0c63160$d2529420$@internode.on.net> <20140629220735.GA13993@redhat.com> X-ASG-Orig-Subj: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404333046 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.30 X-Barracuda-Spam-Status: No, SCORE=0.30 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=NO_OBLIGATION X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7184 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.30 NO_OBLIGATION BODY: There is no obligation On 03/07/14 03:57, Amer Ather wrote:> Frank and Nathan, > > So what I understand that rate conversion does not work for PMWEBAPI > client but works fine for pmval and pmwebd graphite extension. Just to back up what Frank said, ... When we designed the PCP architecture ... [Historical aside, Nathan mentioned seeing a 1995 copyright notice in the code, and speculated on a PCP 20-year anniversary ... I've checked my records and the conceptual design of PCP started in early 1993, but it was not until late 1993 or early 1994 that the first code was written, so the 20th anniversary of "starting" PCP has been and gone. But we barely had source control then, and certainly no obligations to add copyrights ahead of the initial product shipping in 1995]. ... so, over 20 years ago, we made a very early decision to NOT hold client state in the collection (server) side of the PMAPI. We wanted the potential memory bloat from holding a history of previous values for all clients to live with the clients (that were running on workstations) not on the server(s). I still believe this is semantically the correct thing to do ... clients, not pmcd, know what to do with a time series of metric observations. So pminfo, pmprobe, pmlogger and PMWEBAPI all sit close PMAPI and choose not to implement rate conversion, but all the other end-user clients like pmval, pmie, pmchart, pmview, pmdumpstats, ... do implement rate conversion (in addition to other more exotic post-processing of the time series of metric values). From fche@redhat.com Wed Jul 2 15:39:12 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id B883D7F54 for ; Wed, 2 Jul 2014 15:39:12 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4F1F1AC013 for ; Wed, 2 Jul 2014 13:39:12 -0700 (PDT) X-ASG-Debug-ID: 1404333550-04cbb06538239390001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id S4eJlvzCk3QyIg15 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 02 Jul 2014 13:39:11 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s62Kd6v8000775 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 2 Jul 2014 16:39:06 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s62Kd5ip024711; Wed, 2 Jul 2014 16:39:05 -0400 Received: by fche.csb (Postfix, from userid 2569) id 0684A58180; Wed, 2 Jul 2014 16:39:04 -0400 (EDT) Date: Wed, 2 Jul 2014 16:39:04 -0400 From: "Frank Ch. Eigler" To: Ken McDonell Cc: Amer Ather , Martin Spier , pcp@oss.sgi.com Subject: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent Message-ID: <20140702203904.GA21540@redhat.com> X-ASG-Orig-Subj: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent References: <002d01cf9284$dc8fe570$95afb050$@internode.on.net> <002f01cf9285$f0c63160$d2529420$@internode.on.net> <20140629220735.GA13993@redhat.com> <53B46CB4.40409@internode.on.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53B46CB4.40409@internode.on.net> User-Agent: Mutt/1.4.2.2i X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404333551 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi, Ken - > [...] so the 20th anniversary of "starting" PCP has been and gone. > [...] Congrats! > ... so, over 20 years ago, we made a very early decision to NOT hold > client state in the collection (server) side of the PMAPI. [...] I > still believe this is semantically the correct thing to do ... > clients, not pmcd, know what to do with a time series of metric > observations. [...] Indeed so. A new issue under contention is whether the client side of PMAPI - libpcp - could/should have rate-conversion capabilities, so each client programs wouldn't have to reinvent that wheel. - FChE From brolley@redhat.com Wed Jul 2 15:57:53 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 45EF97F54 for ; Wed, 2 Jul 2014 15:57:53 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id DDE54AC00D for ; Wed, 2 Jul 2014 13:57:52 -0700 (PDT) X-ASG-Debug-ID: 1404334671-04bdf0566877f180001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id EqkaPGy8CYIqnE2V (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 02 Jul 2014 13:57:52 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s62KvpVL022194 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 2 Jul 2014 16:57:51 -0400 Received: from [10.15.16.224] ([10.15.16.224]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s62KvpGm012895 for ; Wed, 2 Jul 2014 16:57:51 -0400 Message-ID: <53B47248.4060507@redhat.com> Date: Wed, 02 Jul 2014 16:57:44 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: Re: [pcp] build regression - nvidia pmda References: <53B4659D.10601@internode.on.net> X-ASG-Orig-Subj: Re: [pcp] build regression - nvidia pmda In-Reply-To: <53B4659D.10601@internode.on.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404334672 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Yeah -- I saw it too. Adding -ldl to the GNUMakefile got me past it. Don't know if that's a complete solution or not. I'vce sent mail to Nathan. Dave On 07/02/2014 04:03 PM, Ken McDonell wrote: > Seeing this on Ubuntu 14.04 64-bit > > gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all > -D_FORTIFY_SOURCE=2 -DDSOSUFFIX=\"so\" -Wall -O2 -g -DPCP_DEBUG > -DPCP_VERSION=\"3.9.5\" -I../../../src/include > -I../../../src/include/pcp -o pmdanvidia -Wall > -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src localnvml.o > nvidia.o -lpcp_pmda -lpcp > /usr/bin/ld: localnvml.o: undefined reference to symbol > 'dlsym@@GLIBC_2.2.5' > //lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing > from command line > collect2: error: ld returned 1 exit status > > _______________________________________________ > pcp mailing list > pcp@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/pcp From aather@netflix.com Wed Jul 2 16:51:59 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id E224D7F54 for ; Wed, 2 Jul 2014 16:51:59 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id BD01E8F804B for ; Wed, 2 Jul 2014 14:51:56 -0700 (PDT) X-ASG-Debug-ID: 1404337914-04bdf05667781180001-S8gJnT Received: from mail-qa0-f50.google.com (mail-qa0-f50.google.com [209.85.216.50]) by cuda.sgi.com with ESMTP id Bh6WUJDWPGkiNsoG (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 02 Jul 2014 14:51:54 -0700 (PDT) X-Barracuda-Envelope-From: aather@netflix.com X-Barracuda-Apparent-Source-IP: 209.85.216.50 Received: by mail-qa0-f50.google.com with SMTP id m5so9294711qaj.23 for ; Wed, 02 Jul 2014 14:51:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=bUfqgJZRiYyABbURClnwDPKlqkC6LYbi6t8W6/TX05Y=; b=hRBLnYAObnczEVtyvdxLdaioBN9rcWDFw5gL6YsmlPuqHguXHcGwkUChFpT3+eYn1V cHE0TZcy1jvSGg+jKMFIDOF30BbDa3I1jIdBDTrub1aiG1lDB3y3y4zXtEqxVhSU1ofz fxqCIrZId+/wbF9QHhmYVioJUr9aEGJ607id0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=bUfqgJZRiYyABbURClnwDPKlqkC6LYbi6t8W6/TX05Y=; b=awp6TukykzkR0UeEutKuAoN3+L27x2kM3TNui2C0CoMCoDktJ3QGTzVva1PKbzc6L3 4chffce5312gpiv4zgX/JSQadkYaBJghURQNfQ2AGXjVSdn+IlxQqioY19bHDkqK3UYE dMIli/e4NTpbC7YIVH+YzxHUfOA5ODH917IAsYynnNXmGYLC9IAPbj20W29f6Wrslc9P bQNas0VH1gIR1vKXN87uMMZejzPP9wFVajjBPEhgtmjFQWS9u1zaWiXSm/tahs4YyqWp YsZ5tx+x/MpP4xmnU5KnzhqcT25FgNPTBU+ByQ4fQZS8ShrxAXGFzfrylDu9+Z1ybGJ6 SluA== X-Gm-Message-State: ALoCoQnD7Th4pgOJojyuU2bGr6Y24sRd4KYcCM+oUT8dY6W8xRlCTwUcKsbHrB2Og9lz+FeCH67F MIME-Version: 1.0 X-Received: by 10.140.30.73 with SMTP id c67mr745486qgc.16.1404337913938; Wed, 02 Jul 2014 14:51:53 -0700 (PDT) Received: by 10.229.241.68 with HTTP; Wed, 2 Jul 2014 14:51:53 -0700 (PDT) In-Reply-To: <20140702203904.GA21540@redhat.com> References: <002d01cf9284$dc8fe570$95afb050$@internode.on.net> <002f01cf9285$f0c63160$d2529420$@internode.on.net> <20140629220735.GA13993@redhat.com> <53B46CB4.40409@internode.on.net> <20140702203904.GA21540@redhat.com> Date: Wed, 2 Jul 2014 14:51:53 -0700 Message-ID: Subject: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent From: Amer Ather X-ASG-Orig-Subj: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent To: "Frank Ch. Eigler" Cc: Ken McDonell , Martin Spier , pcp@oss.sgi.com Content-Type: multipart/alternative; boundary=001a113a35a4819b1304fd3ce65f X-Barracuda-Connect: mail-qa0-f50.google.com[209.85.216.50] X-Barracuda-Start-Time: 1404337914 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7187 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --001a113a35a4819b1304fd3ce65f Content-Type: text/plain; charset=UTF-8 Great information! I somehow misunderstood the scope of derived PCP metrics. It make sense if taking into account PCP design philosophy not to keep monitoring client state information. Our interest in PCP as a on-demand tool was mainly due to this design. We don't want to have another tool on the system collecting system stats and adding overhead. We want to use PCP as a troubleshooting tool where high resolution data collection is triggered on-demand basis to debug the issue. With PCP graphite integration, we also like to evaluate PCP archives/logging feature as a replacement to sar to log historical data. Using web graphite client (like grafana), we can build intuitive graphs for data correlation to help us discover anomalies quickly. Question: I want to make we are implementing the logic on web client correctly. Let's say PMAPI client is fetching metrics at a second interval. To process it one show do the following: - fetch the given metric, say kernel.all.cpu.idle - calculate the delta - Apply rate conversion. As Nattan pointed out, counters need to be converted into a rate *(change-in-value over change-in-time) *and units *(milli-seconds)* converted into a utilization by multiplying by 100 to produce a percent: *"**kernel.pct.cpu.idle = 100 * kernel.all.cpu.idle / hinv.ncpu"*. Metric *hinv.ncpu* can be cached considering it does n't change. Thanks for all your help, Regards, Amer. On Wed, Jul 2, 2014 at 1:39 PM, Frank Ch. Eigler wrote: > Hi, Ken - > > > [...] so the 20th anniversary of "starting" PCP has been and gone. > > [...] > > Congrats! > > > ... so, over 20 years ago, we made a very early decision to NOT hold > > client state in the collection (server) side of the PMAPI. [...] I > > still believe this is semantically the correct thing to do ... > > clients, not pmcd, know what to do with a time series of metric > > observations. [...] > > Indeed so. A new issue under contention is whether the client side of > PMAPI - libpcp - could/should have rate-conversion capabilities, so > each client programs wouldn't have to reinvent that wheel. > > - FChE > -- Thanks, Amer Ather Cloud Performance Engineering My Location --001a113a35a4819b1304fd3ce65f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Great information!=C2=A0

I somehow misu= nderstood the scope of derived PCP metrics. It make sense if taking into ac= count PCP design philosophy not to keep monitoring client state information= . =C2=A0Our interest in PCP as a on-demand tool was mainly due to this desi= gn. We don't want to have another tool on the system collecting system = stats and adding overhead. We want to use PCP as a troubleshooting tool whe= re high resolution data collection is triggered on-demand basis to debug th= e issue.

With PCP graphite integration, we also like to evaluate= PCP archives/logging feature as a replacement to sar to log historical dat= a. =C2=A0Using web graphite client (like grafana), we can build intuitive g= raphs for data correlation to help us discover anomalies quickly.

Question:
I want to make we are implementing = the logic on web client correctly. Let's say PMAPI client is fetching m= etrics at a second interval. To process it one show do the following:
  • fetch the given metric, say kernel.all.cpu.idle
  • calcul= ate the delta
  • Apply rate conversion. As Nattan pointed out,=C2=A0c= ounters need to=C2=A0be converted into a rate (change-in-value o= ver change-in-time) and =C2=A0units (milli-seconds) conv= erted into a utilization by multiplying by 100=C2=A0to produce a pe= rcent: "kernel.pct.cpu.idle =3D 100 * kern= el.all.cpu.idle / hinv.ncpu". Metric hinv.ncpu can be c= ached considering it does n't change.
Thanks for all your help,=

Regards,
Amer.




On Wed, Jul 2, 2014 at 1:39 PM, Frank Ch. Eigler <fche@redh= at.com> wrote:
Hi, Ken -

> [...] =C2=A0so the 20th anniversary of "starting" PCP has be= en and gone.
> [...]

Congrats!

> ... so, over 20 years ago, we made a very early decision to NOT hold
> client state in the collection (server) side of the PMAPI. =C2= =A0[...] =C2=A0I
> still believe this is semantically the correct thing t= o do ...
> clients, not pmcd, know what to do with a time series of metric
> observations. [...]

Indeed so. =C2=A0A new issue under contention is whether the client side of=
PMAPI - libpcp - could/should have rate-conversion capabilities, so
each client programs wouldn't have to reinvent that wheel.

- FChE



--
Thanks,

Amer Ather
Cloud Performance Engi= neering
--001a113a35a4819b1304fd3ce65f-- From nscott@redhat.com Wed Jul 2 17:17:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id C2CEC7F54 for ; Wed, 2 Jul 2014 17:17:30 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id A1ED5304066 for ; Wed, 2 Jul 2014 15:17:30 -0700 (PDT) X-ASG-Debug-ID: 1404339448-04cbb0653523c330001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id EcgLLu8WRxKj5yJa for ; Wed, 02 Jul 2014 15:17:28 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s62MHSK1025314 for ; Wed, 2 Jul 2014 18:17:28 -0400 Date: Wed, 2 Jul 2014 18:17:28 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: PCP Message-ID: <745744877.2442880.1404339447997.JavaMail.zimbra@redhat.com> In-Reply-To: <257624782.2442857.1404339429721.JavaMail.zimbra@redhat.com> Subject: pcp updates: pmdanvidia build MIME-Version: 1.0 X-ASG-Orig-Subj: pcp updates: pmdanvidia build Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: pmdanvidia build Thread-Index: /Dd+QMfsqcUZti8xFD2+4EzaSpY2nw== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1404339448 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7187 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Changes committed to git://git.performancecopilot.org/pcp.git dev src/pmdas/nvidia/GNUmakefile | 2 +- src/pmdas/nvidia/nvidia.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 1e12995122f2c6c1d1b47cd2bfc98debacdae329 Author: Nathan Scott Date: Thu Jul 3 08:13:22 2014 +1000 pmdanvidia: add LIB_FOR_DLOPEN for linkage on some platforms commit ad87839001fa25088acda8f834db69058487eb1f Author: Martins Innus Date: Thu Jul 3 08:10:11 2014 +1000 pmdanvidia: cater for a slow NVML initialisation From fche@redhat.com Wed Jul 2 17:25:47 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 083EE7F54 for ; Wed, 2 Jul 2014 17:25:47 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 7ACE0AC00F for ; Wed, 2 Jul 2014 15:25:46 -0700 (PDT) X-ASG-Debug-ID: 1404339941-04cb6c76d0406970001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id LDHIR3nh97wwQ8qa (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 02 Jul 2014 15:25:42 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s62MPbuD019218 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 2 Jul 2014 18:25:37 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s62MPags021473; Wed, 2 Jul 2014 18:25:36 -0400 Received: by fche.csb (Postfix, from userid 2569) id 08C0358180; Wed, 2 Jul 2014 18:25:35 -0400 (EDT) Date: Wed, 2 Jul 2014 18:25:35 -0400 From: "Frank Ch. Eigler" To: Amer Ather Cc: Ken McDonell , Martin Spier , pcp@oss.sgi.com Subject: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent Message-ID: <20140702222535.GB21540@redhat.com> X-ASG-Orig-Subj: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent References: <002d01cf9284$dc8fe570$95afb050$@internode.on.net> <002f01cf9285$f0c63160$d2529420$@internode.on.net> <20140629220735.GA13993@redhat.com> <53B46CB4.40409@internode.on.net> <20140702203904.GA21540@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.2i X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404339942 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi - > I somehow misunderstood the scope of derived PCP metrics. It make > sense if taking into account PCP design philosophy not to keep > monitoring client state information. This part is not actually related to derived-metrics - the same rate-conversion (or absence of ...) affects basic metrics too. > Our interest in PCP as a on-demand tool was mainly due to this > design. We don't want to have another tool on the system collecting > system stats and adding overhead. We want to use PCP as a > troubleshooting tool where high resolution data collection is > triggered on-demand basis to debug the issue. Right. At this point, the on-demand aspect is not well automated, but it's not hard to assemble something yourself. One way to do that is ... Create a configuration/storage directory: % mkdir on-demand-pmmgr % echo HOST1 >> on-demand-pmmgr/target-host % echo HOST2 >> on-demand-pmmgr/target-host % echo HOST3 >> on-demand-pmmgr/target-host # and/or engage /target-discovery % echo "-t 1" >> on-demand-pmmgr/pmlogger # sampling interval % touch on-demand-pmmgr/pmlogconf # to run pmlogconf to configure logger # else make your own, and add -c FOO # to the /pmlogger file Run the daemons: % pmmgr -c on-demand-pmmgr & % pmwebd -p PORT -G -R .../jsdemos -A on-demand-pmmgr & % firefox http://localhost:PORT & When finished: % kill %1 %2 %3 % rm -rf on-demand-pmmgr That's all there is to it: it does not require special privileges or interfering with system services. > With PCP graphite integration, we also like to evaluate PCP > archives/logging feature as a replacement to sar to log historical > data. [...] Great. (If you want to merge together data from multiple logging configurations into a single pmwebd graphite dataset, you'll need to give a -A path that includes both background and on-demand sets.) > Question: > I want to make we are implementing the logic on web client correctly. Let's > say PMAPI client is fetching metrics at a second interval. To process it > one show do the following: > > - fetch the given metric, say kernel.all.cpu.idle > - calculate the delta > - Apply rate conversion. [...] Yes. (You'd want to use the actual timestamps of prior samplings of the same metrics to calculate rates, not the theoretical http-level refresh interval.) - FChE From kenj@internode.on.net Wed Jul 2 17:42:09 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 97AB07F54 for ; Wed, 2 Jul 2014 17:42:09 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 80A628F8040 for ; Wed, 2 Jul 2014 15:42:06 -0700 (PDT) X-ASG-Debug-ID: 1404340923-04cbb0653723cb50001-S8gJnT Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id rDDc6aZUJFxllFQ5 for ; Wed, 02 Jul 2014 15:42:04 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao0fABqKtFN20YDzPGdsb2JhbAANTQ6DUYNIhDe+fgGBHwQBAQEBOG8BAYNHAQEBBCNVARALDgoCAgUWCwICCQMCAQIBMRQGAQwBBwEBsxx3nA4XgSyKUQGCQhACAU8HgneBTAEEnDWVQ1Q Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail06.adl2.internode.on.net with ESMTP; 03 Jul 2014 08:12:03 +0930 Message-ID: <53B48B8B.4090905@internode.on.net> Date: Thu, 03 Jul 2014 08:45:31 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Martins Innus , Nathan Scott CC: pcp@oss.sgi.com Subject: Re: [pcp] recent buld regression for inifinband PMDA on debian References: <006b01cf95ba$27501890$75f049b0$@internode.on.net> <853918576.1602669.1404285230879.JavaMail.zimbra@redhat.com> <53B4052C.7010903@buffalo.edu> X-ASG-Orig-Subj: Re: [pcp] recent buld regression for inifinband PMDA on debian In-Reply-To: <53B4052C.7010903@buffalo.edu> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404340923 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7188 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 02/07/14 23:12, Martins Innus wrote: > Ken, > > Sorry about that. Can you let me know what version of libibmad you > have on this system? Also if > > HAVE_PORT_PERFORMANCE_QUERY_VIA > > is defined in your build? the libibmad-dev package is 1.2.3-200903 and src/include/pcp/config.h:#define HAVE_PORT_PERFORMANCE_QUERY_VIA 1 but HAVE_PMA_QUERY_VIA is not defined in any header (it is set in configure but not exported to any header file). So I think the earlier patch and commit would have disabled these problematic metrics on ALL platforms. So I went ahead and made the change to src/include/pcp/config.h.in to add HAVE_PMA_QUERY_VIA and ... the build now works on both my Debian and Ubuntu builds, BUT ... Debian (where it was failing) ... src/include/pcp/platform_header.h:/* #undef HAVE_PORT_PERFORMANCE_QUERY_VIA */ src/include/pcp/config.h:#define HAVE_PORT_PERFORMANCE_QUERY_VIA 1 src/include/pcp/config.h:/* #undef HAVE_PMA_QUERY_VIA */ src/include/pcp/config.h.in:#undef HAVE_PORT_PERFORMANCE_QUERY_VIA src/include/pcp/config.h.in:#undef HAVE_PMA_QUERY_VIA kenj@bozo-vm:~/src/pcp$ cd src/pmdas/infiniband/ kenj@bozo-vm:~/src/pcp/src/pmdas/infiniband$ make clean; make rm -rf domain.h *.o ib.log pmdaib dep dep.bak *.[1-9].gz *.[1-9].bz2 *.[1-9].lzma *.[1-9].xz *.[1-9].tmp ib.o pmda.o pmdaib for d in `echo `; do if test -d "$d" -a -f "$d/GNUmakefile"; then /bin/echo === $d ===; make --no-print-directory -C $d clean || exit $?; fi; done gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -c -o ib.o ib.c gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -c -o pmda.o pmda.c gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -o pmdaib -Wall -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src ib.o pmda.o -libmad -libumad -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src -lpcp_pmda -lpcp Ubuntu (where the build was OK) ... src/include/pcp/config.h.in:#undef HAVE_PORT_PERFORMANCE_QUERY_VIA src/include/pcp/config.h.in:#undef HAVE_PMA_QUERY_VIA src/include/pcp/config.h:/* #undef HAVE_PORT_PERFORMANCE_QUERY_VIA */ src/include/pcp/config.h:#define HAVE_PMA_QUERY_VIA 1 kenj@bozo:~/src/pcp$ cd src/pmdas/infiniband kenj@bozo:~/src/pcp/src/pmdas/infiniband$ make clean; make rm -rf domain.h *.o ib.log pmdaib dep dep.bak *.[1-9].gz *.[1-9].bz2 *.[1-9].lzma *.[1-9].xz *.[1-9].tmp ib.o pmda.o pmdaib for d in `echo `; do if test -d "$d" -a -f "$d/GNUmakefile"; then /bin/echo === $d ===; make --no-print-directory -C $d clean || exit $?; fi; done gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -c -o ib.o ib.c gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -c -o pmda.o pmda.c gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -o pmdaib -Wall -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src ib.o pmda.o -libmad -libumad -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src -lpcp_pmda -lpcp So something bad is happening in the configure logic ... Debian looks sort of right to me, but Ubuntu looks sort of busted because HAVE_PORT_PERFORMANCE_QUERY_VIA is NOT set, but (I assume the later/subset control) HAVE_PMA_QUERY_VIA is set. I'll leave this to Martins to sort out ... I don't have hardware to test the PMDA, so I can't help beyond build issues. I've pushed both my commits mentioned in this mail ... email following. From kenj@internode.on.net Wed Jul 2 17:42:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id E93D47F54 for ; Wed, 2 Jul 2014 17:42:15 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 7C668AC013 for ; Wed, 2 Jul 2014 15:42:15 -0700 (PDT) X-ASG-Debug-ID: 1404340933-04bdf056697827c0001-S8gJnT Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id gYJZ3yWNTZ8tPA82 for ; Wed, 02 Jul 2014 15:42:13 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnIfABqKtFN20YDzPGdsb2JhbAANTYNfh3/AHgQBAQEBOG8BAYQ1ETANFhgDAgECATEOGQYCAQGzHJ0FF48/hC0FnDWWFw Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail06.adl2.internode.on.net with ESMTP; 03 Jul 2014 08:12:13 +0930 Message-ID: <53B48B96.4030707@internode.on.net> Date: Thu, 03 Jul 2014 08:45:42 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: pcp updates Content-Type: text/plain; charset=ISO-8859-1 X-ASG-Orig-Subj: pcp updates Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404340933 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7188 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Changes committed to git://oss.sgi.com/kenj/pcp.git dev qa/764 | 46 +++++++++++++++++++++++++++++++++++++++++ qa/764.out | 16 ++++++++++++++ qa/group | 1 src/include/pcp/config.h.in | 1 src/pmchart/sampling.cpp | 1 src/pmdas/infiniband/ib.c | 11 ++++++++- src/pmdas/linux_proc/cgroups.c | 3 -- 7 files changed, 75 insertions(+), 4 deletions(-) commit f8c6480b9ba7527d72c9216aca971eae4175cfe8 Author: Ken McDonell Date: Thu Jul 3 08:33:30 2014 +1000 qa/764 (new) - more pmie ruleset exercises commit 412b1f89440beae2ef47e3223a88ae60fd836757 Author: Ken McDonell Date: Thu Jul 3 08:28:24 2014 +1000 src/include/pcp/config.h.in - add HAVE_PMA_QUERY_VIA Was being set by configure, but never carried over to the header files and the build. Exposed by the last infinband pmda commit that started using HAVE_PMA_QUERY_VIA. commit ab79cad41cd7f88cf63f7ed5e6a1e5667216daf6 Author: Ken McDonell Date: Thu Jul 3 06:06:33 2014 +1000 nvidia pmda - fix build failure on older platforms Fix from Martins Innus to guard metrics that require smp_query_via() library support in cases where the infiniband library does not provide this method. commit 8886dd9c2dcac60a338687f90a661c3d4cfc346f Author: Ken McDonell Date: Wed Jul 2 17:43:24 2014 +1000 linux_proc PMDA - remove compilation warning commit 5801bf7d004af5d7463b554d2a62c2e9a55b048b Author: Ken McDonell Date: Wed Jul 2 17:40:36 2014 +1000 pmchart/sampling.cpp - remove compilation warning From kenj@internode.on.net Wed Jul 2 17:47:07 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id C6BB47F54 for ; Wed, 2 Jul 2014 17:47:07 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id AB15F304066 for ; Wed, 2 Jul 2014 15:47:07 -0700 (PDT) X-ASG-Debug-ID: 1404341224-04bdf05667782970001-S8gJnT Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id PW8AKvXuYLzBBTET for ; Wed, 02 Jul 2014 15:47:05 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArAcAIWLtFN20YDzPGdsb2JhbAANTYNfh3++fgGBHwQBAQEBOIQ4AQEBBDhAEQsYCRYPCQMCAQIBMRQGAQwIAQGIS6pQnQcXjymEQwEEskw Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail06.adl2.internode.on.net with ESMTP; 03 Jul 2014 08:17:04 +0930 Message-ID: <53B48CBA.3040306@internode.on.net> Date: Thu, 03 Jul 2014 08:50:34 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Nathan Scott , PCP Subject: Re: [pcp] pcp updates: pmdanvidia build References: <745744877.2442880.1404339447997.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: [pcp] pcp updates: pmdanvidia build In-Reply-To: <745744877.2442880.1404339447997.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404341224 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7188 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 03/07/14 08:17, Nathan Scott wrote: > Changes committed to git://git.performancecopilot.org/pcp.git dev > > src/pmdas/nvidia/GNUmakefile | 2 +- > src/pmdas/nvidia/nvidia.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) Thanks Nathan ... verified that this fixes my Ubuntu build issue (and thanks for the other commit that fixed the libnvidia-ml.so QA build issue). From kenj@internode.on.net Wed Jul 2 18:03:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 5E8617F54 for ; Wed, 2 Jul 2014 18:03:16 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 54D798F8040 for ; Wed, 2 Jul 2014 16:03:12 -0700 (PDT) X-ASG-Debug-ID: 1404342190-04cb6c76d1407790001-S8gJnT Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id xvdfwFChLAvkBZqm for ; Wed, 02 Jul 2014 16:03:11 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArEcAACPtFN20YDzPGdsb2JhbAANTYteu2eDFwGBHwQBAQEBOIQ4AQEBBDhAARALGAkWDwkDAgECATEUBg0BBwEBsyWdBhePIgeEQwEEsHiBVA Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail06.adl2.internode.on.net with ESMTP; 03 Jul 2014 08:33:06 +0930 Message-ID: <53B4907B.3010705@internode.on.net> Date: Thu, 03 Jul 2014 09:06:35 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: "Frank Ch. Eigler" CC: Amer Ather , Martin Spier , pcp@oss.sgi.com Subject: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent References: <002d01cf9284$dc8fe570$95afb050$@internode.on.net> <002f01cf9285$f0c63160$d2529420$@internode.on.net> <20140629220735.GA13993@redhat.com> <53B46CB4.40409@internode.on.net> <20140702203904.GA21540@redhat.com> X-ASG-Orig-Subj: Re: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent In-Reply-To: <20140702203904.GA21540@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404342190 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7188 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header G'day Frank. On 03/07/14 06:39, Frank Ch. Eigler wrote: >... > Indeed so. A new issue under contention is whether the client side of > PMAPI - libpcp - could/should have rate-conversion capabilities, so > each client programs wouldn't have to reinvent that wheel. And this direction is something I would strongly support, ... but One more piece of history (at the risk of boring the readers) ... the universal "goodness" of this approach was recognized, er I'd guess 15 years ago, after we'd repeated similar client-side logic in pmval, then pmie, then pmchart, then pmview, then pmdumptext, and then a re-written pmview, ... At that time it was known as the "performance metrics class" and became something of the holy grail. The sad story is that we tried (at least 3 times I believe) to build the performance metrics class and failed each time. The only surviving code from these efforts is the libpcp_qmc code in the source tree that is used by pmtime, pmchart and pmdumptext (and pmview although that's not really in the tree yet). I wish I had better recall of the reasons for the failures to help inform the current deliberations ... but the C vs C++ divide was at least part of the problem back then. From nscott@redhat.com Wed Jul 2 19:17:57 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id E56637F54 for ; Wed, 2 Jul 2014 19:17:57 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id EAF5A304075 for ; Wed, 2 Jul 2014 17:17:54 -0700 (PDT) X-ASG-Debug-ID: 1404346669-04cbb0653623f720001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id SadDHb4D1sNioghT for ; Wed, 02 Jul 2014 17:17:50 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s630HmoS005929; Wed, 2 Jul 2014 20:17:48 -0400 Date: Wed, 2 Jul 2014 20:17:47 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Joseph White Cc: pcp@oss.sgi.com Message-ID: <1914993671.2476682.1404346667961.JavaMail.zimbra@redhat.com> In-Reply-To: <1293521587.1555994.1404275186280.JavaMail.zimbra@redhat.com> References: <1293521587.1555994.1404275186280.JavaMail.zimbra@redhat.com> Subject: Re: [pcp] Proposed updates to cgroup support in the linux_proc PMDA MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] Proposed updates to cgroup support in the linux_proc PMDA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: Proposed updates to cgroup support in the linux_proc PMDA Thread-Index: AQHPlU4RoySNyVksN0OJt2/zRcRE1rR0jcxXJD53DQw= X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1404346670 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7190 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Hi Joe, Another thing that occurred to me since sending the earlier reply, a small thing & it may well be something you already considered... ----- Original Message ----- > ----- Original Message ----- > [...] > I tend to agree that using an instance domain is the right way to go here. > The backward compat scenario is of concern, but there are things we can > do. One approach would be to use a differently named metric hierarchy, so > not cgroup.groups.* (which we could drop when we move to the new mechanism > - the PMAPI provides clear error handling semantics for unavailable metric > names) - perhaps cgroup.pergroup.* or something like that. > [...] > So, we could move to names like cgroup.pergroup.cpuacct "libvirt/lxc::cpu0", > and cgroup.pergroup.blkio "libvirt/lxc::sda", "::sdb", and so on ...? > Another very appealing aspect here is that we would not need to use dynamic metrics at all in this PMDA anymore, and a few hundred lines or so of complex cgroups.c code could be folded back into the static metric table in pmda.c. This would be a *big* win in code simplicity -- this cgroups code is pretty obscure & tough to hack on currently; at least, I find it so. cheers. -- Nathan From nscott@redhat.com Wed Jul 2 23:21:58 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 229FE7F57 for ; Wed, 2 Jul 2014 23:21:58 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 1C63A304053 for ; Wed, 2 Jul 2014 21:21:54 -0700 (PDT) X-ASG-Debug-ID: 1404361308-04cbb065362477c0001-S8gJnT Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by cuda.sgi.com with ESMTP id sZspikvIQKzjhspl for ; Wed, 02 Jul 2014 21:21:48 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.25 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s634Lmjr029758; Thu, 3 Jul 2014 00:21:48 -0400 Date: Thu, 3 Jul 2014 00:21:48 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Lukas Berk Cc: pcp@oss.sgi.com Message-ID: <13003259.2530950.1404361308252.JavaMail.zimbra@redhat.com> In-Reply-To: <2109769793.33209354.1403680688562.JavaMail.zimbra@redhat.com> References: <20140625024307.GA9275@redhat.com> <2109769793.33209354.1403680688562.JavaMail.zimbra@redhat.com> Subject: Re: [pcp] PCP papi PMDA MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] PCP papi PMDA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: PCP papi PMDA Thread-Index: ztycWEJwVQK9ImAfFuuQ/tm/00T7svCgfVpS X-Barracuda-Connect: mx4-phx2.redhat.com[209.132.183.25] X-Barracuda-Start-Time: 1404361308 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7196 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain Hi Lukas, ----- Original Message ----- > ----- Original Message ----- > The direct git URL is here - I'm lazy & tend to cut+paste :) - > for anyone wanting to review or try out pmdapapi: > > git://sourceware.org/git/pcpfans.git lberk/papi > Thanks for sending this code out. Some smaller code notes follow, but lets go through what we'll need to get an initial merge happening, and then followup steps to build on that. My preference is to start small and build up, rather than a "fully-featured" arrival several months later; after which time the requirements will probably have changed again! :P There's a handful of immediate issues that we've (collectively) talked about that we need to plan our landing approach for, trying to cater for everyone as best we can: 1. privileged user requirement The code thats there now, I'm not really following; which is always a concern for security-sensitive stuff. :) Are the wheel and adm groups able to access the performance counters normally? Or are we saying, 'these groups are "close enough" to root, so let em have access anyway'. If it is the latter.... hmmm, I don't think we should be making that kind of decision without approval from the sysadmin ("adm" doesn't exist on some Linux distros too, almost certainly not there on other platforms). For the initial pmdapapi lets set the bar at "you *must* be root user" (so simple "attribute uid==0 or go away" kinds of tests). In followup work on pmdapapi, we may be able to use the access.c interfaces from libpcp to give a configurable method of enabling access (sort of like has been discussed re the pmdapipe RFC, worth a read later if not done so yet, for this aspect). But lets go for a simple mechanism first, and then build on it later. 2. enabling counters OK, so, much discussion around this ... but we must find a way to move forward. In practice, I think we might be able to make both explicit enabling and auto-enabling work (which would be good, cos we can then choose what the default mode of behaviour will be - having our cake & eating it too - but more on that later. Mmmm, cake). Initially, lets keep it simple. There has been some doubt expressed whether the auto-enabling will actually work with good error-handling semantics - noones ever done this before - and it doesn't function at all for short-lived PMAPI clients (*) - see example below. Its a fine area to experiment in, but that level of uncertainty is unhelpful and unnecessary for the initial version of your first PMDA. The explicit-enabling method (pmstore) can map directly onto the PAPI interfaces, so it comes with a 100% success guarantee - there is no controversy over whether this approach will work, we all know that it does and it has before. And for a few of us old-timers, this is also the preferred approach anyway. So, I'd like to initially see the store-based approach in v1, and then follow-up experimentation to see if things like auto-enabling all-of- the-counters-all-at-once with multiplexing works at all, and then more experimentation around if auto-enabling all-counters-on-all-processes works at all ... all of which are up in the air, AIUI, for the reasons discussed on the dev call (e.g. PAPI_ECNFLCT and so on). (*) e.g., this script should work, but cannot with auto-enabling: #!/bin/sh pmstore papi.control.enable "TOT_INS,L1_DCM" pmstore papi.control.reset "TOT_INS,L1_DCM" /opt/research/bin/gather_experimental_data >& phase1.log echo "--- Phase 1 (gather) results ---" pmprobe -v papi.preset.total_inst papi.preset.L1_DCM mem.util.shmem cat phase1.log threads=20 pmstore papi.control.reset "L1_DCM" /opt/research/bin/search_experimental_data -p $threads >& phase2.log echo "--- Phase 2 (search x $threads) results ---" pmprobe -v papi.preset.total_inst papi.preset.L1_DCM mem.util.shmem cat phase2.log [...and so on, and so forth...] This would be a neat little easy-access interface to have for the PAPI counters, independent of whether auto-everything works out or not. So I think its a good idea to start out with pmstore-enabling and move to experimenting with auto-enabling as a second step. We can then let it be optionally enabled/disabled initially (always having that known-to- work fallback, in case of semantic issues, problematic hardware, etc). Later still, after experience has been gained, lots of experimentation on different hardware, etc - we can then make the decision to default it to on or not. Then there's no emotion / ownership in the decision; each approach will have had plenty of opportunity to shine and a well- informed choice can be made (plus, a fallback mode will be available either way - so, all good, and everyone's happy - I hope!). Alrighty then, moving right along... ;) 3. missing bits QA, man page ... we'll want the initial version documented (this is a straightforward step - just use an existing pmda*.1 as a template), and tested. I've not looked deeply enough yet, but it sounds like the approach Joe has used in pmdaperfevent might be right for you here as well (might be possible to share some code there - I'll send ya a note after detailed review of his work). 4. next steps... We'll need to sort out packaging too, configure-checking for papi lib and headers, pcp-pmda-papi rpm/deb package with the libpapi dependency & so on - I'll help you directly with all that though. So, at that point - basic access control, basic enabling, missing bits done, QA, QA - we'll work our way through the initial merge together (3.9.8 seems a well-placed timeframe - middle of August). diff --git a/src/pmdas/papi/GNUmakefile b/src/pmdas/papi/GNUmakefile new file mode 100644 index 0000000..93feca4 --- /dev/null +++ b/src/pmdas/papi/GNUmakefile @@ -0,0 +1,45 @@ +... +DFILES = README help +#LSRCFILES = Install Remove pmns root $(DFILES) GNUmakefile.install Yep, wont ever need the above line, it can safely go. +LSRCFILES = Install Remove pmns root $(DFILES) + ... +install_pcp install: default + $(INSTALL) -m 755 -d $(PMDADIR) + $(INSTALL) -m 755 Install Remove $(CMDTARGET) $(PMDADIR) +# $(INSTALL) -m 644 GNUmakefile.install $(PMDADIR)/Makefile Likewise - only needed if we install the sources too, as some PMDAs do. diff --git a/src/pmdas/papi/help b/src/pmdas/papi/help [...] +@ papi.kernel.L1_DCM Level 1 data cache misses. +@ papi.kernel.L1_ICM Level 1 instruction cache misses. [...] This info looks like it can be obtained at run time via PAPI_get_event_info (via info.name, info.short_descr and info.long_descr). If we go that route, a custom dp->version.any.text callback would be used (see pmdasample for an example - sample_text() function). diff --git a/src/pmdas/papi/papi.c b/src/pmdas/papi/papi.c new file mode 100644 index 0000000..939af43 --- /dev/null +++ b/src/pmdas/papi/papi.c @@ -0,0 +1,691 @@ + [...] +#define CLUSTER_PAPI 0 //we should define this in a header for when these exand possible values +#define NumEvents 17 Have a peek at the shiny new pmdanvidia, it has a fairly clean way of avoiding the hard-coding (17) here (and in some other places a bit later). +static char *username = "adm"; "root"? this is the default username pmdapapi will run under, if I'm reading the code correctly, which our discussions so far led me to believe was root. +struct uid_gid_tuple { (so, simplify this struct a whole lot in the initial version) +static unsigned int queue; (leftover from earlier experimentation, I think) +/* + * There will be two domain instances, one for kernel counters + * and one for process counters. + */ + +static pmdaIndom indomtab[] = { +#define PAPI_KERNEL 0 + { PAPI_KERNEL, 1, 0 }, + //#define PAPI_PROC 1 + // {}, +}; (wont need this in a v1, nuke) +/* XXX not entirely sure what this is */ +static pmInDom *kernel_indom = &indomtab[PAPI_KERNEL].it_indom; (ditto) +/* + * A list of all the papi metrics we support - + */ +static pmdaMetric metrictab[] = { + + { NULL, + { PMDA_PMID(CLUSTER_PAPI,0), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER, + PMDA_PMUNITS(0, 0, 0, 0, 0, 0) } }, /* papi.kernel.total_inst */ As discussed on IRC, I think we should go for names that map directly to PAPI concepts - so, initial version of the PMDA could have a fixed metrictable with papi.presets.{total_inst,L1_DCM,...}. Then, we could build on top of that with papi.native.* - expanded dynamically to only be actually available metrics (as papi_avail(1) shows). + { NULL, + { PMDA_PMID(CLUSTER_PAPI,1), PM_TYPE_U32, PM_INDOM_NULL, PM_SEM_DISCRETE, + PMDA_PMUNITS(0, 0, 0, 0, 0, 0) } }, /* papi.enable_counters */ Common convention for storable mertics like this is to have a "control" subtree in your namespace (e.g. gfs2.control.*, trace.control.*, xfs, pmcd, proc, sample, ... etc, etc). Also, PAPI has a PAPI_reset() interface to reset the counters to zero - a common idiom, some people just like to start from zero. :) (that's something else we can't do any way other than via pmstore btw). So, in this case, you might want something like ... papi.control.reset [Reset specified counters to zero using PAPI_reset] papi.control.enable [Enable specified list of hardware counters] papi.control.disable [Disable specified list of hardware counters] These could possibly be string-type metrics, as in my example above, if you like - comma-separated list of events to zero/enable/disable. You could use the first "NULL" in each metrictable entry (e.g. in the code snippet for total_inst above - the m_user field) to hold a pointer to a name, and walk the table finding which metrics are affected. PAPI_event_name_to_code(3) might be able to hook into that too, for adding/removing events (metrics) in the enabled PAPI event set? In the case where multiple counters arrive, multiplex'ing may optionally come into play using PAPI_set_multiplex? (that could be another one of those "not in v1" things too though - adds more work & esp. testing). +static int +papi_fetch(int numpmid, pmID pmidlist[], pmResult **resp, pmdaExt *pmda) +{ + if ( ctxtab[pmda->e_context].uid == 0 || ctxtab[pmda->e_context].gid == 0 ) I'd turn the above line into a clearly-named function, and pass back the error code or zero from it. + return pmdaFetch(numpmid, pmidlist, resp, pmda); + else + return PM_ERR_PERMISSION; +} + +#if 0 +static int +papi_store(pmResult *result, pmdaExt *pmda) +{ + int i = 0; + //XXX add check for access (cos you'll need it here too, and in one or two other spots). + break; + }//switch item + } + + PAPI_read(EventSet, values); Not sure what the above is for at the end of store? (needs a comment, or maybe it was a debug leftover?) + if (retval != PAPI_VER_CURRENT) { + __pmNotifyErr(LOG_DEBUG, "PAPI library init error!\n"); + return retval; + } + + /* Check to see if the preset, PAPI_TOT_INS, exists */ + retval = PAPI_query_event( PAPI_TOT_INS ); + if (retval != PAPI_OK) { + __pmNotifyErr(LOG_DEBUG, "No instruction counter? How lame.\n"); (btw, __pmNotifyErr will insert its own EOL markers for you) + if(PAPI_create_eventset(&EventSet) != PAPI_OK){ + __pmNotifyErr(LOG_DEBUG, "create eventset error!\n"); Sounds like you might want more than a DEBUG level there? + /* We can't just assume everything is here, add checks + all this papi stuff should probably be done in its own function + The papi_add_event can probably just be done in papi_add_events + I need to think of a better, more maliable way to specify what + event counts we want to enable, having a 'enable ALL the counters' + approach isn't proper */ Hopefully the earlier essay helps with this. :) + /* PAPI_add_event(EventSet, PAPI_L1_DCM); + PAPI_add_event(EventSet, PAPI_L1_ICM); + PAPI_add_event(EventSet, PAPI_L2_DCM); + PAPI_add_event(EventSet, PAPI_L2_ICM); + PAPI_add_event(EventSet, PAPI_L3_DCM); + PAPI_add_event(EventSet, PAPI_L3_ICM); + PAPI_add_event(EventSet, PAPI_L1_TCM); + PAPI_add_event(EventSet, PAPI_L2_TCM); + PAPI_add_event(EventSet, PAPI_L3_TCM); + PAPI_add_event(EventSet, PAPI_TLB_DM); + PAPI_add_event(EventSet, PAPI_TLB_IM); + PAPI_add_event(EventSet, PAPI_TLB_TL); + PAPI_add_event(EventSet, PAPI_L1_LDM); + PAPI_add_event(EventSet, PAPI_L1_STM); + PAPI_add_event(EventSet, PAPI_L2_LDM); + PAPI_add_event(EventSet, PAPI_L2_STM);*/ Yeah, so we'd have an initally empty event set and add/remove to it on the fly later (in v1 via pmstore, later on via other means). +/* use documented in pmdaAttribute(3) */ +static int +papi_contextAttributeCallBack(int context, int attr, + const char *value, int length, pmdaExt *pmda) +{ + static int rootlike_gids_found = 0; + static int adm_gid = -1; + static int wheel_gid = -1; + int id; + /* Look up root-like gids if needed. A later PCP client that + matches any of these group-id's is treated as if root/adm, + i.e., journal records are not filtered for them (wildcard_p). + XXX: we could examine group-membership lists and check against I think we should go for an access control mechanism here, like the one described in the pmdapipe RFC (see list archive from a week or three back). There's code in src/libpcp/src/access.c that can help us here. This will simplify all of this code (rootlike*, wheel*, adm* - can go at that point). But, that can be a secondary step - to get an initially working PMDA, as discussed, just track root UID here perhaps. + if (! rootlike_gids_found) { + struct group *grp; + grp = getgrnam("adm"); + if (grp) adm_gid = grp->gr_gid; + grp = getgrnam("wheel"); + if (grp) wheel_gid = grp->gr_gid; + rootlike_gids_found = 1; + } + + enlarge_ctxtab(context); + assert (ctxtab != NULL && context < ctxtab_size); + + /* NB: we maintain separate uid_p and gid_p for filtering + purposes; it's possible that a pcp client might send only + PCP_ATTR_USERID, leaving gid=0, possibly leading us to + misinterpret that as GROUPID=0 (root) and sending back _GID=0 + records. * FWIW, that doesn't happen, if one arrives the other is guaranteed to as well - unless pmcd or the PMDA dies in-between ;) +static void +papi_end_contextCallBack(int context) +{ + int i, j; + for(i = 0; i < NumEvents; i++){ + if (ctxtab[context].trackers[i] == 1){ + ctxtab[context].trackers[i] = 0; // turn it off for us + for(j = 0; j < ctxtab_size; j++){ + if(ctxtab[j].trackers[i] == 1){ + return; // this shouldn't be return, but we should skip this metric for now, continue on and check there aren't any other value's we're no longer using, and that nobody else is either. + } + // if nobody else is using the metric, we can turn it off now + } + enablers[i] = 0; + switch (i) { + case 0: + PAPI_remove_event(EventSet, PAPI_TOT_INS); + break; + case 2: + PAPI_remove_event(EventSet, PAPI_L1_DCM); + break; BTW, for this sort of switch/case, I've been starting to use enums, see pmdanvidia again for example - makes things a bit more readable I find. Also, multiplexing will be needed for this approach when that time comes, and some deep soul/code searching, testing, etc to see under what situations PAPI_ECNFLCT happens and how we can respond to that (amongst other things, but all later-on things). +static void +usage(void) +{ + fprintf(stderr, + "Usage: %s [options]\n\n" + "Options:\n" + " -d domain use domain (numeric) for metrics domain of PMDA\n" + " -l logfile write log into logfile rather than using default log name\n", + pmProgname); + exit(1); +} [...] + snprintf(helppath, sizeof(helppath), "%s%c" "papi" "%c" "help", + pmGetConfig("PCP_PMDAS_DIR"), sep, sep); + pmdaDaemon(&dispatch, PMDA_INTERFACE_6, pmProgname, PAPI, "papi.log", helppath); + while ((c = pmdaGetOpt(argc, argv, "D:d:l:U:?", &dispatch, &err)) != EOF) { (all the cool kids are using the pmdaGetOptions and pmdaUsageMessage combo nowadays - e.g. pmdanvidia in dev again) + papi_init(&dispatch); + pmdaConnect(&dispatch); You can switch the order of the above two lines, to protect yourself from slow PAPI init (dunno if that ever happens, but theres no harm defending from it). That's it so far - looking good mate. Please keep sending out regular progress posts to the list like this one as you get stuff working, or if you hit roadblocks, and definitely with any experimentation results on the auto-enabling stuff - I'm really keen to hear how that pans out. cheers. -- Nathan From nscott@redhat.com Wed Jul 2 23:56:47 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 167D57F5E for ; Wed, 2 Jul 2014 23:56:47 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id B35CCAC004 for ; Wed, 2 Jul 2014 21:56:46 -0700 (PDT) X-ASG-Debug-ID: 1404363404-04bdf0566878e8c0001-S8gJnT Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by cuda.sgi.com with ESMTP id BluuxK2aMU8ckwxh for ; Wed, 02 Jul 2014 21:56:44 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.25 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s634uink002528; Thu, 3 Jul 2014 00:56:44 -0400 Date: Thu, 3 Jul 2014 00:56:44 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Lukas Berk , William Cohen Cc: pcp@oss.sgi.com Message-ID: <893908151.2537167.1404363404328.JavaMail.zimbra@redhat.com> In-Reply-To: <20140702135330.GD12723@redhat.com> References: <20140625024307.GA9275@redhat.com> <53B1AF59.9080506@redhat.com> <20140702135330.GD12723@redhat.com> Subject: Re: [pcp] PCP papi PMDA MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] PCP papi PMDA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: PCP papi PMDA Thread-Index: y9ZRMHVNawuRbDPJ/4sJ4JbIV0vhjA== X-Barracuda-Connect: mx4-phx2.redhat.com[209.132.183.25] X-Barracuda-Start-Time: 1404363404 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7196 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain Hi guys, ----- Original Message ----- > > [...] > > In papi_fetchCallBack() the switch statement codes the magic numbers > > to various entries. Isn't there a more compact and regular way to > > code that? Would it be possible to use negative number for control > > and have the events be positive to avoid having to offset some values by 1? > > Looking at that portion of the code, you're absolutely correct. After > refactoring out the PAPI_add_event code, there's no real reason to have > the switch statement in the fetchcallback. FWIW the 'offset by 1' is an > artifact of the enable_counters variable (used in the pmstore enabling > counters approach). I'll reorganize the pmns and fetchcallback function > as needed. BTW, a good approach to use here is to have separate PMID "clusters" for separate conceptual things. Then you can arrange the PMID "item" field as an index (if that helps), and use "cluster" to disambiguate from unrelated things (control metrics, preset vs native, and so on). cheers. -- Nathan From nscott@redhat.com Thu Jul 3 02:11:20 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id E53967F54 for ; Thu, 3 Jul 2014 02:11:20 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id DAF408F8035 for ; Thu, 3 Jul 2014 00:11:20 -0700 (PDT) X-ASG-Debug-ID: 1404371474-04cbb0653624d4c0001-S8gJnT Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by cuda.sgi.com with ESMTP id 1LOtOkafpLsPzgX0 for ; Thu, 03 Jul 2014 00:11:14 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.25 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s637BCuI023488; Thu, 3 Jul 2014 03:11:12 -0400 Date: Thu, 3 Jul 2014 03:11:12 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Joseph White Cc: PCP Message-ID: <1552569220.2738434.1404371472733.JavaMail.zimbra@redhat.com> In-Reply-To: References: Subject: Re: [pcp] New perfevent PMDA MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] New perfevent PMDA Content-Type: multipart/mixed; boundary="----=_Part_2738432_1419181441.1404371472732" X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: New perfevent PMDA Thread-Index: AQHPkWQ7+Of6murkTkSMtOpXHkooOdzRv6tO X-Barracuda-Connect: mx4-phx2.redhat.com[209.132.183.25] X-Barracuda-Start-Time: 1404371474 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7198 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... ------=_Part_2738432_1419181441.1404371472732 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi Joe, ----- Original Message ----- > Hi, > > Attached is a perfevent PMDA for general review/comments/suggestions. This > linux-specific pmda exposes the hardware performance counters available on > recent x86 systems. This pmda has been running on our cluster the last 10 > months without problems (I've been meaning to submit this for inclusion for > a while!). > I've had time to review more closely now. Without trying to sound glib, this is quite probably the highest quality code I've seen sent in, ever. So, ah - thank you, and many happy returns! It is pretty close to ready for merging. Just a few small things - if you could merge the contents of perfevent/unittest into qa/perfevent and add some driver scripts into qa/XXX with expected output, that side of things is done. I've attached a little patch that brings a few of the PMDA interfaces used up-to-date, and uses an atexit handler for your shutdown code. The latter will help with running the code in PM_CONTEXT_LOCAL mode, which might also be helpful in QA testing (but also in regular use). See qa/744 and qa/755 which do some simple local context use for pmdanvidia). See qa/{730,731} also as examples which are similar to your fake-root testing (and qa/linux sub-directory). There's a couple of files missing your copyright annotation (help,pmda.c), which all the rest have. A man page would be extremely helpful here, with a section on the configuration file, and perhaps an example setup section? The final piece will be integration into the build - the configure.ac file will need magic to test for libpfm headers and library, and the spec / deb build goo will need to be able to function with/without libpfm2 (and build new pcp-pmda-perfevent packages if found). Oh - your GNUmakefile has a Linux-only requirement, but my reading up on libpfm indicates others are using it on Mac, Windows & other platforms; so - the configure tests will do (update the makefile to use those, IOW). The Infiniband PMDA looks like a good template for you to use for this. Will - to answer your platform/architectures question - there's no code in Joes work that wont run everywhere that libpfm does (which looks like alot of places - there's a full list on the sourceforge page of supported archs) so even for our Red Hat packaging side of things, I'm guessing this is all going to be pretty straightforward? I think that'll do it. I can help with any of the above - just lemme know or if anything is unclear. Next release is planned for 16 July so if this can get done by end of next week, that'd be perfect. Else, the next one - not much left to be done here either way. Thanks again! cheers. -- Nathan ------=_Part_2738432_1419181441.1404371472732 Content-Type: text/x-patch; name=perfevent.patch Content-Disposition: attachment; filename=perfevent.patch Content-Transfer-Encoding: base64 LS0tIEdOVW1ha2VmaWxlCTIwMTQtMDctMDMgMTc6MDI6NTAuNTQ4MTk2ODA2ICsxMDAwCisrKyBH TlVtYWtlZmlsZS5uYXRoYW5zCTIwMTQtMDctMDMgMTc6MDI6MjUuODkxMTI5MTY0ICsxMDAwCkBA IC0yMSw2ICsyMSw3IEBAIElBTQkJPSBwZXJmZXZlbnQKIERPTUFJTgkJPSBQRVJGRVZFTlQKIENN RFRBUkdFVAk9IHBtZGEkKElBTSkKIExJQlRBUkdFVAk9IHBtZGFfJChJQU0pLiQoRFNPU1VGRklY KQorUE1EQUlOSVQJPSAkKElBTSlfaW5pdAogCiBQTURBRElSCQk9ICQoUENQX1BNREFTX0RJUikv JChJQU0pCiAKQEAgLTM0LDggKzM1LDEwIEBAIFNDUklQVFMJCT0gSW5zdGFsbCBSZW1vdmUKIAog REZJTEVTCT0gUkVBRE1FIGhlbHAKIAorVkVSU0lPTl9TQ1JJUFQJPSBleHBvcnRzCiBMU1JDRklM RVMgPSBwbW5zIHJvb3QgJChERklMRVMpICQoU0NSSVBUUykgXAogCXBlcmZldmVudC5jb25mIHBl cmZpbnRlcmZhY2UuaAorTERJUlQgPSBkb21haW4uaCAkKFZFUlNJT05fU0NSSVBUKQogCiBWRVJT SU9OIDo9ICQoc2hlbGwgaGVhZCAtbiAxIENoYW5nZUxvZyB8IGN1dCAtZCAiOiIgLWYgMSkKIApA QCAtNDQsNyArNDcsNyBAQCBkZWZhdWx0OglidWlsZC1tZQogaW5jbHVkZSAkKEJVSUxEUlVMRVMp CiAKIGlmZXEgIiQoVEFSR0VUX09TKSIgImxpbnV4IgotYnVpbGQtbWU6IGRvbWFpbi5oICQoTElC VEFSR0VUKSAkKENNRFRBUkdFVCkgJChIRUxQVEFSR0VUUykgcGVyZmFsbG9jCitidWlsZC1tZTog ZG9tYWluLmggJChMSUJUQVJHRVQpICQoQ01EVEFSR0VUKSBwZXJmYWxsb2MKIAogaW5zdGFsbDog ZGVmYXVsdAogCSQoSU5TVEFMTCkgLW0gNzU1IC1kICQoUE1EQURJUikKQEAgLTYzLDkgKzY2LDEx IEBAIGluc3RhbGxfcGNwIDogaW5zdGFsbAogVEFSR0VUUyA9ICQoTElCVEFSR0VUKSAkKENNRFRB UkdFVCkgcGVyZmFsbG9jCiAKIExMRExJQlMgPSAkKFBDUF9QTURBTElCKSAtbHBmbSAtbHJ0Ci1M Q0ZMQUdTID0gLUkuCitMQ0ZMQUdTID0gLUkuICQoSU5WSVNJQklMSVRZKQogQ0ZMQUdTICs9IC1E VkVSU0lPTj1cIiQoVkVSU0lPTilcIgogCiskKFZFUlNJT05fU0NSSVBUKToKKwkkKFZFUlNJT05f U0NSSVBUX01BS0VSVUxFKQogCiBkb21haW4uaDogLi4vLi4vcG1ucy9zdGRwbWlkCiAJJChET01B SU5fTUFLRVJVTEUpCkBAIC03NCw0ICs3OSw0IEBAIGNvbmZpZ3BhcnNlci55eS5jOiBjb25maWdw YXJzZXIubCBjb25maWcKIAlmbGV4IC1vICRAICQ8CiAKIHBlcmZhbGxvYzogcGVyZmFsbG9jLm8K LQorcG1kYS5vOiAkKFZFUlNJT05fU0NSSVBUKQotLS0gcG1kYS5jCTIwMTQtMDYtMjcgMDI6MDc6 NTYuMDAwMDAwMDAwICsxMDAwCisrKyBwbWRhLmMubmF0aGFucwkyMDE0LTA3LTAzIDE2OjI1OjQ1 LjIwMTE5NTkwMSArMTAwMApAQCAtMTM4LDYgKzEzOCwyNiBAQCBzdGF0aWMgY29uc3QgY2hhciAq ZHluYW1pY19oZWxwdGFiW10gPQogc3RhdGljIGNoYXIgbXlwYXRoW01BWFBBVEhMRU5dOwogc3Rh dGljIGludAlpc0RTTyA9IDE7CQkvKiA9MCBJIGFtIGEgZGFlbW9uICovCiBzdGF0aWMgY2hhcgkq dXNlcm5hbWU7CitzdGF0aWMgcG1Mb25nT3B0aW9ucyBsb25nb3B0c1tdID0KK3sKKyAgICBQTURB X09QVElPTlNfSEVBREVSKCJPcHRpb25zIiksCisgICAgUE1PUFRfREVCVUcsCisgICAgUE1EQU9Q VF9ET01BSU4sCisgICAgUE1EQU9QVF9MT0dGSUxFLAorICAgIFBNREFPUFRfVVNFUk5BTUUsCisg ICAgUE1PUFRfSEVMUCwKKyAgICBQTURBX09QVElPTlNfVEVYVCgiXG5FeGFjdGx5IG9uZSBvZiB0 aGUgZm9sbG93aW5nIG9wdGlvbnMgbWF5IGFwcGVhcjoiKSwKKyAgICBQTURBT1BUX0lORVQsCisg ICAgUE1EQU9QVF9QSVBFLAorICAgIFBNREFPUFRfVU5JWCwKKyAgICBQTURBT1BUX0lQVjYsCisg ICAgUE1EQV9PUFRJT05TX0VORAorfTsKK3N0YXRpYyBwbWRhT3B0aW9ucyBvcHRzID0KK3sKKyAg ICAuc2hvcnRfb3B0aW9ucyA9ICJEOmQ6aTpsOnB1OlU6Njo/IiwKKyAgICAubG9uZ19vcHRpb25z ID0gbG9uZ29wdHMsCit9OwogCiAvKgogICogXGJyaWVmIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQg cmV0cmlldmVzIHRoZSBtZXRyaWMgdmFsdWUuCkBAIC00NjksNiArNDg5LDcgQEAgc3RhdGljIGlu dCBzZXR1cF9wbW5zKCkKICAqIEluaXRpYWxpc2UgdGhlIGFnZW50IChib3RoIGRhZW1vbiBhbmQg RFNPKS4KICAqLwogdm9pZAorX19QTURBX0lOSVRfQ0FMTAogcGVyZmV2ZW50X2luaXQocG1kYUlu dGVyZmFjZSAqZHApCiB7CiAgICAgaWYgKGlzRFNPKQpAQCAtNDg5LDYgKzUxMCw3IEBAIHBlcmZl dmVudF9pbml0KHBtZGFJbnRlcmZhY2UgKmRwKQogICAgIHsKICAgICAgICAgcmV0dXJuOwogICAg IH0KKyAgICBhdGV4aXQodGVhcmRvd25fcGVyZmV2ZW50cyk7CiAKICAgICBpZighaXNEU08pCiAg ICAgewpAQCAtNTIwLDI4ICs1NDIsMTEgQEAgcGVyZmV2ZW50X2luaXQocG1kYUludGVyZmFjZSAq ZHApCiAgICAgX19wbU5vdGlmeUVycihMT0dfSU5GTywgInBlcmZldmVudCB2ZXJzaW9uICIgVkVS U0lPTiAiIGluaXRpYWxpc2VkXG4iKTsKIH0KIAotc3RhdGljIHZvaWQgdXNhZ2Uodm9pZCkKLXsK LSAgICBmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiAlcyBbb3B0aW9uc11cblxuIiwgcG1Qcm9nbmFt ZSk7Ci0gICAgZnB1dHMoIk9wdGlvbnM6XG4iCi0gICAgICAgICAgIiAgLWQgZG9tYWluICAgIHVz ZSBkb21haW4gKG51bWVyaWMpIGZvciBtZXRyaWNzIGRvbWFpbiBvZiBQTURBXG4iCi0gICAgICAg ICAgIiAgLWwgbG9nZmlsZSAgIHdyaXRlIGxvZyBpbnRvIGxvZ2ZpbGUgcmF0aGVyIHRoYW4gdXNp bmcgZGVmYXVsdCBsb2cgbmFtZVxuIgotICAgICAgICAgICIgIC1VIHVzZXJuYW1lICB1c2VyIGFj Y291bnQgdG8gcnVuIHVuZGVyIChkZWZhdWx0IFwicGNwXCIpXG4iCi0gICAgICAgICAgIlxuRXhh Y3RseSBvbmUgb2YgdGhlIGZvbGxvd2luZyBvcHRpb25zIG1heSBhcHBlYXI6XG4iCi0gICAgICAg ICAgIiAgLWkgcG9ydCAgICAgIGV4cGVjdCBQTUNEIHRvIGNvbm5lY3Qgb24gZ2l2ZW4gaW5ldCBw b3J0IChudW1iZXIgb3IgbmFtZSlcbiIKLSAgICAgICAgICAiICAtcCAgICAgICAgICAgZXhwZWN0 IFBNQ0QgdG8gc3VwcGx5IHN0ZGluL3N0ZG91dCAocGlwZSlcbiIKLSAgICAgICAgICAiICAtdSBz b2NrZXQgICAgZXhwZWN0IFBNQ0QgdG8gY29ubmVjdCBvbiBnaXZlbiB1bml4IGRvbWFpbiBzb2Nr ZXRcbiIKLSAgICAgICAgICAiICAtNiBwb3J0ICAgICAgZXhwZWN0IFBNQ0QgdG8gY29ubmVjdCBv biBnaXZlbiBpcHY2IHBvcnQgKG51bWJlciBvciBuYW1lKVxuIiwKLSAgICAgICAgICBzdGRlcnIp OwotICAgIGV4aXQoMSk7Ci19Ci0KIC8qCiAgKiBTZXQgdXAgdGhlIGFnZW50IGlmIHJ1bm5pbmcg YXMgYSBkYWVtb24uCiAgKi8KIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKLSAg ICBpbnQJCQljLCBlcnIgPSAwOwogICAgIGludAkJCXNlcCA9IF9fcG1QYXRoU2VwYXJhdG9yKCk7 CiAgICAgcG1kYUludGVyZmFjZQlkaXNwYXRjaDsKIApAQCAtNTU0LDI2ICs1NTksMTcgQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgIHBtZGFEYWVtb24oJmRpc3BhdGNoLCBQ TURBX0lOVEVSRkFDRV81LCBwbVByb2duYW1lLCBQRVJGRVZFTlQsCiAgICAgICAgICAgICAgICAi cGVyZmV2ZW50LmxvZyIsIG15cGF0aCk7CiAKLSAgICB3aGlsZSAoKGMgPSBwbWRhR2V0T3B0KGFy Z2MsIGFyZ3YsICJEOmQ6aTpsOnB1OlU6Njo/IiwgJmRpc3BhdGNoLCAmZXJyKSkgIT0gRU9GKQor ICAgIHBtZGFHZXRPcHRpb25zKGFyZ2MsIGFyZ3YsICZvcHRzLCAmZGlzcGF0Y2gpOworICAgIGlm IChvcHRzLmVycm9ycykKICAgICB7Ci0gICAgICAgIHN3aXRjaChjKQotICAgICAgICB7Ci0gICAg ICAgIGNhc2UgJ1UnOgotICAgICAgICAgICAgdXNlcm5hbWUgPSBvcHRhcmc7Ci0gICAgICAgICAg ICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGVycisrOwotICAgICAgICB9 CisgICAgICAgIHBtZGFVc2FnZU1lc3NhZ2UoJm9wdHMpOworICAgICAgICBleGl0KDEpOwogICAg IH0KLSAgICBpZiAoZXJyKQotICAgICAgICB1c2FnZSgpOwogCiAgICAgcG1kYU9wZW5Mb2coJmRp c3BhdGNoKTsKICAgICBwZXJmZXZlbnRfaW5pdCgmZGlzcGF0Y2gpOwogICAgIHBtZGFDb25uZWN0 KCZkaXNwYXRjaCk7CiAgICAgcG1kYU1haW4oJmRpc3BhdGNoKTsKIAotICAgIHRlYXJkb3duX3Bl cmZldmVudHMoKTsKLQogICAgIGV4aXQoMCk7CiB9Cg== ------=_Part_2738432_1419181441.1404371472732-- From nscott@redhat.com Thu Jul 3 02:34:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 1E1F07F54 for ; Thu, 3 Jul 2014 02:34:30 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id ACE15AC001 for ; Thu, 3 Jul 2014 00:34:26 -0700 (PDT) X-ASG-Debug-ID: 1404372861-04cb6c76d0418560001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id U0aYMfPdptGIpFkE for ; Thu, 03 Jul 2014 00:34:21 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s637YKYk021097; Thu, 3 Jul 2014 03:34:20 -0400 Date: Thu, 3 Jul 2014 03:34:20 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Joseph White , Lukas Berk Cc: PCP Message-ID: <2047631141.2756193.1404372860289.JavaMail.zimbra@redhat.com> In-Reply-To: <1552569220.2738434.1404371472733.JavaMail.zimbra@redhat.com> References: <1552569220.2738434.1404371472733.JavaMail.zimbra@redhat.com> Subject: Re: [pcp] New perfevent PMDA MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] New perfevent PMDA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: New perfevent PMDA Thread-Index: AQHPkWQ7+Of6murkTkSMtOpXHkooOdzRv6tOTvgAqNE= X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1404372861 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7198 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Hi, Oh, one other thing Joe - one of the areas Lukas is looking into as a pmdapapi enhancement is being able to configure access to the metrics via ACL. There's support in libpcp/src/access.c for user/group based ACLs that could help here (pmcd & pmlogger provide ACLs using that) - Joe, since you already have a config file, adding an [access] section and allowing fine-grained control on who can access the metrics would be a good feature to have. For the initial version, just documenting the current access model would be fine by me (in both PMDAs cases). cheers. -- Nathan From nscott@redhat.com Thu Jul 3 02:50:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 252E37F54 for ; Thu, 3 Jul 2014 02:50:48 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id F198430405F for ; Thu, 3 Jul 2014 00:50:47 -0700 (PDT) X-ASG-Debug-ID: 1404373843-04bdf056677948c0001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id bbgWcJCneyGWiTUi for ; Thu, 03 Jul 2014 00:50:44 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s637ohYb001166 for ; Thu, 3 Jul 2014 03:50:43 -0400 Date: Thu, 3 Jul 2014 03:50:43 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: PCP Message-ID: <653257934.2763360.1404373843571.JavaMail.zimbra@redhat.com> In-Reply-To: <1744089637.2763096.1404373802263.JavaMail.zimbra@redhat.com> Subject: pcp updates: kenj merge, misc small fixes & qa MIME-Version: 1.0 X-ASG-Orig-Subj: pcp updates: kenj merge, misc small fixes & qa Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: kenj merge, misc small fixes & qa Thread-Index: K/2ijXcNIcxUndwaNSGNplpctEcU1w== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1404373844 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7198 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Changes committed to git://git.performancecopilot.org/pcp.git dev qa/002.out | 1 qa/003 | 2 qa/029.out | 2 qa/055.out | 12 qa/108.out | 2 qa/139.out | 5 qa/149.out.linux | 1 qa/156.out.3 | 6 qa/162.out.5 | 1 qa/256.out.2 | 2 qa/273.out | 5 qa/310.out | 4 qa/319.out | 56 ++-- qa/501-linux.out | 144 +++++------ qa/509.out.2 | 1 qa/523.out.2 | 24 - qa/549 | 2 qa/549.out | 2 qa/569.out | 5 qa/764 | 46 +++ qa/764.out | 16 + qa/828 | 32 -- qa/834 | 507 +++++++++++++++++++++++++++++++++++++++++ qa/834.out | 170 +++++++++++++ qa/admin/check-vm | 1 qa/common.config | 2 qa/group | 6 src/include/builddefs.in | 2 src/include/pcp/config.h.in | 1 src/pmchart/sampling.cpp | 1 src/pmdas/infiniband/ib.c | 11 src/pmdas/linux_proc/cgroups.c | 3 src/pmdas/nvidia/GNUmakefile | 2 src/pmdas/nvidia/nvidia.c | 2 src/pmdas/sample/GNUmakefile | 2 src/pmdas/sample/get_next_pmid | 48 +++ src/pmdas/sample/help | 1 src/pmdas/sample/pmns | 4 src/pmdas/sample/src/sample.c | 4 src/pmie/src/act.sk | 36 +- src/pmie/src/andor.c | 132 +++++----- src/pmie/src/dstruct.c | 16 - src/pmie/src/dstruct.h | 18 - src/pmie/src/eval.c | 23 + src/pmie/src/fun.h | 1 src/pmie/src/grammar.y | 56 +++- src/pmie/src/lexicon.c | 14 - src/pmie/src/match_inst.c | 30 +- src/pmie/src/meta | 40 +-- src/pmie/src/misc.sk | 115 +++++++-- src/pmie/src/pragmatics.c | 2 src/pmie/src/show.c | 86 +++--- src/pmie/src/syntax.c | 89 +++---- src/pmie/src/syntax.h | 2 src/pmns/stdpmid.pcp | 2 src/python/pcp/pmapi.py | 2 56 files changed, 1379 insertions(+), 423 deletions(-) commit 0bca4e8fd8eb0959a6b74065c8711ceb649f8885 Author: Nathan Scott Date: Thu Jul 3 17:48:15 2014 +1000 Reserve a domain number for perfevent PMDA commit 12bbd6b951b0110e6eac5cf5eb8f109c417e3803 Author: Nathan Scott Date: Thu Jul 3 17:47:56 2014 +1000 Fix PMDA domain.h makefile rule to fail fully if domain missing This means we will no longer have a partial domain.h generated, which causes much confusion (bit Lukas a couple weeks back and me today). commit dd2f522207660a92ffaf3bfc42510117da98b06f Author: Nathan Scott Date: Thu Jul 3 15:10:02 2014 +1000 Update test qa/139 to handle new sample.bad.novalues metric commit 138fb3e335adf5195705f5baec7da170d3370e6d Author: Nathan Scott Date: Thu Jul 3 15:07:37 2014 +1000 python api: Stans testing picked up a folio-related cut+paste failure commit 89f2b1b97647676519878d5431ea875439feaf27 Merge: 1e12995 f8c6480 Author: Nathan Scott Date: Thu Jul 3 10:19:03 2014 +1000 Merge branch 'dev' of git://git.performancecopilot.org/kenj/pcp into dev commit f8c6480b9ba7527d72c9216aca971eae4175cfe8 Author: Ken McDonell Date: Thu Jul 3 08:33:30 2014 +1000 qa/764 (new) - more pmie ruleset exercises commit 412b1f89440beae2ef47e3223a88ae60fd836757 Author: Ken McDonell Date: Thu Jul 3 08:28:24 2014 +1000 src/include/pcp/config.h.in - add HAVE_PMA_QUERY_VIA Was being set by configure, but never carried over to the header files and the build. Exposed by the last infinband pmda commit that started using HAVE_PMA_QUERY_VIA. commit 1e12995122f2c6c1d1b47cd2bfc98debacdae329 Author: Nathan Scott Date: Thu Jul 3 08:13:22 2014 +1000 pmdanvidia: add LIB_FOR_DLOPEN for linkage on some platforms commit ad87839001fa25088acda8f834db69058487eb1f Author: Martins Innus Date: Thu Jul 3 08:10:11 2014 +1000 pmdanvidia: cater for a slow NVML initialisation commit ab79cad41cd7f88cf63f7ed5e6a1e5667216daf6 Author: Ken McDonell Date: Thu Jul 3 06:06:33 2014 +1000 nvidia pmda - fix build failure on older platforms Fix from Martins Innus to guard metrics that require smp_query_via() library support in cases where the infiniband library does not provide this method. commit 8886dd9c2dcac60a338687f90a661c3d4cfc346f Author: Ken McDonell Date: Wed Jul 2 17:43:24 2014 +1000 linux_proc PMDA - remove compilation warning commit 5801bf7d004af5d7463b554d2a62c2e9a55b048b Author: Ken McDonell Date: Wed Jul 2 17:40:36 2014 +1000 pmchart/sampling.cpp - remove compilation warning commit 525ce0256c25c32d55fbb06514864109ce53f8ce Merge: 74d0c72 ac93b8a Author: Ken McDonell Date: Wed Jul 2 12:48:53 2014 +1000 Merge branch 'pmie-group' into dev commit ac93b8a81548e59d8b4eda71659ae668c2fe5415 Author: Ken McDonell Date: Wed Jul 2 09:38:46 2014 +1000 pmie - initial working version of rulesets Adds unknown -> action and otherwise -> action clause to deal with exceptions and "when all else fails" cases. commit 08fa5b9bcb4fc4de2a5a7bd853390b45bae0c879 Author: Ken McDonell Date: Wed Jul 2 09:36:05 2014 +1000 qa/834 (new) - extensive exercising of pmie rulesets commit 7a3026aeab3264bfb991e8655a3f4c970e381d68 Author: Ken McDonell Date: Wed Jul 2 09:34:27 2014 +1000 qa/549 - unknown is now a reserved word for pmie test used to include unknown = ... need to change this to notknown = ... commit fad90eb786ce08f366150b2701f195aa25df9af2 Author: Ken McDonell Date: Wed Jul 2 07:58:30 2014 +1000 qa changes for new sample PMDA metric sample.bad.novalues and sampledso.bad.novalues are new. commit ae055c8a9eea9837be98c6896e291554f8ed1e0d Author: Ken McDonell Date: Wed Jul 2 06:29:38 2014 +1000 sample PMDA - add missing help text for sample.bad.novalues commit 371417e2110e2d6bb3312cc4aa4aba42bd126939 Author: Ken McDonell Date: Tue Jul 1 07:03:50 2014 +1000 qa assorted - track pmie changes These ones are in particular for this one: pmie - with -v use "unknown" instead of "?" for boolean values that caused some cosmetic QA fallout. commit 09307d4dcd8f56fda373ba2ac3f2a70aa5bf2306 Author: Ken McDonell Date: Tue Jul 1 07:02:56 2014 +1000 qa/828 - tune the valgrind suppressions These seem to work better across several platforms and valgrind flavours. commit f1683469dd35949c5df80d1a11b34eb4553dfa3d Author: Ken McDonell Date: Tue Jul 1 07:02:23 2014 +1000 qa/group - 501 is local, not remote commit c986d27f544a804c10121c7d56696b815d17b6bf Author: Ken McDonell Date: Tue Jul 1 07:01:22 2014 +1000 qa/common.config - tweak kenj's qa machines config commit b0db75aa3726cb9e914e2cb6034c1c727391eed6 Author: Ken McDonell Date: Tue Jul 1 07:00:38 2014 +1000 qa/admin/check-vm - add curl to the list of things we need for QA commit 2289808c81bb7be9b4a9f9d75e1a18ed0684979e Author: Ken McDonell Date: Mon Jun 30 07:20:52 2014 +1000 qa/group - 055 is not remote commit da2826c4f23581e527d5cd9ae4e8f5cbafe3aeac Author: Ken McDonell Date: Mon Jun 30 07:13:42 2014 +1000 sample PMDA - add sample.bad.novalues A scalar metric that never has any values ... used for pmie testing initially. commit 43eb4a1eea6c913b461bf46d6b8dc32d2702a188 Author: Ken McDonell Date: Mon Jun 30 07:11:20 2014 +1000 sample PMDA - add helper script get_next_pmid Scans the PMNS to find the next bunch of unassigned PMIDs. Just for the sample PMDA which has grown to the point where it is not immediately obvious which PMIDs have been used. commit b41da65074b52fc7bee1737b4b83dd5aeace398f Author: Ken McDonell Date: Mon Jun 30 07:08:02 2014 +1000 pmie - internal refactoring for booleans This should be completely cosmetic, but makes the code more readable and less exposed to cpp name conflicts. The boolean constants have been mapped as follows: FALSE -> B_FALSE, TRUE -> B_TRUE and DUNNO -> B_UNKNOWN and the typedef Truth renamed Boolean. commit 75d844f33e278621c94ca4615f4289cf280c06f6 Author: Ken McDonell Date: Mon Jun 30 06:53:03 2014 +1000 pmie - with -v use "unknown" instead of "?" for boolean values With rulesets we're making the Kleene logic (3-valued boolean logic) more visible, so report values as "unknown" where appropriate. "?" is retained for the non-boolean values that are unknown or undefined. commit 6aa9b0d80d1f042977f1a0c32d2e205aaf52c003 Author: Ken McDonell Date: Sat Jun 28 18:31:34 2014 +1000 interim commit for new pmie "ruleset" functionality From fche@redhat.com Thu Jul 3 08:55:04 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id BA6C37F37 for ; Thu, 3 Jul 2014 08:55:04 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4783EAC005 for ; Thu, 3 Jul 2014 06:55:01 -0700 (PDT) X-ASG-Debug-ID: 1404395696-04cb6c76cf423da0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id PdFrcNwkgkFCoSKv (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 03 Jul 2014 06:54:57 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s63DstBD016866 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 3 Jul 2014 09:54:56 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s63DstFd023845; Thu, 3 Jul 2014 09:54:55 -0400 Received: by fche.csb (Postfix, from userid 2569) id B46B158180; Thu, 3 Jul 2014 09:54:54 -0400 (EDT) To: Nathan Scott Cc: Lukas Berk , pcp@oss.sgi.com Subject: Re: PCP papi PMDA References: <20140625024307.GA9275@redhat.com> <2109769793.33209354.1403680688562.JavaMail.zimbra@redhat.com> <13003259.2530950.1404361308252.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: PCP papi PMDA From: fche@redhat.com (Frank Ch. Eigler) Date: Thu, 03 Jul 2014 09:54:54 -0400 In-Reply-To: <13003259.2530950.1404361308252.JavaMail.zimbra@redhat.com> (Nathan Scott's message of "Thu, 3 Jul 2014 00:21:48 -0400 (EDT)") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404395696 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi - nathans wrote: > [...] > 1. privileged user requirement > The code thats there now, I'm not really following; which is always a > concern for security-sensitive stuff. :) > Are the wheel and adm groups able to access the performance counters > normally? [...] I believe this was just cargo-culted from the systemd pmda, where the wheel and adm groups do have a specific & relevant meaning. For the papi/pmda purposes, uid=gid=0 seem like a fine default. > 2. enabling counters > [...] > Initially, lets keep it simple. There has been some doubt expressed > whether the auto-enabling will actually work with good error-handling > semantics - noones ever done this before - and it doesn't function at > all for short-lived PMAPI clients (*) - see example below. That's not entirely correct. > The explicit-enabling method (pmstore) can map directly onto the > PAPI interfaces, so it comes with a 100% success guarantee - there > is no controversy over whether this approach will work, we all know > that it does and it has before. [...] It has tradition and a charming simplicity going for it, but it lacks - tooling support, so i.e., it can't be used for reliable logging as pmlogger is not in the business of pmstore'ing constantly - isolation of users/apps from each other, and from state-losing upsets like pmcd restarts > [...] > (*) e.g., this script should work, but cannot with auto-enabling: > > #!/bin/sh > pmstore papi.control.enable "TOT_INS,L1_DCM" > pmstore papi.control.reset "TOT_INS,L1_DCM" > > /opt/research/bin/gather_experimental_data >& phase1.log > echo "--- Phase 1 (gather) results ---" > pmprobe -v papi.preset.total_inst papi.preset.L1_DCM mem.util.shmem > cat phase1.log > > threads=20 > pmstore papi.control.reset "L1_DCM" > /opt/research/bin/search_experimental_data -p $threads >& phase2.log > echo "--- Phase 2 (search x $threads) results ---" > pmprobe -v papi.preset.total_inst papi.preset.L1_DCM mem.util.shmem > cat phase2.log Sure it can work with auto-enabling. You'd just replace the pmstore bits with "pmprobe papi.preset.total_inst". You must have overlooked [1] which outlines one automatic solution for even this scenario. Another way is to run a concurrent pcp client to wrap the experiment, quite possibly pmlogger itself. Such a measure would be wise anyway, considering the large counter values / wraparounds, restarts, all of which phenomena would be unnoticed if just a single pcp metric fetch at the end of an indefintely long experiment were done. (That consideration seems to apply to non-perfctr pcp metrics too.) [1] http://oss.sgi.com/pipermail/pcp/2014-June/005033.html - FChE From minnus@buffalo.edu Thu Jul 3 09:55:19 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 947187F37 for ; Thu, 3 Jul 2014 09:55:19 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 9B81C8F8049 for ; Thu, 3 Jul 2014 07:55:19 -0700 (PDT) X-ASG-Debug-ID: 1404399314-04cbb0653725b820001-S8gJnT Received: from mtareserve1.acsu.buffalo.edu (mtareserve6.acsu.buffalo.edu [128.205.6.4]) by cuda.sgi.com with ESMTP id bWC99PvsHPF41yeZ for ; Thu, 03 Jul 2014 07:55:14 -0700 (PDT) X-Barracuda-Envelope-From: minnus@buffalo.edu X-Barracuda-Apparent-Source-IP: 128.205.6.4 Received: from localmailD.acsu.buffalo.edu (localmaild.acsu.buffalo.edu [128.205.5.208]) by mtareserve1.acsu.buffalo.edu (Postfix) with ESMTP id 52E1C8DD; Thu, 3 Jul 2014 10:55:14 -0400 (EDT) Received: from localmailD.acsu.buffalo.edu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 4AABD2FA2F; Thu, 3 Jul 2014 10:55:14 -0400 (EDT) Received: from localmailD.acsu.buffalo.edu (localhost [127.0.0.1]) by localmailD.acsu.buffalo.edu (Postfix) with ESMTP id 140BD2F9FA; Thu, 3 Jul 2014 10:55:12 -0400 (EDT) Received: from smtp.buffalo.edu (smtp2.acsu.buffalo.edu [128.205.5.254]) by localmailD.acsu.buffalo.edu (Prefixe) with ESMTP id E1D5C2F9F9; Thu, 3 Jul 2014 10:55:11 -0400 (EDT) Received: from gilmour.ccr.buffalo.edu (gilmour.ccr.buffalo.edu [128.205.40.13]) (Authenticated sender: minnus@buffalo.edu) by smtp.buffalo.edu (Postfix) with ESMTPSA id 9EDDAC962; Thu, 3 Jul 2014 10:55:11 -0400 (EDT) Message-ID: <53B56ED4.3000608@buffalo.edu> Date: Thu, 03 Jul 2014 10:55:16 -0400 From: Martins Innus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Ken McDonell , Nathan Scott CC: pcp@oss.sgi.com Subject: Re: [pcp] recent buld regression for inifinband PMDA on debian References: <006b01cf95ba$27501890$75f049b0$@internode.on.net> <853918576.1602669.1404285230879.JavaMail.zimbra@redhat.com> <53B4052C.7010903@buffalo.edu> <53B48B8B.4090905@internode.on.net> X-ASG-Orig-Subj: Re: [pcp] recent buld regression for inifinband PMDA on debian In-Reply-To: <53B48B8B.4090905@internode.on.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-PM-EL-Spam-Prob: : 8% X-Barracuda-Connect: mtareserve6.acsu.buffalo.edu[128.205.6.4] X-Barracuda-Start-Time: 1404399314 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7205 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Ken, Thanks for adding that in. As long as both builds completed with no errors, it looks good to me. On 7/2/14, 6:45 PM, Ken McDonell wrote: > Debian (where it was failing) ... > > src/include/pcp/platform_header.h:/* #undef HAVE_PORT_PERFORMANCE_QUERY_VIA */ > src/include/pcp/config.h:#define HAVE_PORT_PERFORMANCE_QUERY_VIA 1 > src/include/pcp/config.h:/* #undef HAVE_PMA_QUERY_VIA */ > src/include/pcp/config.h.in:#undef HAVE_PORT_PERFORMANCE_QUERY_VIA > src/include/pcp/config.h.in:#undef HAVE_PMA_QUERY_VIA > kenj@bozo-vm:~/src/pcp$ cd src/pmdas/infiniband/ > kenj@bozo-vm:~/src/pcp/src/pmdas/infiniband$ make clean; make > rm -rf domain.h *.o ib.log pmdaib dep dep.bak *.[1-9].gz *.[1-9].bz2 *.[1-9].lzma *.[1-9].xz *.[1-9].tmp ib.o pmda.o pmdaib > for d in `echo `; do if test -d "$d" -a -f "$d/GNUmakefile"; then /bin/echo === $d ===; make --no-print-directory -C $d clean || exit $?; fi; done > gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -c -o ib.o ib.c > gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -c -o pmda.o pmda.c > gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -o pmdaib -Wall -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src ib.o pmda.o -libmad -libumad -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src -lpcp_pmda -lpcp This Debian version has the old interface, which doesn't allow querying of switch metrics. > Ubuntu (where the build was OK) ... > > src/include/pcp/config.h.in:#undef HAVE_PORT_PERFORMANCE_QUERY_VIA > src/include/pcp/config.h.in:#undef HAVE_PMA_QUERY_VIA > src/include/pcp/config.h:/* #undef HAVE_PORT_PERFORMANCE_QUERY_VIA */ > src/include/pcp/config.h:#define HAVE_PMA_QUERY_VIA 1 > kenj@bozo:~/src/pcp$ cd src/pmdas/infiniband > kenj@bozo:~/src/pcp/src/pmdas/infiniband$ make clean; make > rm -rf domain.h *.o ib.log pmdaib dep dep.bak *.[1-9].gz *.[1-9].bz2 *.[1-9].lzma *.[1-9].xz *.[1-9].tmp ib.o pmda.o pmdaib > for d in `echo `; do if test -d "$d" -a -f "$d/GNUmakefile"; then /bin/echo === $d ===; make --no-print-directory -C $d clean || exit $?; fi; done > gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -c -o ib.o ib.c > gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -c -o pmda.o pmda.c > gcc -fPIC -fno-strict-aliasing -D_GNU_SOURCE -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wall -O2 -g -DPCP_DEBUG -DPCP_VERSION=\"3.9.7\" -I../../../src/include -I../../../src/include/pcp -o pmdaib -Wall -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src ib.o pmda.o -libmad -libumad -L../../../src/libpcp/src -L../../../src/libpcp_pmda/src -lpcp_pmda -lpcp The version in Ubuntu has the new interface which allows both port and switch metrics. > So something bad is happening in the configure logic ... Debian looks sort of right to me, but Ubuntu looks sort of busted because HAVE_PORT_PERFORMANCE_QUERY_VIA is NOT set, but (I assume the later/subset control) HAVE_PMA_QUERY_VIA is set. > > I'll leave this to Martins to sort out ... I don't have hardware to test the PMDA, so I can't help beyond build issues. > Only one of those should be set, not both, as it marks a change in interface to the mad library calls. I am rebuilding now and will test, but may not finish before I head out for the holiday weekend. Martins From fche@redhat.com Thu Jul 3 10:35:21 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 98A797F37 for ; Thu, 3 Jul 2014 10:35:21 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 16AECAC004 for ; Thu, 3 Jul 2014 08:35:17 -0700 (PDT) X-ASG-Debug-ID: 1404401715-04cb6c76d1428af0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 5CQRGBRRBJM10B8V (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 03 Jul 2014 08:35:16 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s63FZEUl031470 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 3 Jul 2014 11:35:15 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s63FZDRR000806; Thu, 3 Jul 2014 11:35:13 -0400 Received: by fche.csb (Postfix, from userid 2569) id 3AAEE58180; Thu, 3 Jul 2014 11:35:13 -0400 (EDT) To: Lukas Berk Cc: pcp@oss.sgi.com Subject: Re: PCP papi PMDA References: <20140625024307.GA9275@redhat.com> <53B1AF59.9080506@redhat.com> <20140702135330.GD12723@redhat.com> X-ASG-Orig-Subj: Re: PCP papi PMDA From: fche@redhat.com (Frank Ch. Eigler) Date: Thu, 03 Jul 2014 11:35:13 -0400 In-Reply-To: <20140702135330.GD12723@redhat.com> (Lukas Berk's message of "Wed, 2 Jul 2014 09:53:31 -0400") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404401716 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi, Lukas - Here's a more worked-out non-pmstore-proposal for automatic activation of papi counters. - as each client arrives to the pmda (papi_contextAttributeCallBack), simply store its uid/gid credentials; drop the wildcard/trackers[] bits from uid_gid_tuple; do not worry about getgrname() anything; do not perform access control calculations at this time - as each client leaves the pmda (papi_end_contextCallBack), drop its ctxtab[] entry; do not change papi state at this time - instead of a per-client trackers[], have a single global table to represent the kernel papi-eventset state, containing rows: - pmid - papi eventcode - a boolean enabled-flag - the unique eventset-index for the eventcode within the eventset - a long_long counter-base value (see below) - time_t of last fetch of that - a single kernel papi-eventset object, representing those papi events whose enabled-flags are currently set, and a counter for how many are currently in there (in the near future, when per-process counters are built out, generalize the above as appropriate) - when receiving a fetch for the kernel papi pmns leaf: - check ACL for this client; reject with EPERM if uid/gid != 0 - find corresponding entry in trackers[] table - update its last_fetch tiemstamp - if event is already enabled: - PAPI_read() the eventset into a temporary long_long array of suitable size - find the slot# that corresponds to the pcp metric being sought (the trackers[].eventset-index value) - extract the counter value - add it to the trackers[].counter_base value - return the result as the metric counter value - if the event was not already enabled: - we need to update the eventset, but must counting first - if this is the first event (eventset size = 0): - create the eventset - put it into multiplexing mode - else this is not the first event: - PAPI_stop() the eventset, collecting the then-values of the counters into a temporary long_long array of suitable size - copy all the counter values into the corresponding trackers[].counter_base, so we don't forget in-progress values - add the newly requested eventcode into the eventset, set its enabled flag, compute its new eventset-index, clear its counter_base - prepare to return an error upon failure - PAPI_reset() (just to be clear that previous papi counter values are lost when we restart) - PAPI_start() the eventset -- even if the new event wasn't cool - in the pmda main loop, periodically (suggested default 5 minutes) go through the trackers[] list - if any last-fetched value is too long ago, it's time to stop monitoring them - call PAPI_stop on the eventset, collecting the then-values of the counters into the trackers[].counter_base just as before - clear the eventset completely - add the surviving eventcodes back into the eventset, computing new correct eventset-indexes as we go - clear the dead eventcodes' trackers[] fields - PAPI_reset() # redundantly, as before - PAPI_start() ... and that should apprx. do it. For bonus points, consider adding some control metrics: - a setting for the counter-disuse-timeout - a setting for immediate release (ie timeout=0 then cleanup then restore) - a setting for activation of one or more counters (for old schoolers, treat it identically to a fetch) - FChE From kenj@internode.on.net Thu Jul 3 16:43:36 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 76B0A7F37 for ; Thu, 3 Jul 2014 16:43:36 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 12561AC001 for ; Thu, 3 Jul 2014 14:43:32 -0700 (PDT) X-ASG-Debug-ID: 1404423810-04bdf056667b16d0001-S8gJnT Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id kD4GcYWEmHZjkRLG for ; Thu, 03 Jul 2014 14:43:31 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiUYADbOtVN20YDzPGdsb2JhbAANTQ6HGoontXaDCgoBgSQEAQEBATiEOAEBAQQjFUABEAsOCgICBRYLAgIJAwIBAgExFAYBDAEHAQG1RHebKxeBLIpRAYMkB4J3gUwBBLICVA Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail04.adl6.internode.on.net with ESMTP; 04 Jul 2014 07:13:16 +0930 Message-ID: <53B5CF45.1010204@internode.on.net> Date: Fri, 04 Jul 2014 07:46:45 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Martins Innus , Nathan Scott CC: pcp@oss.sgi.com Subject: Re: [pcp] recent buld regression for inifinband PMDA on debian References: <006b01cf95ba$27501890$75f049b0$@internode.on.net> <853918576.1602669.1404285230879.JavaMail.zimbra@redhat.com> <53B4052C.7010903@buffalo.edu> <53B48B8B.4090905@internode.on.net> <53B56ED4.3000608@buffalo.edu> X-ASG-Orig-Subj: Re: [pcp] recent buld regression for inifinband PMDA on debian In-Reply-To: <53B56ED4.3000608@buffalo.edu> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1404423810 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7218 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 04/07/14 00:55, Martins Innus wrote: > > > Only one of those should be set, not both, as it marks a change in > interface to the mad library calls. OK, then it looks to be good. Thanks. From nscott@redhat.com Thu Jul 3 17:20:25 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 4DB467F37 for ; Thu, 3 Jul 2014 17:20:25 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 3BCE58F8059 for ; Thu, 3 Jul 2014 15:20:25 -0700 (PDT) X-ASG-Debug-ID: 1404426020-04cb6c76d0438b70001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id SE129DfX9lV3aSAC for ; Thu, 03 Jul 2014 15:20:20 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s63MKKXO010123; Thu, 3 Jul 2014 18:20:20 -0400 Date: Thu, 3 Jul 2014 18:20:19 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: "Frank Ch. Eigler" Cc: Lukas Berk , pcp@oss.sgi.com Message-ID: <1507203130.3411139.1404426019940.JavaMail.zimbra@redhat.com> In-Reply-To: References: <20140625024307.GA9275@redhat.com> <2109769793.33209354.1403680688562.JavaMail.zimbra@redhat.com> <13003259.2530950.1404361308252.JavaMail.zimbra@redhat.com> Subject: Re: PCP papi PMDA MIME-Version: 1.0 X-ASG-Orig-Subj: Re: PCP papi PMDA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: PCP papi PMDA Thread-Index: 9jd1bEQOKWWzhah40OwtyyrK8zXZfA== X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1404426020 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7220 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain Hi Frank, ----- Original Message ----- > > 2. enabling counters > > [...] > > Initially, lets keep it simple. There has been some doubt expressed > > whether the auto-enabling will actually work with good error-handling > > semantics - noones ever done this before - and it doesn't function at > > all for short-lived PMAPI clients (*) - see example below. > > That's not entirely correct. It's correct, based on the code that is there. The timeout approach is a hack IMO and your outlined approach looks pretty complex to me, so again, lets start simple and build up please. You're also ignoring the problem of how to sensibly handle PAPI_ECNFLCT, and that pmstore is the only sensible mechanism to support a PAPI_reset. The fine-grained control offered by using pmstore will also help greatly when writing automated QA, and for attempting to diagnose PMDA problems. It occurs to be further, overnight, that both approaches could even be active at once, should the auto-everything turn out to be feasible down the track. If no stores have been presented - go with auto-everything, else run in store-based mode... there's a nice clear path for progress there, starting from something with the thin-layer-over-PAPI base, and moving to your more experimental model. > > The explicit-enabling method (pmstore) can map directly onto the > > PAPI interfaces, so it comes with a 100% success guarantee - there > > is no controversy over whether this approach will work, we all know > > that it does and it has before. [...] > > It has tradition and a charming simplicity going for it, but it lacks Tradition is largely irrelevant, I'm more into the simplicity and code that works reliably. > - tooling support, so i.e., it can't be used for reliable logging > as pmlogger is not in the business of pmstore'ing constantly ("constantly" seems misplaced there, can you explain what you meant?) But the tooling support needs to be fixed independently, anyway, for all the other cases where folks use pmstore, and is highly desirable for general server-side filtering (for PM_TYPE_EVENT metrics). > isolation of users/apps from each other, > and from state-losing upsets like pmcd restarts Disagree on those - these issues are present in both approaches, and the same sorts of approaches can be used to resolve them. Anyway, I've outlined a stable, start-simple approach I'm happy with merging/releasing, which I believe caters for all interested parties. Lets start with that please, and slowly build to these lofty heights, learning as we go & with the simpler thin-layer-over-PAPI base. cheers. -- Nathan From nscott@redhat.com Thu Jul 3 17:30:00 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 135247F37 for ; Thu, 3 Jul 2014 17:30:00 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 0F36A8F8049 for ; Thu, 3 Jul 2014 15:29:59 -0700 (PDT) X-ASG-Debug-ID: 1404426581-04cbb0653526bca0001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id GmAlzUdqJ5WxFk5V for ; Thu, 03 Jul 2014 15:29:41 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s63MTf97017278; Thu, 3 Jul 2014 18:29:41 -0400 Date: Thu, 3 Jul 2014 18:29:41 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: "Frank Ch. Eigler" Cc: Lukas Berk , pcp@oss.sgi.com Message-ID: <1058702163.3412751.1404426581353.JavaMail.zimbra@redhat.com> In-Reply-To: References: <20140625024307.GA9275@redhat.com> <53B1AF59.9080506@redhat.com> <20140702135330.GD12723@redhat.com> Subject: Re: [pcp] PCP papi PMDA MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] PCP papi PMDA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: PCP papi PMDA Thread-Index: dVnFLbMT2rS67m4fMXKfbZjdXoxEYg== X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1404426581 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Barracuda-BRTS-Status: 1 X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7220 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain ----- Original Message ----- > [...] > Here's a more worked-out non-pmstore-proposal for Except for the bits at the end which use pmstore ;) > automatic activation of papi counters. > [...] Wow, that is so incredibly complex. How on earth did we get from multiplexing being "just one line of code" on IRC yesterday to this? Anyway, start with the simplicity of pmstore please, don't treat it as an afterthought - if the above doesn't work out, we still have a functional PMDA. cheers. -- Nathan From kenj@internode.on.net Thu Jul 3 19:36:13 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id DC1A429DF8 for ; Thu, 3 Jul 2014 19:36:13 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 75034AC002 for ; Thu, 3 Jul 2014 17:36:13 -0700 (PDT) X-ASG-Debug-ID: 1404434168-04bdf056697b6230001-S8gJnT Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id x5STPuZA7Xmxep14 for ; Thu, 03 Jul 2014 17:36:08 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvEXAA72tVN20YDzPGdsb2JhbAANTYNfyB0EAQEBATiEd0AwDRYYAwIBAgExDhkGAgEBtVKcIRePP4QtBbJW Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail04.adl6.internode.on.net with ESMTP; 04 Jul 2014 10:06:07 +0930 Message-ID: <53B5F7CB.5060906@internode.on.net> Date: Fri, 04 Jul 2014 10:39:39 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: pcp updates Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: pcp updates Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1404434168 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7223 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Changes committed to git://oss.sgi.com/kenj/pcp.git dev man/man1/pmie.1 | 133 ++++++++++++++++++++++++++++++++++++++++--- qa/admin/pcp-daily | 5 - src/libpcp/src/check-statics | 10 ++- src/pmie/examples/upm.00 | 8 +- src/pmie/examples/upm.01 | 6 - src/pmie/examples/upm.02 | 11 +++ src/pmie/examples/upm.04 | 9 +- src/pmie/examples/upm.09 | 2 src/pmie/examples/upm.10 | 11 +++ 9 files changed, 171 insertions(+), 24 deletions(-) commit d9529e52f8f4f4a63d8ee6f69b534f9ff673529f Author: Ken McDonell Date: Fri Jul 4 10:38:26 2014 +1000 qa/admin/pcp-daily - update Accommodate the new hiding place for pcp.lsm on Debian builds. commit 087d3b3830345da980aea5d0d767ce56bbaf5477 Author: Ken McDonell Date: Fri Jul 4 10:37:10 2014 +1000 pmie examples - update the UPM ones 1. better match for pmie man page 2. add ruleset example commit b58e31beab0c981dbcee4d59c520aa0828b54ba7 Author: Ken McDonell Date: Fri Jul 4 10:36:20 2014 +1000 pmie man page - add description of rulesets and Kleene logic commit 3d2b7a96ef688349af4cf345858d0fbda3e502f0 Author: Ken McDonell Date: Thu Jul 3 11:16:34 2014 +1000 libpcp/check-statics - expr(1) snarfoo fix up Notices this little gem in Logs/pcp after a build on Centos 5.10 expr: warning: unportable BRE: `^.*\\.o$': using `^' as the first character of the basic regular expression is not portable; it is being ignored Strictly "^" is not needed for expr(1), although why warning about it helps man or beast is beyond me. Also added a guard for no object files while I was here. From fche@redhat.com Thu Jul 3 21:01:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id DC21E29DF8 for ; Thu, 3 Jul 2014 21:01:21 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 3D2A5AC001 for ; Thu, 3 Jul 2014 19:01:17 -0700 (PDT) X-ASG-Debug-ID: 1404439273-04cbb06538272210001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id PfIZng3X9jFHTuS3 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 03 Jul 2014 19:01:14 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6421Dvu011949 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 3 Jul 2014 22:01:13 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6421CI1000341; Thu, 3 Jul 2014 22:01:12 -0400 Received: by fche.csb (Postfix, from userid 2569) id 05AB658180; Thu, 3 Jul 2014 22:01:11 -0400 (EDT) Date: Thu, 3 Jul 2014 22:01:11 -0400 From: "Frank Ch. Eigler" To: Nathan Scott Cc: Lukas Berk , pcp@oss.sgi.com Subject: Re: [pcp] PCP papi PMDA Message-ID: <20140704020111.GD1251@redhat.com> X-ASG-Orig-Subj: Re: [pcp] PCP papi PMDA References: <20140625024307.GA9275@redhat.com> <53B1AF59.9080506@redhat.com> <20140702135330.GD12723@redhat.com> <1058702163.3412751.1404426581353.JavaMail.zimbra@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1058702163.3412751.1404426581353.JavaMail.zimbra@redhat.com> User-Agent: Mutt/1.4.2.2i X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404439273 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi - > You're also ignoring the problem of how to sensibly handle PAPI_ECNFLCT, No. In fact, because we'd be adding events to the eventset one at a time (upon request of individual fetches), we can produce proper incremental diagnostics for them. Whereas you were suggesting a pmstore with multiple event names encoded into a string, where in case of a PAPI_ECNFLCT or other error, a user can't tell which part was wrong. > And that pmstore is the only sensible mechanism to support a PAPI_reset. Why do you think a PAPI_reset is per se desirable? What pcp client would prefer to be subjected to another pcp client's discontinuity whimsy? > The fine-grained control offered by using pmstore will also help greatly > when writing automated QA, and for attempting to diagnose PMDA problems. I see no qa-worthy difference between a pmstore vs. a pmprobe to the same metric. > > - tooling support, so i.e., it can't be used for reliable logging > > as pmlogger is not in the business of pmstore'ing constantly > > ("constantly" seems misplaced there, can you explain what you meant?) pmlogger would have to resend the pmstore whenever the remote pmcd suffered a disconnect / restart. > But the tooling support needs to be fixed independently, anyway, for > all the other cases where folks use pmstore, and is highly desirable > for general server-side filtering (for PM_TYPE_EVENT metrics). We do not need to hang that hardly-relevant burden on this piece of work. > > isolation of users/apps from each other, > > and from state-losing upsets like pmcd restarts > > Disagree on those - these issues are present in both approaches, and > the same sorts of approaches can be used to resolve them. No. With the automatic model, different users cannot interfere with each other (subject to sampling error induced by multiplexing). With the pmstore model, only a single concurrent user of the pmda is possible, since you're expecting each to initialize / use / teardown their entire set of counters. If in an alternative pmstore-based model, if the counter sets are to be manipulated incrementally (add/remove counters rather than select-entire-set), then you have almost exactly the same code complexity I outlined -- for that's roughly what it takes to modify a running papi eventset and not lose partial counts. And you still have the interference problem (someone tearing down an experiment, shutting down counters that others were still using). > [...] > Except for the bits at the end which use pmstore ;) ... which was specifically noted as being for old-schoolers only, and in no way necessary for it to work. > > automatic activation of papi counters. > > [...] > > Wow, that is so incredibly complex. It may look that way, but perhaps degree of worked-out detail is mistaken for increased complexity compared to a less worked out alternative. > How on earth did we get from multiplexing being "just one line of > code" on IRC yesterday to this? [...] Multiplexing is an orthogonal issue to pcp-level activation model. - FChE From nscott@redhat.com Thu Jul 3 21:03:05 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 88C1729DF8 for ; Thu, 3 Jul 2014 21:03:05 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 714448F8050 for ; Thu, 3 Jul 2014 19:03:02 -0700 (PDT) X-ASG-Debug-ID: 1404439381-04cb6c76cf440b10001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id 2svtczXQmDD1lQgC for ; Thu, 03 Jul 2014 19:03:01 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s64230SL017668; Thu, 3 Jul 2014 22:03:00 -0400 Date: Thu, 3 Jul 2014 22:03:00 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Lukas Berk Cc: pcp@oss.sgi.com Message-ID: <84409277.3515554.1404439380682.JavaMail.zimbra@redhat.com> In-Reply-To: <1507203130.3411139.1404426019940.JavaMail.zimbra@redhat.com> References: <20140625024307.GA9275@redhat.com> <2109769793.33209354.1403680688562.JavaMail.zimbra@redhat.com> <13003259.2530950.1404361308252.JavaMail.zimbra@redhat.com> <1507203130.3411139.1404426019940.JavaMail.zimbra@redhat.com> Subject: Re: PCP papi PMDA MIME-Version: 1.0 X-ASG-Orig-Subj: Re: PCP papi PMDA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: PCP papi PMDA Thread-Index: 9jd1bEQOKWWzhah40OwtyyrK8zXZfERYjOBX X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1404439381 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7224 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain ----- Original Message ----- > ----- Original Message ----- > > > 2. enabling counters > > > [...] > > > Initially, lets keep it simple. There has been some doubt expressed > > > whether the auto-enabling will actually work with good error-handling > > > semantics - noones ever done this before - and it doesn't function at > > > all for short-lived PMAPI clients (*) - see example below. > > > > That's not entirely correct. > > It's correct, based on the code that is there. The timeout approach is > a hack IMO and your outlined approach looks pretty complex to me, [...] BTW, no timeouts are needed at all with a hybrid start-simple-and-build-up approach, since the short-lived client aspect is solved more simply. So, if we start simple and build, good chance we will end up with a far simpler final solution too. Ultimately, your call Lukas - I've put in my 2c re what I'm after and the steps I'd like to see before merging this beast - please keep us informed as you progress, if I can help out any further just lemme know. Thanks! cheers. -- Nathan From kenj@internode.on.net Fri Jul 4 21:12:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 822807F54 for ; Fri, 4 Jul 2014 21:12:14 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 50B3B304032 for ; Fri, 4 Jul 2014 19:12:14 -0700 (PDT) X-ASG-Debug-ID: 1404526327-04cbb0653629eb20001-S8gJnT Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id JRIT58gnNl4EpB5J for ; Fri, 04 Jul 2014 19:12:08 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkatAIJet1N5LEbgPGdsb2JhbABagw7HUgMCAYEGFwQBAQEBODWEAwEBBQgCMBwjDAEDAgYDFQEpBxkgCgMRAgQBEgsFiDHKOReOVE4HhEMFkH2FX5ongVQr Received: from ppp121-44-70-224.lns20.syd6.internode.on.net (HELO bozohorize) ([121.44.70.224]) by ipmail06.adl6.internode.on.net with ESMTP; 05 Jul 2014 11:41:46 +0930 From: "Ken McDonell" To: "'Nathan Scott'" , "'Amer Ather'" Cc: "'Frank Ch. Eigler'" , , "'Martin Spier'" References: <002d01cf9284$dc8fe570$95afb050$@internode.on.net> <002f01cf9285$f0c63160$d2529420$@internode.on.net> <20140629220735.GA13993@redhat.com> <1820565649.1533935.1404265594896.JavaMail.zimbra@redhat.com> In-Reply-To: <1820565649.1533935.1404265594896.JavaMail.zimbra@redhat.com> Subject: RE: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent Date: Sat, 5 Jul 2014 12:11:45 +1000 X-ASG-Orig-Subj: RE: [pcp] pcp grafana and graphite - How to convert pcp metric values into percent Message-ID: <010201cf97f6$79fa27a0$6dee76e0$@internode.on.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 15.0 Thread-Index: AQGe8/z7D4wvNEEjUhHbOmDpyVH2UwMFu+SsAbarougBltsFqgG1gjn8ApGpMnoBvDNJkwFJ0kFdAaj9koqbd7H+MA== Content-Language: en-au X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404526328 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.01 X-Barracuda-Spam-Status: No, SCORE=0.01 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, THREAD_INDEX X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7248 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header > -----Original Message----- > From: pcp-bounces@oss.sgi.com [mailto:pcp-bounces@oss.sgi.com] On > Behalf Of Nathan Scott > Sent: Wednesday, 2 July 2014 11:47 AM > To: Amer Ather > ... > So, these are counter metrics, and they are exported in milliseconds. In > order to achieve the utilization metric you're after, the counter needs to be > converted to a rate (change-in-value over change-in-time) and the units > converted to a utilization (initially normalized, then multiplied by 100 to > produce a percent). > > Its not clear exactly what the web client is doing here, but these derived > metrics should not need the final "... * 1000)" bit - I think thats making some > incorrect assumptions, it should just be using "hinv.ncpu". So using pmval > instead, with this config... Indeed, clients that do this correctly have to understand that arithmetic (of any sort) on metric values may require scaling before the arithmetic. The metadata that is exported from the PCP agents allows this to be done correctly every time. In this case the client should discover that that metric has the "dimension" of time (to the power 1) and the units of msec, so when it rate converts by dividing by the time between consecutive samples, then the units of the two operands of the division need to be converted to the _same_ unit (it does not matter what that unit is, as long as they are the same, so could be msec, or sec, or usec). If the client does it this way, then it works correctly when you connect to an archive from the first computer I used where time was measured in seconds, or from next year's phone where time may be measured in nsec. Similar considerations apply to arithmetic for metrics over the dimension of "space" where the units could be byte, Kbyte, Mbyte, Gbyte, ... This is the major reason why the metadata for PCP metrics is so detailed compared to some other export mechanisms for performance data, e.g. SNMP, rstatd or the sar binary data format. This was NOT an accident ... 8^)> From mgoodwin@redhat.com Sun Jul 6 03:08:09 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 3A5A429DF8 for ; Sun, 6 Jul 2014 03:08:09 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 1BFE08F8052 for ; Sun, 6 Jul 2014 01:08:09 -0700 (PDT) X-ASG-Debug-ID: 1404634084-04bdf05666819fd0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id FxuTPslZSEkctNnr (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sun, 06 Jul 2014 01:08:04 -0700 (PDT) X-Barracuda-Envelope-From: mgoodwin@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s66884Iw016211 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sun, 6 Jul 2014 04:08:04 -0400 Received: from [10.64.51.194] (vpn1-51-194.bne.redhat.com [10.64.51.194]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s668820A008665 for ; Sun, 6 Jul 2014 04:08:03 -0400 Message-ID: <53B903E1.3000604@redhat.com> Date: Sun, 06 Jul 2014 18:08:01 +1000 From: Mark Goodwin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: pcp updates: mem.util.available for kernels that don't export MemAvailable Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: pcp updates: mem.util.available for kernels that don't export MemAvailable Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404634084 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 As was suggested by Frank, downrev kernels don't export MemAvailable but we can calculate it from other fields. A new QA test is brewing to check this and a new pmie rule with syslog alerts for production environments might be warranted too. Changes committed to git://git.performancecopilot.org/markgw/pcp/pcp.git dev commit 5b23cbf06d8d6e58efd50df82b25a13391520c1f Author: Mark Goodwin Date: Fri Jul 4 17:28:11 2014 +1000 Add new view for mem.util.available, capped by mem.physmem. This shows the amount of memory available for new work without swapping. See the help text for mem.util.available for more details. modified: src/pmchart/views/GNUmakefile new file: src/pmchart/views/MemAvailable commit 191828a938cde0880c57cf648d49d0f79bae9d8d Author: Mark Goodwin Date: Fri Jul 4 16:50:45 2014 +1000 Calculate mem.util.available for kernels without MemAvailable in /proc/meminfo. Downrev Linux kernels (prior to 3.x) have no support for "MemAvailable" in /proc/meminfo so calculate this from other fields, similar to upstream kernel commit 34e431b0ae. Also, if $PCP_QA_ESTIMATE_MEMAVAILABLE is set in the environment, then force this calculation for QA purposes (so we can check the calculation matches the kernel exported value). modified: src/pmdas/linux/pmda.c modified: src/pmdas/linux/proc_meminfo.c modified: src/pmdas/linux/proc_meminfo.h From nscott@redhat.com Sun Jul 6 18:06:53 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id BC71D7F3F for ; Sun, 6 Jul 2014 18:06:53 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 91109304051 for ; Sun, 6 Jul 2014 16:06:50 -0700 (PDT) X-ASG-Debug-ID: 1404688005-04bdf0566982f710001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id aCHUvCBXpB7tGRUx for ; Sun, 06 Jul 2014 16:06:45 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s66N6gF2021479; Sun, 6 Jul 2014 19:06:42 -0400 Date: Sun, 6 Jul 2014 19:06:42 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Ken McDonell Cc: PCP Message-ID: <1574734707.4376963.1404688002126.JavaMail.zimbra@redhat.com> In-Reply-To: <134535079.33172116.1403678335856.JavaMail.zimbra@redhat.com> References: <405933196.32075123.1403563839496.JavaMail.zimbra@redhat.com> <53AA5017.8030906@internode.on.net> <134535079.33172116.1403678335856.JavaMail.zimbra@redhat.com> Subject: Re: QA test 828 has started failing MIME-Version: 1.0 X-ASG-Orig-Subj: Re: QA test 828 has started failing Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.12] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: QA test 828 has started failing Thread-Index: X0fVlyHnaRN1AF8uIMG9wEHZpT9+x9zHX3d6 X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1404688005 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7297 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... ----- Original Message ----- > ----- Original Message ----- > > On 24/06/14 08:50, Nathan Scott wrote: > > > Hi Ken, > > > > > > I'm seeing 828 failing atm - looks like an unrecognised valgrind > > > option is the cause? (see attached .bad file) This is on RHEL6. > > > > Yes I saw that also over the weekend ... I'm battling to figure out how > > to deal with valgrind differences ... gimme a few days. > > Sure, no problem at all. > All working now, after most recent merges (esp commit 09307d4d I guess) - thanks Ken. cheers. -- Nathan From nscott@redhat.com Sun Jul 6 20:01:40 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 22D1B29DF8 for ; Sun, 6 Jul 2014 20:01:40 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id ADB90AC001 for ; Sun, 6 Jul 2014 18:01:36 -0700 (PDT) X-ASG-Debug-ID: 1404694891-04cb6c76cf4b7a30001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id wCetafNA6feqgjCN for ; Sun, 06 Jul 2014 18:01:32 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6711VFY010745; Sun, 6 Jul 2014 21:01:31 -0400 Date: Sun, 6 Jul 2014 21:01:31 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Mark Goodwin Cc: pcp@oss.sgi.com Message-ID: <1155135081.4392820.1404694891417.JavaMail.zimbra@redhat.com> In-Reply-To: <53B903E1.3000604@redhat.com> References: <53B903E1.3000604@redhat.com> Subject: Re: [pcp] pcp updates: mem.util.available for kernels that don't export MemAvailable MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] pcp updates: mem.util.available for kernels that don't export MemAvailable Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.12] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: mem.util.available for kernels that don't export MemAvailable Thread-Index: PN221kp/bO2/DvwT9r/OvwYw3+6q4Q== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1404694892 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7301 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain Hi Mark, ----- Original Message ----- > [...] A new QA test is brewing > to check this and a new pmie rule with syslog alerts for production > environments might be warranted too. Sounds good. I've reverted 3c479d028 to give some minimal coverage until then - you might find either pmprobe with a derived metric to be a useful vehicle for doing that verification, or perhaps pmie. (I'm not a huge fan of $PCP_QA_ESTIMATE_MEMAVAILABLE, FWIW - seems a roundabout kind of way to check the value, the above two suggestions might be simpler? - *shrug* - your call of course). Would you recommend updating the pmchart "Overview" view to use this metric? (this metric will be automatically included in the logged set BTW, via src/pmlogconf/kernel/memory-linux - so nothing to do in that neck of the woods). cheers. -- Nathan From mgoodwin@redhat.com Sun Jul 6 23:05:17 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 7A7BE29DF8 for ; Sun, 6 Jul 2014 23:05:17 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 518B4304053 for ; Sun, 6 Jul 2014 21:05:14 -0700 (PDT) X-ASG-Debug-ID: 1404705909-04cb6c76d24babe0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 0ZYJwSVDHLjHDX4m (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sun, 06 Jul 2014 21:05:10 -0700 (PDT) X-Barracuda-Envelope-From: mgoodwin@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s67459BL013630 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 7 Jul 2014 00:05:09 -0400 Received: from [10.64.51.250] (vpn1-51-250.bne.redhat.com [10.64.51.250]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s67457ZB015165; Mon, 7 Jul 2014 00:05:08 -0400 Message-ID: <53BA1C73.2060306@redhat.com> Date: Mon, 07 Jul 2014 14:05:07 +1000 From: Mark Goodwin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Nathan Scott CC: pcp@oss.sgi.com Subject: Re: [pcp] pcp updates: mem.util.available for kernels that don't export MemAvailable References: <53B903E1.3000604@redhat.com> <1155135081.4392820.1404694891417.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: [pcp] pcp updates: mem.util.available for kernels that don't export MemAvailable In-Reply-To: <1155135081.4392820.1404694891417.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404705910 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/07/2014 11:01 AM, Nathan Scott wrote: > Hi Mark, > > ----- Original Message ----- >> [...] A new QA test is brewing >> to check this and a new pmie rule with syslog alerts for production >> environments might be warranted too. > > Sounds good. I've reverted 3c479d028 to give some minimal coverage > until then - you might find either pmprobe with a derived metric to > be a useful vehicle for doing that verification, or perhaps pmie. > (I'm not a huge fan of $PCP_QA_ESTIMATE_MEMAVAILABLE, FWIW - seems a > roundabout kind of way to check the value, the above two suggestions > might be simpler? - *shrug* - your call of course). I was planning to just do something like this : grep -q MemAvailable /proc/meminfo || notrun k=$(pmprobe -Lv mem.util.available | awk '{print $NF}') u=$(PCP_QA_ESTIMATE_MEMAVAILABLE=1 pmprobe -Lv mem.util.available |\ awk '{print $NF}') and then check $k and $u are within 1% (which is near enough?), but if you think the envvar to too hacky, then we can check it some other way. > > Would you recommend updating the pmchart "Overview" view to use this > metric? yep good idea. mem.util.{dirty,writeback} would be useful too. > (this metric will be automatically included in the logged > set BTW, via src/pmlogconf/kernel/memory-linux - so nothing to do in > that neck of the woods). ah good, cheers From nscott@redhat.com Sun Jul 6 23:19:29 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 7CE0629DF8 for ; Sun, 6 Jul 2014 23:19:29 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 4B0838F8035 for ; Sun, 6 Jul 2014 21:19:29 -0700 (PDT) X-ASG-Debug-ID: 1404706767-04cbb065362ecbe0001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id 46ulKwcWU2gYT1oU for ; Sun, 06 Jul 2014 21:19:27 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s674JRRt001379; Mon, 7 Jul 2014 00:19:27 -0400 Date: Mon, 7 Jul 2014 00:19:27 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Mark Goodwin Cc: pcp@oss.sgi.com Message-ID: <1435035834.4458881.1404706767143.JavaMail.zimbra@redhat.com> In-Reply-To: <53BA1C73.2060306@redhat.com> References: <53B903E1.3000604@redhat.com> <1155135081.4392820.1404694891417.JavaMail.zimbra@redhat.com> <53BA1C73.2060306@redhat.com> Subject: Re: [pcp] pcp updates: mem.util.available for kernels that don't export MemAvailable MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] pcp updates: mem.util.available for kernels that don't export MemAvailable Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.12] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: mem.util.available for kernels that don't export MemAvailable Thread-Index: odLL3jMfFkn8BsHSlMeAsRBNiriBzQ== X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1404706767 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7305 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain Hey Mark, ----- Original Message ----- > > [...] > > (I'm not a huge fan of $PCP_QA_ESTIMATE_MEMAVAILABLE, FWIW - seems a > > roundabout kind of way to check the value, the above two suggestions > > might be simpler? - *shrug* - your call of course). > > I was planning to just do something like this : > > grep -q MemAvailable /proc/meminfo || notrun > k=$(pmprobe -Lv mem.util.available | awk '{print $NF}') > u=$(PCP_QA_ESTIMATE_MEMAVAILABLE=1 pmprobe -Lv mem.util.available |\ > awk '{print $NF}') > > and then check $k and $u are within 1% (which is near enough?), but > if you think the envvar to too hacky, then we can check it some other > way. It seems a little hacky but that might just be me - this is code that's going to live forever incore in pmdalinux right? (its not enhancing the code readability in that spot either :) ... *shrug*, its probably just me be being a bit picky there). The derived metrics approach would seem to be about the same level of complexity to the above QA snippet, and relies on the test being run on the many different platforms we use, to get the coverage we want without that extra code in pmdalinux. Up to you - not a big deal at all, just a suggestion. cheers. -- Nathan From pevans@redhat.com Mon Jul 7 11:49:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id DD3CF7F3F for ; Mon, 7 Jul 2014 11:49:17 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 7C55CAC001 for ; Mon, 7 Jul 2014 09:49:14 -0700 (PDT) X-ASG-Debug-ID: 1404751752-04bdf05667855320001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id XzK55mRLjlbyDkHG (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 07 Jul 2014 09:49:13 -0700 (PDT) X-Barracuda-Envelope-From: pevans@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s67GnC2f023912 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 7 Jul 2014 12:49:12 -0400 Received: from [10.36.6.100] (vpn1-6-100.ams2.redhat.com [10.36.6.100]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s67GnAu2009004; Mon, 7 Jul 2014 12:49:11 -0400 Message-ID: <53BACF86.1070106@redhat.com> Date: Mon, 07 Jul 2014 17:49:10 +0100 From: Paul Evans User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7 MIME-Version: 1.0 To: Nathan Scott CC: PCP Mailing List Subject: pmdagfs2: updates Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: pmdagfs2: updates Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404751753 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Changes committed to git://github.com/pauljevans/pcp.git dev qa/654 | 2 +- qa/654.out | 2 +- qa/655 | 5 +- qa/655.out | 504 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- src/pmdas/gfs2/control.c | 19 ++- src/pmdas/gfs2/control.h | 3 +- src/pmdas/gfs2/ftrace.c | 161 ++++++++++----------- src/pmdas/gfs2/ftrace.h | 3 +- src/pmdas/gfs2/help | 233 +++++++++++++----------------- src/pmdas/gfs2/pmda.c | 48 ++++++- src/pmdas/gfs2/pmns | 24 +--- src/pmdas/gfs2/worst_glock.c | 310 +++++++++++++++++++++++++++------------ src/pmdas/gfs2/worst_glock.h | 50 +++++-- 13 files changed, 1004 insertions(+), 360 deletions(-) commit ee4f2f5382a1894ba9c6a2be95fa411f049d7902 Author: Paul Evans Date: Mon Jul 7 16:55:04 2014 +0100 pmdagfs2: Set default trace_pipe buffer size and allow control Set a default value for the size of the trace_pipe buffer (per cpu) upon the init of the PMDA. Have also created a control metric which allows the user to set a custom size for buffer_size_kb up to 128MB (per cpu). When there is high load on the GFS2 filesystems mounted there will be many events captured in the trace_pipe, if the buffer is not sufficiently large enough then entries may be overwritten before being read by the PMDA. By increasing the size of the buffer we are minimizing the risk of this occurring and ensuring we catch as many results as possible. commit 1a516b3d56cb64fe1998cd6655dfd9d87e8572fb Author: Paul Evans Date: Mon Jul 7 15:58:18 2014 +0100 pmdagfs2: Update full help text in order to pass qa 469 Update the formatting of the full help text for the pmdagfs2 metrics in order for each line of the full helptext to fit nicely in normal sized consoles. We now pass qa 469 without any warnings :) Cheers to Nathan for pointing this one out! commit 36ca15436ae121ee8aa856b8b9fb614d971c6d67 Author: Paul Evans Date: Mon Jul 7 15:26:43 2014 +0100 pmdagfs2: Add top10 worst_glocks and stop storing intermediate values Update worst_glock metric to now list the "top 10" computed worst glock for each GFS2 filesystem mounted on the system. Have at the same time moved to using dynamic pmns generation for these metrics (as is being used with sbstats metrics). Likewise with the ftrace metrics have removed the use of arrays to store the intermediate metric values before they are processed resulting in both reduced memory usage and speed increases. Have updated the QA tests to reflect the changes from the increased number of metrics (now 293) and add an additional test on the worst_glock metrics. commit 43b8277540e7cd30e117c26c8bbd10f56c64d7a3 Author: Paul Evans Date: Fri Jun 20 15:55:06 2014 +0100 pmdagfs2: ftrace.c Stop storing intermediate variables in array for metrics Have removed the use of arrays to store the intermediate ftrace data for the tracepoint metrics before they are processed. This has results in a reduced amount of memory required to process the tracepoint metrics and at the same time reduced the amount of needless data copying. commit 1bd79a5019df21600c4a3c716fc4409102b88166 Author: Paul Evans Date: Tue May 13 17:45:08 2014 +0100 pmdagfs2: Enable all GFS2 tracepoints on PMDA load Added gfs2_tracepoints_init() function to enable all GFS2 tracepoints when pmdagfs2 is enabled in PCP. commit 9de7a7986517f9af99ab7b18fbaaf1e46c993f9a Author: Paul Evans Date: Tue May 13 17:43:53 2014 +0100 pmdagfs2: Fix issue with counting total for gfs2_glock_queue metric Fixed an issue where we were not counting a metric value for the total number of gfs2_glock_queue tracepoint calls seen. commit 5127e7f86d8124b10ba0044c0d8ba4f3ddd8b4f2 Author: Paul Evans Date: Fri May 9 19:33:56 2014 +0100 pmdagfs2: Correct enum naming scheme worst_glock.h Correct the naming scheme for the members of an enum in worst_glock.h the names hadn't be updated since re-factoring a couple of version ago and this brings them inline with the rest of the enum names in the header file. commit bfc7a6e197b2e6ae513caf94480a47a985522bf0 Author: Paul Evans Date: Fri May 9 19:26:24 2014 +0100 pmdagfs2: Fix variable type in ftrace.c Fixed an issue where "int" was used instead of "unsigned int" as the the type for major and minor in ftrace.c these should be unsigned int to match the value converted in their corresponding sscanf statements. commit 9c75a60d5f79c8c5144c8944cd0e38068036a67d Author: Paul Evans Date: Fri May 9 19:11:30 2014 +0100 pmdagfs2: Fix reading of gfs2_glock_queue tracepoint Fix issue where incorrect formatting of the argument for sscanf when reading gfs2_glock_queue tracepoint entries would mean that queuing events would not be recorded properly. Also altered changed the corresponding followed strncmp argument to reflect this proper reading of the gfs2_glock_queue tracepoint. Collection of fixes and updates that I've been working on over the last couple of weeks, there is a few more metric additions I would like to get in for the next release (hopefully committed by the end of the week) but need a bit further testing first. Also includes the fixes to pass qa test 469, all of the patches have been tested and have had covscan run on them. As always please let me know if there are any issues and feedback is welcome :) Cheers, Paul From fche@redhat.com Mon Jul 7 19:48:19 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 8C2E57F4E for ; Mon, 7 Jul 2014 19:48:19 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 74C1E304043 for ; Mon, 7 Jul 2014 17:48:19 -0700 (PDT) X-ASG-Debug-ID: 1404780494-04bdf05666865d70001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id CUW9n3JuVDJFpN8s (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 07 Jul 2014 17:48:15 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s680mEP7010642 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 7 Jul 2014 20:48:14 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s680mEu3007190 for ; Mon, 7 Jul 2014 20:48:14 -0400 Received: by fche.csb (Postfix, from userid 2569) id A94E1584E5; Mon, 7 Jul 2014 20:48:13 -0400 (EDT) Date: Mon, 7 Jul 2014 20:48:13 -0400 From: "Frank Ch. Eigler" To: pcp developers Subject: in search of pcpfans.git fche/pmwebd (graphite) branch review Message-ID: <20140708004813.GF22029@redhat.com> X-ASG-Orig-Subj: in search of pcpfans.git fche/pmwebd (graphite) branch review Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.2i X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404780495 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi - The pcpfans.git fche/pmwebd contains a reviewworthy state of the pmwebd+graphite code. It's just been rebased based on /dev, and contains a bit of a mishmash of commits (I could squash them into one if y'all so desire). All the new code is under src/pmwebapi, which was reworked into C++ and much enhanced. Man pages have been updated. The /etc/pcp/pmwebd/pmwebd.options file has a more standard & more useful format. The qa/660 testsuite has been extended based upon a gcov (test/code-coverage) analysis of the source code, so that apprx. only trivial or hard-to-trigger error cases are left untouched. Comment away! - FChE From nscott@redhat.com Tue Jul 8 01:04:20 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id CA97F7F3F for ; Tue, 8 Jul 2014 01:04:20 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 9D532304048 for ; Mon, 7 Jul 2014 23:04:17 -0700 (PDT) X-ASG-Debug-ID: 1404799452-04cb6c76cf4f5640001-S8gJnT Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by cuda.sgi.com with ESMTP id SV9UAdPvtZ60DUUG for ; Mon, 07 Jul 2014 23:04:12 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.25 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6864BDv010983; Tue, 8 Jul 2014 02:04:11 -0400 Date: Tue, 8 Jul 2014 02:04:11 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Paul Evans Cc: PCP Mailing List Message-ID: <285482994.5341624.1404799451463.JavaMail.zimbra@redhat.com> In-Reply-To: <53BACF86.1070106@redhat.com> References: <53BACF86.1070106@redhat.com> Subject: Re: pmdagfs2: updates MIME-Version: 1.0 X-ASG-Orig-Subj: Re: pmdagfs2: updates Content-Type: multipart/mixed; boundary="----=_Part_5341622_1067780437.1404799451460" X-Originating-IP: [10.5.82.12] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pmdagfs2: updates Thread-Index: YTG7rMH9KXtrXKXAUQ6mo34c2hIzzQ== X-Barracuda-Connect: mx4-phx2.redhat.com[209.132.183.25] X-Barracuda-Start-Time: 1404799452 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7331 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain ------=_Part_5341622_1067780437.1404799451460 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi Paul, ----- Original Message ----- > Changes committed to git://github.com/pauljevans/pcp.git dev > [...] > Also includes the fixes to pass qa test 469, all of the patches have > been tested and have had covscan run on them. Fabulous, thanks! > As always please let me know if > there are any issues and feedback is welcome :) Small stuff only, as always - how does the attached patch look to you? It has the following two little changes: - the gfs2.control metrics seem to be defined as U32, so we should put 'em into the pmAtomValue "ul" field (this only becomes visible on big endian boxes, benign otherwise). gfs2_control_check_value comment is updated to match its existing return code behaviour. - tweaks an explicit tracing file location to use the table, and also get the compiler to work out the string size instead of hard-coding it in the strncmp call (40). Feel free to merge it into your tree if it looks ok & I'll pull from there. cheers. -- Nathan ------=_Part_5341622_1067780437.1404799451460 Content-Type: text/x-patch; name=gfs2.patch Content-Disposition: attachment; filename=gfs2.patch Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9wbWRhcy9nZnMyL2NvbnRyb2wuYyBiL3NyYy9wbWRhcy9nZnMyL2Nv bnRyb2wuYwppbmRleCAwZDNhMDdkLi41ZmQ5ZTZiIDEwMDY0NAotLS0gYS9zcmMvcG1kYXMvZ2Zz Mi9jb250cm9sLmMKKysrIGIvc3JjL3BtZGFzL2dmczIvY29udHJvbC5jCkBAIC01MCw3ICs1MCw3 IEBAIGludAogZ2ZzMl9jb250cm9sX2ZldGNoKGludCBpdGVtLCBwbUF0b21WYWx1ZSAqYXRvbSkK IHsKICAgICBpZiAoaXRlbSA+PSBDT05UUk9MX0FMTCAmJiBpdGVtIDw9IENPTlRST0xfR0xPQkFM X1RSQUNJTkcpIHsKLSAgICAgICAgYXRvbS0+dWxsID0gZ2ZzMl9jb250cm9sX2NoZWNrX3ZhbHVl KGNvbnRyb2xfbG9jYXRpb25zW2l0ZW1dKTsKKyAgICAgICAgYXRvbS0+dWwgPSBnZnMyX2NvbnRy b2xfY2hlY2tfdmFsdWUoY29udHJvbF9sb2NhdGlvbnNbaXRlbV0pOwogCiAgICAgfSBlbHNlIGlm IChpdGVtID09IENPTlRST0xfV09SU1RHTE9DSykgewogICAgICAgICBhdG9tLT51bGwgPSB3b3Jz dF9nbG9ja19nZXRfc3RhdGUoKTsKQEAgLTc1LDEwICs3NSwxMSBAQCBnZnMyX2NvbnRyb2xfc2V0 X3ZhbHVlKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBwbVZhbHVlU2V0ICp2c3ApCiB7CiAgICAgRklM RSAqZnA7CiAgICAgaW50CXN0cyA9IDA7Ci0KICAgICBpbnQgdmFsdWUgPSB2c3AtPnZsaXN0WzBd LnZhbHVlLmx2YWw7CiAKLSAgICBpZiAoc3RybmNtcChmaWxlbmFtZSwgIi9zeXMva2VybmVsL2Rl YnVnL3RyYWNpbmcvYnVmZmVyX3NpemVfa2IiLCA0MCkgPT0gMCkgeyAvKiBTcGVjaWFsIGNhc2Ug Zm9yIGJ1ZmZlcl9zaXplX2tiICovCisgICAgaWYgKHN0cm5jbXAoZmlsZW5hbWUsIGNvbnRyb2xf bG9jYXRpb25zW0NPTlRST0xfQlVGRkVSX1NJWkVfS0JdLAorICAgICAgICAgICAgICAgICAgIHNp emVvZihjb250cm9sX2xvY2F0aW9uc1tDT05UUk9MX0JVRkZFUl9TSVpFX0tCXSktMSkgPT0gMCkg eworICAgICAgICAvKiBTcGVjaWFsIGNhc2UgZm9yIGJ1ZmZlcl9zaXplX2tiICovCiAgICAgICAg IGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPiAxMzEwNzIpIC8qIEFsbG93IHVwdG8gMTI4bWIgYnVm ZmVyIHBlciBDUFUgKi8KICAgICAgICAgICAgIHJldHVybiAtIG9zZXJyb3IoKTsKIApAQCAtOTks NyArMTAwLDcgQEAgZ2ZzMl9jb250cm9sX3NldF92YWx1ZShjb25zdCBjaGFyICpmaWxlbmFtZSwg cG1WYWx1ZVNldCAqdnNwKQogLyoKICAqIFdlIGNoZWNrIHRoZSB0cmFjZXBvaW50IGVuYWJsZSBm aWxlIGdpdmVuIGJ5IGZpbGVuYW1lIGFuZCByZXR1cm4gdGhlIHZhbHVlCiAgKiBjb250YWluZWQu IFRoaXMgc2hvdWxkIGVpdGhlciBiZSAwIGZvciBkaXNhYmxlZCBvciAxIGZvciBlbmFibGVkLiBJ biB0aGUKLSAqIGV2ZW50IG9mIHBlcm1pc3Npb25zIG9yIGZpbGUgbm90IGZvdW5kIHdlIHdpbGwg cmV0dXJuIGVycm9yLgorICogZXZlbnQgb2YgcGVybWlzc2lvbnMgb3IgZmlsZSBub3QgZm91bmQg d2Ugd2lsbCByZXR1cm4gemVyby4KICAqLwogaW50IAogZ2ZzMl9jb250cm9sX2NoZWNrX3ZhbHVl KGNvbnN0IGNoYXIgKmZpbGVuYW1lKQo= ------=_Part_5341622_1067780437.1404799451460-- From pevans@redhat.com Tue Jul 8 03:37:39 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 577487F3F for ; Tue, 8 Jul 2014 03:37:39 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 3338E304048 for ; Tue, 8 Jul 2014 01:37:35 -0700 (PDT) X-ASG-Debug-ID: 1404808651-04cb6c76cf4fca00001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 8rFPfKXbNMFdVyNY (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 08 Jul 2014 01:37:31 -0700 (PDT) X-Barracuda-Envelope-From: pevans@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s688bUcA030189 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 8 Jul 2014 04:37:31 -0400 Received: from [10.36.6.137] (vpn1-6-137.ams2.redhat.com [10.36.6.137]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s688bTfH002334; Tue, 8 Jul 2014 04:37:30 -0400 Message-ID: <53BBADC9.9070008@redhat.com> Date: Tue, 08 Jul 2014 09:37:29 +0100 From: Paul Evans User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130625 Thunderbird/17.0.7 MIME-Version: 1.0 To: Nathan Scott CC: PCP Mailing List Subject: Re: pmdagfs2: updates References: <53BACF86.1070106@redhat.com> <285482994.5341624.1404799451463.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: pmdagfs2: updates In-Reply-To: <285482994.5341624.1404799451463.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404808651 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi Nathan, On 07/08/2014 07:04 AM, Nathan Scott wrote: > Hi Paul, > > Small stuff only, as always - how does the attached patch look to you? > > It has the following two little changes: > > - the gfs2.control metrics seem to be defined as U32, so we should put > 'em into the pmAtomValue "ul" field (this only becomes visible on big > endian boxes, benign otherwise). gfs2_control_check_value comment is > updated to match its existing return code behaviour. > > - tweaks an explicit tracing file location to use the table, and also > get the compiler to work out the string size instead of hard-coding > it in the strncmp call (40). > > Feel free to merge it into your tree if it looks ok & I'll pull from > there. > > cheers. The patch looks good to me and has been merged in my tree :). Have checked and also found that the other two metric pmAtomValue fields should have been "ul" in the fetch also, thanks for pointing that out. > -- > Nathan Cheers, Paul From brolley@redhat.com Tue Jul 8 10:25:29 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 6A4BE7F3F for ; Tue, 8 Jul 2014 10:25:29 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id E04E0AC006 for ; Tue, 8 Jul 2014 08:25:28 -0700 (PDT) X-ASG-Debug-ID: 1404833124-04cbb06536343060001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 5nt9ot3a8qJtKa3F (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 08 Jul 2014 08:25:24 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s68FPNnv005388 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 8 Jul 2014 11:25:23 -0400 Received: from [10.15.16.224] ([10.15.16.224]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s68FPLFe013062; Tue, 8 Jul 2014 11:25:22 -0400 Message-ID: <53BC0D60.4000007@redhat.com> Date: Tue, 08 Jul 2014 11:25:20 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Nathan Scott CC: pcp@oss.sgi.com Subject: Re: [pcp] pmServiceDiscoveryInterrupt() commit a8b87e2 et al. References: <20140619194444.3B03D58015@fche.csb> <53AB0F27.602@redhat.com> <1063089485.33910956.1403758262805.JavaMail.zimbra@redhat.com> <53AC35B8.3000802@redhat.com> <1193390011.34470957.1403829231937.JavaMail.zimbra@redhat.com> <1374649635.181830.1404090114319.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: [pcp] pmServiceDiscoveryInterrupt() commit a8b87e2 et al. In-Reply-To: <1374649635.181830.1404090114319.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404833124 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 06/29/2014 09:01 PM, Nathan Scott wrote: > Thought of another possible approach over the weekend. If we expect this > interface to need further change (given this is the second version of the > interface now, with more development being planned in discovery, we should > plan for it) we could use a versioned interface like pmGetOptions(3) and > his little friend, pmdaGetOptions(3). > > That might look something like... > > typedef struct { > int version; > int interrupted; /* could become a flags bitfield? */ > const char *globalOptions; /* and this could be more explicit, */ > /* instead of every possibly option being */ > /* coerced into one comma-separated string? */ > } pmDiscoveryOptions; > > int > pmDiscoverServicesWithOptions( > const char *service, > const char *mechanism, > pmDiscoveryOptions *options, > char ***urls); > > That API looks fairly neat to me and is a bit more future proof than > what we currently have. As new extensions/requirements for the API > come along, using the version field & addition-to-end-of-struct-only > gives backwards compatibility almost for free (the libpcp code gets > to be simpler to extend internally too). > I ended up going with this approach. See the commit below. I ended up leaving 'interrupted' as an int because, currently, the interrupting signal number is stored there. The code does not examine it at this point, but I can see potential for this possibility down the road. I also anticipate this field being used to implement the upcoming global timeout and it might be useful to invent a code for that as well. As suggested, 'globalOptions' is now broken into individual fields for individual options. Currently, only the 'resolve' option is represented and, since it is a boolean option, it is a single bit in a bitfield. Dave ------------------------------ Author: Dave Brolley Date: Mon Jul 7 14:51:47 2014 -0400 Replace pmDiscoverServicesAdvanced(1) with pmDiscoverServicesWithOptions(1) New API takes a pointer pmServiceDiscoveryOptions which is a versioned struct describing the service discovery options. From fche@redhat.com Tue Jul 8 15:01:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 5D21A7F3F for ; Tue, 8 Jul 2014 15:01:27 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 3E9D28F8073 for ; Tue, 8 Jul 2014 13:01:24 -0700 (PDT) X-ASG-Debug-ID: 1404849682-04cbb06537351eb0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id KhSvdBxMAgJtgfmZ (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 08 Jul 2014 13:01:23 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s68K1MZT012062 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 8 Jul 2014 16:01:22 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s68K1LQR014929; Tue, 8 Jul 2014 16:01:22 -0400 Received: by fche.csb (Postfix, from userid 2569) id 54349584EC; Tue, 8 Jul 2014 16:01:21 -0400 (EDT) To: Dave Brolley Cc: Nathan Scott , pcp@oss.sgi.com Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. References: <20140619194444.3B03D58015@fche.csb> <53AB0F27.602@redhat.com> <1063089485.33910956.1403758262805.JavaMail.zimbra@redhat.com> <53AC35B8.3000802@redhat.com> <1193390011.34470957.1403829231937.JavaMail.zimbra@redhat.com> <1374649635.181830.1404090114319.JavaMail.zimbra@redhat.com> <53BC0D60.4000007@redhat.com> X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. From: fche@redhat.com (Frank Ch. Eigler) Date: Tue, 08 Jul 2014 16:01:21 -0400 In-Reply-To: <53BC0D60.4000007@redhat.com> (Dave Brolley's message of "Tue, 08 Jul 2014 11:25:20 -0400") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404849683 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Dave Brolley writes: > [...] >> typedef struct { >> int version; >> int interrupted; /* could become a flags bitfield? */ >> const char *globalOptions; /* and this could be more explicit, */ >> /* instead of every possibly option being */ >> /* coerced into one comma-separated string? */ >> } pmDiscoveryOptions; > [...] I ended up going with this approach. [...] Oh well. We should leave a note in the docs & code with warning signs about the complete loss of compiler type checking inherent in this approach, and (in case it can help) make a habit of valgrind-running every app that uses this API. There is no point using bitfields for the resolve flag, and reserving space for future bits, as the top version number will have to serve as sufficient discriminator between all future pmDiscoveryOption struct variants. All places in libpcp that now accept a discoveryOptions struct must at minimum assert that ->version == 1, lest an app built against a future incompatible version is run against this one, leading to a crash. The man/man3/pmdiscoverservices.3 needs an update & documentation for this new struct (including initialization requirements); man3/pmservicediscoveryinterrupt.3 should be removed. - FChE From brolley@redhat.com Tue Jul 8 15:19:26 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 654F97F3F for ; Tue, 8 Jul 2014 15:19:26 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 552DB8F807A for ; Tue, 8 Jul 2014 13:19:26 -0700 (PDT) X-ASG-Debug-ID: 1404850764-04cbb06537352c50001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 9WVz2nwbReOCP3Jv (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 08 Jul 2014 13:19:25 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s68KJNxu024131 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 8 Jul 2014 16:19:24 -0400 Received: from [10.10.58.175] (vpn-58-175.rdu2.redhat.com [10.10.58.175]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s68KJMGp031676; Tue, 8 Jul 2014 16:19:22 -0400 Message-ID: <53BC5248.5050100@redhat.com> Date: Tue, 08 Jul 2014 16:19:20 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: "Frank Ch. Eigler" CC: Nathan Scott , pcp@oss.sgi.com Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. References: <20140619194444.3B03D58015@fche.csb> <53AB0F27.602@redhat.com> <1063089485.33910956.1403758262805.JavaMail.zimbra@redhat.com> <53AC35B8.3000802@redhat.com> <1193390011.34470957.1403829231937.JavaMail.zimbra@redhat.com> <1374649635.181830.1404090114319.JavaMail.zimbra@redhat.com> <53BC0D60.4000007@redhat.com> X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404850764 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/08/2014 04:01 PM, Frank Ch. Eigler wrote: > Dave Brolley writes: > >> [...] >>> typedef struct { >>> int version; >>> int interrupted; /* could become a flags bitfield? */ >>> const char *globalOptions; /* and this could be more explicit, */ >>> /* instead of every possibly option being */ >>> /* coerced into one comma-separated string? */ >>> } pmDiscoveryOptions; >> [...] I ended up going with this approach. [...] > Oh well. We should leave a note in the docs & code with warning signs > about the complete loss of compiler type checking inherent in this > approach, and (in case it can help) make a habit of valgrind-running > every app that uses this API. > > There is no point using bitfields for the resolve flag, and reserving > space for future bits, as the top version number will have to serve as > sufficient discriminator between all future pmDiscoveryOption struct > variants. True - I thought that Nathan was perhaps trying to avoid changing the size of the struct when new boolean options are added, but that probably does not matter in light of the version field. > > All places in libpcp that now accept a discoveryOptions struct must at > minimum assert that ->version == 1, lest an app built against a future > incompatible version is run against this one, leading to a crash. Yes -- I did this in the main entry point (pmDiscoverServicesWithOptions) where I checked that the app does not expect a newer version of the API. > > The man/man3/pmdiscoverservices.3 needs an update & documentation for > this new struct (including initialization requirements); > man3/pmservicediscoveryinterrupt.3 should be removed. Yep - just waiting for the dust to settle. > > - FChE From nscott@redhat.com Wed Jul 9 00:32:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 742657F3F for ; Wed, 9 Jul 2014 00:32:16 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 6F56B8F8078 for ; Tue, 8 Jul 2014 22:32:16 -0700 (PDT) X-ASG-Debug-ID: 1404883931-04cb6c76d052bf50001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id B8Zr3mB50sQxXETT for ; Tue, 08 Jul 2014 22:32:11 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s695WAfa019851; Wed, 9 Jul 2014 01:32:10 -0400 Date: Wed, 9 Jul 2014 01:32:10 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dave Brolley Cc: pcp@oss.sgi.com Message-ID: <256416707.6217487.1404883930815.JavaMail.zimbra@redhat.com> In-Reply-To: <53BC5248.5050100@redhat.com> References: <20140619194444.3B03D58015@fche.csb> <1063089485.33910956.1403758262805.JavaMail.zimbra@redhat.com> <53AC35B8.3000802@redhat.com> <1193390011.34470957.1403829231937.JavaMail.zimbra@redhat.com> <1374649635.181830.1404090114319.JavaMail.zimbra@redhat.com> <53BC0D60.4000007@redhat.com> <53BC5248.5050100@redhat.com> Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. MIME-Version: 1.0 X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.12] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. Thread-Index: f0qSwBvwse+g0rBC9263Z0tX0wiBvw== X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1404883931 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7361 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain Hey, ----- Original Message ----- > On 07/08/2014 04:01 PM, Frank Ch. Eigler wrote: > > Dave Brolley writes: > > > >> [...] > >>> typedef struct { > >>> int version; > >>> int interrupted; /* could become a flags bitfield? */ > >>> const char *globalOptions; /* and this could be more explicit, > >>> */ > >>> /* instead of every possibly option being > >>> */ > >>> /* coerced into one comma-separated > >>> string? */ > >>> } pmDiscoveryOptions; > >> [...] I ended up going with this approach. [...] Thanks for considering the options Dave. > > Oh well. We should leave a note in the docs & code with warning signs > > about the complete loss of compiler type checking inherent in this > > approach, and (in case it can help) make a habit of valgrind-running > > every app that uses this API. (from the above and later comments, it appears there is no shortage of misunderstanding here). Anyway, one-sided discussion of tradeoffs in API design is not needed in any man page - just document the behaviour and move along, thanks. Re man pages, you were probably gonna do this anyway Dave but this new API could be documented on pmdiscoverservices.3 (pmgetcontexthostname.3 does this, for example) to leverage closely-related discussion there. > > There is no point using bitfields for the resolve flag, and reserving > > space for future bits, as the top version number will have to serve as > > sufficient discriminator between all future pmDiscoveryOption struct > > variants. > True Hmm, not quite true re flags... > - I thought that Nathan was perhaps trying to avoid changing the > size of the struct when new boolean options are added That's right. If new flags are added with "default-to-off" semantics (i.e. zero meaning off), then new behaviour can be safely introduced with no version change. This extension-by-flag concept is used fairly often for extending some kernel APIs without adding new syscalls, for example; flags to open(2) and so on, which do come along from time to time - see the man page there, it tends to document "since kernel version X.Y" for such flags. We can certainly do the same here. Its a minor detail though ... using flags is quite a convenient API extension mechanism though (and the "resolve" field definitely looks *alot* like a flag). > > All places in libpcp that now accept a discoveryOptions struct must at > > minimum assert that ->version == 1, lest an app built against a future > > incompatible version is run against this one, leading to a crash. Nonsense. Structure additions must only be appended, and existing fields must forever be honoured - so the crash scenario described cannot happen (nor do version checks need to be done at this stage, the first version is always valid, forever). cheers. -- Nathan From nscott@redhat.com Wed Jul 9 00:57:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id D3CD17F3F for ; Wed, 9 Jul 2014 00:57:48 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id CE0DD8F8078 for ; Tue, 8 Jul 2014 22:57:48 -0700 (PDT) X-ASG-Debug-ID: 1404885465-04cb6c76d052ce60001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id UzaxlCEBbJpapIIX for ; Tue, 08 Jul 2014 22:57:45 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s695viLr013642 for ; Wed, 9 Jul 2014 01:57:44 -0400 Date: Wed, 9 Jul 2014 01:57:44 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: PCP Mailing List Message-ID: <1121926761.6223916.1404885464917.JavaMail.zimbra@redhat.com> In-Reply-To: <1410317429.6223623.1404885333855.JavaMail.zimbra@redhat.com> Subject: pcp updates: mem.util, gfs2, discovery (mostly mergin') MIME-Version: 1.0 X-ASG-Orig-Subj: pcp updates: mem.util, gfs2, discovery (mostly mergin') Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.12] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: mem.util, gfs2, discovery (mostly mergin') Thread-Index: vKFZUwS4w3f44gq0aOZTeA89qie8eA== X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1404885465 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7361 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Changes committed to git://git.performancecopilot.org/pcp.git dev build/rpm/fedora.spec | 7 debian/control | 2 debian/libpcp3-dev.install | 1 man/man1/pmfind.1 | 6 man/man1/pmie.1 | 3 man/man3/pmdiscoverservices.3 | 13 man/man3/pmservicediscoveryinterrupt.3 | 92 +++--- qa/003 | 1 qa/654 | 2 qa/654.out | 4 qa/655 | 5 qa/655.out | 506 ++++++++++++++++++++++++++++++++- qa/766 | 45 ++ qa/766.out | 4 qa/775 | 37 +- qa/775.out | 4 qa/776 | 45 ++ qa/776.out | 4 qa/946 | 37 +- qa/946.out | 7 src/include/builddefs.in | 4 src/include/pcp/pmapi.h | 43 ++ src/libpcp/src/avahi.c | 69 ++-- src/libpcp/src/avahi.h | 36 +- src/libpcp/src/check-statics | 12 src/libpcp/src/discovery.c | 336 +++++++++++++-------- src/libpcp/src/exports | 9 src/libpcp/src/internal.h | 25 - src/libpcp/src/probe.c | 379 ++++++++++++++---------- src/libpcp/src/probe.h | 8 src/libpcp/src/secureconnect.c | 16 - src/pmchart/views/GNUmakefile | 2 src/pmchart/views/MemAvailable | 6 src/pmdas/gfs2/control.c | 32 +- src/pmdas/gfs2/control.h | 3 src/pmdas/gfs2/ftrace.c | 169 ++++------- src/pmdas/gfs2/ftrace.h | 3 src/pmdas/gfs2/help | 233 ++++++--------- src/pmdas/gfs2/pmda.c | 48 ++- src/pmdas/gfs2/pmns | 24 - src/pmdas/gfs2/worst_glock.c | 314 ++++++++++++++------ src/pmdas/gfs2/worst_glock.h | 50 ++- src/pmdas/linux/pmda.c | 134 ++++---- src/pmdas/linux/proc_meminfo.c | 59 +++ src/pmdas/linux/proc_meminfo.h | 3 src/pmfind/pmfind.c | 187 ++++++++---- src/pmmgr/pmmgr.cxx | 6 47 files changed, 2058 insertions(+), 977 deletions(-) commit 2d02d11a078c98581c87c743149f33cb487c40c5 Author: Nathan Scott Date: Wed Jul 9 15:19:34 2014 +1000 Remove man page for dev API routine that was removed commit 9021460e24052b55b6ea651edea3036a2a27d70f Author: Dave Brolley Date: Tue Jul 8 16:46:43 2014 -0400 Implement overall timeout for service discovery. -t=N.N, --timeout=N.N for pmfind. N.N is the timeout period in seconds. commit ea2518e240eff48f724b32eb23d9301540602f57 Merge: 0ca5503 9c74864 Author: Dave Brolley Date: Tue Jul 8 10:54:51 2014 -0400 Merge remote-tracking branch 'origin/dev' into brolley/dev commit 9c7486482e6fd21cbfb259f4fb77c34a1839d859 Merge: d97fe0a 9c18608 Author: Nathan Scott Date: Tue Jul 8 19:06:36 2014 +1000 Merge branch 'dev' of git://github.com/pauljevans/pcp into dev commit 9c186085ffb946eaa713d4e4da3dbb930fbc5782 Author: Paul Evans Date: Tue Jul 8 09:27:34 2014 +0100 pmdagfs2: Make changes suggested by Nathan's patch for control.c - the gfs2.control metrics seem to be defined as U32, so we should put 'em into the pmAtomValue "ul" field (this only becomes visible on big endian boxes, benign otherwise). gfs2_control_check_value comment is updated to match its existing return code behaviour. - have also changed the pmAtomValue to ul for both CONTROL_WORSTGLOCK and CONTROL_FTRACE_GLOCK_THRESHOLD to match their U32 type also. - tweaks an explicit tracing file location to use the table, and also get the compiler to work out the string size instead of hard-coding it in the strncmp call (40). commit d97fe0adb745f58c9a167fadc88ae3e47c765535 Merge: c72b669 ee4f2f5 Author: Nathan Scott Date: Tue Jul 8 11:56:46 2014 +1000 Merge branch 'dev' of git://github.com/pauljevans/pcp into dev commit c72b669b691a40cae7264bb41f985477513d5528 Author: Nathan Scott Date: Tue Jul 8 09:45:22 2014 +1000 Update doc location in pmie man page to latest books commit 6bf0a84d5a6a8b888b0a93567089f6d78d1b7322 Author: Nathan Scott Date: Tue Jul 8 09:44:35 2014 +1000 Update target for Debian bugs while mail setup in flux commit 0ca55032cae0ce8f7d8eb713f0f1440451546734 Author: Dave Brolley Date: Mon Jul 7 14:51:47 2014 -0400 Replace pmDiscoverServicesAdvanced(1) with pmDiscoverServicesWithOptions(1) New API takes a pointer pmServiceDiscoveryOptions which is a versioned struct describing the service discovery options. commit ee4f2f5382a1894ba9c6a2be95fa411f049d7902 Author: Paul Evans Date: Mon Jul 7 16:55:04 2014 +0100 pmdagfs2: Set default trace_pipe buffer size and allow control Set a default value for the size of the trace_pipe buffer (per cpu) upon the init of the PMDA. Have also created a control metric which allows the user to set a custom size for buffer_size_kb up to 128MB (per cpu). When there is high load on the GFS2 filesystems mounted there will be many events captured in the trace_pipe, if the buffer is not sufficiently large enough then entries may be overwritten before being read by the PMDA. By increasing the size of the buffer we are minimizing the risk of this occurring and ensuring we catch as many results as possible. commit 1a516b3d56cb64fe1998cd6655dfd9d87e8572fb Author: Paul Evans Date: Mon Jul 7 15:58:18 2014 +0100 pmdagfs2: Update full help text in order to pass qa 469 Update the formatting of the full help text for the pmdagfs2 metrics in order for each line of the full helptext to fit nicely in normal sized consoles. We now pass qa 469 without any warnings :) Cheers to Nathan for pointing this one out! commit 36ca15436ae121ee8aa856b8b9fb614d971c6d67 Author: Paul Evans Date: Mon Jul 7 15:26:43 2014 +0100 pmdagfs2: Add top10 worst_glocks and stop storing intermediate values Update worst_glock metric to now list the "top 10" computed worst glock for each GFS2 filesystem mounted on the system. Have at the same time moved to using dynamic pmns generation for these metrics (as is being used with sbstats metrics). Likewise with the ftrace metrics have removed the use of arrays to store the intermediate metric values before they are processed resulting in both reduced memory usage and speed increases. Have updated the QA tests to reflect the changes from the increased number of metrics (now 293) and add an additional test on the worst_glock metrics. commit 43b8277540e7cd30e117c26c8bbd10f56c64d7a3 Author: Paul Evans Date: Fri Jun 20 15:55:06 2014 +0100 pmdagfs2: ftrace.c Stop storing intermediate variables in array for metrics Have removed the use of arrays to store the intermediate ftrace data for the tracepoint metrics before they are processed. This has results in a reduced amount of memory required to process the tracepoint metrics and at the same time reduced the amount of needless data copying. commit 1bd79a5019df21600c4a3c716fc4409102b88166 Author: Paul Evans Date: Tue May 13 17:45:08 2014 +0100 pmdagfs2: Enable all GFS2 tracepoints on PMDA load Added gfs2_tracepoints_init() function to enable all GFS2 tracepoints when pmdagfs2 is enabled in PCP. commit 9de7a7986517f9af99ab7b18fbaaf1e46c993f9a Author: Paul Evans Date: Tue May 13 17:43:53 2014 +0100 pmdagfs2: Fix issue with counting total for gfs2_glock_queue metric Fixed an issue where we were not counting a metric value for the total number of gfs2_glock_queue tracepoint calls seen. commit 5127e7f86d8124b10ba0044c0d8ba4f3ddd8b4f2 Author: Paul Evans Date: Fri May 9 19:33:56 2014 +0100 pmdagfs2: Correct enum naming scheme worst_glock.h Correct the naming scheme for the members of an enum in worst_glock.h the names hadn't be updated since re-factoring a couple of version ago and this brings them inline with the rest of the enum names in the header file. commit bfc7a6e197b2e6ae513caf94480a47a985522bf0 Author: Paul Evans Date: Fri May 9 19:26:24 2014 +0100 pmdagfs2: Fix variable type in ftrace.c Fixed an issue where "int" was used instead of "unsigned int" as the the type for major and minor in ftrace.c these should be unsigned int to match the value converted in their corresponding sscanf statements. commit 9c75a60d5f79c8c5144c8944cd0e38068036a67d Author: Paul Evans Date: Fri May 9 19:11:30 2014 +0100 pmdagfs2: Fix reading of gfs2_glock_queue tracepoint Fix issue where incorrect formatting of the argument for sscanf when reading gfs2_glock_queue tracepoint entries would mean that queuing events would not be recorded properly. Also altered changed the corresponding followed strncmp argument to reflect this proper reading of the gfs2_glock_queue tracepoint. commit 55bacd63cc9d872d7c40d67173c899874568b1d9 Merge: 36e11e5 9f8a88c Author: Dave Brolley Date: Mon Jul 7 11:22:39 2014 -0400 Merge remote-tracking branch 'origin/dev' into brolley/dev commit 9f8a88c243a20b2ae8d9591018ff835c1ca09839 Author: Nathan Scott Date: Mon Jul 7 09:13:32 2014 +1000 Revert "Update test filter in qa/003 for mem.util.available metric" This reverts commit 3c479d028f44dccfb0b19a394a0380e8e3f3393a. commit 5b23cbf06d8d6e58efd50df82b25a13391520c1f Author: Mark Goodwin Date: Fri Jul 4 17:28:11 2014 +1000 Add new view for mem.util.available, capped by mem.physmem. This shows the amount of memory available for new work without swapping. See the help text for mem.util.available for more details. modified: src/pmchart/views/GNUmakefile new file: src/pmchart/views/MemAvailable commit 191828a938cde0880c57cf648d49d0f79bae9d8d Author: Mark Goodwin Date: Fri Jul 4 16:50:45 2014 +1000 Calculate mem.util.available for kernels without MemAvailable in /proc/meminfo. Downrev Linux kernels (prior to 3.x) have no support for "MemAvailable" in /proc/meminfo so calculate this from other fields, similar to upstream kernel commit 34e431b0ae. Also, if $PCP_QA_ESTIMATE_MEMAVAILABLE is set in the environment, then force this calculation for QA purposes (so we can check the calculation matches the kernel exported value). modified: src/pmdas/linux/pmda.c modified: src/pmdas/linux/proc_meminfo.c modified: src/pmdas/linux/proc_meminfo.h commit cea8c55fafacd8acbdd6ff0ca3c8116ea9e3c869 Author: Nathan Scott Date: Fri Jul 4 11:03:26 2014 +1000 Rework last builddefs domain.h fix for correct pipeline exit status commit 36e11e50dc327f985ccadb59efc60fefbbe0d263 Merge: 4870755 c7b9ecc Author: Dave Brolley Date: Wed Jul 2 10:48:40 2014 -0400 Merge remote-tracking branch 'origin/dev' into brolley/dev commit 4870755fe7d28f323f525195cadc35424590db39 Author: Dave Brolley Date: Wed Jul 2 10:39:17 2014 -0400 Implement 'timeout' option for 'probe' service discovery mechanism. timeout=N.N, where N.N is a floating point number specifying the maximum number of seconds to wait for each connection attempt to fail. Current default is 0.02 seconds which allows for 50 connection attempts per second per thread. Other timeout related bugs found and fixed in the process: - Retry timeout was erroneously set to 1000 seconds and not 0.1 seconds as was intended. - The retry timeout was being reset to __pmConnectTimeout() on the first connection attempt. commit 75e40a1a033df79ca36b4034670bede4ba39ebdf Author: Dave Brolley Date: Wed Jul 2 10:32:21 2014 -0400 Respect FNDELAY in __pmConnect() for secure connections. The secure (NSPR) implementation of __pmConnect() was unconditionally applying __pmConnectTimeout() to PR_Connect(), even when FNDELAY was set for the file descriptor. For FNDELAY sockets, this timeout is applied again during the subsequent call to __pmSelectWrite(). As a result, failed connections on secure sockets were taking twice as long as for non-secure sockets. Correct this by using PR_INTERVAL_NO_WAIT when FNDELAY is set. commit 290fb2c7145552ee818b013c8df73790588be19d Merge: ad5b5a4 3d71933 Author: Dave Brolley Date: Thu Jun 26 10:50:53 2014 -0400 Merge remote-tracking branch 'origin/dev' into brolley/dev commit ad5b5a4a490adc6925c6a7609cdf7d2703f83e3a Author: Dave Brolley Date: Thu Jun 26 10:50:12 2014 -0400 Whitespace fixups for service discovery code. commit d7122db535b0b699a936e60d143520f0d646f3ae Merge: e77cc95 6a6251f Author: Dave Brolley Date: Wed Jun 25 13:49:02 2014 -0400 Merge remote-tracking branch 'origin/dev' into brolley/dev Conflicts: src/libpcp/src/exports commit e77cc955bb755bb9f36727f737a701d081784377 Author: Dave Brolley Date: Wed Jun 25 11:49:30 2014 -0400 Use the minimum required stack for service discovery worker threads. Tailor the stack size to the given discovery options. commit 48b9b0574f609f4cd167bb40bcf6eb724cff45c8 Author: Dave Brolley Date: Wed Jun 25 11:26:47 2014 -0400 Implement interruptable avahi service discovery. Call avahi_simple_poll_iterate() in a loop and check for interruption on each iteration. commit 5b37c891470533dae22c2cf5a379a3d6c499e3cf Author: Dave Brolley Date: Tue Jun 24 17:06:55 2014 -0400 Eliminate statics from the code for service discovyer via active probing. New connectionOptions now on the stack and passed by address to the work functions. commit cae766bb3a39dec02af1b83f916e87c12580c8cc Author: Dave Brolley Date: Tue Jun 24 16:26:10 2014 -0400 Eliminate static globalOptionsInfo for service discovery. Now on the stack and is passed down (by address) to the mechanism-specific APIs. The caller-supplied pointer to the interrupted flag is now also kept here. commit 0b14abd3b59e35804efdecf791374f273dfb543d Author: Dave Brolley Date: Tue Jun 24 15:36:12 2014 -0400 New pmDiscoverServicesAdvanced(1) API function. Adds a global options string and a pointer to an interrupt flag. All callers updated. commit 5d84ce678cf64c75aaf7c64923cf42b862bbb41a Author: Dave Brolley Date: Thu Jun 19 15:05:01 2014 -0400 Update fedora.spec with changes needed to build for epel5 (el5). commit 6f1fc52dca28d30d8232dac630ceed122785e718 Merge: e359985 b1fa8d1 Author: Dave Brolley Date: Thu Jun 19 14:47:48 2014 -0400 Merge remote-tracking branch 'origin/dev' into brolley/dev Conflicts: src/libpcp/src/discovery.c src/libpcp/src/exports commit e35998585c8795781a48a53d66212c90f5f34575 Author: Dave Brolley Date: Thu Jun 19 13:04:52 2014 -0400 Update service discover man pages. - New parameter to pmDiscoverServices(1) - New command line flags for pmfind(1) - New man page for pmServiceDiscoveryInterrupt(1) commit a8b87e24ec15ed1ec798b1e39f815d528cb0f17a Author: Dave Brolley Date: Thu Jun 19 12:07:58 2014 -0400 New pmServiceDiscoveryInterrupt() API. Used to interrupt service discovery. The service discovery process will be interrupted and will finish normally, returning whatever results (if any) were discovered to that point. pmfind(1) now uses this API to implement response to several common signals: SIGHUP, SIGPIPE, SIGINT, SIGTERM, SIGXFSZ, SIGXCPU. When one of these signals is received, pmfind(1) will interrupt the discovery process and print the results obtained up to that point. Also made the service discovery API re-usable by ensuring that all options and settings are reset on each use. commit c2dfe8a2a37532f2af8227896e548e6e096d71e0 Author: Dave Brolley Date: Mon Jun 16 14:15:23 2014 -0400 Update existing pmfind(1) tests to test the -r and --resolve options. commit 1380d1bbf57327077cc9c0424fe49882c914f958 Author: Dave Brolley Date: Mon Jun 16 14:12:30 2014 -0400 Add a global options argument to the __pmDiscoverServices() internal API. All callers updated. Use it to implement the "resolve" option in the API which reqests resolution of the discovered addresses. Used by pmfind(1) to implement the -r and --resolve command line options. From chandana@desilva.id.au Wed Jul 9 01:37:06 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id DF76D7F3F for ; Wed, 9 Jul 2014 01:37:05 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 7B843AC001 for ; Tue, 8 Jul 2014 23:37:05 -0700 (PDT) X-ASG-Debug-ID: 1404887819-04bdf056668ad880001-S8gJnT Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) by cuda.sgi.com with ESMTP id OOMj3ryPh4raTEmG (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 08 Jul 2014 23:36:59 -0700 (PDT) X-Barracuda-Envelope-From: chandana@desilva.id.au X-Barracuda-Apparent-Source-IP: 204.13.248.66 Received: from ec2-54-252-74-219.ap-southeast-2.compute.amazonaws.com ([54.252.74.219] helo=mail.desilva.id.au) by mho-01-ewr.mailhop.org with esmtpa (Exim 4.72) (envelope-from ) id 1X4lUw-000LqA-M0 for pcp@oss.sgi.com; Wed, 09 Jul 2014 06:36:59 +0000 Received: from [192.168.19.171] (mail.messagemedia.com.au [175.45.83.34]) by mail.desilva.id.au (Postfix) with ESMTPSA id C4DB12532A for ; Wed, 9 Jul 2014 06:36:56 +0000 (UTC) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 54.252.74.219 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX182dBY7IlvjzlbUraY5qwI9XRMILAV5asA= Message-ID: <53BCE301.9050408@desilva.id.au> Date: Wed, 09 Jul 2014 16:36:49 +1000 From: Chandana De Silva Reply-To: chandana@desilva.id.au User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: memcache pmda Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: memcache pmda Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mho-03-ewr.mailhop.org[204.13.248.66] X-Barracuda-Start-Time: 1404887819 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7362 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- All, I am trying to run the memcache pmda on 3.9.4 in CentOS 6.5. The pmda does not correctly install, but neither does it log anything in the memcahe pmda log file. I have this scuccfully woring on CentOS 5.5 against PCP 3.6.9. The main difference I can see is that pcp runs as root on 3.6.9, and pcp on 3.9.4. However, on CentOS 6.5/PCP 3.9.4, I am able to view the memcache stats as myself, and as user pcp If someone can give me a few hints on debugging, I would appreciate it. I tried turning logging on in the pmda, but not much help. Thanks, Chandana > sudo -u pcp memcached-tool 127.0.0.1 stats > #127.0.0.1:11211 Field Value > accepting_conns 1 > auth_cmds 0 > auth_errors 0 > bytes 0 > bytes_read 35 > bytes_written 3091 ... PMDA Install on CentOS 6.5/PCP 3.9.4 ===================================== >> $ sudo ./Install >> You will need to choose an appropriate configuration for installation of >> the "memcache" Performance Metrics Domain Agent (PMDA). >> >> collector collect performance statistics on this system >> monitor allow this system to monitor local and/or remote systems >> both collector and monitor configuration for this system >> >> Please enter c(ollector) or m(onitor) or b(oth) [b] >> Updating the Performance Metrics Name Space (PMNS) ... >> Terminate PMDA if already installed ... >> Updating the PMCD control file, and notifying PMCD ... >> Check memcache metrics have appeared ... 17 warnings, 17 metrics and 0 values >> $ cat /var/log/pcp/pmcd/memcache.log >> Log for pmdamemcache on memc1.dev.mel.mmd started Wed Jul 9 16:03:10 2014 > >> pmcd RESTARTED at Wed Jul 9 16:03:10 2014 >> >> >> Current PMCD clients ... >> fd client connection from ipc ver operations denied >> == ======================================== ======= ================= >> 1027 memc1.dev.mel.mmd 2 >> >> >> active agent dom pid in out ver protocol parameters >> ============ === ===== === === === ======== ========== >> pmcd 2 2 dso i:5 lib=/var/lib/pcp/pmdas/pmcd/pmda_pmcd.so entry=pmcd_init [(nil)] >> linux 60 2 dso i:4 lib=/var/lib/pcp/pmdas/linux/pmda_linux.so entry=linux_init [(nil)] >> proc 3 18107 13 14 2 bin pipe cmd=/var/lib/pcp/pmdas/proc/pmdaproc -d 3 >> mmv 70 2 dso i:4 lib=/var/lib/pcp/pmdas/mmv/pmda_mmv.so entry=mmv_init [(nil)] >> xfs 11 18109 15 16 2 bin pipe cmd=/var/lib/pcp/pmdas/xfs/pmdaxfs -d 11 >> jbd2 122 2 dso i:4 lib=/var/lib/pcp/pmdas/jbd2/pmda_jbd2.so entry=jbd2_init [(nil)] >> memcache 89 22572 45 47 2 bin pipe cmd=perl /var/lib/pcp/pmdas/memcache/pmdamemcache.pl >> >> Host access list: >> 00 01 Cur/MaxCons host-spec host-mask lvl host-name >> == == =========== ======================================= ======================================= === ============== >> y y 0 0 10.16.0.124 255.255.255.255 0 localhost >> y y 0 0 / / 1 unix: >> n 0 0 0.0.0.0 0.0.0.0 4 .* >> n 0 0 :: :: 8 :* >> User access list empty: user-based access control turned off >> Group access list empty: group-based access control turned off >> >> [Wed Jul 9 16:03:10] pmcd(18093) Info: PMNS file "DEFAULT" is unchanged From nscott@redhat.com Wed Jul 9 02:23:53 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 3BF837F3F for ; Wed, 9 Jul 2014 02:23:53 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 32EFB8F8065 for ; Wed, 9 Jul 2014 00:23:50 -0700 (PDT) X-ASG-Debug-ID: 1404890625-04cbb0653736a940001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id 10CCBLhkFs8SxAFa for ; Wed, 09 Jul 2014 00:23:45 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s697Nh5B028931; Wed, 9 Jul 2014 03:23:43 -0400 Date: Wed, 9 Jul 2014 03:23:43 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: chandana@desilva.id.au, Dave Brolley Cc: pcp@oss.sgi.com Message-ID: <785523043.6250592.1404890623607.JavaMail.zimbra@redhat.com> In-Reply-To: <53BCE301.9050408@desilva.id.au> References: <53BCE301.9050408@desilva.id.au> Subject: Re: [pcp] memcache pmda MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] memcache pmda Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.12] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: memcache pmda Thread-Index: ZFOazWfdEzP4ceOrNNqJMaQOmKd4dA== X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1404890625 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7363 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Hi Chandana, ----- Original Message ----- > All, > > I am trying to run the memcache pmda on 3.9.4 in CentOS 6.5. > > The pmda does not correctly install, but neither does it log anything in > the memcahe pmda log file. The logging needs to be manually enabled by editing the perl script (sorry, we haven't got round to cleaning up the argument parsing at this stage for -D/--debug to perl/python PMDAs). > I have this scuccfully woring on CentOS 5.5 against PCP 3.6.9. [ How about that spell chucker, huh? scuccfully woring indeed ;) ] > The main difference I can see is that pcp runs as root on 3.6.9, and pcp > on 3.9.4. Pretty sure its not going to be related to root/non-root - the PMDA is effectively just doing a telnet to an open (memcached) port and getting values out using a text protocol - works fine as any user. I think its most likely to be something odd going on in the networking code in the perl PMDA library, which acquired IPv6, getaddrinfo, and a few related changes in the interim. Dave could you take a look? (I'm outta time for today, sorry). When I run it, I see "values currently unavailable" which is the PM_ERR_AGAIN in memcache_fetch_callback - so no data has been read from the socket (possible FNDELAY related? over in local.c anyway, or how it interacts with the libpcp networking code I guess? - wild guesses, take with a pinch of salt!) Dave - if you get to this, then "yum install memcached; service start memcached", "telnet localhost 11211" and just "stats" should give you values, like the PMDA expects to see. thanks! ps: this PMDA needs a QA test, if anyone is game... (comparing netcat results to pmprobe, if a local memcache server can be found, would be one possible approach there). -- Nathan From nscott@redhat.com Wed Jul 9 02:38:50 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 92CE07F3F for ; Wed, 9 Jul 2014 02:38:50 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 2959EAC002 for ; Wed, 9 Jul 2014 00:38:49 -0700 (PDT) X-ASG-Debug-ID: 1404891527-04bdf056668afbb0001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id QiAEFUmUskVZZ0WZ for ; Wed, 09 Jul 2014 00:38:48 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s697cl6A006730; Wed, 9 Jul 2014 03:38:47 -0400 Date: Wed, 9 Jul 2014 03:38:47 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dave Brolley Cc: PCP Mailing List Message-ID: <2129401188.6256039.1404891527704.JavaMail.zimbra@redhat.com> In-Reply-To: <1901474653.6253888.1404891222221.JavaMail.zimbra@redhat.com> Subject: Some recent QA regressions MIME-Version: 1.0 X-ASG-Orig-Subj: Some recent QA regressions Content-Type: multipart/mixed; boundary="----=_Part_6256035_962254098.1404891527699" X-Originating-IP: [10.5.82.12] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: Some recent QA regressions Thread-Index: KGPxWcfq2Q71vQf8Y4sfs+du0JcHCg== X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1404891528 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7363 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain ------=_Part_6256035_962254098.1404891527699 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi mate, I've pulled all your current work, but had some problems with a few tests (see attached bad files). I found reverting the commit below got us back into a healthy state, so pushed this for now - when you figure it out, just "git revert" on my revert should do a revert revert & then just apply your followup fix on top). Changes committed to git://git.performancecopilot.org/pcp.git dev src/libpcp/src/secureconnect.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) commit 381689315aa6b05e178f7eeba42293339f8f8c84 Author: Nathan Scott Date: Wed Jul 9 17:02:17 2014 +1000 Revert "Respect FNDELAY in __pmConnect() for secure connections." This reverts commit 75e40a1a033df79ca36b4034670bede4ba39ebdf. QA tests 067, 110, 156,... (stopped run there) began failing - reverting until Dave gets a chance to dig into these some more. cheers. -- Nathan ------=_Part_6256035_962254098.1404891527699 Content-Type: application/octet-stream; name=156.out.bad Content-Disposition: attachment; filename=156.out.bad Content-Transfer-Encoding: base64 UUEgb3V0cHV0IGNyZWF0ZWQgYnkgMTU2CldhaXRpbmcgZm9yIHBtY2QgdG8gdGVybWluYXRlIC4u LgpTdGFydGluZyBwbWNkIC4uLiAKU3RhcnRpbmcgcG1sb2dnZXIgLi4uIAoKPT09IHJlbW92ZSBh Z2VudCA9PT0KQ3VsbGluZyB0aGUgUGVyZm9ybWFuY2UgTWV0cmljcyBOYW1lIFNwYWNlIC4uLgpz YW1wbGUgLi4uIGRvbmUKVXBkYXRpbmcgdGhlIFBNQ0QgY29udHJvbCBmaWxlLCBhbmQgbm90aWZ5 aW5nIFBNQ0QgLi4uClJlbW92aW5nIGZpbGVzIC4uLgpDaGVjayBzYW1wbGUgbWV0cmljcyBoYXZl IGdvbmUgYXdheSAuLi4gT0sKQ3VsbGluZyB0aGUgUGVyZm9ybWFuY2UgTWV0cmljcyBOYW1lIFNw YWNlIC4uLgpzYW1wbGVkc28gLi4uIGRvbmUKVXBkYXRpbmcgdGhlIFBNQ0QgY29udHJvbCBmaWxl LCBhbmQgbm90aWZ5aW5nIFBNQ0QgLi4uClJlbW92aW5nIGZpbGVzIC4uLgpDaGVjayBzYW1wbGVk c28gbWV0cmljcyBoYXZlIGdvbmUgYXdheSAuLi4gT0sKRXJyb3I6IHNhbXBsZTogVW5rbm93biBt ZXRyaWMgbmFtZQoKPT09IHBpcGUgYWdlbnQgPT09CllvdSB3aWxsIG5lZWQgdG8gY2hvb3NlIGFu IGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gZm9yIGluc3RhbGxhdGlvbiBvZgp0aGUgInNhbXBs ZSIgUGVyZm9ybWFuY2UgTWV0cmljcyBEb21haW4gQWdlbnQgKFBNREEpLgoKICBjb2xsZWN0b3IJ Y29sbGVjdCBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzIG9uIHRoaXMgc3lzdGVtCiAgbW9uaXRvcglh bGxvdyB0aGlzIHN5c3RlbSB0byBtb25pdG9yIGxvY2FsIGFuZC9vciByZW1vdGUgc3lzdGVtcwog IGJvdGgJCWNvbGxlY3RvciBhbmQgbW9uaXRvciBjb25maWd1cmF0aW9uIGZvciB0aGlzIHN5c3Rl bQoKUGxlYXNlIGVudGVyIGMob2xsZWN0b3IpIG9yIG0ob25pdG9yKSBvciBiKG90aCkgW2JdIGJv dGgKPT09PT09PT09PT09PT09PT09PT09PQo9IHNhbXBsZSBkYWVtb24gUE1EQSA9Cj09PT09PT09 PT09PT09PT09PT09PT0KUE1DRCBzaG91bGQgY29tbXVuaWNhdGUgd2l0aCB0aGUgc2FtcGxlIGRh ZW1vbiB2aWEgYSBwaXBlIG9yIGEgc29ja2V0PyBbcGlwZV0gcGlwZQpJbnN0YWxsaW5nIGZpbGVz IC4uLgpbLi4uaW5zdGFsbCBmaWxlcywgbWFrZSBvdXRwdXQuLi5dClVwZGF0aW5nIHRoZSBQZXJm b3JtYW5jZSBNZXRyaWNzIE5hbWUgU3BhY2UgKFBNTlMpIC4uLgpUZXJtaW5hdGUgUE1EQSBpZiBh bHJlYWR5IGluc3RhbGxlZCAuLi4KWy4uLmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4uXQpV cGRhdGluZyB0aGUgUE1DRCBjb250cm9sIGZpbGUsIGFuZCBub3RpZnlpbmcgUE1DRCAuLi4KQ2hl Y2sgc2FtcGxlIG1ldHJpY3MgaGF2ZSBhcHBlYXJlZCAuLi4gMTArIHdhcm5pbmdzLCAxMDArIG1l dHJpY3MgYW5kIDEyMDArIHZhbHVlcwo9PT09PT09PT09PT09PT09PT09PT09Cj0gc2FtcGxlZHNv IERTTyBQTURBID0KPT09PT09PT09PT09PT09PT09PT09PQpJbnN0YWxsaW5nIGZpbGVzIC4uLgpb Li4uaW5zdGFsbCBmaWxlcywgbWFrZSBvdXRwdXQuLi5dClVwZGF0aW5nIHRoZSBQZXJmb3JtYW5j ZSBNZXRyaWNzIE5hbWUgU3BhY2UgKFBNTlMpIC4uLgpUZXJtaW5hdGUgUE1EQSBpZiBhbHJlYWR5 IGluc3RhbGxlZCAuLi4KWy4uLmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4uXQpVcGRhdGlu ZyB0aGUgUE1DRCBjb250cm9sIGZpbGUsIGFuZCBub3RpZnlpbmcgUE1DRCAuLi4KQ2hlY2sgc2Ft cGxlZHNvIG1ldHJpY3MgaGF2ZSBhcHBlYXJlZCAuLi4gMTArIHdhcm5pbmdzLCAxMDArIG1ldHJp Y3MgYW5kIDEyMDArIHZhbHVlcwpzYW1wbGUuZGFya25lc3M6IE5vIHZhbHVlKHMpIGF2YWlsYWJs ZQpzYW1wbGUubm9pbnN0OiBObyB2YWx1ZShzKSBhdmFpbGFibGUKc2FtcGxlLm5lZWRwcm9maWxl OiBFeHBsaWNpdCBpbnN0YW5jZSBpZGVudGlmaWVyKHMpIHJlcXVpcmVkCnNhbXBsZS5iYWQudW5r bm93bjogcG1Mb29rdXBEZXNjOiBVbmtub3duIG9yIGlsbGVnYWwgbWV0cmljIGlkZW50aWZpZXIK c2FtcGxlLmJhZC5ub3N1cHBvcnQ6IE5vdCBTdXBwb3J0ZWQKc2FtcGxlLmJhZC5ub3ZhbHVlczog Tm8gdmFsdWUocykgYXZhaWxhYmxlCnNhbXBsZS5ldmVudC50eXBlOiBObyB2YWx1ZShzKSBhdmFp bGFibGUKc2FtcGxlLmV2ZW50LnBhcmFtXzMyOiBObyB2YWx1ZShzKSBhdmFpbGFibGUKc2FtcGxl LmV2ZW50LnBhcmFtX3UzMjogTm8gdmFsdWUocykgYXZhaWxhYmxlCnNhbXBsZS5ldmVudC5wYXJh bV82NDogTm8gdmFsdWUocykgYXZhaWxhYmxlCnNhbXBsZS5ldmVudC5wYXJhbV91NjQ6IE5vIHZh bHVlKHMpIGF2YWlsYWJsZQpzYW1wbGUuZXZlbnQucGFyYW1fZmxvYXQ6IE5vIHZhbHVlKHMpIGF2 YWlsYWJsZQpzYW1wbGUuZXZlbnQucGFyYW1fZG91YmxlOiBObyB2YWx1ZShzKSBhdmFpbGFibGUK c2FtcGxlLmV2ZW50LnBhcmFtX3N0cmluZzogTm8gdmFsdWUocykgYXZhaWxhYmxlCnNhbXBsZS5l dmVudC5wYXJhbV9hZ2dyZWdhdGU6IE5vIHZhbHVlKHMpIGF2YWlsYWJsZQpZb3Ugd2lsbCBuZWVk IHRvIGNob29zZSBhbiBhcHByb3ByaWF0ZSBjb25maWd1cmF0aW9uIGZvciBpbnN0YWxsYXRpb24g b2YKdGhlICJzYW1wbGUiIFBlcmZvcm1hbmNlIE1ldHJpY3MgRG9tYWluIEFnZW50IChQTURBKS4K CiAgY29sbGVjdG9yCWNvbGxlY3QgcGVyZm9ybWFuY2Ugc3RhdGlzdGljcyBvbiB0aGlzIHN5c3Rl bQogIG1vbml0b3IJYWxsb3cgdGhpcyBzeXN0ZW0gdG8gbW9uaXRvciBsb2NhbCBhbmQvb3IgcmVt b3RlIHN5c3RlbXMKICBib3RoCQljb2xsZWN0b3IgYW5kIG1vbml0b3IgY29uZmlndXJhdGlvbiBm b3IgdGhpcyBzeXN0ZW0KClBsZWFzZSBlbnRlciBjKG9sbGVjdG9yKSBvciBtKG9uaXRvcikgb3Ig YihvdGgpIFtiXSBib3RoCj09PT09PT09PT09PT09PT09PT09PT0KPSBzYW1wbGUgZGFlbW9uIFBN REEgPQo9PT09PT09PT09PT09PT09PT09PT09ClBNQ0Qgc2hvdWxkIGNvbW11bmljYXRlIHdpdGgg dGhlIHNhbXBsZSBkYWVtb24gdmlhIGEgcGlwZSBvciBhIHNvY2tldD8gW3BpcGVdIHBpcGUKSW5z dGFsbGluZyBmaWxlcyAuLi4KWy4uLmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4uXQpVcGRh dGluZyB0aGUgUGVyZm9ybWFuY2UgTWV0cmljcyBOYW1lIFNwYWNlIChQTU5TKSAuLi4KVGVybWlu YXRlIFBNREEgaWYgYWxyZWFkeSBpbnN0YWxsZWQgLi4uClsuLi5pbnN0YWxsIGZpbGVzLCBtYWtl IG91dHB1dC4uLl0KVXBkYXRpbmcgdGhlIFBNQ0QgY29udHJvbCBmaWxlLCBhbmQgbm90aWZ5aW5n IFBNQ0QgLi4uCkNoZWNrIHNhbXBsZSBtZXRyaWNzIGhhdmUgYXBwZWFyZWQgLi4uIDEwKyB3YXJu aW5ncywgMTAwKyBtZXRyaWNzIGFuZCAxMjAwKyB2YWx1ZXMKPT09PT09PT09PT09PT09PT09PT09 PQo9IHNhbXBsZWRzbyBEU08gUE1EQSA9Cj09PT09PT09PT09PT09PT09PT09PT0KSW5zdGFsbGlu ZyBmaWxlcyAuLi4KWy4uLmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4uXQpVcGRhdGluZyB0 aGUgUGVyZm9ybWFuY2UgTWV0cmljcyBOYW1lIFNwYWNlIChQTU5TKSAuLi4KVGVybWluYXRlIFBN REEgaWYgYWxyZWFkeSBpbnN0YWxsZWQgLi4uClsuLi5pbnN0YWxsIGZpbGVzLCBtYWtlIG91dHB1 dC4uLl0KVXBkYXRpbmcgdGhlIFBNQ0QgY29udHJvbCBmaWxlLCBhbmQgbm90aWZ5aW5nIFBNQ0Qg Li4uCkNoZWNrIHNhbXBsZWRzbyBtZXRyaWNzIGhhdmUgYXBwZWFyZWQgLi4uIDEwKyB3YXJuaW5n cywgMTAwKyBtZXRyaWNzIGFuZCAxMjAwKyB2YWx1ZXMKc2FtcGxlLmRhcmtuZXNzOiBObyB2YWx1 ZShzKSBhdmFpbGFibGUKc2FtcGxlLm5vaW5zdDogTm8gdmFsdWUocykgYXZhaWxhYmxlCnNhbXBs ZS5uZWVkcHJvZmlsZTogRXhwbGljaXQgaW5zdGFuY2UgaWRlbnRpZmllcihzKSByZXF1aXJlZApz YW1wbGUuYmFkLnVua25vd246IHBtTG9va3VwRGVzYzogVW5rbm93biBvciBpbGxlZ2FsIG1ldHJp YyBpZGVudGlmaWVyCnNhbXBsZS5iYWQubm9zdXBwb3J0OiBOb3QgU3VwcG9ydGVkCnNhbXBsZS5i YWQubm92YWx1ZXM6IE5vIHZhbHVlKHMpIGF2YWlsYWJsZQpzYW1wbGUuZXZlbnQudHlwZTogTm8g dmFsdWUocykgYXZhaWxhYmxlCnNhbXBsZS5ldmVudC5wYXJhbV8zMjogTm8gdmFsdWUocykgYXZh aWxhYmxlCnNhbXBsZS5ldmVudC5wYXJhbV91MzI6IE5vIHZhbHVlKHMpIGF2YWlsYWJsZQpzYW1w bGUuZXZlbnQucGFyYW1fNjQ6IE5vIHZhbHVlKHMpIGF2YWlsYWJsZQpzYW1wbGUuZXZlbnQucGFy YW1fdTY0OiBObyB2YWx1ZShzKSBhdmFpbGFibGUKc2FtcGxlLmV2ZW50LnBhcmFtX2Zsb2F0OiBO byB2YWx1ZShzKSBhdmFpbGFibGUKc2FtcGxlLmV2ZW50LnBhcmFtX2RvdWJsZTogTm8gdmFsdWUo cykgYXZhaWxhYmxlCnNhbXBsZS5ldmVudC5wYXJhbV9zdHJpbmc6IE5vIHZhbHVlKHMpIGF2YWls YWJsZQpzYW1wbGUuZXZlbnQucGFyYW1fYWdncmVnYXRlOiBObyB2YWx1ZShzKSBhdmFpbGFibGUK Cj09PSBzb2NrZXQgSW50ZXJuZXQgYWdlbnQgPT09CllvdSB3aWxsIG5lZWQgdG8gY2hvb3NlIGFu IGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gZm9yIGluc3RhbGxhdGlvbiBvZgp0aGUgInNhbXBs ZSIgUGVyZm9ybWFuY2UgTWV0cmljcyBEb21haW4gQWdlbnQgKFBNREEpLgoKICBjb2xsZWN0b3IJ Y29sbGVjdCBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzIG9uIHRoaXMgc3lzdGVtCiAgbW9uaXRvcglh bGxvdyB0aGlzIHN5c3RlbSB0byBtb25pdG9yIGxvY2FsIGFuZC9vciByZW1vdGUgc3lzdGVtcwog IGJvdGgJCWNvbGxlY3RvciBhbmQgbW9uaXRvciBjb25maWd1cmF0aW9uIGZvciB0aGlzIHN5c3Rl bQoKUGxlYXNlIGVudGVyIGMob2xsZWN0b3IpIG9yIG0ob25pdG9yKSBvciBiKG90aCkgW2JdIGJv dGgKPT09PT09PT09PT09PT09PT09PT09PQo9IHNhbXBsZSBkYWVtb24gUE1EQSA9Cj09PT09PT09 PT09PT09PT09PT09PT0KUE1DRCBzaG91bGQgY29tbXVuaWNhdGUgd2l0aCB0aGUgc2FtcGxlIGRh ZW1vbiB2aWEgYSBwaXBlIG9yIGEgc29ja2V0PyBbcGlwZV0gc29ja2V0ClVzZSBJbnRlcm5ldCwg SVB2NiBvciBVbml4IGRvbWFpbiBzb2NrZXRzPyBbSW50ZXJuZXRdIEludGVybmV0CkludGVybmV0 IHBvcnQgbnVtYmVyIG9yIHNlcnZpY2UgbmFtZT8gWzIwNzddIFBPUlQxCkluc3RhbGxpbmcgZmls ZXMgLi4uClsuLi5pbnN0YWxsIGZpbGVzLCBtYWtlIG91dHB1dC4uLl0KVXBkYXRpbmcgdGhlIFBl cmZvcm1hbmNlIE1ldHJpY3MgTmFtZSBTcGFjZSAoUE1OUykgLi4uClRlcm1pbmF0ZSBQTURBIGlm IGFscmVhZHkgaW5zdGFsbGVkIC4uLgpbLi4uaW5zdGFsbCBmaWxlcywgbWFrZSBvdXRwdXQuLi5d ClVwZGF0aW5nIHRoZSBQTUNEIGNvbnRyb2wgZmlsZSwgYW5kIG5vdGlmeWluZyBQTUNEIC4uLgpD aGVjayBzYW1wbGUgbWV0cmljcyBoYXZlIGFwcGVhcmVkIC4uLiAxNDEgd2FybmluZ3MsIDEwMCsg bWV0cmljcyBhbmQgMCB2YWx1ZXMKPT09PT09PT09PT09PT09PT09PT09PQo9IHNhbXBsZWRzbyBE U08gUE1EQSA9Cj09PT09PT09PT09PT09PT09PT09PT0KSW5zdGFsbGluZyBmaWxlcyAuLi4KWy4u Lmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4uXQpVcGRhdGluZyB0aGUgUGVyZm9ybWFuY2Ug TWV0cmljcyBOYW1lIFNwYWNlIChQTU5TKSAuLi4KVGVybWluYXRlIFBNREEgaWYgYWxyZWFkeSBp bnN0YWxsZWQgLi4uClsuLi5pbnN0YWxsIGZpbGVzLCBtYWtlIG91dHB1dC4uLl0KVXBkYXRpbmcg dGhlIFBNQ0QgY29udHJvbCBmaWxlLCBhbmQgbm90aWZ5aW5nIFBNQ0QgLi4uCkNoZWNrIHNhbXBs ZWRzbyBtZXRyaWNzIGhhdmUgYXBwZWFyZWQgLi4uIDEwKyB3YXJuaW5ncywgMTAwKyBtZXRyaWNz IGFuZCAxMjAwKyB2YWx1ZXMKc2FtcGxlLmNvbnRyb2w6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBh Z2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmRhZW1vbl9waWQ6IHBtTG9va3VwRGVz YzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnNlY29uZHM6IHBt TG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLm1p bGxpc2Vjb25kczogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVx dWVzdApzYW1wbGUubG9hZDogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4g b2YgcmVxdWVzdApzYW1wbGUuY29sb3VyOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9y IGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5kYXJrbmVzczogcG1Mb29rdXBEZXNjOiBObyBQTUNE IGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuYmluOiBwbUxvb2t1cERlc2M6IE5v IFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5idWNrZXQ6IHBtTG9va3Vw RGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnBhcnRfYmlu OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBs ZS5ib2d1c19iaW46IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJl cXVlc3QKc2FtcGxlLmRyaWZ0OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFp biBvZiByZXF1ZXN0CnNhbXBsZS5zdGVwOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9y IGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5zdGVwX2NvdW50ZXI6IHBtTG9va3VwRGVzYzogTm8g UE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLm1pcmFnZTogcG1Mb29rdXBE ZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUubWlyYWdlX2xv bmdsb25nOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0 CnNhbXBsZS53cml0ZV9tZTogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4g b2YgcmVxdWVzdApzYW1wbGUubGlnaHRzOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9y IGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5tYWduaXR1ZGU6IHBtTG9va3VwRGVzYzogTm8gUE1D RCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnN5c2luZm86IHBtTG9va3VwRGVz YzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnNlY3JldDogcG1M b29rdXBOYW1lOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUucGR1 OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBs ZS5yZWN2X3BkdTogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVx dWVzdApzYW1wbGUueG1pdF9wZHU6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9t YWluIG9mIHJlcXVlc3QKc2FtcGxlLm5vaW5zdDogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50 IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUubmVlZHByb2ZpbGU6IHBtTG9va3VwRGVzYzog Tm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLm5vdF9yZWFkeTogcG1M b29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUucmFw aWQ6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2Ft cGxlLmVycm9yX2NvZGU6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9m IHJlcXVlc3QKc2FtcGxlLmVycm9yX2NoZWNrOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQg Zm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5iaWdpZDogcG1Mb29rdXBEZXNjOiBObyBQTUNE IGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuYnl0ZV9jdHI6IHBtTG9va3VwRGVz YzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmJ5dGVfcmF0ZTog cG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUu a2J5dGVfY3RyOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1 ZXN0CnNhbXBsZS5rYnl0ZV9yYXRlOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRv bWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5ieXRlX3JhdGVfcGVyaG91cjogcG1Mb29rdXBEZXNjOiBO byBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZGF0YXNpemU6IHBtTG9v a3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmxvbmcu b25lOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNh bXBsZS5sb25nLnRlbjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2Yg cmVxdWVzdApzYW1wbGUubG9uZy5odW5kcmVkOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQg Zm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5sb25nLm1pbGxpb246IHBtTG9va3VwRGVzYzog Tm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmxvbmcud3JpdGVfbWU6 IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxl LmxvbmcuYmluOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1 ZXN0CnNhbXBsZS5sb25nLmJpbl9jdHI6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3Ig ZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnVsb25nLm9uZTogcG1Mb29rdXBEZXNjOiBObyBQTUNE IGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUudWxvbmcudGVuOiBwbUxvb2t1cERl c2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS51bG9uZy5odW5k cmVkOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNh bXBsZS51bG9uZy5taWxsaW9uOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFp biBvZiByZXF1ZXN0CnNhbXBsZS51bG9uZy53cml0ZV9tZTogcG1Mb29rdXBEZXNjOiBObyBQTUNE IGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUudWxvbmcuYmluOiBwbUxvb2t1cERl c2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS51bG9uZy5iaW5f Y3RyOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNh bXBsZS51bG9uZy5jb3VudC5iYXNlOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRv bWFpbiBvZiByZXF1ZXN0CnNhbXBsZS51bG9uZy5jb3VudC5kZWNhOiBwbUxvb2t1cERlc2M6IE5v IFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS51bG9uZy5jb3VudC5oZWN0 bzogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1w bGUudWxvbmcuY291bnQua2lsbzogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21h aW4gb2YgcmVxdWVzdApzYW1wbGUudWxvbmcuY291bnQubWVnYTogcG1Mb29rdXBEZXNjOiBObyBQ TUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUubG9uZ2xvbmcub25lOiBwbUxv b2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5sb25n bG9uZy50ZW46IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVl c3QKc2FtcGxlLmxvbmdsb25nLmh1bmRyZWQ6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBm b3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmxvbmdsb25nLm1pbGxpb246IHBtTG9va3VwRGVz YzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmxvbmdsb25nLndy aXRlX21lOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0 CnNhbXBsZS5sb25nbG9uZy5iaW46IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9t YWluIG9mIHJlcXVlc3QKc2FtcGxlLmxvbmdsb25nLmJpbl9jdHI6IHBtTG9va3VwRGVzYzogTm8g UE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnVsb25nbG9uZy5vbmU6IHBt TG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnVs b25nbG9uZy50ZW46IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJl cXVlc3QKc2FtcGxlLnVsb25nbG9uZy5odW5kcmVkOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdl bnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS51bG9uZ2xvbmcubWlsbGlvbjogcG1Mb29r dXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUudWxvbmds b25nLndyaXRlX21lOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiBy ZXF1ZXN0CnNhbXBsZS51bG9uZ2xvbmcuYmluOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQg Zm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS51bG9uZ2xvbmcuYmluX2N0cjogcG1Mb29rdXBE ZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZmxvYXQub25l OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBs ZS5mbG9hdC50ZW46IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJl cXVlc3QKc2FtcGxlLmZsb2F0Lmh1bmRyZWQ6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBm b3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmZsb2F0Lm1pbGxpb246IHBtTG9va3VwRGVzYzog Tm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmZsb2F0LndyaXRlX21l OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBs ZS5mbG9hdC5iaW46IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJl cXVlc3QKc2FtcGxlLmZsb2F0LmJpbl9jdHI6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBm b3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmRvdWJsZS5vbmU6IHBtTG9va3VwRGVzYzogTm8g UE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmRvdWJsZS50ZW46IHBtTG9v a3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmRvdWJs ZS5odW5kcmVkOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1 ZXN0CnNhbXBsZS5kb3VibGUubWlsbGlvbjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZv ciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZG91YmxlLndyaXRlX21lOiBwbUxvb2t1cERlc2M6 IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5kb3VibGUuYmluOiBw bUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5k b3VibGUuYmluX2N0cjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2Yg cmVxdWVzdApzYW1wbGUuc3RyaW5nLm51bGw6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBm b3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnN0cmluZy5odWxsbzogcG1Mb29rdXBEZXNjOiBO byBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuc3RyaW5nLndyaXRlX21l OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBs ZS5hZ2dyZWdhdGUubnVsbDogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4g b2YgcmVxdWVzdApzYW1wbGUuYWdncmVnYXRlLmh1bGxvOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0Qg YWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5hZ2dyZWdhdGUud3JpdGVfbWU6IHBt TG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmhv cmRlcy5vbmU6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVl c3QKc2FtcGxlLmhvcmRlcy50d286IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9t YWluIG9mIHJlcXVlc3QKc2FtcGxlLmJhZC51bmtub3duOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0Qg YWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5iYWQubm9zdXBwb3J0OiBwbUxvb2t1 cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5iYWQubm92 YWx1ZXM6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QK c2FtcGxlLndyYXAubG9uZzogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4g b2YgcmVxdWVzdApzYW1wbGUud3JhcC51bG9uZzogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50 IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUud3JhcC5sb25nbG9uZzogcG1Mb29rdXBEZXNj OiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUud3JhcC51bG9uZ2xv bmc6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2Ft cGxlLmRvZGdleS5jb250cm9sOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFp biBvZiByZXF1ZXN0CnNhbXBsZS5kb2RnZXkudmFsdWU6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBh Z2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmR5bmFtaWMuY291bnRlcjogcG1Mb29r dXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZHluYW1p Yy5kaXNjcmV0ZTogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVx dWVzdApzYW1wbGUuZHluYW1pYy5pbnN0YW50OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQg Zm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5keW5hbWljLm1ldGEubWV0cmljOiBwbUxvb2t1 cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5keW5hbWlj Lm1ldGEucG1kZXNjLnR5cGU6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWlu IG9mIHJlcXVlc3QKc2FtcGxlLmR5bmFtaWMubWV0YS5wbWRlc2MuaW5kb206IHBtTG9va3VwRGVz YzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmR5bmFtaWMubWV0 YS5wbWRlc2Muc2VtOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiBy ZXF1ZXN0CnNhbXBsZS5keW5hbWljLm1ldGEucG1kZXNjLnVuaXRzOiBwbUxvb2t1cERlc2M6IE5v IFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5zY2FsZV9zdGVwLmJ5dGVz X3VwOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNh bXBsZS5zY2FsZV9zdGVwLmJ5dGVzX2Rvd246IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBm b3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnNjYWxlX3N0ZXAuY291bnRfdXA6IHBtTG9va3Vw RGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnNjYWxlX3N0 ZXAuY291bnRfZG93bjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2Yg cmVxdWVzdApzYW1wbGUuc2NhbGVfc3RlcC50aW1lX3VwX3NlY3M6IHBtTG9va3VwRGVzYzogTm8g UE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnNjYWxlX3N0ZXAudGltZV91 cF9uYW5vc2VjczogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVx dWVzdApzYW1wbGUuc2NhbGVfc3RlcC5ub25lX3VwOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdl bnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5jb25zdF9yYXRlLnZhbHVlOiBwbUxvb2t1 cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5jb25zdF9y YXRlLmdyYWRpZW50OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiBy ZXF1ZXN0CnNhbXBsZS5tYW55LmNvdW50OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9y IGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5tYW55LmludDogcG1Mb29rdXBEZXNjOiBObyBQTUNE IGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuc2NyYW1ibGUudmVyc2lvbjogcG1M b29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuc2Ny YW1ibGUuYmluOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1 ZXN0CnNhbXBsZS5wZXJjb250ZXh0LnBkdTogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZv ciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUucGVyY29udGV4dC5yZWN2X3BkdTogcG1Mb29rdXBE ZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUucGVyY29udGV4 dC54bWl0X3BkdTogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVx dWVzdApzYW1wbGUucGVyY29udGV4dC5jb250cm9sLmN0eDogcG1Mb29rdXBEZXNjOiBObyBQTUNE IGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUucGVyY29udGV4dC5jb250cm9sLmFj dGl2ZTogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApz YW1wbGUucGVyY29udGV4dC5jb250cm9sLnN0YXJ0OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdl bnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5wZXJjb250ZXh0LmNvbnRyb2wuZW5kOiBw bUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5l dmVudC5yZWNvcmRzOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiBy ZXF1ZXN0CnNhbXBsZS5ldmVudC5ub19pbmRvbV9yZWNvcmRzOiBwbUxvb2t1cERlc2M6IE5vIFBN Q0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5ldmVudC5yZXNldDogcG1Mb29r dXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZXZlbnQu dHlwZTogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApz YW1wbGUuZXZlbnQucGFyYW1fMzI6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9t YWluIG9mIHJlcXVlc3QKc2FtcGxlLmV2ZW50LnBhcmFtX3UzMjogcG1Mb29rdXBEZXNjOiBObyBQ TUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZXZlbnQucGFyYW1fNjQ6IHBt TG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmV2 ZW50LnBhcmFtX3U2NDogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2Yg cmVxdWVzdApzYW1wbGUuZXZlbnQucGFyYW1fZmxvYXQ6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBh Z2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmV2ZW50LnBhcmFtX2RvdWJsZTogcG1M b29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZXZl bnQucGFyYW1fc3RyaW5nOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBv ZiByZXF1ZXN0CnNhbXBsZS5ldmVudC5wYXJhbV9hZ2dyZWdhdGU6IHBtTG9va3VwRGVzYzogTm8g UE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKWW91IHdpbGwgbmVlZCB0byBjaG9vc2Ug YW4gYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbiBmb3IgaW5zdGFsbGF0aW9uIG9mCnRoZSAic2Ft cGxlIiBQZXJmb3JtYW5jZSBNZXRyaWNzIERvbWFpbiBBZ2VudCAoUE1EQSkuCgogIGNvbGxlY3Rv cgljb2xsZWN0IHBlcmZvcm1hbmNlIHN0YXRpc3RpY3Mgb24gdGhpcyBzeXN0ZW0KICBtb25pdG9y CWFsbG93IHRoaXMgc3lzdGVtIHRvIG1vbml0b3IgbG9jYWwgYW5kL29yIHJlbW90ZSBzeXN0ZW1z CiAgYm90aAkJY29sbGVjdG9yIGFuZCBtb25pdG9yIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgc3lz dGVtCgpQbGVhc2UgZW50ZXIgYyhvbGxlY3Rvcikgb3IgbShvbml0b3IpIG9yIGIob3RoKSBbYl0g Ym90aAo9PT09PT09PT09PT09PT09PT09PT09Cj0gc2FtcGxlIGRhZW1vbiBQTURBID0KPT09PT09 PT09PT09PT09PT09PT09PQpQTUNEIHNob3VsZCBjb21tdW5pY2F0ZSB3aXRoIHRoZSBzYW1wbGUg ZGFlbW9uIHZpYSBhIHBpcGUgb3IgYSBzb2NrZXQ/IFtwaXBlXSBzb2NrZXQKVXNlIEludGVybmV0 LCBJUHY2IG9yIFVuaXggZG9tYWluIHNvY2tldHM/IFtJbnRlcm5ldF0gSW50ZXJuZXQKSW50ZXJu ZXQgcG9ydCBudW1iZXIgb3Igc2VydmljZSBuYW1lPyBbMjA3N10gUE9SVDIKSW5zdGFsbGluZyBm aWxlcyAuLi4KWy4uLmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4uXQpVcGRhdGluZyB0aGUg UGVyZm9ybWFuY2UgTWV0cmljcyBOYW1lIFNwYWNlIChQTU5TKSAuLi4KVGVybWluYXRlIFBNREEg aWYgYWxyZWFkeSBpbnN0YWxsZWQgLi4uClsuLi5pbnN0YWxsIGZpbGVzLCBtYWtlIG91dHB1dC4u Ll0KVXBkYXRpbmcgdGhlIFBNQ0QgY29udHJvbCBmaWxlLCBhbmQgbm90aWZ5aW5nIFBNQ0QgLi4u CkNoZWNrIHNhbXBsZSBtZXRyaWNzIGhhdmUgYXBwZWFyZWQgLi4uIDE0MSB3YXJuaW5ncywgMTAw KyBtZXRyaWNzIGFuZCAwIHZhbHVlcwo9PT09PT09PT09PT09PT09PT09PT09Cj0gc2FtcGxlZHNv IERTTyBQTURBID0KPT09PT09PT09PT09PT09PT09PT09PQpJbnN0YWxsaW5nIGZpbGVzIC4uLgpb Li4uaW5zdGFsbCBmaWxlcywgbWFrZSBvdXRwdXQuLi5dClVwZGF0aW5nIHRoZSBQZXJmb3JtYW5j ZSBNZXRyaWNzIE5hbWUgU3BhY2UgKFBNTlMpIC4uLgpUZXJtaW5hdGUgUE1EQSBpZiBhbHJlYWR5 IGluc3RhbGxlZCAuLi4KWy4uLmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4uXQpVcGRhdGlu ZyB0aGUgUE1DRCBjb250cm9sIGZpbGUsIGFuZCBub3RpZnlpbmcgUE1DRCAuLi4KQ2hlY2sgc2Ft cGxlZHNvIG1ldHJpY3MgaGF2ZSBhcHBlYXJlZCAuLi4gMTArIHdhcm5pbmdzLCAxMDArIG1ldHJp Y3MgYW5kIDEyMDArIHZhbHVlcwpzYW1wbGUuY29udHJvbDogcG1Mb29rdXBEZXNjOiBObyBQTUNE IGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZGFlbW9uX3BpZDogcG1Mb29rdXBE ZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuc2Vjb25kczog cG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUu bWlsbGlzZWNvbmRzOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiBy ZXF1ZXN0CnNhbXBsZS5sb2FkOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFp biBvZiByZXF1ZXN0CnNhbXBsZS5jb2xvdXI6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBm b3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmRhcmtuZXNzOiBwbUxvb2t1cERlc2M6IE5vIFBN Q0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5iaW46IHBtTG9va3VwRGVzYzog Tm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmJ1Y2tldDogcG1Mb29r dXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUucGFydF9i aW46IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2Ft cGxlLmJvZ3VzX2JpbjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2Yg cmVxdWVzdApzYW1wbGUuZHJpZnQ6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9t YWluIG9mIHJlcXVlc3QKc2FtcGxlLnN0ZXA6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBm b3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnN0ZXBfY291bnRlcjogcG1Mb29rdXBEZXNjOiBO byBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUubWlyYWdlOiBwbUxvb2t1 cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5taXJhZ2Vf bG9uZ2xvbmc6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVl c3QKc2FtcGxlLndyaXRlX21lOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFp biBvZiByZXF1ZXN0CnNhbXBsZS5saWdodHM6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBm b3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLm1hZ25pdHVkZTogcG1Mb29rdXBEZXNjOiBObyBQ TUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuc3lzaW5mbzogcG1Mb29rdXBE ZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuc2VjcmV0OiBw bUxvb2t1cE5hbWU6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5w ZHU6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2Ft cGxlLnJlY3ZfcGR1OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiBy ZXF1ZXN0CnNhbXBsZS54bWl0X3BkdTogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBk b21haW4gb2YgcmVxdWVzdApzYW1wbGUubm9pbnN0OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdl bnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5uZWVkcHJvZmlsZTogcG1Mb29rdXBEZXNj OiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUubm90X3JlYWR5OiBw bUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5y YXBpZDogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApz YW1wbGUuZXJyb3JfY29kZTogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4g b2YgcmVxdWVzdApzYW1wbGUuZXJyb3JfY2hlY2s6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2Vu dCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmJpZ2lkOiBwbUxvb2t1cERlc2M6IE5vIFBN Q0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5ieXRlX2N0cjogcG1Mb29rdXBE ZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuYnl0ZV9yYXRl OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBs ZS5rYnl0ZV9jdHI6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJl cXVlc3QKc2FtcGxlLmtieXRlX3JhdGU6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3Ig ZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmJ5dGVfcmF0ZV9wZXJob3VyOiBwbUxvb2t1cERlc2M6 IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5kYXRhc2l6ZTogcG1M b29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUubG9u Zy5vbmU6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QK c2FtcGxlLmxvbmcudGVuOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBv ZiByZXF1ZXN0CnNhbXBsZS5sb25nLmh1bmRyZWQ6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2Vu dCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmxvbmcubWlsbGlvbjogcG1Mb29rdXBEZXNj OiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUubG9uZy53cml0ZV9t ZTogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1w bGUubG9uZy5iaW46IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJl cXVlc3QKc2FtcGxlLmxvbmcuYmluX2N0cjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZv ciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUudWxvbmcub25lOiBwbUxvb2t1cERlc2M6IE5vIFBN Q0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS51bG9uZy50ZW46IHBtTG9va3Vw RGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnVsb25nLmh1 bmRyZWQ6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QK c2FtcGxlLnVsb25nLm1pbGxpb246IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9t YWluIG9mIHJlcXVlc3QKc2FtcGxlLnVsb25nLndyaXRlX21lOiBwbUxvb2t1cERlc2M6IE5vIFBN Q0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS51bG9uZy5iaW46IHBtTG9va3Vw RGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnVsb25nLmJp bl9jdHI6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QK c2FtcGxlLnVsb25nLmNvdW50LmJhc2U6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3Ig ZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnVsb25nLmNvdW50LmRlY2E6IHBtTG9va3VwRGVzYzog Tm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnVsb25nLmNvdW50Lmhl Y3RvOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNh bXBsZS51bG9uZy5jb3VudC5raWxvOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRv bWFpbiBvZiByZXF1ZXN0CnNhbXBsZS51bG9uZy5jb3VudC5tZWdhOiBwbUxvb2t1cERlc2M6IE5v IFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5sb25nbG9uZy5vbmU6IHBt TG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmxv bmdsb25nLnRlbjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVx dWVzdApzYW1wbGUubG9uZ2xvbmcuaHVuZHJlZDogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50 IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUubG9uZ2xvbmcubWlsbGlvbjogcG1Mb29rdXBE ZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUubG9uZ2xvbmcu d3JpdGVfbWU6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVl c3QKc2FtcGxlLmxvbmdsb25nLmJpbjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBk b21haW4gb2YgcmVxdWVzdApzYW1wbGUubG9uZ2xvbmcuYmluX2N0cjogcG1Mb29rdXBEZXNjOiBO byBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUudWxvbmdsb25nLm9uZTog cG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUu dWxvbmdsb25nLnRlbjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2Yg cmVxdWVzdApzYW1wbGUudWxvbmdsb25nLmh1bmRyZWQ6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBh Z2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnVsb25nbG9uZy5taWxsaW9uOiBwbUxv b2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS51bG9u Z2xvbmcud3JpdGVfbWU6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9m IHJlcXVlc3QKc2FtcGxlLnVsb25nbG9uZy5iaW46IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2Vu dCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnVsb25nbG9uZy5iaW5fY3RyOiBwbUxvb2t1 cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5mbG9hdC5v bmU6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2Ft cGxlLmZsb2F0LnRlbjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2Yg cmVxdWVzdApzYW1wbGUuZmxvYXQuaHVuZHJlZDogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50 IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZmxvYXQubWlsbGlvbjogcG1Mb29rdXBEZXNj OiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZmxvYXQud3JpdGVf bWU6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2Ft cGxlLmZsb2F0LmJpbjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2Yg cmVxdWVzdApzYW1wbGUuZmxvYXQuYmluX2N0cjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50 IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZG91YmxlLm9uZTogcG1Mb29rdXBEZXNjOiBO byBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZG91YmxlLnRlbjogcG1M b29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZG91 YmxlLmh1bmRyZWQ6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJl cXVlc3QKc2FtcGxlLmRvdWJsZS5taWxsaW9uOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQg Zm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5kb3VibGUud3JpdGVfbWU6IHBtTG9va3VwRGVz YzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmRvdWJsZS5iaW46 IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxl LmRvdWJsZS5iaW5fY3RyOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBv ZiByZXF1ZXN0CnNhbXBsZS5zdHJpbmcubnVsbDogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50 IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuc3RyaW5nLmh1bGxvOiBwbUxvb2t1cERlc2M6 IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5zdHJpbmcud3JpdGVf bWU6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2Ft cGxlLmFnZ3JlZ2F0ZS5udWxsOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFp biBvZiByZXF1ZXN0CnNhbXBsZS5hZ2dyZWdhdGUuaHVsbG86IHBtTG9va3VwRGVzYzogTm8gUE1D RCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmFnZ3JlZ2F0ZS53cml0ZV9tZTog cG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUu aG9yZGVzLm9uZTogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVx dWVzdApzYW1wbGUuaG9yZGVzLnR3bzogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBk b21haW4gb2YgcmVxdWVzdApzYW1wbGUuYmFkLnVua25vd246IHBtTG9va3VwRGVzYzogTm8gUE1D RCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmJhZC5ub3N1cHBvcnQ6IHBtTG9v a3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmJhZC5u b3ZhbHVlczogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVz dApzYW1wbGUud3JhcC5sb25nOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFp biBvZiByZXF1ZXN0CnNhbXBsZS53cmFwLnVsb25nOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdl bnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS53cmFwLmxvbmdsb25nOiBwbUxvb2t1cERl c2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS53cmFwLnVsb25n bG9uZzogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApz YW1wbGUuZG9kZ2V5LmNvbnRyb2w6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9t YWluIG9mIHJlcXVlc3QKc2FtcGxlLmRvZGdleS52YWx1ZTogcG1Mb29rdXBEZXNjOiBObyBQTUNE IGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZHluYW1pYy5jb3VudGVyOiBwbUxv b2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5keW5h bWljLmRpc2NyZXRlOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiBy ZXF1ZXN0CnNhbXBsZS5keW5hbWljLmluc3RhbnQ6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2Vu dCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmR5bmFtaWMubWV0YS5tZXRyaWM6IHBtTG9v a3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmR5bmFt aWMubWV0YS5wbWRlc2MudHlwZTogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21h aW4gb2YgcmVxdWVzdApzYW1wbGUuZHluYW1pYy5tZXRhLnBtZGVzYy5pbmRvbTogcG1Mb29rdXBE ZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZHluYW1pYy5t ZXRhLnBtZGVzYy5zZW06IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9m IHJlcXVlc3QKc2FtcGxlLmR5bmFtaWMubWV0YS5wbWRlc2MudW5pdHM6IHBtTG9va3VwRGVzYzog Tm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnNjYWxlX3N0ZXAuYnl0 ZXNfdXA6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QK c2FtcGxlLnNjYWxlX3N0ZXAuYnl0ZXNfZG93bjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50 IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuc2NhbGVfc3RlcC5jb3VudF91cDogcG1Mb29r dXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuc2NhbGVf c3RlcC5jb3VudF9kb3duOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBv ZiByZXF1ZXN0CnNhbXBsZS5zY2FsZV9zdGVwLnRpbWVfdXBfc2VjczogcG1Mb29rdXBEZXNjOiBO byBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuc2NhbGVfc3RlcC50aW1l X3VwX25hbm9zZWNzOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiBy ZXF1ZXN0CnNhbXBsZS5zY2FsZV9zdGVwLm5vbmVfdXA6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBh Z2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmNvbnN0X3JhdGUudmFsdWU6IHBtTG9v a3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmNvbnN0 X3JhdGUuZ3JhZGllbnQ6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9m IHJlcXVlc3QKc2FtcGxlLm1hbnkuY291bnQ6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBm b3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLm1hbnkuaW50OiBwbUxvb2t1cERlc2M6IE5vIFBN Q0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5zY3JhbWJsZS52ZXJzaW9uOiBw bUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5z Y3JhbWJsZS5iaW46IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJl cXVlc3QKc2FtcGxlLnBlcmNvbnRleHQucGR1OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQg Zm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5wZXJjb250ZXh0LnJlY3ZfcGR1OiBwbUxvb2t1 cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5wZXJjb250 ZXh0LnhtaXRfcGR1OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiBy ZXF1ZXN0CnNhbXBsZS5wZXJjb250ZXh0LmNvbnRyb2wuY3R4OiBwbUxvb2t1cERlc2M6IE5vIFBN Q0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5wZXJjb250ZXh0LmNvbnRyb2wu YWN0aXZlOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0 CnNhbXBsZS5wZXJjb250ZXh0LmNvbnRyb2wuc3RhcnQ6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBh Z2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLnBlcmNvbnRleHQuY29udHJvbC5lbmQ6 IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxl LmV2ZW50LnJlY29yZHM6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWluIG9m IHJlcXVlc3QKc2FtcGxlLmV2ZW50Lm5vX2luZG9tX3JlY29yZHM6IHBtTG9va3VwRGVzYzogTm8g UE1DRCBhZ2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2FtcGxlLmV2ZW50LnJlc2V0OiBwbUxv b2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5ldmVu dC50eXBlOiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0 CnNhbXBsZS5ldmVudC5wYXJhbV8zMjogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBk b21haW4gb2YgcmVxdWVzdApzYW1wbGUuZXZlbnQucGFyYW1fdTMyOiBwbUxvb2t1cERlc2M6IE5v IFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5ldmVudC5wYXJhbV82NDog cG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUu ZXZlbnQucGFyYW1fdTY0OiBwbUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBv ZiByZXF1ZXN0CnNhbXBsZS5ldmVudC5wYXJhbV9mbG9hdDogcG1Mb29rdXBEZXNjOiBObyBQTUNE IGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzYW1wbGUuZXZlbnQucGFyYW1fZG91YmxlOiBw bUxvb2t1cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNhbXBsZS5l dmVudC5wYXJhbV9zdHJpbmc6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBhZ2VudCBmb3IgZG9tYWlu IG9mIHJlcXVlc3QKc2FtcGxlLmV2ZW50LnBhcmFtX2FnZ3JlZ2F0ZTogcG1Mb29rdXBEZXNjOiBO byBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdAoKPT09IHNvY2tldCBVbml4IGFnZW50 ID09PQpZb3Ugd2lsbCBuZWVkIHRvIGNob29zZSBhbiBhcHByb3ByaWF0ZSBjb25maWd1cmF0aW9u IGZvciBpbnN0YWxsYXRpb24gb2YKdGhlICJzYW1wbGUiIFBlcmZvcm1hbmNlIE1ldHJpY3MgRG9t YWluIEFnZW50IChQTURBKS4KCiAgY29sbGVjdG9yCWNvbGxlY3QgcGVyZm9ybWFuY2Ugc3RhdGlz dGljcyBvbiB0aGlzIHN5c3RlbQogIG1vbml0b3IJYWxsb3cgdGhpcyBzeXN0ZW0gdG8gbW9uaXRv ciBsb2NhbCBhbmQvb3IgcmVtb3RlIHN5c3RlbXMKICBib3RoCQljb2xsZWN0b3IgYW5kIG1vbml0 b3IgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBzeXN0ZW0KClBsZWFzZSBlbnRlciBjKG9sbGVjdG9y KSBvciBtKG9uaXRvcikgb3IgYihvdGgpIFtiXSBib3RoCj09PT09PT09PT09PT09PT09PT09PT0K PSBzYW1wbGUgZGFlbW9uIFBNREEgPQo9PT09PT09PT09PT09PT09PT09PT09ClBNQ0Qgc2hvdWxk IGNvbW11bmljYXRlIHdpdGggdGhlIHNhbXBsZSBkYWVtb24gdmlhIGEgcGlwZSBvciBhIHNvY2tl dD8gW3BpcGVdIHNvY2tldApVc2UgSW50ZXJuZXQsIElQdjYgb3IgVW5peCBkb21haW4gc29ja2V0 cz8gW0ludGVybmV0XSBVbml4ClVuaXggRklGTyBuYW1lPyBUTVAuZmlmbwpJbnN0YWxsaW5nIGZp bGVzIC4uLgpbLi4uaW5zdGFsbCBmaWxlcywgbWFrZSBvdXRwdXQuLi5dClVwZGF0aW5nIHRoZSBQ ZXJmb3JtYW5jZSBNZXRyaWNzIE5hbWUgU3BhY2UgKFBNTlMpIC4uLgpUZXJtaW5hdGUgUE1EQSBp ZiBhbHJlYWR5IGluc3RhbGxlZCAuLi4KWy4uLmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4u XQpVcGRhdGluZyB0aGUgUE1DRCBjb250cm9sIGZpbGUsIGFuZCBub3RpZnlpbmcgUE1DRCAuLi4K Q2hlY2sgc2FtcGxlIG1ldHJpY3MgaGF2ZSBhcHBlYXJlZCAuLi4gMTArIHdhcm5pbmdzLCAxMDAr IG1ldHJpY3MgYW5kIDEyMDArIHZhbHVlcwo9PT09PT09PT09PT09PT09PT09PT09Cj0gc2FtcGxl ZHNvIERTTyBQTURBID0KPT09PT09PT09PT09PT09PT09PT09PQpJbnN0YWxsaW5nIGZpbGVzIC4u LgpbLi4uaW5zdGFsbCBmaWxlcywgbWFrZSBvdXRwdXQuLi5dClVwZGF0aW5nIHRoZSBQZXJmb3Jt YW5jZSBNZXRyaWNzIE5hbWUgU3BhY2UgKFBNTlMpIC4uLgpUZXJtaW5hdGUgUE1EQSBpZiBhbHJl YWR5IGluc3RhbGxlZCAuLi4KWy4uLmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4uXQpVcGRh dGluZyB0aGUgUE1DRCBjb250cm9sIGZpbGUsIGFuZCBub3RpZnlpbmcgUE1DRCAuLi4KQ2hlY2sg c2FtcGxlZHNvIG1ldHJpY3MgaGF2ZSBhcHBlYXJlZCAuLi4gMTArIHdhcm5pbmdzLCAxMDArIG1l dHJpY3MgYW5kIDEyMDArIHZhbHVlcwpzYW1wbGUuZGFya25lc3M6IE5vIHZhbHVlKHMpIGF2YWls YWJsZQpzYW1wbGUubm9pbnN0OiBObyB2YWx1ZShzKSBhdmFpbGFibGUKc2FtcGxlLm5lZWRwcm9m aWxlOiBFeHBsaWNpdCBpbnN0YW5jZSBpZGVudGlmaWVyKHMpIHJlcXVpcmVkCnNhbXBsZS5iYWQu dW5rbm93bjogcG1Mb29rdXBEZXNjOiBVbmtub3duIG9yIGlsbGVnYWwgbWV0cmljIGlkZW50aWZp ZXIKc2FtcGxlLmJhZC5ub3N1cHBvcnQ6IE5vdCBTdXBwb3J0ZWQKc2FtcGxlLmJhZC5ub3ZhbHVl czogTm8gdmFsdWUocykgYXZhaWxhYmxlCnNhbXBsZS5ldmVudC50eXBlOiBObyB2YWx1ZShzKSBh dmFpbGFibGUKc2FtcGxlLmV2ZW50LnBhcmFtXzMyOiBObyB2YWx1ZShzKSBhdmFpbGFibGUKc2Ft cGxlLmV2ZW50LnBhcmFtX3UzMjogTm8gdmFsdWUocykgYXZhaWxhYmxlCnNhbXBsZS5ldmVudC5w YXJhbV82NDogTm8gdmFsdWUocykgYXZhaWxhYmxlCnNhbXBsZS5ldmVudC5wYXJhbV91NjQ6IE5v IHZhbHVlKHMpIGF2YWlsYWJsZQpzYW1wbGUuZXZlbnQucGFyYW1fZmxvYXQ6IE5vIHZhbHVlKHMp IGF2YWlsYWJsZQpzYW1wbGUuZXZlbnQucGFyYW1fZG91YmxlOiBObyB2YWx1ZShzKSBhdmFpbGFi bGUKc2FtcGxlLmV2ZW50LnBhcmFtX3N0cmluZzogTm8gdmFsdWUocykgYXZhaWxhYmxlCnNhbXBs ZS5ldmVudC5wYXJhbV9hZ2dyZWdhdGU6IE5vIHZhbHVlKHMpIGF2YWlsYWJsZQpZb3Ugd2lsbCBu ZWVkIHRvIGNob29zZSBhbiBhcHByb3ByaWF0ZSBjb25maWd1cmF0aW9uIGZvciBpbnN0YWxsYXRp b24gb2YKdGhlICJzYW1wbGUiIFBlcmZvcm1hbmNlIE1ldHJpY3MgRG9tYWluIEFnZW50IChQTURB KS4KCiAgY29sbGVjdG9yCWNvbGxlY3QgcGVyZm9ybWFuY2Ugc3RhdGlzdGljcyBvbiB0aGlzIHN5 c3RlbQogIG1vbml0b3IJYWxsb3cgdGhpcyBzeXN0ZW0gdG8gbW9uaXRvciBsb2NhbCBhbmQvb3Ig cmVtb3RlIHN5c3RlbXMKICBib3RoCQljb2xsZWN0b3IgYW5kIG1vbml0b3IgY29uZmlndXJhdGlv biBmb3IgdGhpcyBzeXN0ZW0KClBsZWFzZSBlbnRlciBjKG9sbGVjdG9yKSBvciBtKG9uaXRvcikg b3IgYihvdGgpIFtiXSBib3RoCj09PT09PT09PT09PT09PT09PT09PT0KPSBzYW1wbGUgZGFlbW9u IFBNREEgPQo9PT09PT09PT09PT09PT09PT09PT09ClBNQ0Qgc2hvdWxkIGNvbW11bmljYXRlIHdp dGggdGhlIHNhbXBsZSBkYWVtb24gdmlhIGEgcGlwZSBvciBhIHNvY2tldD8gW3BpcGVdIHNvY2tl dApVc2UgSW50ZXJuZXQsIElQdjYgb3IgVW5peCBkb21haW4gc29ja2V0cz8gW0ludGVybmV0XSBV bml4ClVuaXggRklGTyBuYW1lPyBUTVAuZmlmbwpJbnN0YWxsaW5nIGZpbGVzIC4uLgpbLi4uaW5z dGFsbCBmaWxlcywgbWFrZSBvdXRwdXQuLi5dClVwZGF0aW5nIHRoZSBQZXJmb3JtYW5jZSBNZXRy aWNzIE5hbWUgU3BhY2UgKFBNTlMpIC4uLgpUZXJtaW5hdGUgUE1EQSBpZiBhbHJlYWR5IGluc3Rh bGxlZCAuLi4KWy4uLmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4uXQpVcGRhdGluZyB0aGUg UE1DRCBjb250cm9sIGZpbGUsIGFuZCBub3RpZnlpbmcgUE1DRCAuLi4KQ2hlY2sgc2FtcGxlIG1l dHJpY3MgaGF2ZSBhcHBlYXJlZCAuLi4gMTArIHdhcm5pbmdzLCAxMDArIG1ldHJpY3MgYW5kIDEy MDArIHZhbHVlcwo9PT09PT09PT09PT09PT09PT09PT09Cj0gc2FtcGxlZHNvIERTTyBQTURBID0K PT09PT09PT09PT09PT09PT09PT09PQpJbnN0YWxsaW5nIGZpbGVzIC4uLgpbLi4uaW5zdGFsbCBm aWxlcywgbWFrZSBvdXRwdXQuLi5dClVwZGF0aW5nIHRoZSBQZXJmb3JtYW5jZSBNZXRyaWNzIE5h bWUgU3BhY2UgKFBNTlMpIC4uLgpUZXJtaW5hdGUgUE1EQSBpZiBhbHJlYWR5IGluc3RhbGxlZCAu Li4KWy4uLmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4uXQpVcGRhdGluZyB0aGUgUE1DRCBj b250cm9sIGZpbGUsIGFuZCBub3RpZnlpbmcgUE1DRCAuLi4KQ2hlY2sgc2FtcGxlZHNvIG1ldHJp Y3MgaGF2ZSBhcHBlYXJlZCAuLi4gMTArIHdhcm5pbmdzLCAxMDArIG1ldHJpY3MgYW5kIDEyMDAr IHZhbHVlcwpzYW1wbGUuZGFya25lc3M6IE5vIHZhbHVlKHMpIGF2YWlsYWJsZQpzYW1wbGUubm9p bnN0OiBObyB2YWx1ZShzKSBhdmFpbGFibGUKc2FtcGxlLm5lZWRwcm9maWxlOiBFeHBsaWNpdCBp bnN0YW5jZSBpZGVudGlmaWVyKHMpIHJlcXVpcmVkCnNhbXBsZS5iYWQudW5rbm93bjogcG1Mb29r dXBEZXNjOiBVbmtub3duIG9yIGlsbGVnYWwgbWV0cmljIGlkZW50aWZpZXIKc2FtcGxlLmJhZC5u b3N1cHBvcnQ6IE5vdCBTdXBwb3J0ZWQKc2FtcGxlLmJhZC5ub3ZhbHVlczogTm8gdmFsdWUocykg YXZhaWxhYmxlCnNhbXBsZS5ldmVudC50eXBlOiBObyB2YWx1ZShzKSBhdmFpbGFibGUKc2FtcGxl LmV2ZW50LnBhcmFtXzMyOiBObyB2YWx1ZShzKSBhdmFpbGFibGUKc2FtcGxlLmV2ZW50LnBhcmFt X3UzMjogTm8gdmFsdWUocykgYXZhaWxhYmxlCnNhbXBsZS5ldmVudC5wYXJhbV82NDogTm8gdmFs dWUocykgYXZhaWxhYmxlCnNhbXBsZS5ldmVudC5wYXJhbV91NjQ6IE5vIHZhbHVlKHMpIGF2YWls YWJsZQpzYW1wbGUuZXZlbnQucGFyYW1fZmxvYXQ6IE5vIHZhbHVlKHMpIGF2YWlsYWJsZQpzYW1w bGUuZXZlbnQucGFyYW1fZG91YmxlOiBObyB2YWx1ZShzKSBhdmFpbGFibGUKc2FtcGxlLmV2ZW50 LnBhcmFtX3N0cmluZzogTm8gdmFsdWUocykgYXZhaWxhYmxlCnNhbXBsZS5ldmVudC5wYXJhbV9h Z2dyZWdhdGU6IE5vIHZhbHVlKHMpIGF2YWlsYWJsZQpDdWxsaW5nIHRoZSBQZXJmb3JtYW5jZSBN ZXRyaWNzIE5hbWUgU3BhY2UgLi4uCnNhbXBsZSAuLi4gZG9uZQpVcGRhdGluZyB0aGUgUE1DRCBj b250cm9sIGZpbGUsIGFuZCBub3RpZnlpbmcgUE1DRCAuLi4KUmVtb3ZpbmcgZmlsZXMgLi4uCkNo ZWNrIHNhbXBsZSBtZXRyaWNzIGhhdmUgZ29uZSBhd2F5IC4uLiBPSwpDdWxsaW5nIHRoZSBQZXJm b3JtYW5jZSBNZXRyaWNzIE5hbWUgU3BhY2UgLi4uCnNhbXBsZWRzbyAuLi4gZG9uZQpVcGRhdGlu ZyB0aGUgUE1DRCBjb250cm9sIGZpbGUsIGFuZCBub3RpZnlpbmcgUE1DRCAuLi4KUmVtb3Zpbmcg ZmlsZXMgLi4uCkNoZWNrIHNhbXBsZWRzbyBtZXRyaWNzIGhhdmUgZ29uZSBhd2F5IC4uLiBPSwpF cnJvcjogc2FtcGxlOiBVbmtub3duIG1ldHJpYyBuYW1lCgpSZWluc3RhbGwgUE1EQSAuLi4KWW91 IHdpbGwgbmVlZCB0byBjaG9vc2UgYW4gYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbiBmb3IgaW5z dGFsbGF0aW9uIG9mCnRoZSAic2FtcGxlIiBQZXJmb3JtYW5jZSBNZXRyaWNzIERvbWFpbiBBZ2Vu dCAoUE1EQSkuCgogIGNvbGxlY3Rvcgljb2xsZWN0IHBlcmZvcm1hbmNlIHN0YXRpc3RpY3Mgb24g dGhpcyBzeXN0ZW0KICBtb25pdG9yCWFsbG93IHRoaXMgc3lzdGVtIHRvIG1vbml0b3IgbG9jYWwg YW5kL29yIHJlbW90ZSBzeXN0ZW1zCiAgYm90aAkJY29sbGVjdG9yIGFuZCBtb25pdG9yIGNvbmZp Z3VyYXRpb24gZm9yIHRoaXMgc3lzdGVtCgpQbGVhc2UgZW50ZXIgYyhvbGxlY3Rvcikgb3IgbShv bml0b3IpIG9yIGIob3RoKSBbYl0gPT09PT09PT09PT09PT09PT09PT09PQo9IHNhbXBsZSBkYWVt b24gUE1EQSA9Cj09PT09PT09PT09PT09PT09PT09PT0KSW5zdGFsbGluZyBmaWxlcyAuLi4KWy4u Lmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4uXQpVcGRhdGluZyB0aGUgUGVyZm9ybWFuY2Ug TWV0cmljcyBOYW1lIFNwYWNlIChQTU5TKSAuLi4KVGVybWluYXRlIFBNREEgaWYgYWxyZWFkeSBp bnN0YWxsZWQgLi4uClsuLi5pbnN0YWxsIGZpbGVzLCBtYWtlIG91dHB1dC4uLl0KVXBkYXRpbmcg dGhlIFBNQ0QgY29udHJvbCBmaWxlLCBhbmQgbm90aWZ5aW5nIFBNQ0QgLi4uCkNoZWNrIHNhbXBs ZSBtZXRyaWNzIGhhdmUgYXBwZWFyZWQgLi4uIDEwKyB3YXJuaW5ncywgMTAwKyBtZXRyaWNzIGFu ZCAxMjAwKyB2YWx1ZXMKPT09PT09PT09PT09PT09PT09PT09PQo9IHNhbXBsZWRzbyBEU08gUE1E QSA9Cj09PT09PT09PT09PT09PT09PT09PT0KSW5zdGFsbGluZyBmaWxlcyAuLi4KWy4uLmluc3Rh bGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4uXQpVcGRhdGluZyB0aGUgUGVyZm9ybWFuY2UgTWV0cmlj cyBOYW1lIFNwYWNlIChQTU5TKSAuLi4KVGVybWluYXRlIFBNREEgaWYgYWxyZWFkeSBpbnN0YWxs ZWQgLi4uClsuLi5pbnN0YWxsIGZpbGVzLCBtYWtlIG91dHB1dC4uLl0KVXBkYXRpbmcgdGhlIFBN Q0QgY29udHJvbCBmaWxlLCBhbmQgbm90aWZ5aW5nIFBNQ0QgLi4uCkNoZWNrIHNhbXBsZWRzbyBt ZXRyaWNzIGhhdmUgYXBwZWFyZWQgLi4uIDEwKyB3YXJuaW5ncywgMTAwKyBtZXRyaWNzIGFuZCAx MjAwKyB2YWx1ZXMK ------=_Part_6256035_962254098.1404891527699 Content-Type: application/octet-stream; name=110.out.bad Content-Disposition: attachment; filename=110.out.bad Content-Transfer-Encoding: base64 UUEgb3V0cHV0IGNyZWF0ZWQgYnkgMTEwCgo9PT0gcGlwZSBkYWVtb24gYWdlbnQgPT09CkN1bGxp bmcgdGhlIFBlcmZvcm1hbmNlIE1ldHJpY3MgTmFtZSBTcGFjZSAuLi4Kc2ltcGxlIC4uLiBub3Qg Zm91bmQgaW4gTmFtZSBTcGFjZSwgdGhpcyBpcyBPSwpVcGRhdGluZyB0aGUgUE1DRCBjb250cm9s IGZpbGUsIGFuZCBub3RpZnlpbmcgUE1DRCAuLi4KUmVtb3ZpbmcgZmlsZXMgLi4uCkNoZWNrIHNp bXBsZSBtZXRyaWNzIGhhdmUgZ29uZSBhd2F5IC4uLiBPSwpZb3Ugd2lsbCBuZWVkIHRvIGNob29z ZSBhbiBhcHByb3ByaWF0ZSBjb25maWd1cmF0aW9uIGZvciBpbnN0YWxsYXRpb24gb2YKdGhlICJz aW1wbGUiIFBlcmZvcm1hbmNlIE1ldHJpY3MgRG9tYWluIEFnZW50IChQTURBKS4KCiAgY29sbGVj dG9yCWNvbGxlY3QgcGVyZm9ybWFuY2Ugc3RhdGlzdGljcyBvbiB0aGlzIHN5c3RlbQogIG1vbml0 b3IJYWxsb3cgdGhpcyBzeXN0ZW0gdG8gbW9uaXRvciBsb2NhbCBhbmQvb3IgcmVtb3RlIHN5c3Rl bXMKICBib3RoCQljb2xsZWN0b3IgYW5kIG1vbml0b3IgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBz eXN0ZW0KClBsZWFzZSBlbnRlciBjKG9sbGVjdG9yKSBvciBtKG9uaXRvcikgb3IgYihvdGgpIFti XSBib3RoCkluc3RhbGwgc2ltcGxlIGFzIGEgZGFlbW9uIG9yIGRzbyBhZ2VudD8gW2RhZW1vbl0g ZGFlbW9uClBNQ0Qgc2hvdWxkIGNvbW11bmljYXRlIHdpdGggdGhlIHNpbXBsZSBkYWVtb24gdmlh IGEgcGlwZSBvciBhIHNvY2tldD8gW3BpcGVdIHBpcGUKSW5zdGFsbGluZyBmaWxlcyAuLi4KWy4u Lmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0cHV0Li4uXQpVcGRhdGluZyB0aGUgUGVyZm9ybWFuY2Ug TWV0cmljcyBOYW1lIFNwYWNlIChQTU5TKSAuLi4KVGVybWluYXRlIFBNREEgaWYgYWxyZWFkeSBp bnN0YWxsZWQgLi4uClsuLi5pbnN0YWxsIGZpbGVzLCBtYWtlIG91dHB1dC4uLl0KVXBkYXRpbmcg dGhlIFBNQ0QgY29udHJvbCBmaWxlLCBhbmQgbm90aWZ5aW5nIFBNQ0QgLi4uCkNoZWNrIHNpbXBs ZSBtZXRyaWNzIGhhdmUgYXBwZWFyZWQgLi4uIDUgbWV0cmljcyBhbmQgOSB2YWx1ZXMKCj09PSBV bml4IHNvY2tldCBkYWVtb24gYWdlbnQgPT09CkN1bGxpbmcgdGhlIFBlcmZvcm1hbmNlIE1ldHJp Y3MgTmFtZSBTcGFjZSAuLi4Kc2ltcGxlIC4uLiBkb25lClVwZGF0aW5nIHRoZSBQTUNEIGNvbnRy b2wgZmlsZSwgYW5kIG5vdGlmeWluZyBQTUNEIC4uLgpSZW1vdmluZyBmaWxlcyAuLi4KQ2hlY2sg c2ltcGxlIG1ldHJpY3MgaGF2ZSBnb25lIGF3YXkgLi4uIE9LCllvdSB3aWxsIG5lZWQgdG8gY2hv b3NlIGFuIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gZm9yIGluc3RhbGxhdGlvbiBvZgp0aGUg InNpbXBsZSIgUGVyZm9ybWFuY2UgTWV0cmljcyBEb21haW4gQWdlbnQgKFBNREEpLgoKICBjb2xs ZWN0b3IJY29sbGVjdCBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzIG9uIHRoaXMgc3lzdGVtCiAgbW9u aXRvcglhbGxvdyB0aGlzIHN5c3RlbSB0byBtb25pdG9yIGxvY2FsIGFuZC9vciByZW1vdGUgc3lz dGVtcwogIGJvdGgJCWNvbGxlY3RvciBhbmQgbW9uaXRvciBjb25maWd1cmF0aW9uIGZvciB0aGlz IHN5c3RlbQoKUGxlYXNlIGVudGVyIGMob2xsZWN0b3IpIG9yIG0ob25pdG9yKSBvciBiKG90aCkg W2JdIGJvdGgKSW5zdGFsbCBzaW1wbGUgYXMgYSBkYWVtb24gb3IgZHNvIGFnZW50PyBbZGFlbW9u XSBkYWVtb24KUE1DRCBzaG91bGQgY29tbXVuaWNhdGUgd2l0aCB0aGUgc2ltcGxlIGRhZW1vbiB2 aWEgYSBwaXBlIG9yIGEgc29ja2V0PyBbcGlwZV0gc29ja2V0ClVzZSBJbnRlcm5ldCwgSVB2NiBv ciBVbml4IGRvbWFpbiBzb2NrZXRzPyBbSW50ZXJuZXRdIFVuaXgKVW5peCBGSUZPIG5hbWU/IFRN UC5maWZvLTEKSW5zdGFsbGluZyBmaWxlcyAuLi4KWy4uLmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0 cHV0Li4uXQpVcGRhdGluZyB0aGUgUGVyZm9ybWFuY2UgTWV0cmljcyBOYW1lIFNwYWNlIChQTU5T KSAuLi4KVGVybWluYXRlIFBNREEgaWYgYWxyZWFkeSBpbnN0YWxsZWQgLi4uClsuLi5pbnN0YWxs IGZpbGVzLCBtYWtlIG91dHB1dC4uLl0KVXBkYXRpbmcgdGhlIFBNQ0QgY29udHJvbCBmaWxlLCBh bmQgbm90aWZ5aW5nIFBNQ0QgLi4uCkNoZWNrIHNpbXBsZSBtZXRyaWNzIGhhdmUgYXBwZWFyZWQg Li4uIDUgbWV0cmljcyBhbmQgOSB2YWx1ZXMKWW91IHdpbGwgbmVlZCB0byBjaG9vc2UgYW4gYXBw cm9wcmlhdGUgY29uZmlndXJhdGlvbiBmb3IgaW5zdGFsbGF0aW9uIG9mCnRoZSAic2ltcGxlIiBQ ZXJmb3JtYW5jZSBNZXRyaWNzIERvbWFpbiBBZ2VudCAoUE1EQSkuCgogIGNvbGxlY3Rvcgljb2xs ZWN0IHBlcmZvcm1hbmNlIHN0YXRpc3RpY3Mgb24gdGhpcyBzeXN0ZW0KICBtb25pdG9yCWFsbG93 IHRoaXMgc3lzdGVtIHRvIG1vbml0b3IgbG9jYWwgYW5kL29yIHJlbW90ZSBzeXN0ZW1zCiAgYm90 aAkJY29sbGVjdG9yIGFuZCBtb25pdG9yIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgc3lzdGVtCgpQ bGVhc2UgZW50ZXIgYyhvbGxlY3Rvcikgb3IgbShvbml0b3IpIG9yIGIob3RoKSBbYl0gYm90aApJ bnN0YWxsIHNpbXBsZSBhcyBhIGRhZW1vbiBvciBkc28gYWdlbnQ/IFtkYWVtb25dIGRhZW1vbgpQ TUNEIHNob3VsZCBjb21tdW5pY2F0ZSB3aXRoIHRoZSBzaW1wbGUgZGFlbW9uIHZpYSBhIHBpcGUg b3IgYSBzb2NrZXQ/IFtwaXBlXSBzb2NrZXQKVXNlIEludGVybmV0LCBJUHY2IG9yIFVuaXggZG9t YWluIHNvY2tldHM/IFtJbnRlcm5ldF0gVW5peApVbml4IEZJRk8gbmFtZT8gVE1QLmZpZm8tMgpJ bnN0YWxsaW5nIGZpbGVzIC4uLgpbLi4uaW5zdGFsbCBmaWxlcywgbWFrZSBvdXRwdXQuLi5dClVw ZGF0aW5nIHRoZSBQZXJmb3JtYW5jZSBNZXRyaWNzIE5hbWUgU3BhY2UgKFBNTlMpIC4uLgpUZXJt aW5hdGUgUE1EQSBpZiBhbHJlYWR5IGluc3RhbGxlZCAuLi4KWy4uLmluc3RhbGwgZmlsZXMsIG1h a2Ugb3V0cHV0Li4uXQpVcGRhdGluZyB0aGUgUE1DRCBjb250cm9sIGZpbGUsIGFuZCBub3RpZnlp bmcgUE1DRCAuLi4KQ2hlY2sgc2ltcGxlIG1ldHJpY3MgaGF2ZSBhcHBlYXJlZCAuLi4gNSBtZXRy aWNzIGFuZCA5IHZhbHVlcwoKPT09IEludGVybmV0IHNvY2tldCBkYWVtb24gYWdlbnQgPT09CkN1 bGxpbmcgdGhlIFBlcmZvcm1hbmNlIE1ldHJpY3MgTmFtZSBTcGFjZSAuLi4Kc2ltcGxlIC4uLiBk b25lClVwZGF0aW5nIHRoZSBQTUNEIGNvbnRyb2wgZmlsZSwgYW5kIG5vdGlmeWluZyBQTUNEIC4u LgpSZW1vdmluZyBmaWxlcyAuLi4KQ2hlY2sgc2ltcGxlIG1ldHJpY3MgaGF2ZSBnb25lIGF3YXkg Li4uIE9LCllvdSB3aWxsIG5lZWQgdG8gY2hvb3NlIGFuIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRp b24gZm9yIGluc3RhbGxhdGlvbiBvZgp0aGUgInNpbXBsZSIgUGVyZm9ybWFuY2UgTWV0cmljcyBE b21haW4gQWdlbnQgKFBNREEpLgoKICBjb2xsZWN0b3IJY29sbGVjdCBwZXJmb3JtYW5jZSBzdGF0 aXN0aWNzIG9uIHRoaXMgc3lzdGVtCiAgbW9uaXRvcglhbGxvdyB0aGlzIHN5c3RlbSB0byBtb25p dG9yIGxvY2FsIGFuZC9vciByZW1vdGUgc3lzdGVtcwogIGJvdGgJCWNvbGxlY3RvciBhbmQgbW9u aXRvciBjb25maWd1cmF0aW9uIGZvciB0aGlzIHN5c3RlbQoKUGxlYXNlIGVudGVyIGMob2xsZWN0 b3IpIG9yIG0ob25pdG9yKSBvciBiKG90aCkgW2JdIGJvdGgKSW5zdGFsbCBzaW1wbGUgYXMgYSBk YWVtb24gb3IgZHNvIGFnZW50PyBbZGFlbW9uXSBkYWVtb24KUE1DRCBzaG91bGQgY29tbXVuaWNh dGUgd2l0aCB0aGUgc2ltcGxlIGRhZW1vbiB2aWEgYSBwaXBlIG9yIGEgc29ja2V0PyBbcGlwZV0g c29ja2V0ClVzZSBJbnRlcm5ldCwgSVB2NiBvciBVbml4IGRvbWFpbiBzb2NrZXRzPyBbSW50ZXJu ZXRdIEludGVybmV0CkludGVybmV0IHBvcnQgbnVtYmVyIG9yIHNlcnZpY2UgbmFtZT8gWzIwNzhd IFBPUlQxCkluc3RhbGxpbmcgZmlsZXMgLi4uClsuLi5pbnN0YWxsIGZpbGVzLCBtYWtlIG91dHB1 dC4uLl0KVXBkYXRpbmcgdGhlIFBlcmZvcm1hbmNlIE1ldHJpY3MgTmFtZSBTcGFjZSAoUE1OUykg Li4uClRlcm1pbmF0ZSBQTURBIGlmIGFscmVhZHkgaW5zdGFsbGVkIC4uLgpbLi4uaW5zdGFsbCBm aWxlcywgbWFrZSBvdXRwdXQuLi5dClVwZGF0aW5nIHRoZSBQTUNEIGNvbnRyb2wgZmlsZSwgYW5k IG5vdGlmeWluZyBQTUNEIC4uLgpDaGVjayBzaW1wbGUgbWV0cmljcyBoYXZlIGFwcGVhcmVkIC4u LiA1IHdhcm5pbmdzLCA1IG1ldHJpY3MgYW5kIDAgdmFsdWVzCllvdSB3aWxsIG5lZWQgdG8gY2hv b3NlIGFuIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gZm9yIGluc3RhbGxhdGlvbiBvZgp0aGUg InNpbXBsZSIgUGVyZm9ybWFuY2UgTWV0cmljcyBEb21haW4gQWdlbnQgKFBNREEpLgoKICBjb2xs ZWN0b3IJY29sbGVjdCBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzIG9uIHRoaXMgc3lzdGVtCiAgbW9u aXRvcglhbGxvdyB0aGlzIHN5c3RlbSB0byBtb25pdG9yIGxvY2FsIGFuZC9vciByZW1vdGUgc3lz dGVtcwogIGJvdGgJCWNvbGxlY3RvciBhbmQgbW9uaXRvciBjb25maWd1cmF0aW9uIGZvciB0aGlz IHN5c3RlbQoKUGxlYXNlIGVudGVyIGMob2xsZWN0b3IpIG9yIG0ob25pdG9yKSBvciBiKG90aCkg W2JdIGJvdGgKSW5zdGFsbCBzaW1wbGUgYXMgYSBkYWVtb24gb3IgZHNvIGFnZW50PyBbZGFlbW9u XSBkYWVtb24KUE1DRCBzaG91bGQgY29tbXVuaWNhdGUgd2l0aCB0aGUgc2ltcGxlIGRhZW1vbiB2 aWEgYSBwaXBlIG9yIGEgc29ja2V0PyBbcGlwZV0gc29ja2V0ClVzZSBJbnRlcm5ldCwgSVB2NiBv ciBVbml4IGRvbWFpbiBzb2NrZXRzPyBbSW50ZXJuZXRdIEludGVybmV0CkludGVybmV0IHBvcnQg bnVtYmVyIG9yIHNlcnZpY2UgbmFtZT8gWzIwNzhdIFBPUlQyCkluc3RhbGxpbmcgZmlsZXMgLi4u ClsuLi5pbnN0YWxsIGZpbGVzLCBtYWtlIG91dHB1dC4uLl0KVXBkYXRpbmcgdGhlIFBlcmZvcm1h bmNlIE1ldHJpY3MgTmFtZSBTcGFjZSAoUE1OUykgLi4uClRlcm1pbmF0ZSBQTURBIGlmIGFscmVh ZHkgaW5zdGFsbGVkIC4uLgpbLi4uaW5zdGFsbCBmaWxlcywgbWFrZSBvdXRwdXQuLi5dClVwZGF0 aW5nIHRoZSBQTUNEIGNvbnRyb2wgZmlsZSwgYW5kIG5vdGlmeWluZyBQTUNEIC4uLgpDaGVjayBz aW1wbGUgbWV0cmljcyBoYXZlIGFwcGVhcmVkIC4uLiA1IHdhcm5pbmdzLCA1IG1ldHJpY3MgYW5k IDAgdmFsdWVzCnNpbXBsZS5udW1mZXRjaDogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZv ciBkb21haW4gb2YgcmVxdWVzdApzaW1wbGUuY29sb3I6IHBtTG9va3VwRGVzYzogTm8gUE1DRCBh Z2VudCBmb3IgZG9tYWluIG9mIHJlcXVlc3QKc2ltcGxlLm5vdzogcG1Mb29rdXBEZXNjOiBObyBQ TUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdApzaW1wbGUudGltZS51c2VyOiBwbUxvb2t1 cERlc2M6IE5vIFBNQ0QgYWdlbnQgZm9yIGRvbWFpbiBvZiByZXF1ZXN0CnNpbXBsZS50aW1lLnN5 czogcG1Mb29rdXBEZXNjOiBObyBQTUNEIGFnZW50IGZvciBkb21haW4gb2YgcmVxdWVzdAoKPT09 IGRzbyBhZ2VudCA9PT0KQ3VsbGluZyB0aGUgUGVyZm9ybWFuY2UgTWV0cmljcyBOYW1lIFNwYWNl IC4uLgpzaW1wbGUgLi4uIGRvbmUKVXBkYXRpbmcgdGhlIFBNQ0QgY29udHJvbCBmaWxlLCBhbmQg bm90aWZ5aW5nIFBNQ0QgLi4uClJlbW92aW5nIGZpbGVzIC4uLgpDaGVjayBzaW1wbGUgbWV0cmlj cyBoYXZlIGdvbmUgYXdheSAuLi4gT0sKWW91IHdpbGwgbmVlZCB0byBjaG9vc2UgYW4gYXBwcm9w cmlhdGUgY29uZmlndXJhdGlvbiBmb3IgaW5zdGFsbGF0aW9uIG9mCnRoZSAic2ltcGxlIiBQZXJm b3JtYW5jZSBNZXRyaWNzIERvbWFpbiBBZ2VudCAoUE1EQSkuCgogIGNvbGxlY3Rvcgljb2xsZWN0 IHBlcmZvcm1hbmNlIHN0YXRpc3RpY3Mgb24gdGhpcyBzeXN0ZW0KICBtb25pdG9yCWFsbG93IHRo aXMgc3lzdGVtIHRvIG1vbml0b3IgbG9jYWwgYW5kL29yIHJlbW90ZSBzeXN0ZW1zCiAgYm90aAkJ Y29sbGVjdG9yIGFuZCBtb25pdG9yIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgc3lzdGVtCgpQbGVh c2UgZW50ZXIgYyhvbGxlY3Rvcikgb3IgbShvbml0b3IpIG9yIGIob3RoKSBbYl0gYm90aApJbnN0 YWxsIHNpbXBsZSBhcyBhIGRhZW1vbiBvciBkc28gYWdlbnQ/IFtkYWVtb25dIGRzbwpJbnN0YWxs aW5nIGZpbGVzIC4uLgpbLi4uaW5zdGFsbCBmaWxlcywgbWFrZSBvdXRwdXQuLi5dClVwZGF0aW5n IHRoZSBQZXJmb3JtYW5jZSBNZXRyaWNzIE5hbWUgU3BhY2UgKFBNTlMpIC4uLgpUZXJtaW5hdGUg UE1EQSBpZiBhbHJlYWR5IGluc3RhbGxlZCAuLi4KWy4uLmluc3RhbGwgZmlsZXMsIG1ha2Ugb3V0 cHV0Li4uXQpVcGRhdGluZyB0aGUgUE1DRCBjb250cm9sIGZpbGUsIGFuZCBub3RpZnlpbmcgUE1D RCAuLi4KQ2hlY2sgc2ltcGxlIG1ldHJpY3MgaGF2ZSBhcHBlYXJlZCAuLi4gNSBtZXRyaWNzIGFu ZCA5IHZhbHVlcwpZb3Ugd2lsbCBuZWVkIHRvIGNob29zZSBhbiBhcHByb3ByaWF0ZSBjb25maWd1 cmF0aW9uIGZvciBpbnN0YWxsYXRpb24gb2YKdGhlICJzaW1wbGUiIFBlcmZvcm1hbmNlIE1ldHJp Y3MgRG9tYWluIEFnZW50IChQTURBKS4KCiAgY29sbGVjdG9yCWNvbGxlY3QgcGVyZm9ybWFuY2Ug c3RhdGlzdGljcyBvbiB0aGlzIHN5c3RlbQogIG1vbml0b3IJYWxsb3cgdGhpcyBzeXN0ZW0gdG8g bW9uaXRvciBsb2NhbCBhbmQvb3IgcmVtb3RlIHN5c3RlbXMKICBib3RoCQljb2xsZWN0b3IgYW5k IG1vbml0b3IgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBzeXN0ZW0KClBsZWFzZSBlbnRlciBjKG9s bGVjdG9yKSBvciBtKG9uaXRvcikgb3IgYihvdGgpIFtiXSBib3RoCkluc3RhbGwgc2ltcGxlIGFz IGEgZGFlbW9uIG9yIGRzbyBhZ2VudD8gW2RhZW1vbl0gZHNvCkluc3RhbGxpbmcgZmlsZXMgLi4u ClsuLi5pbnN0YWxsIGZpbGVzLCBtYWtlIG91dHB1dC4uLl0KVXBkYXRpbmcgdGhlIFBlcmZvcm1h bmNlIE1ldHJpY3MgTmFtZSBTcGFjZSAoUE1OUykgLi4uClRlcm1pbmF0ZSBQTURBIGlmIGFscmVh ZHkgaW5zdGFsbGVkIC4uLgpbLi4uaW5zdGFsbCBmaWxlcywgbWFrZSBvdXRwdXQuLi5dClVwZGF0 aW5nIHRoZSBQTUNEIGNvbnRyb2wgZmlsZSwgYW5kIG5vdGlmeWluZyBQTUNEIC4uLgpDaGVjayBz aW1wbGUgbWV0cmljcyBoYXZlIGFwcGVhcmVkIC4uLiA1IG1ldHJpY3MgYW5kIDkgdmFsdWVzCkN1 bGxpbmcgdGhlIFBlcmZvcm1hbmNlIE1ldHJpY3MgTmFtZSBTcGFjZSAuLi4Kc2ltcGxlIC4uLiBk b25lClVwZGF0aW5nIHRoZSBQTUNEIGNvbnRyb2wgZmlsZSwgYW5kIG5vdGlmeWluZyBQTUNEIC4u LgpSZW1vdmluZyBmaWxlcyAuLi4KQ2hlY2sgc2ltcGxlIG1ldHJpY3MgaGF2ZSBnb25lIGF3YXkg Li4uIE9LCg== ------=_Part_6256035_962254098.1404891527699 Content-Type: application/octet-stream; name=067.out.bad Content-Disposition: attachment; filename=067.out.bad Content-Transfer-Encoding: base64 UUEgb3V0cHV0IGNyZWF0ZWQgYnkgMDY3Cgpwb3J0IDIyMjIgc2hvdWxkIGJlIGxpc3RlbmluZwou Li4gKi4yMjIyIC4uLiBMSVNURU4KCldhaXRpbmcgZm9yIHBtY2QgdG8gdGVybWluYXRlIC4uLgpT dGFydGluZyBwbWNkIC4uLiAKU3RhcnRpbmcgcG1sb2dnZXIgLi4uIAoKCnBtZGEgbG9nIChzaG91 bGQgaGF2ZSB0ZXJtaW5hdGVkKToKTG9nIGZvciBwbWRhc2h1dGRvd24gb24gSE9TVCAuLi4KCltX ZWQgSnVsICA5IDE3OjAxOjIzXSBwbWRhc2h1dGRvd24oMTk3MTEpIENyaXRpY2FsOiBfX3BtZGFT ZXR1cFBEVTogUE1EQSBwbWRhc2h1dGRvd24gc2VuZCBjcmVkczogSVBDIHByb3RvY29sIGZhaWx1 cmUKcG1kYXNodXRkb3duIHRlcm1pbmF0ZWQKCkxvZyBmaW5pc2hlZCAuLi4KCkxvZyBmb3IgcG1j ZCBvbiBIT1NUIHN0YXJ0ZWQgREFURQpwbWNkOiBFcnJvciBjb25uZWN0aW5nIHRvICJ0ZXN0IiBh Z2VudCA6IE9wZXJhdGlvbiBub3cgaW4gcHJvZ3Jlc3MKYWN0aXZlIGFnZW50IGRvbSAgIHBpZCAg aW4gb3V0IHZlciBwcm90b2NvbCBwYXJhbWV0ZXJzCj09PT09PT09PT09PSA9PT0gPT09PT0gPT09 ID09PSA9PT0gPT09PT09PT0gPT09PT09PT09PQpbT1NdICAgICAgICAgID8/ICAgICAgICAgICAg ICAgICAyIGRzbyBpOj8gIGxpYj1bT1NdcG1kYS4kRFNPX1NVRkZJWCBlbnRyeT1bT1NdX2luaXQK cG1jZCAgICAgICAgICAgMiAgICAgICAgICAgICAgICAgMiBkc28gaTo1ICBsaWI9Li4ucG1kYV9w bWNkLiREU09fU1VGRklYIGVudHJ5PXBtY2RfaW5pdApIb3N0IGFjY2VzcyBsaXN0IGVtcHR5OiBh Y2Nlc3MgY29udHJvbCB0dXJuZWQgb2ZmCnBtY2Q6IFBJRCA9IFBJRApwbWNkIHJlcXVlc3QgcG9y dChzKToKICBzdHMgZmQgICBwb3J0ICBmYW1pbHkgYWRkcmVzcwogID09PSA9PT09ID09PT09ID09 PT09PSA9PT09PT09Cm9rIEZEIDQ0MzIxIGluZXQgSU5BRERSX0FOWQpvayBGRCA0NDMyMSBpcHY2 IElOQUREUl9BTlkKW0RBVEVdIHBtY2QoUElEKSBJbmZvOgpwbWNkIFJFU1RBUlRFRCBhdCBEQVRF CkN1cnJlbnQgUE1DRCBjbGllbnRzIC4uLgpSZXN0YXJ0aW5nIHBtY2QKV2FpdGluZyBmb3IgcG1j ZCB0byB0ZXJtaW5hdGUgLi4uClN0YXJ0aW5nIHBtY2QgLi4uIApTdGFydGluZyBwbWxvZ2dlciAu Li4gCg== ------=_Part_6256035_962254098.1404891527699-- From chandana@desilva.id.au Wed Jul 9 03:30:23 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 91AE67F3F for ; Wed, 9 Jul 2014 03:30:23 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 841078F8078 for ; Wed, 9 Jul 2014 01:30:20 -0700 (PDT) X-ASG-Debug-ID: 1404894618-04cbb0653736c8c0001-S8gJnT Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) by cuda.sgi.com with ESMTP id mMqwgVUQ2Hu6ynY1 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 09 Jul 2014 01:30:19 -0700 (PDT) X-Barracuda-Envelope-From: chandana@desilva.id.au X-Barracuda-Apparent-Source-IP: 204.13.248.66 Received: from ec2-54-252-74-219.ap-southeast-2.compute.amazonaws.com ([54.252.74.219] helo=mail.desilva.id.au) by mho-01-ewr.mailhop.org with esmtpa (Exim 4.72) (envelope-from ) id 1X4nGc-000JiQ-EH; Wed, 09 Jul 2014 08:30:18 +0000 Received: from [192.168.1.135] (d211-31-207-129.sun802.vic.optusnet.com.au [211.31.207.129]) by mail.desilva.id.au (Postfix) with ESMTPSA id 7D253252DB; Wed, 9 Jul 2014 08:30:16 +0000 (UTC) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 54.252.74.219 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX188R3Gkq06pguhy3tfBzKaCi1WIXTt23NA= Message-ID: <53BCFD97.9060101@desilva.id.au> Date: Wed, 09 Jul 2014 18:30:15 +1000 From: Chandana De Silva Reply-To: chandana@desilva.id.au User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Nathan Scott , Dave Brolley CC: pcp@oss.sgi.com Subject: Re: [pcp] memcache pmda References: <53BCE301.9050408@desilva.id.au> <785523043.6250592.1404890623607.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: [pcp] memcache pmda In-Reply-To: <785523043.6250592.1404890623607.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mho-03-ewr.mailhop.org[204.13.248.66] X-Barracuda-Start-Time: 1404894618 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7364 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- I am game On 09/07/14 17:23, Nathan Scott wrote: > ps: this PMDA needs a QA test, if anyone is game... (comparing netcat > results to pmprobe, if a local memcache server can be found, would be > one possible approach there) From fche@redhat.com Wed Jul 9 10:03:55 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 2D4D47F3F for ; Wed, 9 Jul 2014 10:03:55 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id C0E1FAC004 for ; Wed, 9 Jul 2014 08:03:51 -0700 (PDT) X-ASG-Debug-ID: 1404918229-04bdf056688c2160001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 8ugMBH16qfZNslD1 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 09 Jul 2014 08:03:50 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s69F3mDN026106 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 9 Jul 2014 11:03:49 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s69F3lVi004036; Wed, 9 Jul 2014 11:03:48 -0400 Received: by fche.csb (Postfix, from userid 2569) id 81496584EC; Wed, 9 Jul 2014 11:03:47 -0400 (EDT) To: Nathan Scott Cc: Dave Brolley , pcp@oss.sgi.com Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. References: <20140619194444.3B03D58015@fche.csb> <1063089485.33910956.1403758262805.JavaMail.zimbra@redhat.com> <53AC35B8.3000802@redhat.com> <1193390011.34470957.1403829231937.JavaMail.zimbra@redhat.com> <1374649635.181830.1404090114319.JavaMail.zimbra@redhat.com> <53BC0D60.4000007@redhat.com> <53BC5248.5050100@redhat.com> <256416707.6217487.1404883930815.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. From: fche@redhat.com (Frank Ch. Eigler) Date: Wed, 09 Jul 2014 11:03:47 -0400 In-Reply-To: <256416707.6217487.1404883930815.JavaMail.zimbra@redhat.com> (Nathan Scott's message of "Wed, 9 Jul 2014 01:32:10 -0400 (EDT)") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404918230 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 nathans wrote: > [...] >> > There is no point using bitfields for the resolve flag, and reserving >> > space for future bits, as the top version number will have to serve as >> > sufficient discriminator between all future pmDiscoveryOption struct >> > variants. >> True > > Hmm, not quite true re flags... > >> - I thought that Nathan was perhaps trying to avoid changing the >> size of the struct when new boolean options are added > > That's right. If new flags are added with "default-to-off" semantics > (i.e. zero meaning off), then new behaviour can be safely introduced > with no version change. "no version (code) change" for actual changes is not per se desirable. Clients are expected to compile against the then-current pmapi.h header which contains the then-current version code as a macro. The clients would not hard-code "1" or any other number. Client source would not need to be modified even if the post-version# fields were completely scrambled from version to version. > This extension-by-flag concept is used fairly often for extending some > kernel APIs without adding new syscalls, for example; flags to open(2) > and so on, which do come along from time to time - see the man page > there, it tends to document "since kernel version X.Y" for such flags. > We can certainly do the same here. The open(2) syscall is not a good example. It operates under unusual constraints (passing only a few parameters total), and flags bits are usually orthogonal. A much closer analogy to what you're building out here is ioctl(2), and few people would point to that as anything but a necessary evil. >> > All places in libpcp that now accept a discoveryOptions struct must at >> > minimum assert that ->version == 1, lest an app built against a future >> > incompatible version is run against this one, leading to a crash. > > Nonsense. Structure additions must only be appended, and existing > fields must forever be honoured - so the crash scenario described > cannot happen (nor do version checks need to be done at this stage, > the first version is always valid, forever). If you choose to invent such "forever" constraints (and add a few more necessary ones, such as having libpcp never return or write-to such structs, and possibly asserting these padding-reserved bits == 0), indeed somewhat less protection may be sufficient. On the other hand, if you wish to tie your own hands less, and protect users more, you could add the two-instruction version-number check. .... or we could back away from this variant-struct method of papering over ABI/API changes, and go for the simple and type-safe: pmDiscoverServices(...) # the pcp 3.9.0 API/ABI pmDiscoverServices2(...) # the impending one, with "resolve?" and interruptability parameters pmDiscoverServices3(...) # a future one, unconstrained to be a strict superset (There's plenty of precedent for this, whether in the realm of unix syscalls, or the recent __pmLogPutResult* one.) - FChE From fche@redhat.com Wed Jul 9 10:17:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id D34E47F3F for ; Wed, 9 Jul 2014 10:17:30 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 9EBF08F8037 for ; Wed, 9 Jul 2014 08:17:27 -0700 (PDT) X-ASG-Debug-ID: 1404919042-04bdf056678c2e40001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id bcvXap8wLz5hrDBX (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 09 Jul 2014 08:17:22 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s69FHM3U032194 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 9 Jul 2014 11:17:22 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s69FHLRl010604; Wed, 9 Jul 2014 11:17:22 -0400 Received: by fche.csb (Postfix, from userid 2569) id 07A80584EC; Wed, 9 Jul 2014 11:17:20 -0400 (EDT) To: Dave Brolley Cc: pcp@oss.sgi.com Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. References: <20140619194444.3B03D58015@fche.csb> <53AB0F27.602@redhat.com> <1063089485.33910956.1403758262805.JavaMail.zimbra@redhat.com> <53AC35B8.3000802@redhat.com> <1193390011.34470957.1403829231937.JavaMail.zimbra@redhat.com> <1374649635.181830.1404090114319.JavaMail.zimbra@redhat.com> <53BC0D60.4000007@redhat.com> X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. From: fche@redhat.com (Frank Ch. Eigler) Date: Wed, 09 Jul 2014 11:17:20 -0400 In-Reply-To: <53BC0D60.4000007@redhat.com> (Dave Brolley's message of "Tue, 08 Jul 2014 11:25:20 -0400") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404919042 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 brolley wrote: Regarding commit 9021460e, which nathans already reviewed(?) / merged: > Implement overall timeout for service discovery. > > -t=N.N, --timeout=N.N for pmfind. N.N is the timeout period > in seconds. I have one concern: the new timeout parameter passed to the pmDiscover* function doesn't actually work! What i mean is that it is not sufficient to perform the timeout functionality by itself: it only sets up a posix timer to send a SIGALARM sometime. It does not consume that signal, but requires the client to register a SIGALRM handler, and let it flip the options->interrupt flag. This embryonic a service the pmfind app could have done for itself, by just calling alarm(2)/setitimer(2). A better approach would be to avoid presuming anything about the signal handling state of the enveloping application (and thus not use SIGALRM-generating facilities). For example, libpcp could spawn an internal thread that just sleeps awhile, then sets the currently operating context/interrupt flag. (The code would have to be careful about races between that thread's activities vs. lifecycle, but it doesn't sound too bad.) - FChE From wcohen@redhat.com Wed Jul 9 11:29:09 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 638047F3F for ; Wed, 9 Jul 2014 11:29:09 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id DA950AC004 for ; Wed, 9 Jul 2014 09:29:05 -0700 (PDT) X-ASG-Debug-ID: 1404923332-04cbb06535380540001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id Bxedf10H5aeBtVUA (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 09 Jul 2014 09:28:53 -0700 (PDT) X-Barracuda-Envelope-From: wcohen@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s69GSnR7009965 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 9 Jul 2014 12:28:50 -0400 Received: from [10.13.129.123] (dhcp129-123.rdu.redhat.com [10.13.129.123]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s69GSeYX015783; Wed, 9 Jul 2014 12:28:49 -0400 Message-ID: <53BD6DB8.6020801@redhat.com> Date: Wed, 09 Jul 2014 12:28:40 -0400 From: William Cohen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: "White, Joseph" , "pcp@oss.sgi.com" Subject: Re: [pcp] New perfevent PMDA References: <53B1D222.8010601@redhat.com> X-ASG-Orig-Subj: Re: [pcp] New perfevent PMDA In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404923333 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Barracuda-BRTS-Status: 1 X-Virus-Scanned: by bsmtpd at sgi.com On 07/01/2014 11:24 AM, White, Joseph wrote: > Will, > > We have two projects: XDMoD, which is the audit service for XSEDE and Open > XDMoD, which is the LGPL licensed open-source version available at > http://xdmod.sourceforge.net/. In a couple of weeks we will release a new > version of XDMoD that has support for ingest/aggregation/display of > performance metrics such as FLOPS, CPU usage, Application name, memory > usage, memory bandwidth, etc. The XDMoD architecture supports data ingest > from multiple different sources but all of the publicly available data is > actually generated by the tacc_stats software > (https://github.com/rtevans/tacc_stats), rather than PCP. > > The Open XDMoD releases lag slightly behind the XDMoD releases, but they > are both based on the same code. It is likely that we will have support > for PCP in a future open source release, but it is not available > out-of-the box at the moment. If you are interested in following the > progress there is a low traffic mailing list that we use to publish > notifications about the planned releases: > http://listserv.buffalo.edu/cgi-bin/wa?SUBED1=ccr-xdmod-list&A=1 > > > The pfm library supports multiple different architectures (arm s390 ppc > ..) and the perfevent PMDA should be able to run anywhere libpfm runs. I > don't think that there is any x86 specific code in the pmda, however I > only have access to x86 hardware so I can't easily confirm this. The only > change necessary should be to update the configuration file with sensible > default values for the different PMUs. > > > The pmda does depend on pthreads and mt and the library dependencies > should be specified in the makefile. The compiled binary works for me on > Centos 6.5 and Ubuntu 12.04 LTS, probably because the libpcp has > dependencies on libpthreads and libm so the linker links them anyway. Note > I've only ever run the perfevent pmda in daemon mode, since it needs root > privileges. > > > Joe Hi Joe, Thanks for explaining the relationship between PCP and XDMoD. I was able to build the perfevent pmda on an arm machine. In general it looks like GNUmake should have "-lm -lpthread" added. Something like: LLDLIBS = $(PCP_PMDALIB) -lpfm -lrt -lm -lpthread How does one install the perfevent pmda/tests and run the tests? I did try to run it but the results looked pretty questionable, particularly when it gave a "result: PASS" on the arm machine. Then again that might be due to the fakefs lying what kind of machine this is. Given that the performance monitoring hardware is very processor implementation specific is there some way to make the unit testing more aware of what kind of machine it is really on? To add support for new processors one would make entries in perfevent.conf? The pmda.c mentions duty cycle and that it is possible to have multiplexing. Is there any way to group related events together, particularly ones that are used to derive ratio? For example have memory references and cache misses in the same group and have floating point operations in a separate group. Should the following be removed in perfmanager.c: /* REMOVE */ #include /* REMOVE */ Shouldn't PERF_ALLOC_LOCKFILE in perfmanager.h be tied to the location that pcp is installed $(PMDADIR}//perflock rather than assuming /var/lib/pcp/pmdas/perfevent/perflock is the correct place? -Will From brolley@redhat.com Wed Jul 9 11:57:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 2EEF87F3F for ; Wed, 9 Jul 2014 11:57:08 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id A905EAC002 for ; Wed, 9 Jul 2014 09:57:07 -0700 (PDT) X-ASG-Debug-ID: 1404925026-04bdf056668c8a10001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id eIkOh5VLK1YsJl8I (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 09 Jul 2014 09:57:06 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s69Gv53N026787 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 9 Jul 2014 12:57:06 -0400 Received: from [10.10.58.230] (vpn-58-230.rdu2.redhat.com [10.10.58.230]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s69Gv4pe001048; Wed, 9 Jul 2014 12:57:05 -0400 Message-ID: <53BD7460.2050204@redhat.com> Date: Wed, 09 Jul 2014 12:57:04 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: "Frank Ch. Eigler" CC: pcp@oss.sgi.com Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. References: <20140619194444.3B03D58015@fche.csb> <53AB0F27.602@redhat.com> <1063089485.33910956.1403758262805.JavaMail.zimbra@redhat.com> <53AC35B8.3000802@redhat.com> <1193390011.34470957.1403829231937.JavaMail.zimbra@redhat.com> <1374649635.181830.1404090114319.JavaMail.zimbra@redhat.com> <53BC0D60.4000007@redhat.com> X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404925026 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/09/2014 11:17 AM, Frank Ch. Eigler wrote: > brolley wrote: > > Regarding commit 9021460e, which nathans already reviewed(?) / merged: > >> Implement overall timeout for service discovery. >> >> -t=N.N, --timeout=N.N for pmfind. N.N is the timeout period >> in seconds. > I have one concern: the new timeout parameter passed to the > pmDiscover* function doesn't actually work! What i mean is that it is > not sufficient to perform the timeout functionality by itself: it only > sets up a posix timer to send a SIGALARM sometime. It does not > consume that signal, but requires the client to register a SIGALRM > handler, and let it flip the options->interrupt flag. This embryonic > a service the pmfind app could have done for itself, by just calling > alarm(2)/setitimer(2). I had a clever argument all prepared about how the client app was free to respond to the timeout signal (SIGALRM) in any manner that it wishes and that actually terminating the discovery was only one possible reaction. However, the more I try to convince myself, the lamer it sounds. Clearly a timeout is intended to be just that and, if needed at all, the solution should be encapsulated within the libpcp discovery code. > A better approach would be to avoid presuming anything about the > signal handling state of the enveloping application (and thus not use > SIGALRM-generating facilities). For example, libpcp could spawn an > internal thread that just sleeps awhile, then sets the currently > operating context/interrupt flag. (The code would have to be careful > about races between that thread's activities vs. lifecycle, but it > doesn't sound too bad.) KISS definitely applies. Either this is so simple that it can be left to the client, as you mentioned, or something simple like the above. I see that presuming anything about the app's signal handling state is probably a bad idea. Dave From brolley@redhat.com Wed Jul 9 13:25:45 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 4653D7F3F for ; Wed, 9 Jul 2014 13:25:45 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id BD7D3AC001 for ; Wed, 9 Jul 2014 11:25:41 -0700 (PDT) X-ASG-Debug-ID: 1404930339-04cb6c76d1549320001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id q9CEHFDCvLkvsWiz (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 09 Jul 2014 11:25:40 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s69IPdbP018769 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 9 Jul 2014 14:25:39 -0400 Received: from [10.10.58.230] (vpn-58-230.rdu2.redhat.com [10.10.58.230]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s69IPcRg014006; Wed, 9 Jul 2014 14:25:38 -0400 Message-ID: <53BD8921.3000306@redhat.com> Date: Wed, 09 Jul 2014 14:25:37 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: "Frank Ch. Eigler" , Nathan Scott CC: pcp@oss.sgi.com Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. References: <20140619194444.3B03D58015@fche.csb> <1063089485.33910956.1403758262805.JavaMail.zimbra@redhat.com> <53AC35B8.3000802@redhat.com> <1193390011.34470957.1403829231937.JavaMail.zimbra@redhat.com> <1374649635.181830.1404090114319.JavaMail.zimbra@redhat.com> <53BC0D60.4000007@redhat.com> <53BC5248.5050100@redhat.com> <256416707.6217487.1404883930815.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404930340 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 OK, so I've got two well respected reviewers disagreeing on how to protect the service discovery API/ABI from future changes. Meanwhile the latest and most controversial version has been merged. At this point we have to come to a decision before the version du jour ends up in the next release. One thing that all the versions have in common is string arguments specifying the service to be discovered and the mechanism(s) to be used. The latter, in every version, already features options appended to the string and separated by commas. There is the potential for this in the service string as well. This interface has the useful property that new options can be added without breaking API or ABI compatibility with older clients. When the need arose for options global to the discovery process, my first attempt was to add a global options string argument. This also had the ABI/API-protecting quality that we're looking for. In order to add interruption capability, it was necessary to add another argument providing a pointer to a flag indicating that interruption had or had not been requested. All seemed well at that point, and then I asked for input on the name of our new API function. A new function was needed because the previous API had already been released, although one could probably argue that we're currently the only ones using it. Using names descriptive of the added functionality seems problematic and unwieldy, however, attempting to version the API/ABI does not seem like much of an improvement over using strings at the cost of a lot of additional complexity and opportunity for error. My current felling is that we should stick with the string arguments and the interrupt flag and call it pmDiscoverServices1(1). While it seems likely that new options will be added to the API, it seems less likely that they will require another argument to be added and so I don't expect that we will be an explosion of versions. It is also consistent with the strategy chosen (and retained in all versions) of parsing options in the mechanism string. My 2 cents, Dave From nscott@redhat.com Wed Jul 9 17:46:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id DC4A37F3F for ; Wed, 9 Jul 2014 17:46:14 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 9DA3E8F804C for ; Wed, 9 Jul 2014 15:46:14 -0700 (PDT) X-ASG-Debug-ID: 1404945968-04bdf056688d6550001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id 4QxP2LcdeHAqkyn5 for ; Wed, 09 Jul 2014 15:46:08 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s69Mk8GH023215; Wed, 9 Jul 2014 18:46:08 -0400 Date: Wed, 9 Jul 2014 18:46:08 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dave Brolley Cc: pcp@oss.sgi.com Message-ID: <2109477330.6980142.1404945968324.JavaMail.zimbra@redhat.com> In-Reply-To: <53BD8921.3000306@redhat.com> References: <20140619194444.3B03D58015@fche.csb> <1374649635.181830.1404090114319.JavaMail.zimbra@redhat.com> <53BC0D60.4000007@redhat.com> <53BC5248.5050100@redhat.com> <256416707.6217487.1404883930815.JavaMail.zimbra@redhat.com> <53BD8921.3000306@redhat.com> Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. MIME-Version: 1.0 X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.12] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. Thread-Index: l269lCfTBZq1P7y/e5AfYGORqeVXLg== X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1404945968 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.03 X-Barracuda-Spam-Status: No, SCORE=1.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, BSF_SC2_SA016, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7384 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain 1.00 BSF_SC2_SA016 Custom Rule SA016 Hi Dave, ----- Original Message ----- > [...] > My current felling is that we should stick with the string arguments and > the interrupt flag and call it pmDiscoverServices1(1). While it seems > likely that new options will be added to the API, it seems less likely > that they will require another argument to be added and so I don't > expect that we will be an explosion of versions. It is also consistent > with the strategy chosen (and retained in all versions) of parsing > options in the mechanism string. I got the impression earlier that you were expecting more parameters to be needed down the track, and that strings would not be ideal...? (like the "interrupted" parameter). If that's not the case and we can get rid of that extra parameter, lets keep it simple and go back to strings as you suggest. That name is still really un-helpful though. :( Please use something, anything, other than a number (inconsistent with the rest of the PMAPI and it says to the API user "I could not find words to describe this thing"). In fact, double-underscore prefix is looking a really good option here given the lack of certainty - please seriously consider that - we can always add the PMAPI-level symbol later, once we've had more time to consider and see what else comes up. So, pick one of the above two approaches please, and if not settled on a direction you're happy with by weeks end, lets yank this code and try again next release? Thanks mate. -- Nathan From kenj@internode.on.net Wed Jul 9 18:15:05 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 4EA4C7F4E for ; Wed, 9 Jul 2014 18:15:05 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 30131304051 for ; Wed, 9 Jul 2014 16:15:01 -0700 (PDT) X-ASG-Debug-ID: 1404947684-04cbb0653738ffb0001-S8gJnT Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id CfVrmK9DsGnLOZFb for ; Wed, 09 Jul 2014 16:14:45 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApIBAA/MvVN20YDz/2dsb2JhbAANzRG9bA Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail07.adl2.internode.on.net with ESMTP; 10 Jul 2014 08:44:42 +0930 Message-ID: <53BDCDB7.8030500@internode.on.net> Date: Thu, 10 Jul 2014 09:18:15 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: pcp updates - pmview Content-Type: multipart/mixed; boundary="------------060005090709040109030109" X-ASG-Orig-Subj: pcp updates - pmview X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1404947684 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=INFO_TLD X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7386 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 INFO_TLD URI: Contains an URL in the INFO top-level domain This is a multi-part message in MIME format. --------------060005090709040109030109 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit For those that remember, pmview was (and will be again) a fancy 3-D performance scene viewer with the objects in the scene (blocks, cylinders, stacked blocks, stacked cylinders) arranged layers of nested X-Y coordinate grids) and then these objects are modulated (in size or color) based on the time-series of metric values behind each object component. If you squint at the attached image (taken today from my desktop) you'll see CPU, disk and network groups of "objects" ... now imagine these are colored (stacked for CPU modes, disk read/writes) and height modulated ... the imagine part is just not working yet ... 8^) This layout comes from osvis, but there are many other *vis tools and you can create your own scenes, pmview is a general performance visualization tool for arbitrary scenes. Well this was one of the last pieces released by SGI to open source and has been languishing for sometime ... I, Nathan and Chatz have all had a chew on it at various stages over the past 6 years but it is time to give it some more serious love. Although this builds "as is", it is not connected to the PCP build yet, and when it is your build environment will need additional Inventor, Coin and Qt bits ... more details on this when I connect it into the main build. Changes committed to git://oss.sgi.com/kenj/pcp.git dev images/aboutqt.png |binary images/aboutqt.svg | 136 images/document-save-as.png |binary images/document-save-as.svg | 601 ++++ images/pmview.icns |binary images/pmview.png |binary images/pmview.svg | 503 +++ images/pmviewicon.png |binary images/title-close.png |binary images/title-close.svg | 385 ++ images/title-focus.png |binary images/title-focus.svg | 218 + images/title-trans.png |binary images/title-trans.svg | 218 + images/view-close.png |binary images/view-close.svg | 337 ++ images/view-edit.png |binary images/view-edit.svg | 329 ++ images/view-new.png |binary images/view-new.svg | 317 ++ images/view-rotate.png |binary images/view-rotate.svg | 446 +++ qa/admin/check-vm | 5 src/libapp/.gitignore | 1 src/libapp/GNUmakefile | 60 src/libapp/app.cpp | 274 +- src/libapp/app.h | 81 src/libapp/console.cpp | 96 src/libapp/console.h | 40 src/libapp/console.ui | 132 src/libapp/fileiconprovider.cpp | 139 + src/libapp/fileiconprovider.h | 52 src/libapp/groupcontrol.cpp | 333 ++ src/libapp/groupcontrol.h | 122 src/libapp/images/GNUmakefile | 60 src/libapp/libapp.pro.in | 16 src/libapp/libapp.qrc | 131 src/libapp/recorddialog.cpp | 341 ++ src/libapp/recorddialog.h | 97 src/libapp/recorddialog.ui | 540 +++ src/libapp/statusbar.cpp | 105 src/libapp/statusbar.h | 61 src/libapp/timebutton.cpp | 100 src/libapp/timebutton.h | 60 src/libapp/timecontrol.cpp | 531 +++ src/libapp/timecontrol.h | 126 src/libapp/viewcontrol.cpp | 164 + src/libapp/viewcontrol.h | 70 src/libpcp_inv/GNUmakefile | 72 src/libpcp_inv/src/App.c++ | 188 - src/libpcp_inv/src/App.cpp | 94 src/libpcp_inv/src/App.h | 94 src/libpcp_inv/src/ColScaleMod.c++ | 772 ++--- src/libpcp_inv/src/ColScaleMod.cpp | 386 +- src/libpcp_inv/src/ColScaleMod.h | 158 - src/libpcp_inv/src/ColorMod.c++ | 660 ++-- src/libpcp_inv/src/ColorMod.cpp | 330 +- src/libpcp_inv/src/ColorMod.h | 146 - src/libpcp_inv/src/ColorScale.c++ | 676 ++-- src/libpcp_inv/src/ColorScale.cpp | 338 +- src/libpcp_inv/src/ColorScale.h | 206 - src/libpcp_inv/src/Form.c++ | 756 ++--- src/libpcp_inv/src/Form.cpp | 378 +- src/libpcp_inv/src/Form.h | 118 src/libpcp_inv/src/FormUI.c++ | 1400 +++++----- src/libpcp_inv/src/FormUI.cpp | 700 ++--- src/libpcp_inv/src/FormUI.h | 152 - src/libpcp_inv/src/GNUmakefile | 140 - src/libpcp_inv/src/Inv.c++ | 800 ++--- src/libpcp_inv/src/Inv.cpp | 400 +- src/libpcp_inv/src/Inv.h | 226 - src/libpcp_inv/src/Launch.c++ | 1628 +++++------ src/libpcp_inv/src/Launch.cpp | 814 ++--- src/libpcp_inv/src/Launch.h | 260 - src/libpcp_inv/src/LaunchMenu.c++ | 696 ++--- src/libpcp_inv/src/LaunchMenu.cpp | 348 +- src/libpcp_inv/src/LaunchMenu.h | 118 src/libpcp_inv/src/Menu.c++ | 680 ++-- src/libpcp_inv/src/Menu.cpp | 340 +- src/libpcp_inv/src/Menu.h | 242 - src/libpcp_inv/src/MetricList.c++ | 932 +++--- src/libpcp_inv/src/MetricList.cpp | 466 +-- src/libpcp_inv/src/MetricList.h | 198 - src/libpcp_inv/src/ModList.c++ | 1896 ++++++------- src/libpcp_inv/src/ModList.cpp | 948 +++--- src/libpcp_inv/src/ModList.h | 302 +- src/libpcp_inv/src/Modulate.c++ | 560 ++-- src/libpcp_inv/src/Modulate.cpp | 280 +- src/libpcp_inv/src/Modulate.h | 252 - src/libpcp_inv/src/PCPColor.c++ | 408 +- src/libpcp_inv/src/PCPColor.cpp | 204 - src/libpcp_inv/src/PCPColor.h | 128 src/libpcp_inv/src/Record.c++ | 2204 ++++++++-------- src/libpcp_inv/src/Record.cpp | 1102 ++++---- src/libpcp_inv/src/Record.h | 258 - src/libpcp_inv/src/ScaleMod.c++ | 748 ++--- src/libpcp_inv/src/ScaleMod.cpp | 374 +- src/libpcp_inv/src/ScaleMod.h | 152 - src/libpcp_inv/src/StackMod.c++ | 2372 ++++++++--------- src/libpcp_inv/src/StackMod.cpp | 1186 ++++---- src/libpcp_inv/src/StackMod.h | 228 - src/libpcp_inv/src/ToggleMod.c++ | 436 +-- src/libpcp_inv/src/ToggleMod.cpp | 218 - src/libpcp_inv/src/ToggleMod.h | 166 - src/libpcp_inv/src/View.c++ | 4380 ++++++++++++++++---------------- src/libpcp_inv/src/View.cpp | 2190 ++++++++-------- src/libpcp_inv/src/View.h | 370 +- src/libpcp_inv/src/VkPixmap.c++ | 644 ++-- src/libpcp_inv/src/VkPixmap.cpp | 322 +- src/libpcp_inv/src/Window.c++ | 1056 +++---- src/libpcp_inv/src/Window.cpp | 528 +-- src/libpcp_inv/src/Window.h | 200 - src/libpcp_inv/src/YScaleMod.c++ | 220 - src/libpcp_inv/src/YScaleMod.cpp | 110 src/libpcp_inv/src/YScaleMod.h | 106 src/pmview/.gitignore | 7 src/pmview/BarMod.c++ | 1212 ++++---- src/pmview/BarMod.cpp | 1212 ++++---- src/pmview/BarMod.h | 296 +- src/pmview/BarObj.c++ | 1076 +++---- src/pmview/BarObj.cpp | 1076 +++---- src/pmview/BarObj.h | 264 - src/pmview/BaseObj.c++ | 262 - src/pmview/BaseObj.cpp | 262 - src/pmview/BaseObj.h | 266 - src/pmview/ColorList.c++ | 422 +-- src/pmview/ColorList.cpp | 422 +-- src/pmview/ColorList.h | 182 - src/pmview/DefaultObj.c++ | 394 +- src/pmview/DefaultObj.cpp | 394 +- src/pmview/DefaultObj.h | 334 +- src/pmview/GNUmakefile | 245 + src/pmview/GridObj.c++ | 636 ++-- src/pmview/GridObj.cpp | 636 ++-- src/pmview/GridObj.h | 242 - src/pmview/LabelObj.c++ | 238 - src/pmview/LabelObj.cpp | 238 - src/pmview/LabelObj.h | 226 - src/pmview/Link.c++ | 444 +-- src/pmview/Link.cpp | 444 +-- src/pmview/Link.h | 116 src/pmview/ModObj.h | 98 src/pmview/PipeObj.c++ | 390 +- src/pmview/PipeObj.cpp | 390 +- src/pmview/PipeObj.h | 126 src/pmview/README | 58 src/pmview/SceneFileObj.c++ | 268 - src/pmview/SceneFileObj.cpp | 268 - src/pmview/SceneFileObj.h | 120 src/pmview/StackObj.c++ | 302 +- src/pmview/StackObj.cpp | 302 +- src/pmview/StackObj.h | 166 - src/pmview/Text.c++ | 678 ++-- src/pmview/Text.cpp | 678 ++-- src/pmview/Text.h | 186 - src/pmview/ViewObj.c++ | 350 +- src/pmview/ViewObj.cpp | 350 +- src/pmview/ViewObj.h | 300 +- src/pmview/Xing.c++ | 400 +- src/pmview/Xing.cpp | 400 +- src/pmview/Xing.h | 106 src/pmview/app-defaults | 207 + src/pmview/barmod.cpp | 607 ++++ src/pmview/barmod.h | 133 src/pmview/barobj.cpp | 539 +++ src/pmview/barobj.h | 125 src/pmview/baseobj.cpp | 125 src/pmview/baseobj.h | 119 src/pmview/colorlist.cpp | 186 + src/pmview/colorlist.h | 77 src/pmview/colormod.cpp | 165 + src/pmview/colormod.h | 59 src/pmview/colorscale.cpp | 158 + src/pmview/colorscale.h | 89 src/pmview/colorscalemod.cpp | 194 + src/pmview/colorscalemod.h | 65 src/pmview/defaultobj.cpp | 175 + src/pmview/defaultobj.h | 152 + src/pmview/error.c++ | 110 src/pmview/error.cpp | 93 src/pmview/front-ends/GNUmakefile | 25 src/pmview/front-ends/clustervis | 357 ++ src/pmview/front-ends/config.clustervis | 51 src/pmview/front-ends/config.dkvis | 44 src/pmview/front-ends/config.mpvis | 45 src/pmview/front-ends/config.nfsvis | 44 src/pmview/front-ends/config.osvis | 63 src/pmview/front-ends/config.weblogvis | 52 src/pmview/front-ends/config.webpingvis | 40 src/pmview/front-ends/config.webvis | 83 src/pmview/front-ends/dkvis | 592 ++++ src/pmview/front-ends/mpvis | 474 +++ src/pmview/front-ends/nfsvis | 262 + src/pmview/front-ends/osvis | 679 ++++ src/pmview/front-ends/pmview-args | 643 ++++ src/pmview/front-ends/weblogvis | 473 +++ src/pmview/front-ends/weblogvis.load | 103 src/pmview/front-ends/weblogvis.rgb |binary src/pmview/front-ends/webpingvis | 398 ++ src/pmview/front-ends/webpingvis.rgb |binary src/pmview/front-ends/webvis | 733 +++++ src/pmview/front-ends/webvis.rgb |binary src/pmview/gram.y | 1509 ++++++++++- src/pmview/gridobj.cpp | 314 ++ src/pmview/gridobj.h | 107 src/pmview/icon |binary src/pmview/labelobj.cpp | 112 src/pmview/labelobj.h | 99 src/pmview/launch.cpp | 487 +++ src/pmview/launch.h | 113 src/pmview/lex.l | 490 +++ src/pmview/link.cpp | 218 + src/pmview/link.h | 52 src/pmview/main.cpp | 503 +++ src/pmview/main.h | 157 + src/pmview/metriclist.cpp | 234 + src/pmview/metriclist.h | 84 src/pmview/modlist.cpp | 473 +++ src/pmview/modlist.h | 134 src/pmview/modobj.h | 43 src/pmview/modulate.cpp | 134 src/pmview/modulate.h | 117 src/pmview/pcpcolor.cpp | 100 src/pmview/pcpcolor.h | 61 src/pmview/pipeobj.cpp | 187 + src/pmview/pipeobj.h | 54 src/pmview/pmview.c++ | 884 +++--- src/pmview/pmview.cpp | 1503 ++++++++-- src/pmview/pmview.desktop | 8 src/pmview/pmview.h | 302 +- src/pmview/pmview.info | 36 src/pmview/pmview.info.in | 18 src/pmview/pmview.pro.in | 35 src/pmview/pmview.qrc | 61 src/pmview/pmview.ui | 390 ++ src/pmview/scalemod.cpp | 187 + src/pmview/scalemod.h | 62 src/pmview/scenefileobj.cpp | 127 src/pmview/scenefileobj.h | 53 src/pmview/scenegroup.cpp | 200 + src/pmview/scenegroup.h | 80 src/pmview/stackmod.cpp | 598 ++++ src/pmview/stackmod.h | 98 src/pmview/stackobj.cpp | 148 + src/pmview/stackobj.h | 76 src/pmview/text.cpp | 338 ++ src/pmview/text.h | 83 src/pmview/togglemod.cpp | 106 src/pmview/togglemod.h | 75 src/pmview/view.cpp | 282 +- src/pmview/viewobj.cpp | 172 + src/pmview/viewobj.h | 135 src/pmview/xing.cpp | 210 + src/pmview/xing.h | 48 src/pmview/yscalemod.cpp | 46 src/pmview/yscalemod.h | 44 256 files changed, 55231 insertions(+), 30664 deletions(-) commit ff7a1a89b7e1322d658e68ff51dac4f540b27ff2 Author: Ken McDonell Date: Thu Jul 10 09:00:25 2014 +1000 qa/admin/check-vm - 1st cut at packages needed for pmview commit 57422edf11da381eb1fc9f705aff63d1604886be Author: Ken McDonell Date: Thu Jul 10 08:58:42 2014 +1000 pmview - initial version Compiles, parses scene graphs, draws scenes, ... but no metric modulation (animation) and no time controls and ... commit 9661484c65648e8599a0177c9c151b3f4173ca17 Author: Ken McDonell Date: Thu Jul 10 08:57:46 2014 +1000 libapp - cull refs to some unused images, add .gitignore commit c110dfd59117c770e7c75d5f190e37adb5912737 Author: Ken McDonell Date: Tue Jul 8 10:43:19 2014 +1000 libapp - builds in main tree No testing. And lots of functional overlap between here and pmchart, so we'll need so refactoring here to allow pmchart and pmview to share the parts of libapp that are really commmon. Also remnant references to pmchart here indicate origins of this code on pmchart that were never cleaned up when it was extracted to be used my pmview. commit 8be19accd6732f88708e93628fbaf198705653d7 Author: Ken McDonell Date: Tue Jul 8 07:08:57 2014 +1000 libapp & pmview - add startconsole() method Delay the creation of the Console() until after the command line arguments have been parsed so that pmDebug has a chance to be set and influence the output. commit d355162c5d160371a9c07b5872ac79a8d0dedfd8 Author: Ken McDonell Date: Tue Jul 8 07:06:25 2014 +1000 libapp/timecontrol.cpp - add diag to track timecontrol creation commit ef0fa1f69a6811cc65a8e926bb0fca8cb1d93e12 Author: Ken McDonell Date: Tue Jul 8 07:02:59 2014 +1000 libapp - cleaning up Expunge views dir that is not needed. Rework path to images (all should be in ../../images). commit 6848d55ef52a814b5da23822f996d1b9645dea65 Author: Ken McDonell Date: Tue Jul 8 06:57:43 2014 +1000 libapp (new) - refactoring of common UI components Initial checkin of work from Ken and Aconex as released to open source. commit 1f4924ca9ccb43d821dab5c14f92914096c8f86f Author: Ken McDonell Date: Tue Jul 8 06:45:20 2014 +1000 pmview - changes to remove use of QtAssistant commit 5cde3bc101447fc9f62f45ae09107524ca04bfaa Author: Ken McDonell Date: Mon Jul 7 16:56:27 2014 +1000 pmview - add makefile for front-end scripts commit 9d46418ab0c7a4a62b8b24cae2aa3c907f0f2770 Author: Ken McDonell Date: Mon Jul 7 06:58:53 2014 +1000 pmview - merge changes from Aconex commit 813a7652da589c8fa18bce084a4acb1f80621de8 Author: Ken McDonell Date: Sun Jul 6 14:17:52 2014 +1000 Revert "libpcp_inv - base source checkin" This reverts commit fcd9892042e23ea2077da65c9cd6efa80cfd93d6. commit 614365c6c5ed043c6fe9e83c84298013f2c209ac Author: Ken McDonell Date: Sun Jul 6 14:17:00 2014 +1000 Revert "libpcp_inv - rename .c++ files to .cpp" This reverts commit 01f1012e4c201cdde47c61b9a0cdd480abd1ce26. commit 8c5f55dec1dd55955f9332d9b6bdd988b86c6eb9 Author: Ken McDonell Date: Sun Jul 6 14:11:17 2014 +1000 Add images for pmview commit 01f1012e4c201cdde47c61b9a0cdd480abd1ce26 Author: Ken McDonell Date: Sun Jul 6 06:58:48 2014 +1000 libpcp_inv - rename .c++ files to .cpp commit fcd9892042e23ea2077da65c9cd6efa80cfd93d6 Author: Ken McDonell Date: Sun Jul 6 06:55:57 2014 +1000 libpcp_inv - base source checkin This is the code base for the Inventor interface library used by pmview as released to open source by SGI. commit fa7f7569e43bfcbc563ea54d70c14a4013c7b29c Author: Ken McDonell Date: Sun Jul 6 06:51:48 2014 +1000 pmview - rename .c++ files to .cpp commit fda41007d34229e278d6189e27eebd0445175d62 Author: Ken McDonell Date: Sat Jul 5 21:27:29 2014 +1000 pmiew - base source checkin This is the code base for pmview and the associated frontend scripts as released to open source by SGI. --------------060005090709040109030109 Content-Type: image/png; name="Screenshot - 100714 - 09:12:31.png" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Screenshot - 100714 - 09:12:31.png" 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 bpIkkp8xJ8VlEtlHZua+8S5be5e/oZ44Z85X9jh3mKbELCREaUqSSi+VnpBQkt8ISyLZxRPO c8KUcJPNsRM/+9yfvPem7cX35a/60yvPXP7iSy7pHjGHaM8wuaIgT/3gfe/8+ANERMRjBx3z vPN/7eVnHjFvFiwv7G397//4wlduvvOhbRPUXbx8zQsvfPkvnnBAV/OSbrvnuw8tPX3NgR2i 7tIzf+WVe1aM7d2UTvzsc3/yt4++8i/evGbMPdh15wf/1z8vffP/94oVc/eqYAAAAAAAAAAA AACjoltdF8ccXkSV3Qgr/dPu8v96q/Pyc+tk4L7XbLctkeRn4pHnM7uCQohEGt4T2zn2N//8 d3PbDScJ09GnnDQo0hTQPfC8K9950RGy/aHvf/bvPn3Nfkf/4S8foRq+hmMUJjLZ8d///Dcf vmvZS1771jeu3J+f2vCjr3zyH967+dK3/Y8TF0XDn3j0W5//8uOveN6aAztEPP+INaeMQBIA AAAAAAAAAAAAoNLlGtuWsHeYHZN4l03EfARMbs4PU9kWOOzJd8xJkiRJ8X333f/wR59Y+Nt/ /Opn+a4mn7j1i//0+Zvv25YuftYLL/6Nlz/3wFGY13ju4qNPfeGqL/z9w09O0hHddPs9X/vk Z66/e8vEgmWnvezXX3Hm4XOZaHLLLdd9+ovf+vGW8WTB0b/4pjf/8vJkyy1f/NS/ffsnT4zP PXDVWS9/zUWnHNSl3mPfuOpDmy546fz//JebNhz6mj+9/Ix5D9/46Y9/+ZZNk/stO/m0pb0h Ze1t/q9/+1565u/+xnmrxpiIxo475zW/ufUv3vuFb5337F86jB77xnv+9r7TXjT/9lt+9sS2 8SUnvew3Ljn9wC03fOTD/75pu/z9unsXrnrVW1+7+Ct/9oHHX/1nv33CGMnOB9b/y798/daN O2i/Zaec/8pXrF2xgMd/9tl3fXTHmSftuu3uTdu371m05mVveNWZS+fQ5JYf/OvHv/BfD2zv 8YIjTv3Vy15z+kGdEWR/gHAR5MhT33/fn9+0+rzDf/yD+x7ftnNs1QWve805y+fPgrWRAAAA AAAAAAAA2Lfo1izgEiLyrndltwWW3U5WzdzmXDITC4s7qo5FhN0+W2JH2fInMtIj7YiIqLfp hn/4xF3HvOGP33Q83f0vf/2xjx68/PK1Bw9vM5KJ7Q9998af8DG/cvhcSrd+7+Mf+faiV77t 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 ptBOpb+qSTsquGjT5qWpagU1SOft/2FERERERERERETfNeVy+aGHHnrHt401q7Az1ywMeI2t Ua92rm7f1rdr955rV65uLhamFqcKnRvPPFdeuvBq+fIze3Fjx57Kth377ti5844d27du3VId GGi1O9ev3bx06cprF65MXpm5Od1YuHoBjYeHhjfdvLJcgI/EXbrWiqUtUVSKzFysXjdtrk7f 3LRJbxa7X4gFdkRERERERERE9L0sDhGZQby55XYUx4ib8wOytGfv2OHDh33HfuDg0PW5+p8/ 9dTyay/vsdmxXW7n2JED4+OHDk3s27dvZGSkv7+/UCgA1mo15+fmXnvtteefP336+ReePNOs Xb12x7bNS7OLl15JFpajuFKJECNpRZaUKmWYDlT7b0R99U6pEDVW+tgRERERERERERHd9jqd ztWrV5vNpr0Tk1QrlcrOnTvjOI67Yx6kbXGnA7OkOTO7pS86ePDAu9/z8OJCs1FvXnvlbMXP f99227x5dGzX7n379x89evfu3bsHBwejKJIwNAIWR/2VUrlaHagODMD8GzdfvvL6xZ137U8a 7dNPXStt2VEdHoGP6ottB99Xdj4xJ9bxOlUrVKsSAru3/7cRERERERERERF9F0xOTm7fvn1i YsI5t/ZdMwuTYb/lTQCqeu7cucnJyT179sTdpahr3OmoiTTmaltGNt17z9G777rrpRdfPXXq qenrVx988O64WNo0vGn/vv1333337t27SqUSRMLgi/BhYdhrf1/lwP697Vb96tW5N56enXxl srHcWJxvDFWWR8e2aUfbdYkjVEquCZ2bnl9crBebxaQK4XlYIiIiIiIiIiLaOOr1+vj4+Nzc XM99EckHcyE9y78MC3qeGh8fv3jxIgAnZmIG2NyyLsw3ioWoWCyOjGzZNTbW39/36N//r7aM DB8c37V9+7bdu8Z2j40dPnRw19gdxWIhDKKFaRhIC1VTr+pVtVgq799/4MF3HalW4gvnryTq 42JJW52BiquUXBy7ctFVSlG7Vr944VqjnTR9UTUtr2NmR0REREREREREG4KZOedsNXQTOjNT 1QMHDmSLVbVnQZ5zTlUBOJjCVFVnlv3UtUVNbNP20f7+4f6BiojcsX3rr/3LX/6pf/JT0zdu bB4e3r9v7x07thcKsao39SGhM9+9MBGJo6hULJar1aHhocFSIVJIoRgL4DQZGogLkRWKrr+v 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 REREREREBHeL93pL3tarwbNvcYI1jeq6md1KKztVU9Pe9nlv8VsTERERERERERH9HbXelNhV Vk62rp3o+maHWNcpzctFe+H0q3WnxPIkLBERERERERERUSbuieFMtba8uDA73Wm3LQxvFZH1 +9tlp15DGJe+ShM+ETMDHEzNTM1U1czMvHpV805cZaBaLJZW7cjTsURERERERERE9L0t7jnT WltefOPVl2Nt9VXKPTnd2tjuTYK8VM/OaVWdpH3zarWlmaXZ4a1jpXIlV3rHvI6IiIiIiIiI iL6n9QZ2y4vzzaXZhx98oFqtOpd2uAvB3K3juW/JAFNFt4fd0tLiqaefrS8vlsrl9G0iIiIi IiIiIqLveb1HYpOk42BRFJ0+ffrKlSvh5psFdreI8NYOo7B0IizMbMuWLUeOHCnEUcd3LJ1u wcSOiIiIiIiIiIhoTWAHmJqa2ezs7OzsbCh/ywdzbyW26z0Ma9l8CgPQajadc9btahcmx2Z7 vf0/iYiIiIiIiIiIaONaZ0qsdRUKhVKphPUq7G7R3m6dtA6AQc3C3up9bpl0G9hxZiwRERER ERERERFiWZ2vSTih2j27uvZk67pusSwL7GBquTQwEBOYWJg3awaYMLAjIiIiIiIiIqLvYbGI rDPONWdlaRx3Op1vd/REFtiFvdZuS0RERERERERERBkHQLrQbSKXxWqqCqA6MLB1y9b/+H9+ YcvoltGRkXKppN+p/OgJxnZEREREREREREQ9VvWw66meC5na7l27/5t/8tMPfN8DW7Zs+f3f /18vX778xS/+X3/19a+/xVI767aly/K5fBRoCEMncuvfzl9DRERERERERES0wa0Edt3Ct1Vv +yT52Z/9xCOPPPLE17/e19f31f/81WKxuLCw4BMfxdG33H2lgV3+Zf5WOmlCAUv75zGyIyIi IiIiIiKi72FpYLd2tGumv7/fzF56+eV9+/d/9l//azMrFIuC3s5361od2BkA07U97AyrFjGw IyIiIiIiIiKi713x2twtZGrptdkXv/jF/v7+f/yxjwH4mZ/5maeeeurChde8+rfaga67Ss3y N9Z5nEkdERERERERERF9z4ux+hhsPkczMxH5q7/6+sLC4oMPft8nPvGJj/7kP7rv3nv/7//0 n7755JNhZdbJLixeZ5+V/SQr3fvb+3uIiIiIiIiIiIg2NLduWpddiLiBavWZZ575wz/8o9mZ mf/9j//4/vvve+973lMqFrOVPYNf143keu6/2bLw5jv31xEREREREREREW0wsZkHAPSOfDUz NfPqP/mLv9hsNa9evRpF8d69e5MkaTQarVZLV5fUvan/n717i5Esy87D/K+1T0Tkre7d091V XUnOcGY4QzZJESY8JYMmLdKA7eZQ4zFpAiQM24ABCRBgGPabDT0Zpt8E+MGyZYuk3vRgWLJk wDYMWQIFWHLTNC+a6eHcOD0zWdXZ1bfq7qq8RZy91/LDjjh5Km4ZGRnXzP+b7Ky4nDjnRGRm TcZfa+31XMWed4dM1G6DO8xyhgcz8YmGzxIREREREREREV1KRS1zEzj6kjsze3bw7Etf+tIv /sIvtFrNn3rttX/wD//h3/t7fz+lJKrdME6AqiXWT3dW6dbfPR/d1bby7mxYcxjjOiIiIiIi IiIiutIKQHuXpa/MLq8597f+1v/wu7/7u41G87/7m//tX/mrf7UsY4yxKPLidw45raF7bibs sMbWXGE30AnbWwVvJk+IiIiIiIiIiIhonRWntXDP5265JbahISYryxORk//xb//OwcFhCEFD gIi7F0Whqn17NLNYxoEDed9w2LyGXb0OL//nDO6IiIiIiIiIiOgKK8wMACA5uesWydWK4IKq hNDpdP7xP/4nzWYjhAICd3ez/+Q/+0//tV/8xb49/vN//v/8V7/926rh+ZufK6ur7b/bDdvr iXUGdkREREREREREdJUVtfo6B+qr0D1XDddoNEIRVBSAm4uImb399v43v/Wtvj0+evSo2ypb 7bg7b+L0KjDYGAsMNuUSERERERERERFdMYUMq2jLaZo8H6t107pewyyA3/md34mxv/s1hLCx sXH6wFpCJyLu3qvpQ/96dvLc1AoiIiIiIiIiIqIrqIDUIjKHu1WRXHeZud4c2dPRrr1bms1m s9kc3KnURs+6exXaVZdPU7/uR28+LQvsiIiIiIiIiIjoaiuem84qzwVq2WBO162/Ew2hf+LE 6aNsROGeez0QlO6oid5nAVhjR0REREREREREV1gxsJbcaTWcPX9XvVYuR2t9lXT1q0DfZInq kbVtug2wTOiIiIiIiIiIiIi6CkUA4M8ncdWlepzXi+P62l0x6mof7w6A7XbaAlVpnXQvO+Cc O0FERERERERERFda4X0Fbn4aqFlvDbve5+4WQ3c0uNTd83odr15tZrUDdi/B0X8+RERERERE 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 iIiI6HJQg5sAAqi7mM9i7kRfeHf37t3r16//+q//+o995jMte1pIcsdR1GiAQEQAERHNy+iJ zu7ZEREREZ3bqqV1AB4+fHjv3j0Mq6S7ffv2mFI7RnhERERE60glBA0KgTnMTgO72Va63b17 99q1a1/96lc//7nP7cjRZuGqqkUIqqpaFCGoSlDVUIQww+MSERERnctqpnX5QjUWdnAbltoR ERERXSaFAAa4o9uNKuLuuSV2tke6d++eu//qr/6q+//67W9/RxpbJ0mlCJLckouqupubBFbY ERER0XKsWlpXRXV9ch7XNx82X62iOmZ2REREROuriGbujvwBgcBrI2Jne7BXX30VwK/8yq+Y 2be+9e2k2x0XFTEB8gJ2sz0eERER0WRWLarDsLRuMJLry+zyNtUGg/cSERER0VooypgAiEMA gZsCefDELKbEDrp3756Zvf7660+ePCnf/6j0hnWzQneYm6c0l+MSERERjbIWaR2Ae/fuvf32 2/VIbkyp3UphhkhERER0LkVKqEY9GFzMFZhHS2wmIvfv3//4449v37796N0Pzd3RXTgP5o4c 3hERERFdXaM6YStVqd3rr78O4MGDB2+88cYizuz8+iLFoVWBRERERNRHA4JKCKKAwMVFcm2d z00+cDcTdD/tgxUBAJWlvBBERER0Ze3t7e3t7S37LLrOTOsqOa3LHjx4sIKzJnI8V0/omNYR ERERTaKAi5sk6S5h5y5zbYnNclrn7i7qAoEDCphCzBnYERER0RLs7e3t7u4u9xzOTOtyVyyG tfHW87vVxyZZIiIiojEUot0l7EQgAaLubrW5E/NjDnOxqsaO7bBERES0DPv7+/nCckvtJq+t G7Po3uqsxze03O9Jz/jNiIiIiK64AlD0ulEBAPMaEVuXUqpV8Hk1dqL3iYiIiGhpFl9qN3lU hwkiubzB0le1y8MxJsnjuLAdERERUR/13AULACKiIrCe+R112CEcgMPnelwiIiKiSSyyzu5c ad39+/cn3HIVSu2GxnC3Byz+xIZirR8RERGtjiI5BFBBrrFTPNcSO6ej9tI6zxMmDC7uMBc3 9zSngxIRERGNsr+/f/fu3fotObObd6nd5Gnd5FFdZfGldn2Z10rlcePlM2etHxEREa0IBQww dzjc3fI4iBzYze+o3f27A0mQck6XvEwxeirnd1wiIiK6sqarOJtrqd1c07rKwkrtBivU1qIf Nvft1sv9WGpHRERES6e9mRNmnj+681sX0xLrsUyxjLGTyk4q2xbbFhnYERER0Yzl0GrqzG4e sd1i0rrswYMH847t6plXFcD1JXFDE72lV7QNlgEu/ZSIiIiI1OEOd09Ack/mZtats5v/mNgY O+2y046dk9hpW9mxssPAjoiIiGarnlWNia6qWbFDzTazW2RaV5lfZjc0dxt1S31Q7NKjsfHF dIMzbYmIiIgWozBLyPMmAIE7EoB5V9hVjbdlp51SaSkhlp4izMS4hh0RERHNxqiI6sGDB1Os 7DarVe2WktZl81jVri+tG5PEVVV4q1BYVxl6/uO3ISIiIpo3TZ4cBiTA4K6ORZTWZSmVuaQu lrAk5uopYI5r5xEREdHVMb6gbOou0YuU2j18+HCJaV1l5qV2Vcg1Yd3cqoVfT2r67qpOlXV2 REREtEgaCisKb6m3zJpl3GinaoG5+R21m9eZwU3d1GKBtKHehLV0jsclIiKiK2LCTKpvs/Fd sZXpMrvJozrMM63L5rGq3fi0brmBVz2Mq18eerZ9i/GtWrxIREREV0FhZakSUBRaSNDgZbcf 1uc/JTaobG9sWNmOZupoNotio8kKOyIiIrqgc0VRi2mPXYXCukGTP/cxfa+5xXUtmkaH5nST nHZ+jvM6LSIiIqIBxVajgLvCBAIVV6v3rs7pqLnCLoi2mq2OW2mpQNhoNpqNwlKc00GJiIjo KpiicGzqld329vYmyexWM63LJn/uVUg3KpsbVWE3vpxtMS6YuK1FHElERESXiW4GKTylk6OT w6fHh09POke5wi6leQ1/qCr4gupG0FbQrUax2WxutJrNRqPQMKfjEhER0eV2wTbP/NgJu2Ir e3t74ztkVzmtq5z5utWXchs6/rW+QZ++PayCMeHd4F1M64iIiGjximuNom3pwOJJpx1jdJFq DbuUkqrO9nhVWmdmlqLHjlhUmELNzNzL2JntEYmIiOgqmMmKbHknUyxRN6rUbi3SumyKUru+ 28dUsa1C4JXP4cz5GH3Pop5FEhERES2M3mg1bm60bm62tosQPHk8QS9WSynNdvREtduUkrtb iqk8cSthKcWyfXx0dHx4fHw8wyMSERHRVTDb+QmTr0xXN1hqt0ZpXWXyV3JoNlef1VC/ZTYn Nwt95zM+YVypMyciIqIrpShOTgqRRrPV3Lam2OHJ8Yd2Km80kzq7egiYi+xE0GoGc4kxppg8 uYikxCmxREREdA4zn3YKYHd3d7pRsLnUbqUGwp7XqFK7etNr/cKoQatzPMULq5fRjSm1W/Rp EREREfUUHzx6FBqFFA0TNMw2Q+j2q/ZiNXcPIVwws+tL6/KeW63mrTu3yk7H3VM0swRIa4st sURERDSpeaR1Wa6zm649VkQm3HjV0rqsHjgO5ll9TaODS7ytzqJvgwV01YmN6pDlNFgiIiJa BUUwQ1m6uag2BQ7JIV1uXK3ndFNndn1pXe6HzTlgq9WwFDWEsBGSpTIlDzNeNY+IiIguq/ml dZWpS+3OtJpRHYaldYMmXA9uiSbM3QbDx7mdEREREdE5FBvqDndLgImGRgg5TTOzGGPoXZ26 zq5K63IIaGadTicndyKAuKiICAIgihTd5zWdloiIiC6NBUR1lSlK7dx9fJHd6qd19+7de/vt t88cDjs07VqR5G5wrbox3burdvJERER0xWlRhCIUQaEChaufRmxlWdabWKeYQTGY1pVlWZZl tUMR1yAQt5QsxRijGwM7IiIiGmeRaV1lukkUQ61+WjfUmCkTczujKY2KFwc3q9+7ms+FiIiI rqZCNjdTTGVMDoSiMOm2xMYYY4zu3mg0iqKoP2bCOru+tC6lFGMsyzLGmIM/NytUUiFmHmOy ZOZJxOfyRImIiOhSWEpal029ql3dmqZ14xd3W/Gca3XW1CMiIiKaUNEuGkedskxpo7Vx7dat rWs7/oPvA3j69Om3v/1tVc0NHTmkq6I6EXEfl6zVN6iGV1Ryigd4KLQpjVRGt5TEQxA417Aj IiKi4ZaY1lUusqrdmqZ1Wc7sXn/99cEBsiulL1hkWkdERETrqHjv2bMUY7PR1K2tYnvHi8LN Hz16dHJyMv6R9cAuX66v1XLmcLSnT5+ap7LTTua5HdZiSinGki2xRERENMQqpHXZJJnd0GXs 9vb2ZthaOyuj0rq8jF39ltdffx3AgwcPVjmzy8Ei16QjIiKitVZ89MlTc2s1WglqEFXd2dr6 xje+Me8DB9Uv/NjLgAgAUdEg6kiwsYV7REREdDWtTlqX7e7uPnz4cHzDwVArldmdWVhXL0+r fwny5dWJ7UaV0Y1J6zgQloiIiFZZkVKylI5jgpnHsmgUt7a3b262tjZbn3rpxbuvvKRBU4rN Zuvg8Ojb3/nen33jW7duv/ATP/HFjVYoCu10ysfvvv+9H/zQpAih1SiaRQhBtBkCLDUavr3V vHZtc/v65uZGIcFjSp7cTZJ5jLHTSZYcJjCFiUWwJZaIiIjqVi2qyybpIR2U1wzJ1XlLj+0m fAo52Mq1dX1WpNRuMK2rVtwbNRyWaR0RERGtuGKrWUAaKtrQUADBbSMEbYStVqulKuatZqGt xubmNlyazaaqmtnx0ZF6UxvBU2oEvXXjenSINgBRSFBtqHhSIKXo7ZNSIZ3jADV3N0twuIm5 dToppuSGmLwsy3a7k/x8g2iJiIjoElvrtG5oV2xluaV25woch6Z12dJL7UZFb/UpGWO2mddp EREREV1McX1zo9loNhrNIAqHWUqQoLLRaKh7PDlJhag04Q5ABY2iCCGcHB9vFgKBpNhqFJ+6 c7sTy9K80yndvBFURSDdCRJlO6Xy2NwcDniyaG6AwL3TSSm5G6J5SimWMVpc9mtCREREK2H1 07ozx3CNt6xSu8nTutu3b0/yVZhfqd2oErn6vaOs9WRbIiIiuuKKrVYziMBKM6joRlFIY8NT RNk5emYpdg6OWqLa2tw8PG4fHhxCpNFoWEqePMXoKTUFW9e2jzqdk04pZmbWahQi0ml3YpnQ MQ9FEdQc0eEpmZsjubmZxdJjMndPBneYS6fNwI6IiIjWIK2blQWX2p3rKUz+VZhrqd3QJery jWdmdtXGgzcSERERru87aAAAIABJREFUrawilO1OLNtlCZWNra2EprkkT8k8uBXuOOwEEdHD ThljxO3bLxSNpkOSpVgaPAU3tNsb4q1msVNsRwNEtWh1Wqm0KBBxAOYxFR7dimjJICIC+Mnx iaYEwMximZKnpjeW/ZoQERHRkl2atG6wK3ZoUd7CSu3O9RTu379/3v3PttSunrINltpVlycJ 4BjSERER0Xopru1siSqKEFqtorVx0O68/fjdmBwaRNzbpSVTUVU1QxlDiWaZ1Dom0mmpCCwE L7QIhYoECRIUBkXQQkOBFhwwAxIaHsTh6MSYer+8isPM4B5TbKOjJpwRS0REdMXdvXt32afQ 71w51+7ubg7gzmvepXbzTuuyWZXa1avq6qvRMXojIiKiq6D4/I/tamh4UaC14UXjnQ8/+vqf fz+6SGglt5Q8xqTQoiiKULhJTOrJjko7PCkb6oWiUYRmgUZDNJiIOuAu6ESVvJQdxKwQbxSh KQp3EeSuVxFEERNxEZhEgQPNghV2REREV9r+/j5WYIhqZXzO1Vcxl087f54itptfZjd5Wjd1 VFd38VK7vmK6vgkS543tmPQRERHReileffkFV+24pqJpjdazMh2ctJM0PKRoVkaU0YJ7sxGa TYiIucZYwh2WCnihUhShVaSiEBXtNn04VFRFVRHgDZGtRmhubkiApxIpwlxV3FxShCeFirm4 ezIJYdmvCRERES3fcoeoVs5bW9d3dWhmN35UxTzaYxec1mWzXdUux21DS+3GL2NXfzgRERHR uigUpXsQhyKEQpubzTJGbzZdQ2kwgYkYVCWoqApMPLpYMjMIRE0K88MyipjAxSEOEWmEQh3i qQFsNUNjZwPNlsNiGVOMcHcTh1ks4YC6wOAubpaW/ZIQERHRaljWENXK5DnXqJPMmV3fMnaT mFVeuZg22DFmu6rdYKndhI+a1QkQERERLUbx0ZOPGhubYWu7aAQpQhAEgSm0CKJqrkVyuDZD URQqQIrwEEpAQxMiAJJbTClZghkcCqhI0KRu6tYUCLDVSZ0NA9ySuzngDiC5JzMzLQqYizsA M65iR0R0mY0ZJjCn+ZK0jvb396uV7JZVanfxtK5+7xQDKy6eVy49rcvmWmqHsXkcO2GJiIho TRUfHnRaMag1NJ7YkX/w5JlLgAOWFAgSVF0cIc+DcIcZ3AUiKpAC7g64mEMNLqKiwSBlik3R IGoi0eUwpsZxu9UQdfMEAIWqA8nEHWJu7u5wh+q5/wmaiIhW3yRDP6ttmNxRn8VndjPvIb1/ /359n+O7Yuumfu4rktZV5l1qNzSYW0paN90qe0RERER1xXff+UTDoYWPvCi8aH50eBSlgKnF XAhnboDDUlBVgaSUkrmZwQBxEbglT+bJAIGqaBANCjVAxZNKKd42PGuXpaNwwCyIeENUg4Tg LlARAwRAL88jIqJLYZKcbtSjGNtdcfUiOyy2PXZOK77ljRdTardqaV02xY92X99r3yQKjB4g u6zaOg60JSIiopkofvD+oUNKtyQw1aNOmbwwE5i7J3dHEriLphAaKmKO5AEONxMxEQjcYAAE oiJQFVEXL1MqLUWBBWy1rLSyfaDBTGDNUGyYNJtFhAAqEHdz95TMdNkvCRERzcJ0UV3fHpjZ XWLTfX3nXWq3gJyrr9RucpM/99VM6yqTf+knnCYxdFW7xYdlOaFjSEdEREQzoe8flO8fdD54 1vng6ckHHx89PeiYF+bBXQABFAIXgYgLXAVBqpANcADdwbDmbi5AEFGIe7IYY+w0Gsf/5i88 +uv/8R95OPzo+PjJ8fFHh+2Pjk6eHrefHnWOOvEkphOztns72UmKR53Okl8SIiK6sIundbPd D62a/JWd7us7dO7qTCws57p///50D5/kua94WpdN8qWv8q+6oVsO3rWU1IxRHREREc1Q8ayT HG6ex0BApJD8n4qIQATuDhMViEAh7kHMkxmAbh+rAu7JAYe6BhdNweLWZvuXv/TBr/6lg8// 5G/Zs99796k9bZeFSQE0oh93jkJQqDcKaTTUzdplPC47ky3nQkREK2rmERvr7C6f+jfJ+K9v X1dsZR7tsYvPufIA2fM+avxzX4u0LhvfHjtFP2lVaresTthRxx3T1UtEREQ0StFOEQCgKiKi EBVVUdWARiEisKqQTg1wN0NIOZvzlOAQFw3ujWRmKoD7VtP/9X/5g7/8S0+/+Nq/e+Ol/yA0 f+R7f/S/iVgBiEIkJMPHJ20FQgOFisNg0d1F9dadO8t9RYiIaGpzKohjZneZDH6TTL1k4Qzb Y+e0aN2ZpsvsMOK5L+tZXMQFf7oHY7IlxmGDi+hNshkRERHRUEVyQEQA7wZ1aiKA/Nu/8L3/ 8Mtv37zegEy6qpxb2+1AZEObu81rf7l189+XcB3pXYh/6nbn//o7H+buWUsn/+ifNX77v/9s jEieypRU0Gy0trc3t7a2jk+O5vl8iYhoXti+Smca800yKrgZVWSXzaTUbrk5Vz75i5farWNa l81qyMxSgrAqlcv1fWMW3esbkUFEREQ0XhEBuAMiKYmYJoOIiF7bat955de2bv2ySJFL7MZw i+7t1P5BbH9LG59t3fz3JOwgvYv4GHAgSbi+8/JfF90CivL4W7dv/c2792z/cavTTjFZEQRF 0WhthEbz6fvvL+SJExHRLM07rdva2jo64r/orLczv0mmLra6SKndiuRcFym1k7yc8GRWLa2r XLyQdolpXXUCZ3a/Vrkei+yIiIhovEI1uLsD5oC5IwFoFNhoxqJ5B+0/8Pi9MYGdW5nSkVnH 5GVt/uTmi/+56C3Yh4jvAtbbqKONz6anvxeK69DbIp+9fXP75ReOH75TJE9Q10JFpd05aXdO 2u2TxTxzIiKalcXU1jGzW1+Tf4csuD12RdK6bOpSO3efMLNb2bQuu3fv3ttvv11dPTPVWp1q teo8J4zhmNYRERHRmVQBFSiggORiO8cLN45fvNNQbcLbz6d1vcvuZp1YfliWz5K8go1/Y/PF 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 dmyUKjFt5dlau9nMg5AxpzzLsixjprLsVrFoNjMRFqGs4VtrjVYrv//6nd//5j/Y2lw/Ojr+ 5JNfHezvM7uyskePnh4dHpdFqaoxxqqKsYqaUkopVjHGuOjHBAAAAGCaZt3sbkKt6xtsduNl uys1u0lOTV1aOzs79YMwSa27ruoH58KOhtk6AACYJ2nkeZZlWfCZ97l3mSNHKppEYybUzoNn lRQDU6uRtfIglKqyl1JFlMxSUfQ6vU4WXKvdCJnLG6G91mqvtZrNRrOZvf3m63/0B7+zvtY6 Ojr+6c9+dnR05H2WNdb2n3eODo9PTronnW6vV1RVpXr6r4tOcF4sAAAArJ4hQ3Y0y2Y39Vq3 tKti+yZfHtsvVsNdy1rXN0ZUGqx112+8btD5BwdJDgAA5kyUlMjESQg+Cz4E74UcqyPLvbSz kDF5tkbmmo2QBacay6JHpGaaUiyKXlVW6xsbeZ475xrNZmut5YP3wa+ttTY21t598Maf//F3 19qtw8PDDz/8sNvtNputzZ3XovlYJVMlI+dCCCHPshCyLMsX/ZgAAAAATN8smt2Nmq0bNOst 7Wig1iHN1G5Orevb39+vO93wWjd2y8N6WAAAGEKOjk863W5VVUbmnQvOOREvnHvJvfNiQuqE 8uAz55NqryiqqiLjFKksYlkmItdqrydjFpflufdZUk2qzVZrba3daObvvfvmv/5Xf7qzvfn4 8eMPPvigKMpWq72xfdfnayHkjTxvNhutViNvNJp5HjK/6McEAAAAYBzDh+xo2s3uxta62tS3 tBvcTu56z9aN4QbWOrpkeezwHjderUMUBgCA8+TkpNvpFTEmYpbgg/dBnGN2IqRaFkVVlGxE RGWsekWvVxRl0ipZWcROp6pKEsnIfLcb1cT5nMXHmIqqFO8azUaz2Wjk2W+8e/8//Rf/dH2t +fDhw5///OdFUWRZvra502htuhBEyMwopaSJ9EYc0QUAAAA307Sa3Uxr3fKviu2bxTEUqHVn 3Mxa1zf6obHobgAAMEWydevWxtZOe2Oz3V5vNVrOBzWLMVVVLMuYohqxOK/GZRl73bKKSixV sk636hyXpr6Rr3W6ZVEk73LvcyM2EjOKKRGRiIgXsnT/jVt//k+/vbne+vjnP//kk0+qqgoh u3X3Xnt9JyZTTWqJKFU4dAIAAABW1iuH7Ggaze6Gz9adMZVjKPqpBbVuiBtY62r9p8e0khwW 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 nfbDkdmJztXRBz/70WeDuf7ZYWZHREQbooQDIqYlw1trwzBk5ouOzswHDx784z/+449//OO3 3nrrL//yL7/85S+/+eab4zi21h4/fvzgwYP33nvv3//93+/fv//OO+/84R/+4fb29hF3LyLu Ps3zcm+e52plQFy/70GJiIiInvLStO76FtmdND+6XqVeR7iSzO6VSuvw4vNzombYI5pqj74p ZnZERLQ5yu1bt8V0Nc+PVk9qrYvF4ojAbmdn52/+5m/+4z/+45133vnmN7957949M4uI1pq7 b29vf/azn3377bd/8zd/8+///u+//e1vZ+Y3vvGNxWLxohsUkVrrLx/86mc/e381zSo6TdPF PFMiIiKiS3IRtXUb4pVN67rzyuxwvPKxVy2t657N7C4nrSMiItooCoOalNGG0Vpr8WLL5fL7 3//+u++++7Wvfe1b3/rWvXv3VDUze2vGQXfGOI5f/vKX33nnna2trb/7u7/7+c9/7u5H3Gxr 7fHj3U8+3n34cO+Th7uP9+arPSNEREREZ3H8tO502cERv1u9aK94Wtc9ePCgT7LD/ki707mI 5OgGpHXd4ZNzohPFtI6IiG4MhSAloYDkEYGdu3/44Yf/8A//8PnPf/6v//qv79y54+49ieuZ XV/2evAd5Ouvv/57v/d7Dx8+/P73v//kyZOjA7tpNbVIT3hK5gnW1BIRERFtFNbWHXgqrbvW +dGzDmd2p47tnsqPnopiz7LZ49RnuzeEnvp+z9Hdu3ePk68d/9GeKK3bkJNARESvMlURAUxV gKMDux/96Ee7u7u//du//dnPfrandW2fuwM4yOxqrbXWL33pS2+++eYPf/jDhw8fHlFk11pb zXMiVaSIce8EERERXbnT/bh+irTuuhTZMa171uGc7rwyuwNnaYY9y9k+aNfdkMTq6JF/x2+G ZW0dERFdO1pMFZCEStZajwjs3n333Vu3bn31q1/t9XQ9pztI4ty9l9q5+3K5rLUOw3D37t3l cvnBBx8cfcu11RQBxK/6dBARERHh0Oz5E13rdKnN5kcJTOte5IIyu6tK656yIbHdi75ALiKt 24TnS0RE1KmZiYqZqq5n2PkL7OzsbG9vv/766621WutTFXYH5XK7u7tPnjzpI+1ee+01M9vZ 2TlI957Sr1JrUzWoZsYVjmUhIiIiesqJfoA/dXfkMbv/Dru0b5mY1h3tXEbaHX4BbEha121U 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 3vzMc0oAgGL/6r7lpcVBVXVvfehSchYsdL9AZwHAms33u/YvIeh+z8427ebDiaPRuDBmaWlp OFzYbL/1LCRY21rbNE1T101dN+3WHT1jLTQWbNPWdVtvvlqgbtqmcSSvH/3jf/fGO3/wjf/m rR87+I//t++94VDRHv/rj//dgZtvv+7coSmWL7nl25668cmPfXGMzNTSk7/p6qW1tX1XX3P+ MHe627VP/PsfvvMH3/AjP/e+9oWv/4Hbzi9BKEB57nNe8azH3v/23/jk4X/04itn9gizQqFQ KBQKhUKhUCgUCoViz6FcXh02a+t1I81cAcDgom95zsGH7vmbxyw0jzzwiUcvvuWagwUAAFQ/ /VM/vpPSR/GCW29x/lUdvv2NP/qSpU/8+s++b7TvwIIBaNa+sWaXDi8XmwQrhxdGXzpZA/iP vE6O/vf3PPCEW2888bHf+ehz3vCC87OuuBXLN9z5lv/pgs/8l5/5zZPDA0sFALSUAB7M4mW3 33bOve+/4DXPPqfI6VuhUCgUCoVCoVAoFAqFQnFawE5OHBsP9q8MrDBxBAAA5Xk3PPe8j3zs r44968gDf3bskhc+7cBWMwA4ceJE94+jR4/OXX4MF110UfdhdXV1sBi81KE4fMN33vaRX3j3 H9785jsuG6ycs2LWHl1rYX8JAPWpR0cLB/dVAADuLbbma/fcdffwRT/08m8+Vv/bt//2x6/7 X285J/epVLPv6S97yUU/+/t/8FdP/+5r9hWkAP4tumLpwFI5XFnSp2EVCoVCoVAoFAqFQqFQ KM5gtMf+8qMPlZf9swuHRUMkjtBLdsWh6269+AN3f+rzp/78+KXfdnX/BoQCAIwx99xzzz33 3LNjo/Bwzz33fPrTn+5eQtq2TUgweOLzX3ljc8+7P/LVSbH/6lsuO3nvhz/96MTajS//f3/0 4PDa51w8BDCLq8PR1/9hrQVrm0fu/e0/qp/3T29+QrV05Nu/6+q//2/vuf9Ymy9gcc43f9e3 rvzFez7w+Q1LCVAsrC60x49+YwKWeK+CQqFQKBQKhUKhUCgUCoXiTIJtxyf+/m//x7t+/be/ cOG3vfyaVUNmrnAU+5/2/Mu+cc8H7z1x5LlXPP6Tao8/SHrZZZfNeQgk3K7bBst2maUj3/6K q376t9798Wff+bwbv/tfHbvrd37uh985MisXXf+y//mOK5YMwPCiW2+/6tfe8+NveN9TX/4i 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 B7+IaQAAAABJRU5ErkJggg== --------------060005090709040109030109-- From psmith@aconex.com Wed Jul 9 18:22:53 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 395CE7F4E for ; Wed, 9 Jul 2014 18:22:53 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 14E578F8033 for ; Wed, 9 Jul 2014 16:22:52 -0700 (PDT) X-ASG-Debug-ID: 1404948163-04cbb06537390220001-S8gJnT Received: from postoffice2.aconex.com (mail.aconex.com [175.45.105.35]) by cuda.sgi.com with ESMTP id H0SE68jT2mwrWbE9 for ; Wed, 09 Jul 2014 16:22:45 -0700 (PDT) X-Barracuda-Envelope-From: psmith@aconex.com X-Barracuda-Apparent-Source-IP: 175.45.105.35 Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.35.100]) by postoffice2.aconex.com with ESMTP id TWvNlQZGBiDWOihp for ; Thu, 10 Jul 2014 09:22:41 +1000 (EST) Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.35.102]) by postoffice.aconex.com (Postfix) with ESMTP id 769FA3CE009F for ; Thu, 10 Jul 2014 09:22:41 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id 6734C243A03D for ; Thu, 10 Jul 2014 09:22:41 +1000 (EST) Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id YCNCDjtnugPJ for ; Thu, 10 Jul 2014 09:22:39 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id 3E4C0243A1C6 for ; Thu, 10 Jul 2014 09:22:39 +1000 (EST) X-Virus-Scanned: amavisd-new at aconex.com Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id CIk-7g3Qu4iT for ; Thu, 10 Jul 2014 09:22:39 +1000 (EST) Received: from paul.engr.acx (paul.engr.acx [192.168.7.130]) by gatekeeper.aconex.com (Postfix) with ESMTPSA id ED383243A17C for ; Thu, 10 Jul 2014 09:22:38 +1000 (EST) From: Paul Smith Content-Type: multipart/alternative; boundary="Apple-Mail=_A3C9333D-ECD6-41F6-BD3D-437B1E47785A" Message-Id: Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: [pcp] pcp updates - pmview Date: Thu, 10 Jul 2014 09:22:36 +1000 X-ASG-Orig-Subj: Re: [pcp] pcp updates - pmview References: <53BDCDB7.8030500@internode.on.net> To: pcp@oss.sgi.com In-Reply-To: <53BDCDB7.8030500@internode.on.net> X-Mailer: Apple Mail (2.1878.6) X-Virus-Scanned: by bsmtpd at aconex.com X-Barracuda-Connect: mail.aconex.com[175.45.105.35] X-Barracuda-Start-Time: 1404948164 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE, INFO_TLD X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7387 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 INFO_TLD URI: Contains an URL in the INFO top-level domain 0.00 HTML_MESSAGE BODY: HTML included in message --Apple-Mail=_A3C9333D-ECD6-41F6-BD3D-437B1E47785A Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 My feelings on reading this, expressed as meme image: = http://devopsreactions.tumblr.com/post/78737762355/deploying-on-the-brand-= new-powerful-hardware Cannot wait Ken, I=92m very happy to try this out when you think it=92s = worth taking out on the race track! cheers, Paul On 10 Jul 2014, at 9:18 am, Ken McDonell wrote: > For those that remember, pmview was (and will be again) a fancy 3-D = performance scene viewer with the objects in the scene (blocks, = cylinders, stacked blocks, stacked cylinders) arranged layers of nested = X-Y coordinate grids) and then these objects are modulated (in size or = color) based on the time-series of metric values behind each object = component. >=20 > If you squint at the attached image (taken today from my desktop) = you'll see CPU, disk and network groups of "objects" ... now imagine = these are colored (stacked for CPU modes, disk read/writes) and height = modulated ... the imagine part is just not working yet ... 8^) >=20 > This layout comes from osvis, but there are many other *vis tools and = you can create your own scenes, pmview is a general performance = visualization tool for arbitrary scenes. >=20 > Well this was one of the last pieces released by SGI to open source = and has been languishing for sometime ... I, Nathan and Chatz have all = had a chew on it at various stages over the past 6 years but it is time = to give it some more serious love. >=20 > Although this builds "as is", it is not connected to the PCP build = yet, and when it is your build environment will need additional = Inventor, Coin and Qt bits ... more details on this when I connect it = into the main build. >=20 > Changes committed to git://oss.sgi.com/kenj/pcp.git dev >=20 > images/aboutqt.png |binary > images/aboutqt.svg | 136 > images/document-save-as.png |binary > images/document-save-as.svg | 601 ++++ > images/pmview.icns |binary > images/pmview.png |binary > images/pmview.svg | 503 +++ > images/pmviewicon.png |binary > images/title-close.png |binary > images/title-close.svg | 385 ++ > images/title-focus.png |binary > images/title-focus.svg | 218 + > images/title-trans.png |binary > images/title-trans.svg | 218 + > images/view-close.png |binary > images/view-close.svg | 337 ++ > images/view-edit.png |binary > images/view-edit.svg | 329 ++ > images/view-new.png |binary > images/view-new.svg | 317 ++ > images/view-rotate.png |binary > images/view-rotate.svg | 446 +++ > qa/admin/check-vm | 5 > src/libapp/.gitignore | 1 > src/libapp/GNUmakefile | 60 > src/libapp/app.cpp | 274 +- > src/libapp/app.h | 81 > src/libapp/console.cpp | 96 > src/libapp/console.h | 40 > src/libapp/console.ui | 132 > src/libapp/fileiconprovider.cpp | 139 + > src/libapp/fileiconprovider.h | 52 > src/libapp/groupcontrol.cpp | 333 ++ > src/libapp/groupcontrol.h | 122 > src/libapp/images/GNUmakefile | 60 > src/libapp/libapp.pro.in | 16 > src/libapp/libapp.qrc | 131 > src/libapp/recorddialog.cpp | 341 ++ > src/libapp/recorddialog.h | 97 > src/libapp/recorddialog.ui | 540 +++ > src/libapp/statusbar.cpp | 105 > src/libapp/statusbar.h | 61 > src/libapp/timebutton.cpp | 100 > src/libapp/timebutton.h | 60 > src/libapp/timecontrol.cpp | 531 +++ > src/libapp/timecontrol.h | 126 > src/libapp/viewcontrol.cpp | 164 + > src/libapp/viewcontrol.h | 70 > src/libpcp_inv/GNUmakefile | 72 > src/libpcp_inv/src/App.c++ | 188 - > src/libpcp_inv/src/App.cpp | 94 > src/libpcp_inv/src/App.h | 94 > src/libpcp_inv/src/ColScaleMod.c++ | 772 ++--- > src/libpcp_inv/src/ColScaleMod.cpp | 386 +- > src/libpcp_inv/src/ColScaleMod.h | 158 - > src/libpcp_inv/src/ColorMod.c++ | 660 ++-- > src/libpcp_inv/src/ColorMod.cpp | 330 +- > src/libpcp_inv/src/ColorMod.h | 146 - > src/libpcp_inv/src/ColorScale.c++ | 676 ++-- > src/libpcp_inv/src/ColorScale.cpp | 338 +- > src/libpcp_inv/src/ColorScale.h | 206 - > src/libpcp_inv/src/Form.c++ | 756 ++--- > src/libpcp_inv/src/Form.cpp | 378 +- > src/libpcp_inv/src/Form.h | 118 > src/libpcp_inv/src/FormUI.c++ | 1400 +++++----- > src/libpcp_inv/src/FormUI.cpp | 700 ++--- > src/libpcp_inv/src/FormUI.h | 152 - > src/libpcp_inv/src/GNUmakefile | 140 - > src/libpcp_inv/src/Inv.c++ | 800 ++--- > src/libpcp_inv/src/Inv.cpp | 400 +- > src/libpcp_inv/src/Inv.h | 226 - > src/libpcp_inv/src/Launch.c++ | 1628 +++++------ > src/libpcp_inv/src/Launch.cpp | 814 ++--- > src/libpcp_inv/src/Launch.h | 260 - > src/libpcp_inv/src/LaunchMenu.c++ | 696 ++--- > src/libpcp_inv/src/LaunchMenu.cpp | 348 +- > src/libpcp_inv/src/LaunchMenu.h | 118 > src/libpcp_inv/src/Menu.c++ | 680 ++-- > src/libpcp_inv/src/Menu.cpp | 340 +- > src/libpcp_inv/src/Menu.h | 242 - > src/libpcp_inv/src/MetricList.c++ | 932 +++--- > src/libpcp_inv/src/MetricList.cpp | 466 +-- > src/libpcp_inv/src/MetricList.h | 198 - > src/libpcp_inv/src/ModList.c++ | 1896 ++++++------- > src/libpcp_inv/src/ModList.cpp | 948 +++--- > src/libpcp_inv/src/ModList.h | 302 +- > src/libpcp_inv/src/Modulate.c++ | 560 ++-- > src/libpcp_inv/src/Modulate.cpp | 280 +- > src/libpcp_inv/src/Modulate.h | 252 - > src/libpcp_inv/src/PCPColor.c++ | 408 +- > src/libpcp_inv/src/PCPColor.cpp | 204 - > src/libpcp_inv/src/PCPColor.h | 128 > src/libpcp_inv/src/Record.c++ | 2204 ++++++++-------- > src/libpcp_inv/src/Record.cpp | 1102 ++++---- > src/libpcp_inv/src/Record.h | 258 - > src/libpcp_inv/src/ScaleMod.c++ | 748 ++--- > src/libpcp_inv/src/ScaleMod.cpp | 374 +- > src/libpcp_inv/src/ScaleMod.h | 152 - > src/libpcp_inv/src/StackMod.c++ | 2372 ++++++++--------- > src/libpcp_inv/src/StackMod.cpp | 1186 ++++---- > src/libpcp_inv/src/StackMod.h | 228 - > src/libpcp_inv/src/ToggleMod.c++ | 436 +-- > src/libpcp_inv/src/ToggleMod.cpp | 218 - > src/libpcp_inv/src/ToggleMod.h | 166 - > src/libpcp_inv/src/View.c++ | 4380 = ++++++++++++++++---------------- > src/libpcp_inv/src/View.cpp | 2190 ++++++++-------- > src/libpcp_inv/src/View.h | 370 +- > src/libpcp_inv/src/VkPixmap.c++ | 644 ++-- > src/libpcp_inv/src/VkPixmap.cpp | 322 +- > src/libpcp_inv/src/Window.c++ | 1056 +++---- > src/libpcp_inv/src/Window.cpp | 528 +-- > src/libpcp_inv/src/Window.h | 200 - > src/libpcp_inv/src/YScaleMod.c++ | 220 - > src/libpcp_inv/src/YScaleMod.cpp | 110 > src/libpcp_inv/src/YScaleMod.h | 106 > src/pmview/.gitignore | 7 > src/pmview/BarMod.c++ | 1212 ++++---- > src/pmview/BarMod.cpp | 1212 ++++---- > src/pmview/BarMod.h | 296 +- > src/pmview/BarObj.c++ | 1076 +++---- > src/pmview/BarObj.cpp | 1076 +++---- > src/pmview/BarObj.h | 264 - > src/pmview/BaseObj.c++ | 262 - > src/pmview/BaseObj.cpp | 262 - > src/pmview/BaseObj.h | 266 - > src/pmview/ColorList.c++ | 422 +-- > src/pmview/ColorList.cpp | 422 +-- > src/pmview/ColorList.h | 182 - > src/pmview/DefaultObj.c++ | 394 +- > src/pmview/DefaultObj.cpp | 394 +- > src/pmview/DefaultObj.h | 334 +- > src/pmview/GNUmakefile | 245 + > src/pmview/GridObj.c++ | 636 ++-- > src/pmview/GridObj.cpp | 636 ++-- > src/pmview/GridObj.h | 242 - > src/pmview/LabelObj.c++ | 238 - > src/pmview/LabelObj.cpp | 238 - > src/pmview/LabelObj.h | 226 - > src/pmview/Link.c++ | 444 +-- > src/pmview/Link.cpp | 444 +-- > src/pmview/Link.h | 116 > src/pmview/ModObj.h | 98 > src/pmview/PipeObj.c++ | 390 +- > src/pmview/PipeObj.cpp | 390 +- > src/pmview/PipeObj.h | 126 > src/pmview/README | 58 > src/pmview/SceneFileObj.c++ | 268 - > src/pmview/SceneFileObj.cpp | 268 - > src/pmview/SceneFileObj.h | 120 > src/pmview/StackObj.c++ | 302 +- > src/pmview/StackObj.cpp | 302 +- > src/pmview/StackObj.h | 166 - > src/pmview/Text.c++ | 678 ++-- > src/pmview/Text.cpp | 678 ++-- > src/pmview/Text.h | 186 - > src/pmview/ViewObj.c++ | 350 +- > src/pmview/ViewObj.cpp | 350 +- > src/pmview/ViewObj.h | 300 +- > src/pmview/Xing.c++ | 400 +- > src/pmview/Xing.cpp | 400 +- > src/pmview/Xing.h | 106 > src/pmview/app-defaults | 207 + > src/pmview/barmod.cpp | 607 ++++ > src/pmview/barmod.h | 133 > src/pmview/barobj.cpp | 539 +++ > src/pmview/barobj.h | 125 > src/pmview/baseobj.cpp | 125 > src/pmview/baseobj.h | 119 > src/pmview/colorlist.cpp | 186 + > src/pmview/colorlist.h | 77 > src/pmview/colormod.cpp | 165 + > src/pmview/colormod.h | 59 > src/pmview/colorscale.cpp | 158 + > src/pmview/colorscale.h | 89 > src/pmview/colorscalemod.cpp | 194 + > src/pmview/colorscalemod.h | 65 > src/pmview/defaultobj.cpp | 175 + > src/pmview/defaultobj.h | 152 + > src/pmview/error.c++ | 110 > src/pmview/error.cpp | 93 > src/pmview/front-ends/GNUmakefile | 25 > src/pmview/front-ends/clustervis | 357 ++ > src/pmview/front-ends/config.clustervis | 51 > src/pmview/front-ends/config.dkvis | 44 > src/pmview/front-ends/config.mpvis | 45 > src/pmview/front-ends/config.nfsvis | 44 > src/pmview/front-ends/config.osvis | 63 > src/pmview/front-ends/config.weblogvis | 52 > src/pmview/front-ends/config.webpingvis | 40 > src/pmview/front-ends/config.webvis | 83 > src/pmview/front-ends/dkvis | 592 ++++ > src/pmview/front-ends/mpvis | 474 +++ > src/pmview/front-ends/nfsvis | 262 + > src/pmview/front-ends/osvis | 679 ++++ > src/pmview/front-ends/pmview-args | 643 ++++ > src/pmview/front-ends/weblogvis | 473 +++ > src/pmview/front-ends/weblogvis.load | 103 > src/pmview/front-ends/weblogvis.rgb |binary > src/pmview/front-ends/webpingvis | 398 ++ > src/pmview/front-ends/webpingvis.rgb |binary > src/pmview/front-ends/webvis | 733 +++++ > src/pmview/front-ends/webvis.rgb |binary > src/pmview/gram.y | 1509 ++++++++++- > src/pmview/gridobj.cpp | 314 ++ > src/pmview/gridobj.h | 107 > src/pmview/icon |binary > src/pmview/labelobj.cpp | 112 > src/pmview/labelobj.h | 99 > src/pmview/launch.cpp | 487 +++ > src/pmview/launch.h | 113 > src/pmview/lex.l | 490 +++ > src/pmview/link.cpp | 218 + > src/pmview/link.h | 52 > src/pmview/main.cpp | 503 +++ > src/pmview/main.h | 157 + > src/pmview/metriclist.cpp | 234 + > src/pmview/metriclist.h | 84 > src/pmview/modlist.cpp | 473 +++ > src/pmview/modlist.h | 134 > src/pmview/modobj.h | 43 > src/pmview/modulate.cpp | 134 > src/pmview/modulate.h | 117 > src/pmview/pcpcolor.cpp | 100 > src/pmview/pcpcolor.h | 61 > src/pmview/pipeobj.cpp | 187 + > src/pmview/pipeobj.h | 54 > src/pmview/pmview.c++ | 884 +++--- > src/pmview/pmview.cpp | 1503 ++++++++-- > src/pmview/pmview.desktop | 8 > src/pmview/pmview.h | 302 +- > src/pmview/pmview.info | 36 > src/pmview/pmview.info.in | 18 > src/pmview/pmview.pro.in | 35 > src/pmview/pmview.qrc | 61 > src/pmview/pmview.ui | 390 ++ > src/pmview/scalemod.cpp | 187 + > src/pmview/scalemod.h | 62 > src/pmview/scenefileobj.cpp | 127 > src/pmview/scenefileobj.h | 53 > src/pmview/scenegroup.cpp | 200 + > src/pmview/scenegroup.h | 80 > src/pmview/stackmod.cpp | 598 ++++ > src/pmview/stackmod.h | 98 > src/pmview/stackobj.cpp | 148 + > src/pmview/stackobj.h | 76 > src/pmview/text.cpp | 338 ++ > src/pmview/text.h | 83 > src/pmview/togglemod.cpp | 106 > src/pmview/togglemod.h | 75 > src/pmview/view.cpp | 282 +- > src/pmview/viewobj.cpp | 172 + > src/pmview/viewobj.h | 135 > src/pmview/xing.cpp | 210 + > src/pmview/xing.h | 48 > src/pmview/yscalemod.cpp | 46 > src/pmview/yscalemod.h | 44 > 256 files changed, 55231 insertions(+), 30664 deletions(-) >=20 > commit ff7a1a89b7e1322d658e68ff51dac4f540b27ff2 > Author: Ken McDonell > Date: Thu Jul 10 09:00:25 2014 +1000 >=20 > qa/admin/check-vm - 1st cut at packages needed for pmview >=20 > commit 57422edf11da381eb1fc9f705aff63d1604886be > Author: Ken McDonell > Date: Thu Jul 10 08:58:42 2014 +1000 >=20 > pmview - initial version >=20 > Compiles, parses scene graphs, draws scenes, ... but no metric > modulation (animation) and no time controls and ... >=20 > commit 9661484c65648e8599a0177c9c151b3f4173ca17 > Author: Ken McDonell > Date: Thu Jul 10 08:57:46 2014 +1000 >=20 > libapp - cull refs to some unused images, add .gitignore >=20 > commit c110dfd59117c770e7c75d5f190e37adb5912737 > Author: Ken McDonell > Date: Tue Jul 8 10:43:19 2014 +1000 >=20 > libapp - builds in main tree >=20 > No testing. > And lots of functional overlap between here and pmchart, so we'll > need so refactoring here to allow pmchart and pmview to share the > parts of libapp that are really commmon. > Also remnant references to pmchart here indicate origins of this > code on pmchart that were never cleaned up when it was extracted > to be used my pmview. >=20 > commit 8be19accd6732f88708e93628fbaf198705653d7 > Author: Ken McDonell > Date: Tue Jul 8 07:08:57 2014 +1000 >=20 > libapp & pmview - add startconsole() method >=20 > Delay the creation of the Console() until after the command line > arguments have been parsed so that pmDebug has a chance to be set > and influence the output. >=20 > commit d355162c5d160371a9c07b5872ac79a8d0dedfd8 > Author: Ken McDonell > Date: Tue Jul 8 07:06:25 2014 +1000 >=20 > libapp/timecontrol.cpp - add diag to track timecontrol creation >=20 > commit ef0fa1f69a6811cc65a8e926bb0fca8cb1d93e12 > Author: Ken McDonell > Date: Tue Jul 8 07:02:59 2014 +1000 >=20 > libapp - cleaning up >=20 > Expunge views dir that is not needed. > Rework path to images (all should be in ../../images). >=20 > commit 6848d55ef52a814b5da23822f996d1b9645dea65 > Author: Ken McDonell > Date: Tue Jul 8 06:57:43 2014 +1000 >=20 > libapp (new) - refactoring of common UI components >=20 > Initial checkin of work from Ken and Aconex as released to open > source. >=20 > commit 1f4924ca9ccb43d821dab5c14f92914096c8f86f > Author: Ken McDonell > Date: Tue Jul 8 06:45:20 2014 +1000 >=20 > pmview - changes to remove use of QtAssistant >=20 > commit 5cde3bc101447fc9f62f45ae09107524ca04bfaa > Author: Ken McDonell > Date: Mon Jul 7 16:56:27 2014 +1000 >=20 > pmview - add makefile for front-end scripts >=20 > commit 9d46418ab0c7a4a62b8b24cae2aa3c907f0f2770 > Author: Ken McDonell > Date: Mon Jul 7 06:58:53 2014 +1000 >=20 > pmview - merge changes from Aconex >=20 > commit 813a7652da589c8fa18bce084a4acb1f80621de8 > Author: Ken McDonell > Date: Sun Jul 6 14:17:52 2014 +1000 >=20 > Revert "libpcp_inv - base source checkin" >=20 > This reverts commit fcd9892042e23ea2077da65c9cd6efa80cfd93d6. >=20 > commit 614365c6c5ed043c6fe9e83c84298013f2c209ac > Author: Ken McDonell > Date: Sun Jul 6 14:17:00 2014 +1000 >=20 > Revert "libpcp_inv - rename .c++ files to .cpp" >=20 > This reverts commit 01f1012e4c201cdde47c61b9a0cdd480abd1ce26. >=20 > commit 8c5f55dec1dd55955f9332d9b6bdd988b86c6eb9 > Author: Ken McDonell > Date: Sun Jul 6 14:11:17 2014 +1000 >=20 > Add images for pmview >=20 > commit 01f1012e4c201cdde47c61b9a0cdd480abd1ce26 > Author: Ken McDonell > Date: Sun Jul 6 06:58:48 2014 +1000 >=20 > libpcp_inv - rename .c++ files to .cpp >=20 > commit fcd9892042e23ea2077da65c9cd6efa80cfd93d6 > Author: Ken McDonell > Date: Sun Jul 6 06:55:57 2014 +1000 >=20 > libpcp_inv - base source checkin >=20 > This is the code base for the Inventor interface library used by = pmview > as released to open source by SGI. >=20 > commit fa7f7569e43bfcbc563ea54d70c14a4013c7b29c > Author: Ken McDonell > Date: Sun Jul 6 06:51:48 2014 +1000 >=20 > pmview - rename .c++ files to .cpp >=20 > commit fda41007d34229e278d6189e27eebd0445175d62 > Author: Ken McDonell > Date: Sat Jul 5 21:27:29 2014 +1000 >=20 > pmiew - base source checkin >=20 > This is the code base for pmview and the associated frontend > scripts as released to open source by SGI. > _______________________________________________ > pcp mailing list > pcp@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/pcp --Apple-Mail=_A3C9333D-ECD6-41F6-BD3D-437B1E47785A Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=windows-1252 My = feelings on reading this, expressed as meme image: http://devopsreactions.tumblr.com/post/7873= 7762355/deploying-on-the-brand-new-powerful-hardware

Cannot wait Ken, I=92m very happy to try this out when you think it=92s = worth taking out on the race = track!

cheers,

Paul
<= div>
On 10 Jul 2014, at 9:18 am, Ken McDonell <kenj@internode.on.net> = wrote:

For those that remember, pmview was (and will be again) a = fancy 3-D performance scene viewer with the objects in the scene = (blocks, cylinders, stacked blocks, stacked cylinders) arranged layers = of nested X-Y coordinate grids) and then these objects are modulated (in = size or color) based on the time-series of metric values behind each = object component.

If you squint at the attached image (taken = today from my desktop) you'll see CPU, disk and network groups of = "objects" ... now imagine these are colored (stacked for CPU modes, disk = read/writes) and height modulated ... the imagine part is just not = working yet ... 8^)

This layout comes from osvis, but there are = many other *vis tools and you can create your own scenes, pmview is a = general performance visualization tool for arbitrary scenes.

Well = this was one of the last pieces released by SGI to open source and has = been languishing for sometime ... I, Nathan and Chatz have all had a = chew on it at various stages over the past 6 years but it is time to = give it some more serious love.

Although this builds "as is", it = is not connected to the PCP build yet, and when it is your build = environment will need additional Inventor, Coin and Qt bits ... more = details on this when I connect it into the main build.

Changes = committed to git://oss.sgi.com/kenj/pcp.git= dev

images/aboutqt.png =             &n= bsp;        |binary
= images/aboutqt.svg =             &n= bsp;        |  136
= images/document-save-as.png =             |b= inary
images/document-save-as.svg =             | =  601 ++++
images/pmview.icns =             &n= bsp;        |binary
= images/pmview.png =             &n= bsp;         |binary
= images/pmview.svg =             &n= bsp;         |  503 = +++
images/pmviewicon.png =             &n= bsp;     |binary
images/title-close.png =             &n= bsp;    |binary
images/title-close.svg =             &n= bsp;    |  385 ++
images/title-focus.png =             &n= bsp;    |binary
images/title-focus.svg =             &n= bsp;    |  218 +
images/title-trans.png =             &n= bsp;    |binary
images/title-trans.svg =             &n= bsp;    |  218 +
images/view-close.png =             &n= bsp;     |binary
images/view-close.svg =             &n= bsp;     |  337 ++
= images/view-edit.png =             &n= bsp;      |binary
images/view-edit.svg =             &n= bsp;      |  329 ++
= images/view-new.png =             &n= bsp;       |binary
= images/view-new.svg =             &n= bsp;       |  317 ++
= images/view-rotate.png =             &n= bsp;    |binary
images/view-rotate.svg =             &n= bsp;    |  446 +++
qa/admin/check-vm =             &n= bsp;         | =    5
src/libapp/.gitignore =             &n= bsp;     |    1
= src/libapp/GNUmakefile =             &n= bsp;    |   60
src/libapp/app.cpp =             &n= bsp;        |  274 +-
= src/libapp/app.h =             &n= bsp;          | =   81
src/libapp/console.cpp =             &n= bsp;    |   96
src/libapp/console.h =             &n= bsp;      |   40
= src/libapp/console.ui =             &n= bsp;     |  132
= src/libapp/fileiconprovider.cpp =         |  139 +
= src/libapp/fileiconprovider.h =           | =   52
src/libapp/groupcontrol.cpp =             | =  333 ++
src/libapp/groupcontrol.h =             &n= bsp; |  122
src/libapp/images/GNUmakefile =           | =   60
src/libapp/libapp.pro.in =             &n= bsp;  |   16
src/libapp/libapp.qrc =             &n= bsp;     |  131
= src/libapp/recorddialog.cpp =             | =  341 ++
src/libapp/recorddialog.h =             &n= bsp; |   97
src/libapp/recorddialog.ui =             &n= bsp;|  540 +++
src/libapp/statusbar.cpp =             &n= bsp;  |  105
src/libapp/statusbar.h =             &n= bsp;    |   61
= src/libapp/timebutton.cpp =             &n= bsp; |  100
src/libapp/timebutton.h =             &n= bsp;   |   60
src/libapp/timecontrol.cpp =             &n= bsp;|  531 +++
src/libapp/timecontrol.h =             &n= bsp;  |  126
src/libapp/viewcontrol.cpp =             &n= bsp;|  164 +
src/libapp/viewcontrol.h =             &n= bsp;  |   70
src/libpcp_inv/GNUmakefile =             &n= bsp;|   72
src/libpcp_inv/src/App.c++ =             &n= bsp;|  188 -
src/libpcp_inv/src/App.cpp =             &n= bsp;|   94
src/libpcp_inv/src/App.h =             &n= bsp;  |   94
src/libpcp_inv/src/ColScaleMod.c++ =      |  772 ++---
= src/libpcp_inv/src/ColScaleMod.cpp      | =  386 +-
src/libpcp_inv/src/ColScaleMod.h =        |  158 -
= src/libpcp_inv/src/ColorMod.c++ =         |  660 ++--
= src/libpcp_inv/src/ColorMod.cpp =         |  330 +-
= src/libpcp_inv/src/ColorMod.h =           |  146 = -
src/libpcp_inv/src/ColorScale.c++ =       |  676 ++--
= src/libpcp_inv/src/ColorScale.cpp       | =  338 +-
src/libpcp_inv/src/ColorScale.h =         |  206 -
= src/libpcp_inv/src/Form.c++ =             | =  756 ++---
src/libpcp_inv/src/Form.cpp =             | =  378 +-
src/libpcp_inv/src/Form.h =             &n= bsp; |  118
src/libpcp_inv/src/FormUI.c++ =           | 1400 = +++++-----
src/libpcp_inv/src/FormUI.cpp =           |  700 = ++---
src/libpcp_inv/src/FormUI.h =             | =  152 -
src/libpcp_inv/src/GNUmakefile =          |  140 -
= src/libpcp_inv/src/Inv.c++ =             &n= bsp;|  800 ++---
src/libpcp_inv/src/Inv.cpp =             &n= bsp;|  400 +-
src/libpcp_inv/src/Inv.h =             &n= bsp;  |  226 -
src/libpcp_inv/src/Launch.c++ =           | 1628 = +++++------
src/libpcp_inv/src/Launch.cpp =           |  814 = ++---
src/libpcp_inv/src/Launch.h =             | =  260 -
src/libpcp_inv/src/LaunchMenu.c++ =       |  696 ++---
= src/libpcp_inv/src/LaunchMenu.cpp       | =  348 +-
src/libpcp_inv/src/LaunchMenu.h =         |  118
= src/libpcp_inv/src/Menu.c++ =             | =  680 ++--
src/libpcp_inv/src/Menu.cpp =             | =  340 +-
src/libpcp_inv/src/Menu.h =             &n= bsp; |  242 -
src/libpcp_inv/src/MetricList.c++ =       |  932 +++---
= src/libpcp_inv/src/MetricList.cpp       | =  466 +--
src/libpcp_inv/src/MetricList.h =         |  198 -
= src/libpcp_inv/src/ModList.c++ =          | 1896 = ++++++-------
src/libpcp_inv/src/ModList.cpp =          |  948 = +++---
src/libpcp_inv/src/ModList.h =            | =  302 +-
src/libpcp_inv/src/Modulate.c++ =         |  560 ++--
= src/libpcp_inv/src/Modulate.cpp =         |  280 +-
= src/libpcp_inv/src/Modulate.h =           |  252 = -
src/libpcp_inv/src/PCPColor.c++ =         |  408 +-
= src/libpcp_inv/src/PCPColor.cpp =         |  204 -
= src/libpcp_inv/src/PCPColor.h =           | =  128
src/libpcp_inv/src/Record.c++ =           | 2204 = ++++++++--------
src/libpcp_inv/src/Record.cpp =           | 1102 = ++++----
src/libpcp_inv/src/Record.h =             | =  258 -
src/libpcp_inv/src/ScaleMod.c++ =         |  748 ++---
= src/libpcp_inv/src/ScaleMod.cpp =         |  374 +-
= src/libpcp_inv/src/ScaleMod.h =           |  152 = -
src/libpcp_inv/src/StackMod.c++ =         | 2372 = ++++++++---------
src/libpcp_inv/src/StackMod.cpp =         | 1186 ++++----
= src/libpcp_inv/src/StackMod.h =           |  228 = -
src/libpcp_inv/src/ToggleMod.c++ =        |  436 +--
= src/libpcp_inv/src/ToggleMod.cpp =        |  218 -
= src/libpcp_inv/src/ToggleMod.h =          |  166 -
= src/libpcp_inv/src/View.c++ =             | = 4380 ++++++++++++++++----------------
src/libpcp_inv/src/View.cpp =             | = 2190 ++++++++--------
src/libpcp_inv/src/View.h =             &n= bsp; |  370 +-
src/libpcp_inv/src/VkPixmap.c++ =         |  644 ++--
= src/libpcp_inv/src/VkPixmap.cpp =         |  322 +-
= src/libpcp_inv/src/Window.c++ =           | 1056 = +++----
src/libpcp_inv/src/Window.cpp =           |  528 = +--
src/libpcp_inv/src/Window.h =             | =  200 -
src/libpcp_inv/src/YScaleMod.c++ =        |  220 -
= src/libpcp_inv/src/YScaleMod.cpp =        |  110
= src/libpcp_inv/src/YScaleMod.h =          |  106
= src/pmview/.gitignore =             &n= bsp;     |    7
= src/pmview/BarMod.c++ =             &n= bsp;     | 1212 ++++----
= src/pmview/BarMod.cpp =             &n= bsp;     | 1212 ++++----
= src/pmview/BarMod.h =             &n= bsp;       |  296 +-
= src/pmview/BarObj.c++ =             &n= bsp;     | 1076 +++----
= src/pmview/BarObj.cpp =             &n= bsp;     | 1076 +++----
src/pmview/BarObj.h =             &n= bsp;       |  264 -
= src/pmview/BaseObj.c++ =             &n= bsp;    |  262 -
src/pmview/BaseObj.cpp =             &n= bsp;    |  262 -
src/pmview/BaseObj.h =             &n= bsp;      |  266 -
= src/pmview/ColorList.c++ =             &n= bsp;  |  422 +--
src/pmview/ColorList.cpp =             &n= bsp;  |  422 +--
src/pmview/ColorList.h =             &n= bsp;    |  182 -
src/pmview/DefaultObj.c++ =             &n= bsp; |  394 +-
src/pmview/DefaultObj.cpp =             &n= bsp; |  394 +-
src/pmview/DefaultObj.h =             &n= bsp;   |  334 +-
src/pmview/GNUmakefile =             &n= bsp;    |  245 +
src/pmview/GridObj.c++ =             &n= bsp;    |  636 ++--
src/pmview/GridObj.cpp =             &n= bsp;    |  636 ++--
src/pmview/GridObj.h =             &n= bsp;      |  242 -
= src/pmview/LabelObj.c++ =             &n= bsp;   |  238 -
src/pmview/LabelObj.cpp =             &n= bsp;   |  238 -
src/pmview/LabelObj.h =             &n= bsp;     |  226 -
src/pmview/Link.c++ =             &n= bsp;       |  444 +--
= src/pmview/Link.cpp =             &n= bsp;       |  444 +--
= src/pmview/Link.h =             &n= bsp;         | =  116
src/pmview/ModObj.h =             &n= bsp;       |   98
= src/pmview/PipeObj.c++ =             &n= bsp;    |  390 +-
src/pmview/PipeObj.cpp =             &n= bsp;    |  390 +-
src/pmview/PipeObj.h =             &n= bsp;      |  126
= src/pmview/README =             &n= bsp;         | =   58
src/pmview/SceneFileObj.c++ =             | =  268 -
src/pmview/SceneFileObj.cpp =             | =  268 -
src/pmview/SceneFileObj.h =             &n= bsp; |  120
src/pmview/StackObj.c++ =             &n= bsp;   |  302 +-
src/pmview/StackObj.cpp =             &n= bsp;   |  302 +-
src/pmview/StackObj.h =             &n= bsp;     |  166 -
src/pmview/Text.c++ =             &n= bsp;       |  678 ++--
= src/pmview/Text.cpp =             &n= bsp;       |  678 ++--
= src/pmview/Text.h =             &n= bsp;         |  186 = -
src/pmview/ViewObj.c++ =             &n= bsp;    |  350 +-
src/pmview/ViewObj.cpp =             &n= bsp;    |  350 +-
src/pmview/ViewObj.h =             &n= bsp;      |  300 +-
= src/pmview/Xing.c++ =             &n= bsp;       |  400 +-
= src/pmview/Xing.cpp =             &n= bsp;       |  400 +-
= src/pmview/Xing.h =             &n= bsp;         | =  106
src/pmview/app-defaults =             &n= bsp;   |  207 +
src/pmview/barmod.cpp =             &n= bsp;     |  607 ++++
= src/pmview/barmod.h =             &n= bsp;       |  133
= src/pmview/barobj.cpp =             &n= bsp;     |  539 +++
= src/pmview/barobj.h =             &n= bsp;       |  125
= src/pmview/baseobj.cpp =             &n= bsp;    |  125
src/pmview/baseobj.h =             &n= bsp;      |  119
= src/pmview/colorlist.cpp =             &n= bsp;  |  186 +
src/pmview/colorlist.h =             &n= bsp;    |   77
src/pmview/colormod.cpp =             &n= bsp;   |  165 +
src/pmview/colormod.h =             &n= bsp;     |   59
= src/pmview/colorscale.cpp =             &n= bsp; |  158 +
src/pmview/colorscale.h =             &n= bsp;   |   89
src/pmview/colorscalemod.cpp =            | =  194 +
src/pmview/colorscalemod.h =             &n= bsp;|   65
src/pmview/defaultobj.cpp =             &n= bsp; |  175 +
src/pmview/defaultobj.h =             &n= bsp;   |  152 +
src/pmview/error.c++ =             &n= bsp;      |  110
= src/pmview/error.cpp =             &n= bsp;      |   93
= src/pmview/front-ends/GNUmakefile       | =   25
src/pmview/front-ends/clustervis =        |  357 ++
= src/pmview/front-ends/config.clustervis |   51
= src/pmview/front-ends/config.dkvis      | =   44
src/pmview/front-ends/config.mpvis =      |   45
= src/pmview/front-ends/config.nfsvis     | =   44
src/pmview/front-ends/config.osvis =      |   63
= src/pmview/front-ends/config.weblogvis  |   52
= src/pmview/front-ends/config.webpingvis |   40
= src/pmview/front-ends/config.webvis     | =   83
src/pmview/front-ends/dkvis =             | =  592 ++++
src/pmview/front-ends/mpvis =             | =  474 +++
src/pmview/front-ends/nfsvis =            | =  262 +
src/pmview/front-ends/osvis =             | =  679 ++++
src/pmview/front-ends/pmview-args =       |  643 ++++
= src/pmview/front-ends/weblogvis =         |  473 +++
= src/pmview/front-ends/weblogvis.load    |  103
= src/pmview/front-ends/weblogvis.rgb     |binary
= src/pmview/front-ends/webpingvis =        |  398 ++
= src/pmview/front-ends/webpingvis.rgb    |binary
= src/pmview/front-ends/webvis =            | =  733 +++++
src/pmview/front-ends/webvis.rgb =        |binary
src/pmview/gram.y =             &n= bsp;         | 1509 = ++++++++++-
src/pmview/gridobj.cpp =             &n= bsp;    |  314 ++
src/pmview/gridobj.h =             &n= bsp;      |  107
src/pmview/icon =             &n= bsp;           |bin= ary
src/pmview/labelobj.cpp =             &n= bsp;   |  112
src/pmview/labelobj.h =             &n= bsp;     |   99
= src/pmview/launch.cpp =             &n= bsp;     |  487 +++
= src/pmview/launch.h =             &n= bsp;       |  113
= src/pmview/lex.l =             &n= bsp;          | =  490 +++
src/pmview/link.cpp =             &n= bsp;       |  218 +
= src/pmview/link.h =             &n= bsp;         | =   52
src/pmview/main.cpp =             &n= bsp;       |  503 +++
= src/pmview/main.h =             &n= bsp;         |  157 = +
src/pmview/metriclist.cpp =             &n= bsp; |  234 +
src/pmview/metriclist.h =             &n= bsp;   |   84
src/pmview/modlist.cpp =             &n= bsp;    |  473 +++
src/pmview/modlist.h =             &n= bsp;      |  134
= src/pmview/modobj.h =             &n= bsp;       |   43
= src/pmview/modulate.cpp =             &n= bsp;   |  134
src/pmview/modulate.h =             &n= bsp;     |  117
= src/pmview/pcpcolor.cpp =             &n= bsp;   |  100
src/pmview/pcpcolor.h =             &n= bsp;     |   61
= src/pmview/pipeobj.cpp =             &n= bsp;    |  187 +
src/pmview/pipeobj.h =             &n= bsp;      |   54
= src/pmview/pmview.c++ =             &n= bsp;     |  884 +++---
= src/pmview/pmview.cpp =             &n= bsp;     | 1503 ++++++++--
= src/pmview/pmview.desktop =             &n= bsp; |    8
src/pmview/pmview.h =             &n= bsp;       |  302 +-
= src/pmview/pmview.info =             &n= bsp;    |   36
= src/pmview/pmview.info.in =             &n= bsp; |   18
src/pmview/pmview.pro.in =             &n= bsp;  |   35
src/pmview/pmview.qrc =             &n= bsp;     |   61
= src/pmview/pmview.ui =             &n= bsp;      |  390 ++
= src/pmview/scalemod.cpp =             &n= bsp;   |  187 +
src/pmview/scalemod.h =             &n= bsp;     |   62
= src/pmview/scenefileobj.cpp =             | =  127
src/pmview/scenefileobj.h =             &n= bsp; |   53
src/pmview/scenegroup.cpp =             &n= bsp; |  200 +
src/pmview/scenegroup.h =             &n= bsp;   |   80
src/pmview/stackmod.cpp =             &n= bsp;   |  598 ++++
src/pmview/stackmod.h =             &n= bsp;     |   98
= src/pmview/stackobj.cpp =             &n= bsp;   |  148 +
src/pmview/stackobj.h =             &n= bsp;     |   76
= src/pmview/text.cpp =             &n= bsp;       |  338 ++
= src/pmview/text.h =             &n= bsp;         | =   83
src/pmview/togglemod.cpp =             &n= bsp;  |  106
src/pmview/togglemod.h =             &n= bsp;    |   75
src/pmview/view.cpp =             &n= bsp;       |  282 +-
= src/pmview/viewobj.cpp =             &n= bsp;    |  172 +
src/pmview/viewobj.h =             &n= bsp;      |  135
= src/pmview/xing.cpp =             &n= bsp;       |  210 +
= src/pmview/xing.h =             &n= bsp;         | =   48
src/pmview/yscalemod.cpp =             &n= bsp;  |   46
src/pmview/yscalemod.h =             &n= bsp;    |   44
256 files changed, = 55231 insertions(+), 30664 deletions(-)

commit = ff7a1a89b7e1322d658e68ff51dac4f540b27ff2
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Thu Jul 10 09:00:25 2014 +1000

=    qa/admin/check-vm - 1st cut at packages needed for = pmview

commit 57422edf11da381eb1fc9f705aff63d1604886be
Author: = Ken McDonell <kenj@internode.on.net>
Dat= e:   Thu Jul 10 08:58:42 2014 +1000

=    pmview - initial version

=    Compiles, parses scene graphs, draws scenes, ... but = no metric
   modulation (animation) and no time = controls and ...

commit = 9661484c65648e8599a0177c9c151b3f4173ca17
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Thu Jul 10 08:57:46 2014 +1000

=    libapp - cull refs to some unused images, add = .gitignore

commit = c110dfd59117c770e7c75d5f190e37adb5912737
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Tue Jul 8 10:43:19 2014 +1000

=    libapp - builds in main tree

=    No testing.
   And lots of = functional overlap between here and pmchart, so we'll
=    need so refactoring here to allow pmchart and pmview = to share the
   parts of libapp that are really = commmon.
   Also remnant references to pmchart here = indicate origins of this
   code on pmchart that were = never cleaned up when it was extracted
   to be used = my pmview.

commit = 8be19accd6732f88708e93628fbaf198705653d7
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Tue Jul 8 07:08:57 2014 +1000

=    libapp & pmview - add startconsole() = method

   Delay the creation of the Console() = until after the command line
   arguments have been = parsed so that pmDebug has a chance to be set
   and = influence the output.

commit = d355162c5d160371a9c07b5872ac79a8d0dedfd8
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Tue Jul 8 07:06:25 2014 +1000

=    libapp/timecontrol.cpp - add diag to track timecontrol = creation

commit = ef0fa1f69a6811cc65a8e926bb0fca8cb1d93e12
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Tue Jul 8 07:02:59 2014 +1000

=    libapp - cleaning up

   Expunge = views dir that is not needed.
   Rework path to = images (all should be in ../../images).

commit = 6848d55ef52a814b5da23822f996d1b9645dea65
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Tue Jul 8 06:57:43 2014 +1000

=    libapp (new) - refactoring of common UI = components

   Initial checkin of work from Ken = and Aconex as released to open
=    source.

commit = 1f4924ca9ccb43d821dab5c14f92914096c8f86f
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Tue Jul 8 06:45:20 2014 +1000

=    pmview - changes to remove use of = QtAssistant

commit = 5cde3bc101447fc9f62f45ae09107524ca04bfaa
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Mon Jul 7 16:56:27 2014 +1000

=    pmview - add makefile for front-end = scripts

commit = 9d46418ab0c7a4a62b8b24cae2aa3c907f0f2770
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Mon Jul 7 06:58:53 2014 +1000

=    pmview - merge changes from Aconex

commit = 813a7652da589c8fa18bce084a4acb1f80621de8
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Sun Jul 6 14:17:52 2014 +1000

=    Revert "libpcp_inv - base source checkin"

=    This reverts commit = fcd9892042e23ea2077da65c9cd6efa80cfd93d6.

commit = 614365c6c5ed043c6fe9e83c84298013f2c209ac
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Sun Jul 6 14:17:00 2014 +1000

=    Revert "libpcp_inv - rename .c++ files to = .cpp"

   This reverts commit = 01f1012e4c201cdde47c61b9a0cdd480abd1ce26.

commit = 8c5f55dec1dd55955f9332d9b6bdd988b86c6eb9
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Sun Jul 6 14:11:17 2014 +1000

=    Add images for pmview

commit = 01f1012e4c201cdde47c61b9a0cdd480abd1ce26
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Sun Jul 6 06:58:48 2014 +1000

=    libpcp_inv - rename .c++ files to .cpp

commit = fcd9892042e23ea2077da65c9cd6efa80cfd93d6
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Sun Jul 6 06:55:57 2014 +1000

=    libpcp_inv - base source checkin

=    This is the code base for the Inventor interface = library used by pmview
   as released to open source = by SGI.

commit = fa7f7569e43bfcbc563ea54d70c14a4013c7b29c
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Sun Jul 6 06:51:48 2014 +1000

=    pmview - rename .c++ files to .cpp

commit = fda41007d34229e278d6189e27eebd0445175d62
Author: Ken McDonell <kenj@internode.on.net>
Dat= e:   Sat Jul 5 21:27:29 2014 +1000

=    pmiew - base source checkin

=    This is the code base for pmview and the associated = frontend
   scripts as released to open source by = SGI.
<Screenshot - 100714 - = 09:12:31.png>_______________________________________________
= pcp mailing list
pcp@oss.sgi.com
http://oss.sgi.com/= mailman/listinfo/pcp

= --Apple-Mail=_A3C9333D-ECD6-41F6-BD3D-437B1E47785A-- From nscott@redhat.com Thu Jul 10 02:24:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id AF1E57F56 for ; Thu, 10 Jul 2014 02:24:30 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 2CEE8AC001 for ; Thu, 10 Jul 2014 00:24:27 -0700 (PDT) X-ASG-Debug-ID: 1404977061-04cbb065363a0e40001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id PdTr2nZOduoepmA5 for ; Thu, 10 Jul 2014 00:24:22 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6A7OKjL018641; Thu, 10 Jul 2014 03:24:20 -0400 Date: Thu, 10 Jul 2014 03:24:19 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: chandana@desilva.id.au, Dave Brolley Cc: pcp@oss.sgi.com Message-ID: <802543966.7124102.1404977059922.JavaMail.zimbra@redhat.com> In-Reply-To: <785523043.6250592.1404890623607.JavaMail.zimbra@redhat.com> References: <53BCE301.9050408@desilva.id.au> <785523043.6250592.1404890623607.JavaMail.zimbra@redhat.com> Subject: Re: [pcp] memcache pmda MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] memcache pmda Content-Type: multipart/mixed; boundary="----=_Part_7124100_1903511203.1404977059919" X-Originating-IP: [10.5.82.12] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: memcache pmda Thread-Index: ZFOazWfdEzP4ceOrNNqJMaQOmKd4dCZnB3Vn X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1404977061 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7395 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... ------=_Part_7124100_1903511203.1404977059919 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hey guys, ----- Original Message ----- > ----- Original Message ----- > > I am trying to run the memcache pmda on 3.9.4 in CentOS 6.5. > > [...] > > The main difference I can see is that pcp runs as root on 3.6.9, and pcp > > on 3.9.4. > > [...] > I think its most likely to be something odd going on in the networking > code in the perl PMDA library, which acquired IPv6, getaddrinfo, and a > few related changes in the interim. Dave could you take a look? (I'm > outta time for today, sorry). When I run it, I see "values currently An initial fix is attached, it was indeed related to those networking changes. > ps: this PMDA needs a QA test, if anyone is game... (comparing netcat > results to pmprobe, if a local memcache server can be found, would be > one possible approach there). Thanks for the offer Chandana!!! You'll want to read qa/README to get a working test environment setup, and then we will need something like the script in qa/348 (which exercises pmdakvm) for exercising pmdamemcache. Since we're not too far off a release, I'll put this one on my ToDo list too - if you don't beat me to it, I'll have a look before merging a fix and I'll ask you to review it for me if you could? (tomorrow @earliest) I notice there's a fair bit of commented-out code in pmdamemcache which I think maps to metrics we're not exporting yet - so there's scope for a bit of follow-up work here if you're interested Chandana, to export more memcached metrics than we have now - might be of use in your environment. cheers. -- Nathan ------=_Part_7124100_1903511203.1404977059919 Content-Type: text/x-patch; name=memcache-vs-secure-sockets.patch Content-Disposition: attachment; filename=memcache-vs-secure-sockets.patch Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9wZXJsL1BNREEvUE1EQS54cyBiL3NyYy9wZXJsL1BNREEvUE1EQS54 cwppbmRleCA0YjA4ZjJlLi5hNmQxNmIyIDEwMDY0NAotLS0gYS9zcmMvcGVybC9QTURBL1BNREEu eHMKKysrIGIvc3JjL3BlcmwvUE1EQS9QTURBLnhzCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv cHlyaWdodCAoYykgMjAxMyBSZWQgSGF0LgorICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMTQgUmVk IEhhdC4KICAqIENvcHlyaWdodCAoYykgMjAwOC0yMDEyIEFjb25leC4gIEFsbCBSaWdodHMgUmVz ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgU2lsaWNvbiBHcmFwaGljcywgSW5jLiAgQWxs IFJpZ2h0cyBSZXNlcnZlZC4KICAqIApAQCAtMTEwMCw3ICsxMTAwLDggQEAgcHV0X3NvY2soc2Vs ZixpZCxvdXRwdXQpCiAJaW50CWlkCiAJY2hhciAqCW91dHB1dAogICAgIENPREU6Ci0JUkVUVkFM ID0gd3JpdGUobG9jYWxfZmlsZXNfZ2V0X2Rlc2NyaXB0b3IoaWQpLCBvdXRwdXQsIHN0cmxlbihv dXRwdXQpKTsKKwlzaXplX3QJbGVuZ3RoID0gc3RybGVuKG91dHB1dCk7CisJUkVUVkFMID0gX19w bVdyaXRlKGxvY2FsX2ZpbGVzX2dldF9kZXNjcmlwdG9yKGlkKSwgb3V0cHV0LCBsZW5ndGgpOwog ICAgIE9VVFBVVDoKIAlSRVRWQUwKIApkaWZmIC0tZ2l0IGEvc3JjL3BlcmwvUE1EQS9sb2NhbC5j IGIvc3JjL3BlcmwvUE1EQS9sb2NhbC5jCmluZGV4IGUyOTdlNzMuLjAzYTY3ZmEgMTAwNjQ0Ci0t LSBhL3NyYy9wZXJsL1BNREEvbG9jYWwuYworKysgYi9zcmMvcGVybC9QTURBL2xvY2FsLmMKQEAg LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDEyLTIwMTMgUmVkIEhhdC4KKyAq IENvcHlyaWdodCAoYykgMjAxMi0yMDE0IFJlZCBIYXQuCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgt MjAxMSBBY29uZXguICBBbGwgUmlnaHRzIFJlc2VydmVkLgogICogCiAgKiBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBp dApAQCAtNDE3LDcgKzQxNyw3IEBAIGxvY2FsX3BtZGFNYWluKHBtZGFJbnRlcmZhY2UgKnNlbGYp CiAJCWNvbnRpbnVlOwogCSAgICBvZmZzZXQgPSAwOwogbXVsdGlyZWFkOgotCSAgICBieXRlcyA9 IHJlYWQoZmQsIGJ1ZmZlciArIG9mZnNldCwgc2l6ZW9mKGJ1ZmZlciktMSAtIG9mZnNldCk7CisJ ICAgIGJ5dGVzID0gX19wbVJlYWQoZmQsIGJ1ZmZlciArIG9mZnNldCwgc2l6ZW9mKGJ1ZmZlcikt MSAtIG9mZnNldCk7CiAJICAgIGlmIChieXRlcyA8IDApIHsKIAkJaWYgKChmaWxlc1tpXS50eXBl ID09IEZJTEVfVEFJTCkgJiYKIAkJICAgIChvc2Vycm9yKCkgPT0gRUlOVFIpIHx8Cg== ------=_Part_7124100_1903511203.1404977059919-- From chandana@desilva.id.au Thu Jul 10 03:24:29 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id F38C37F56 for ; Thu, 10 Jul 2014 03:24:28 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id CC696304062 for ; Thu, 10 Jul 2014 01:24:28 -0700 (PDT) X-ASG-Debug-ID: 1404980663-04cb6c76d2566b50001-S8gJnT Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) by cuda.sgi.com with ESMTP id 2sSF0dRNcoD2FVaJ (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 10 Jul 2014 01:24:24 -0700 (PDT) X-Barracuda-Envelope-From: chandana@desilva.id.au X-Barracuda-Apparent-Source-IP: 204.13.248.66 Received: from ec2-54-252-74-219.ap-southeast-2.compute.amazonaws.com ([54.252.74.219] helo=mail.desilva.id.au) by mho-01-ewr.mailhop.org with esmtpa (Exim 4.72) (envelope-from ) id 1X59eR-0000fV-Gx; Thu, 10 Jul 2014 08:24:23 +0000 Received: from [192.168.1.135] (d211-31-207-129.sun802.vic.optusnet.com.au [211.31.207.129]) by mail.desilva.id.au (Postfix) with ESMTPSA id 3CD40252DB; Thu, 10 Jul 2014 08:24:21 +0000 (UTC) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 54.252.74.219 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX18lFLQFGC4XmwEylWPNRIKo7tVrGJyXXbQ= Message-ID: <53BE4DB4.3090501@desilva.id.au> Date: Thu, 10 Jul 2014 18:24:20 +1000 From: Chandana De Silva Reply-To: chandana@desilva.id.au User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Nathan Scott , Dave Brolley CC: pcp@oss.sgi.com Subject: Re: [pcp] memcache pmda References: <53BCE301.9050408@desilva.id.au> <785523043.6250592.1404890623607.JavaMail.zimbra@redhat.com> <802543966.7124102.1404977059922.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: [pcp] memcache pmda In-Reply-To: <802543966.7124102.1404977059922.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mho-03-ewr.mailhop.org[204.13.248.66] X-Barracuda-Start-Time: 1404980664 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7396 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 10/07/14 17:24, Nathan Scott wrote: > Thanks for the offer Chandana!!! You'll want to read qa/README to get a > working test environment setup, and then we will need something like the > script in qa/348 (which exercises pmdakvm) for exercising pmdamemcache. I will take a look - probably over the weekend > > I notice there's a fair bit of commented-out code in pmdamemcache which > I think maps to metrics we're not exporting yet - so there's scope for a > bit of follow-up work here if you're interested Chandana, to export more > memcached metrics than we have now - might be of use in your environment. I saw that too. It does export a lot more so I will see if I can add them later From brolley@redhat.com Thu Jul 10 09:12:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id A8EDC7F3F for ; Thu, 10 Jul 2014 09:12:08 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 8E7E7304051 for ; Thu, 10 Jul 2014 07:12:05 -0700 (PDT) X-ASG-Debug-ID: 1405001521-04cbb065363b0230001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id WoU3D26CbLB8l2fJ (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 10 Jul 2014 07:12:01 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6AEC0VQ025575 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 10 Jul 2014 10:12:01 -0400 Received: from [10.10.49.86] (vpn-49-86.rdu2.redhat.com [10.10.49.86]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6AEBxjP028495; Thu, 10 Jul 2014 10:12:00 -0400 Message-ID: <53BE9F30.7010106@redhat.com> Date: Thu, 10 Jul 2014 10:12:00 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Nathan Scott CC: pcp@oss.sgi.com Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. References: <20140619194444.3B03D58015@fche.csb> <1374649635.181830.1404090114319.JavaMail.zimbra@redhat.com> <53BC0D60.4000007@redhat.com> <53BC5248.5050100@redhat.com> <256416707.6217487.1404883930815.JavaMail.zimbra@redhat.com> <53BD8921.3000306@redhat.com> <2109477330.6980142.1404945968324.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. In-Reply-To: <2109477330.6980142.1404945968324.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405001521 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/09/2014 06:46 PM, Nathan Scott wrote: > Hi Dave, > > I got the impression earlier that you were expecting more parameters to > be needed down the track, and that strings would not be ideal...? (like > the "interrupted" parameter). If that's not the case and we can get > rid of that extra parameter, lets keep it simple and go back to strings > as you suggest. My fault for being unclear, in that case. I just meant that I expected new features to be added to the API. I don't see a way to get rid of the 'interrupted' parameter other than to make it a byte in one of the stings (yuck, and did I mention Yuck?). It needs to exist somewhere in the caller's address space. > That name is still really un-helpful though. :( Please use something, > anything, other than a number (inconsistent with the rest of the PMAPI > and it says to the API user "I could not find words to describe this > thing"). > > In fact, double-underscore prefix is looking a really good option here > given the lack of certainty - please seriously consider that - we can > always add the PMAPI-level symbol later, once we've had more time to > consider and see what else comes up. > > So, pick one of the above two approaches please, and if not settled on > a direction you're happy with by weeks end, lets yank this code and try > again next release? I think that the double underscore prefix is a reasonable buffer against invasive change and will probably go with that. Dave From fche@redhat.com Thu Jul 10 09:32:37 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id C92067F3F for ; Thu, 10 Jul 2014 09:32:37 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id AF2FE304053 for ; Thu, 10 Jul 2014 07:32:37 -0700 (PDT) X-ASG-Debug-ID: 1405002752-04bdf056688f9d10001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id wYIBl6q6y2BC5dUG (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 10 Jul 2014 07:32:33 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6AEWVpV019297 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 10 Jul 2014 10:32:32 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6AEWVTm027466; Thu, 10 Jul 2014 10:32:31 -0400 Received: by fche.csb (Postfix, from userid 2569) id 98B9D58392; Thu, 10 Jul 2014 10:32:30 -0400 (EDT) To: Dave Brolley Cc: Nathan Scott , pcp@oss.sgi.com Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. References: <20140619194444.3B03D58015@fche.csb> <1374649635.181830.1404090114319.JavaMail.zimbra@redhat.com> <53BC0D60.4000007@redhat.com> <53BC5248.5050100@redhat.com> <256416707.6217487.1404883930815.JavaMail.zimbra@redhat.com> <53BD8921.3000306@redhat.com> <2109477330.6980142.1404945968324.JavaMail.zimbra@redhat.com> <53BE9F30.7010106@redhat.com> X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. From: fche@redhat.com (Frank Ch. Eigler) Date: Thu, 10 Jul 2014 10:32:30 -0400 In-Reply-To: <53BE9F30.7010106@redhat.com> (Dave Brolley's message of "Thu, 10 Jul 2014 10:12:00 -0400") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405002753 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 brolley wrote: > [...] > I think that the double underscore prefix is a reasonable buffer > against invasive change and will probably go with that. Do we have any documentation that gives programmers any sense of what we mean by double-underscoring? We have lots of such functions in the pcp-devel headers, exported from the .so's for ABI preservation, many even with man-page documentation. - FChE From nscott@redhat.com Thu Jul 10 16:41:29 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 04BEC7F3F for ; Thu, 10 Jul 2014 16:41:29 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id DBA9430405F for ; Thu, 10 Jul 2014 14:41:25 -0700 (PDT) X-ASG-Debug-ID: 1405028480-04cbb065383c45c0001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id JVx6idYXfXCtaKJp for ; Thu, 10 Jul 2014 14:41:20 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6ALfKac005753; Thu, 10 Jul 2014 17:41:20 -0400 Date: Thu, 10 Jul 2014 17:41:19 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dave Brolley Cc: pcp@oss.sgi.com Message-ID: <1543911711.7865026.1405028479709.JavaMail.zimbra@redhat.com> In-Reply-To: <53BE9F30.7010106@redhat.com> References: <20140619194444.3B03D58015@fche.csb> <53BC5248.5050100@redhat.com> <256416707.6217487.1404883930815.JavaMail.zimbra@redhat.com> <53BD8921.3000306@redhat.com> <2109477330.6980142.1404945968324.JavaMail.zimbra@redhat.com> <53BE9F30.7010106@redhat.com> Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. MIME-Version: 1.0 X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. Thread-Index: +//fiJ5hPvLK/qYMJYSAQsjgmsxGUA== X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1405028480 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7413 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain Hey, Dave1, ----- Original Message ----- > On 07/09/2014 06:46 PM, Nathan Scott wrote: > > > > I got the impression earlier that you were expecting more parameters to > > be needed down the track, and that strings would not be ideal...? (like > > the "interrupted" parameter). If that's not the case and we can get > > rid of that extra parameter, lets keep it simple and go back to strings > > as you suggest. > My fault for being unclear, in that case. I just meant that I expected > new features to be added to the API. I don't see a way to get rid of the > 'interrupted' parameter other than to make it a byte in one of the > stings (yuck, and did I mention Yuck?). It needs to exist somewhere in > the caller's address space. Hmmm, OK. The only other suggestion then would be to make it a more general, and call it "flags" (where flags can go in/out of the API). But thats a pretty ordinary approach too, really. Oh, or could interrupted-ness be indicated via the return code? Anyway, you make a decision - it seems nothing here is particularly attractive, and you're in the best position to consider all of the approaches - go ahead, pick one and run with it. > > That name is still really un-helpful though. :( Please use something, > > anything, other than a number (inconsistent with the rest of the PMAPI > > and it says to the API user "I could not find words to describe this > > thing"). > > > > In fact, double-underscore prefix is looking a really good option here > > given the lack of certainty - please seriously consider that - we can > > always add the PMAPI-level symbol later, once we've had more time to > > consider and see what else comes up. > > > > So, pick one of the above two approaches please, and if not settled on > > a direction you're happy with by weeks end, lets yank this code and try > > again next release? > I think that the double underscore prefix is a reasonable buffer against > invasive change and will probably go with that. Sounds good. cheers. -- Nathan From nscott@redhat.com Thu Jul 10 23:31:39 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 9DFCC7F5D for ; Thu, 10 Jul 2014 23:31:39 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 643C38F8050 for ; Thu, 10 Jul 2014 21:31:39 -0700 (PDT) X-ASG-Debug-ID: 1405053094-04bdf035680efb0001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id 2Sb7pV3pIL2F8KJu for ; Thu, 10 Jul 2014 21:31:34 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6B4VXha023175; Fri, 11 Jul 2014 00:31:33 -0400 Date: Fri, 11 Jul 2014 00:31:33 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dave Brolley Cc: PCP Mailing List Message-ID: <1371327369.7960530.1405053093915.JavaMail.zimbra@redhat.com> In-Reply-To: <1910783926.7960260.1405052881197.JavaMail.zimbra@redhat.com> Subject: Avahi-related test failure (pmcd log messages) MIME-Version: 1.0 X-ASG-Orig-Subj: Avahi-related test failure (pmcd log messages) Content-Type: multipart/mixed; boundary="----=_Part_7960528_874057252.1405053093914" X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: Avahi-related test failure (pmcd log messages) Thread-Index: 5FqAPwS1dzWz6ho+bRnTF55xjAPfBw== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1405053094 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7422 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain ------=_Part_7960528_874057252.1405053093914 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi Dave, The QE team are seeing failures on latest RHEL6 as a result of some extra diagnostics/errors appearing in pmcd.log during some tests... +[Wed Jul 2 13:14:50] pmcd(31512) Error: avahi_entry_group_new () failed: Bad state +[Wed Jul 2 13:14:50] pmcd(31512) Error: avahi_entry_group_new () failed: Bad state This machine does not have either avahi-tools or avahi rpms installed (so no local avahi-daemon). Is the right thing to do here to hide this message behind pmDebug and DBG_TRACE_DISCOVERY? (as in attached patch) cheers. -- Nathan ------=_Part_7960528_874057252.1405053093914 Content-Type: text/x-patch; name=pmda-avahi-error.patch Content-Disposition: attachment; filename=pmda-avahi-error.patch Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9saWJwY3Avc3JjL2F2YWhpLmMgYi9zcmMvbGlicGNwL3NyYy9hdmFo aS5jCmluZGV4IGUwZWYwNTMuLjE2Yzg4ZWEgMTAwNjQ0Ci0tLSBhL3NyYy9saWJwY3Avc3JjL2F2 YWhpLmMKKysrIGIvc3JjL2xpYnBjcC9zcmMvYXZhaGkuYwpAQCAtMTAzLDE3ICsxMDMsMTggQEAg Y3JlYXRlU2VydmljZXMoQXZhaGlDbGllbnQgKmMpCiAgICAgaW50IHJldDsKICAgICBpbnQgaTsK IAotICAgIGFzc2VydCAoYyk7CisgICAgYXNzZXJ0KGMpOwogCiAgICAgIC8qCiAgICAgICAqIENy ZWF0ZSBhIG5ldyBlbnRyeSBncm91cCwgaWYgbmVjZXNzYXJ5LCBvciByZXNldCB0aGUgZXhpc3Rp bmcgb25lLgogICAgICAgKi8KICAgICBpZiAoZ3JvdXAgPT0gTlVMTCkgewogCWlmICgoZ3JvdXAg PSBhdmFoaV9lbnRyeV9ncm91cF9uZXcoYywgZW50cnlHcm91cENhbGxiYWNrLCBOVUxMKSkgPT0g TlVMTCkgewotIAkgICAgX19wbU5vdGlmeUVycihMT0dfRVJSLCAiYXZhaGlfZW50cnlfZ3JvdXBf bmV3ICgpIGZhaWxlZDogJXMiLAotIAkJCSAgYXZhaGlfc3RyZXJyb3IgKGF2YWhpX2NsaWVudF9l cnJubyhjKSkpOworCSAgICBpZiAocG1EZWJ1ZyAmIERCR19UUkFDRV9ESVNDT1ZFUlkpCisJCV9f cG1Ob3RpZnlFcnIoTE9HX0VSUiwgImF2YWhpX2VudHJ5X2dyb3VwX25ldyBmYWlsZWQ6ICVzIiwK KwkJCSAgYXZhaGlfc3RyZXJyb3IoYXZhaGlfY2xpZW50X2Vycm5vKGMpKSk7CiAJICAgIHJldHVy bjsKIAl9CiAgICAgfQogICAgIGVsc2UKIAlhdmFoaV9lbnRyeV9ncm91cF9yZXNldChncm91cCk7 Cg== ------=_Part_7960528_874057252.1405053093914-- From nscott@redhat.com Fri Jul 11 00:47:40 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 8AD377F5D for ; Fri, 11 Jul 2014 00:47:40 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 77816304048 for ; Thu, 10 Jul 2014 22:47:40 -0700 (PDT) X-ASG-Debug-ID: 1405057655-04cbb04219149a0001-S8gJnT Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by cuda.sgi.com with ESMTP id mQ4LNhzrzmb8DMzg for ; Thu, 10 Jul 2014 22:47:35 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.25 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6B5lWVK026841; Fri, 11 Jul 2014 01:47:32 -0400 Date: Fri, 11 Jul 2014 01:47:31 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Ken McDonell Cc: PCP Mailing List Message-ID: <1345413572.7977625.1405057651985.JavaMail.zimbra@redhat.com> In-Reply-To: <409879618.7972008.1405056066290.JavaMail.zimbra@redhat.com> Subject: Spurious network metric test failure in qa/635 MIME-Version: 1.0 X-ASG-Orig-Subj: Spurious network metric test failure in qa/635 Content-Type: multipart/mixed; boundary="----=_Part_7977622_1405519050.1405057651983" X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: Spurious network metric test failure in qa/635 Thread-Index: LirssIfKu9DcX/LvD6nIAMeIM7YBIA== X-Barracuda-Connect: mx4-phx2.redhat.com[209.132.183.25] X-Barracuda-Start-Time: 1405057655 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7423 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... ------=_Part_7977622_1405519050.1405057651983 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi Ken, Out of the blue I had a reproducible failure in qa/635 today. This looks like one of yours (kenj-pc reference in there :) & it uses paste(1) - gotta be you ;) ... it's a netstat vs pcp network.* metric comparison script. $ diff 635.out 635.out.bad 1a2 > network.interface.out.drops["vnet0"] value 0 not in range 1..1 The test script contains this comment: # Note: drops metric is really ?-DRP + ?-OVR ... visible in netstat, but # not /proc/net/dev that the Linux PMDA uses The failure is to do with the TX-OVR field in netstat output. The script sums TX-OVR and TX-DRP at line 95 for comparison to network.interface.out.drops. However, its not clear what OVR is in this context - it *seems* to map to the "fifo" column in /proc/net/dev ... ? (no mention on netstat man page, googling finds some articles suggesting it means "couldn't send or recv" or similarly generic words). -- i.e. network.interface.*.fifo I've attached "netstat -ai" and /proc/net/dev contents and can confirm that network.interface.out.fifo does indeed return 1 for this interface. Do you know what the right behaviour for the test here is? It looks like it should be treating drops and fifo distinctly (and comparing the OVR columns to the fifo metrics), maybe? thanks! -- Nathan ------=_Part_7977622_1405519050.1405057651983 Content-Type: text/plain; name=netstat_ai.txt Content-Disposition: attachment; filename=netstat_ai.txt Content-Transfer-Encoding: base64 S2VybmVsIEludGVyZmFjZSB0YWJsZQpJZmFjZSAgICAgICBNVFUgTWV0ICAgIFJYLU9LIFJYLUVS UiBSWC1EUlAgUlgtT1ZSICAgIFRYLU9LIFRYLUVSUiBUWC1EUlAgVFgtT1ZSIEZsZwpldGgwICAg ICAgIDE1MDAgICAwICAgMTUxMjYwICAgICAgMCAgICAgIDAgICAgICAwICAgIDgyODAxICAgICAg MCAgICAgIDAgICAgICAwIEJNUlUKbG8gICAgICAgIDE2NDM2ICAgMCAgICA1MDg2OSAgICAgIDAg ICAgICAwICAgICAgMCAgICA1MDg2OSAgICAgIDAgICAgICAwICAgICAgMCBMUlUKdHVuMCAgICAg ICAxNDEyICAgMCAgICAyMzQ0OCAgICAgIDAgICAgICAwICAgICAgMCAgICAyMjI3NyAgICAgIDAg ICAgICAwICAgICAgMCBNT1BSVQp2aXJicjAgICAgIDE1MDAgICAwICAgIDY1MjQ3ICAgICAgMCAg ICAgIDAgICAgICAwICAgIDM2OTU2ICAgICAgMCAgICAgIDAgICAgICAwIEJNUlUKdmlyYnIwLW5p YyAgMTUwMCAgIDAgICAgICAgIDAgICAgICAwICAgICAgMCAgICAgIDAgICAgICAgIDAgICAgICAw ICAgICAgMCAgICAgIDAgQk0Kdm5ldDAgICAgICAxNTAwICAgMCAgICAgICAgNSAgICAgIDAgICAg ICAwICAgICAgMCAgICAgICAgMSAgICAgIDAgICAgICAwICAgICAgMSBCTVJVCnZuZXQxICAgICAg MTUwMCAgIDAgICAgIDE4NzcgICAgICAwICAgICAgMCAgICAgIDAgICAgNTA0ODggICAgICAwICAg ICAgMCAgICAgIDAgQk1SVQp2bmV0MiAgICAgIDE1MDAgICAwICAgIDYyNTcwICAgICAgMCAgICAg IDAgICAgICAwICAgIDUxNDY1ICAgICAgMCAgICAgIDAgICAgICAwIEJNUlUKdm5ldDMgICAgICAx NTAwICAgMCAgICAgICAgNSAgICAgIDAgICAgICAwICAgICAgMCAgICA1MDEzNyAgICAgIDAgICAg ICAwICAgICAgMCBCTVJVCnZuZXQ0ICAgICAgMTUwMCAgIDAgICAgICA1MjYgICAgICAwICAgICAg MCAgICAgIDAgICAgNDk2OTcgICAgICAwICAgICAgMCAgICAgIDAgQk1SVQp2bmV0NSAgICAgIDE1 MDAgICAwICAgICAgNDI4ICAgICAgMCAgICAgIDAgICAgICAwICAgIDUwMTczICAgICAgMCAgICAg IDAgICAgICAwIEJNUlUKdm5ldDYgICAgICAxNTAwICAgMCAgICAgICA3MCAgICAgIDAgICAgICAw ICAgICAgMCAgICA1MDExNiAgICAgIDAgICAgICAwICAgICAgMCBCTVJVCg== ------=_Part_7977622_1405519050.1405057651983 Content-Type: text/plain; name=proc_net_dev.txt Content-Disposition: attachment; filename=proc_net_dev.txt Content-Transfer-Encoding: base64 SW50ZXItfCAgIFJlY2VpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICBUcmFuc21pdAogZmFjZSB8Ynl0ZXMgICAgcGFja2V0cyBlcnJzIGRyb3AgZmlm byBmcmFtZSBjb21wcmVzc2VkIG11bHRpY2FzdHxieXRlcyAgICBwYWNrZXRzIGVycnMgZHJvcCBm aWZvIGNvbGxzIGNhcnJpZXIgY29tcHJlc3NlZAogICAgbG86IDgxMDY2NDMgICA1MDg0NSAgICAw ICAgIDAgICAgMCAgICAgMCAgICAgICAgICAwICAgICAgICAgMCAgODEwNjY0MyAgIDUwODQ1ICAg IDAgICAgMCAgICAwICAgICAwICAgICAgIDAgICAgICAgICAgMAogIGV0aDA6OTgxNDczMjcgIDE1 MTI1NSAgICAwICAgIDAgICAgMCAgICAgMCAgICAgICAgICAwICAgICAxMjUxOSAxMzAwMzU0OSAg IDgyNzk5ICAgIDAgICAgMCAgICAwICAgICAwICAgICAgIDAgICAgICAgICAgMAp2aXJicjA6IDMy Nzg2NTAgICA2NTIxNSAgICAwICAgIDAgICAgMCAgICAgMCAgICAgICAgICAwICAgICAgIDM5MyAg MjA2MDEzMyAgIDM2OTM3ICAgIDAgICAgMCAgICAwICAgICAwICAgICAgIDAgICAgICAgICAgMAp2 aXJicjAtbmljOiAgICAgICAwICAgICAgIDAgICAgMCAgICAwICAgIDAgICAgIDAgICAgICAgICAg MCAgICAgICAgIDAgICAgICAgIDAgICAgICAgMCAgICAwICAgIDAgICAgMCAgICAgMCAgICAgICAw ICAgICAgICAgIDAKIHZuZXQwOiAgICAgMzAwICAgICAgIDUgICAgMCAgICAwICAgIDAgICAgIDAg ICAgICAgICAgMCAgICAgICAgIDAgICAgICAgNDYgICAgICAgMSAgICAwICAgIDAgICAgMSAgICAg MCAgICAgICAwICAgICAgICAgIDAKIHZuZXQxOiAgNDY2NzM2ICAgIDE4NzUgICAgMCAgICAwICAg IDAgICAgIDAgICAgICAgICAgMCAgICAgICAgIDAgIDIzNjQ5MTggICA1MDQ2MSAgICAwICAgIDAg ICAgMCAgICAgMCAgICAgICAwICAgICAgICAgIDAKIHZuZXQyOiAzNjMzOTU2ICAgNjI1NDEgICAg MCAgICAwICAgIDAgICAgIDAgICAgICAgICAgMCAgICAgICAgIDAgIDI4NjEzMDAgICA1MTQzOSAg ICAwICAgIDAgICAgMCAgICAgMCAgICAgICAwICAgICAgICAgIDAKIHZuZXQzOiAgICAgMzAwICAg ICAgIDUgICAgMCAgICAwICAgIDAgICAgIDAgICAgICAgICAgMCAgICAgICAgIDAgIDI0MTI3NzQg ICA1MDExMCAgICAwICAgIDAgICAgMCAgICAgMCAgICAgICAwICAgICAgICAgIDAKIHZuZXQ0OiAg IDU2NDE4ICAgICA1MjUgICAgMCAgICAwICAgIDAgICAgIDAgICAgICAgICAgMCAgICAgICAgIDAg IDIzNzI2MDYgICA0OTY2OSAgICAwICAgIDAgICAgMCAgICAgMCAgICAgICAwICAgICAgICAgIDAK IHZuZXQ1OiAgIDM1MDAwICAgICA0MjggICAgMCAgICAwICAgIDAgICAgIDAgICAgICAgICAgMCAg ICAgICAgIDAgIDI0NDk1ODYgICA1MDE0NCAgICAwICAgIDAgICAgMCAgICAgMCAgICAgICAwICAg ICAgICAgIDAKIHZuZXQ2OiAgICA5OTMwICAgICAgNzAgICAgMCAgICAwICAgIDAgICAgIDAgICAg ICAgICAgMCAgICAgICAgIDAgIDI0MTcwOTQgICA1MDA4OSAgICAwICAgIDAgICAgMCAgICAgMCAg ICAgICAwICAgICAgICAgIDAKICB0dW4wOjE2MTYxNjE3ICAgMjM0NDggICAgMCAgICAwICAgIDAg ICAgIDAgICAgICAgICAgMCAgICAgICAgIDAgIDMyMTk5NjYgICAyMjI3NyAgICAwICAgIDAgICAg MCAgICAgMCAgICAgICAwICAgICAgICAgIDAK ------=_Part_7977622_1405519050.1405057651983-- From nscott@redhat.com Fri Jul 11 00:51:51 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 2AE697F5D for ; Fri, 11 Jul 2014 00:51:51 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id C314FAC005 for ; Thu, 10 Jul 2014 22:51:47 -0700 (PDT) X-ASG-Debug-ID: 1405057905-04bdf0356812990001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id YBGlnrR5XELEZU0s for ; Thu, 10 Jul 2014 22:51:45 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6B5pfCk019562; Fri, 11 Jul 2014 01:51:42 -0400 Date: Fri, 11 Jul 2014 01:51:41 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: chandana@desilva.id.au Cc: Dave Brolley , pcp@oss.sgi.com Message-ID: <637246348.7979701.1405057901942.JavaMail.zimbra@redhat.com> In-Reply-To: <53BE4DB4.3090501@desilva.id.au> References: <53BCE301.9050408@desilva.id.au> <785523043.6250592.1404890623607.JavaMail.zimbra@redhat.com> <802543966.7124102.1404977059922.JavaMail.zimbra@redhat.com> <53BE4DB4.3090501@desilva.id.au> Subject: Re: [pcp] memcache pmda MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] memcache pmda Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: memcache pmda Thread-Index: 0gd4tewWe1ZO4bd2ip01bGz0kyzmgw== X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1405057905 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7423 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header ----- Original Message ----- > On 10/07/14 17:24, Nathan Scott wrote: > > Thanks for the offer Chandana!!! You'll want to read qa/README to get a > > working test environment setup, and then we will need something like the > > script in qa/348 (which exercises pmdakvm) for exercising pmdamemcache. > I will take a look - probably over the weekend Thanks - please review test qa/835 if you get time? (just a shell script) > > I notice there's a fair bit of commented-out code in pmdamemcache which > > I think maps to metrics we're not exporting yet - so there's scope for a > > bit of follow-up work here if you're interested Chandana, to export more > > memcached metrics than we have now - might be of use in your environment. > I saw that too. It does export a lot more so I will see if I can add > them later Good stuff. The 835 test should automatically start exercising those metrics once they're added, I think. Its a pretty simple test script anyway, would be easy to extend if it doesn't cover some of the new metrics (e.g. if there are new "stats xxx" commands to extract the data). cheers. -- Nathan From nscott@redhat.com Fri Jul 11 00:57:59 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 838927F5D for ; Fri, 11 Jul 2014 00:57:59 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5E6DE304051 for ; Thu, 10 Jul 2014 22:57:59 -0700 (PDT) X-ASG-Debug-ID: 1405058276-04cb6c6ad312460001-S8gJnT Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by cuda.sgi.com with ESMTP id n5c0C6W62A90gSHu for ; Thu, 10 Jul 2014 22:57:56 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.25 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6B5vuR0028150 for ; Fri, 11 Jul 2014 01:57:56 -0400 Date: Fri, 11 Jul 2014 01:57:56 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: PCP Mailing List Message-ID: <190945548.7980868.1405058276515.JavaMail.zimbra@redhat.com> In-Reply-To: <1174946562.7980557.1405058129563.JavaMail.zimbra@redhat.com> Subject: pcp updates: memcache, man pages, qa MIME-Version: 1.0 X-ASG-Orig-Subj: pcp updates: memcache, man pages, qa Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: memcache, man pages, qa Thread-Index: Rewao3KM3ox0fx8zx64GjD+53gItUg== X-Barracuda-Connect: mx4-phx2.redhat.com[209.132.183.25] X-Barracuda-Start-Time: 1405058276 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7423 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Changes committed to git://git.performancecopilot.org/pcp.git dev man/man1/pcpintro.1 | 7 +- man/man1/pmie_check.1 | 11 +-- man/man1/pmlogger.1 | 7 +- qa/755 | 83 +++++++++---------------- qa/835 | 120 +++++++++++++++++++++++++++++++++++++ qa/835.out | 47 ++++++++++++++ qa/928 | 1 qa/928.out | 44 ++++++------- qa/common.check | 40 ++++++++++++ qa/group | 2 src/libpcp/src/logconnect.c | 2 src/perl/PMDA/PMDA.xs | 5 - src/perl/PMDA/local.c | 4 - src/pmdas/memcache/pmdamemcache.pl | 1 14 files changed, 283 insertions(+), 91 deletions(-) commit 6f070de92c97f944808450fcea2956bf179ad02d Author: Nathan Scott Date: Fri Jul 11 15:56:52 2014 +1000 Update test qa/755 to use common pmda setup routines commit c29466301a446c9a4196eb7355850ae080badfdb Author: Nathan Scott Date: Fri Jul 11 15:53:43 2014 +1000 man pages: fix some incorrect cron/chkconfig section references commit 8fc54b7a5f39a16ba508a3f47016d4236b6b5d6a Author: Nathan Scott Date: Fri Jul 11 14:33:53 2014 +1000 libpcp: fix a typo in a comment (trivial) commit 1cdaf44e996f2ad5ac2bbaa64212b4e2fc79597d Author: Nathan Scott Date: Fri Jul 11 13:20:15 2014 +1000 Fix perl PMDA socket code and pmdamemcache QA Ensure we use the matching libpcp APIs for read/write on a socket that may have been opened by NSPR (else EBADF). Adds test qa/835, exercising this fix through use of the memcache PMDA (as well as the install/remove scripts that also lacked test coverage). Test uses netcat to extract values from memcached then compares those to values from the memcache.* metrics, and is written such that any new memcache metric additions should automatically be tested as well. Some boilerplate PMDA install/remove test sequences are moved into common code for other tests to use as well (not via this commit though). commit c72755d3f82c41ede486746de48dba44091c0215 Author: Nathan Scott Date: Thu Jul 10 16:52:09 2014 +1000 Fix test qa/928 to not assume TZ is EST+10 (.au) Would have been failing everywhere else for last 2 months or so. Uncovered by Red Hat QE folks in Brno, Czech Republic. From brolley@redhat.com Fri Jul 11 11:44:47 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 41EE17F47 for ; Fri, 11 Jul 2014 11:44:47 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id C8170AC001 for ; Fri, 11 Jul 2014 09:44:43 -0700 (PDT) X-ASG-Debug-ID: 1405097078-04cbb04219355e0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 7vDnJnXHyUDKPBFG (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 11 Jul 2014 09:44:39 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6BGic1G015591 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 11 Jul 2014 12:44:38 -0400 Received: from [10.10.49.250] (vpn-49-250.rdu2.redhat.com [10.10.49.250]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6BGibZH031434; Fri, 11 Jul 2014 12:44:37 -0400 Message-ID: <53C01477.6000703@redhat.com> Date: Fri, 11 Jul 2014 12:44:39 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Nathan Scott CC: PCP Mailing List Subject: Re: Some recent QA regressions References: <2129401188.6256039.1404891527704.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: Some recent QA regressions In-Reply-To: <2129401188.6256039.1404891527704.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405097079 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/09/2014 03:38 AM, Nathan Scott wrote: > Hi mate, > > I've pulled all your current work, but had some problems with a > few tests (see attached bad files). I found reverting the commit > below got us back into a healthy state, so pushed this for now - > when you figure it out, just "git revert" on my revert should do > a revert revert & then just apply your followup fix on top). > I don't think I have permission to do reverts on the dev branch of the SGI repository, and I would be too afraid to mess it up anyway, so I just redid the change in my pcpfans brolley/dev branch. That in addition to the fix which was to add EINPROGRESS handling to a few callers of __pmConnect(). Dave ---------------------------------- commit a705d6bb86d87fa0cdf0fb0accf5299212cef08d Author: Dave Brolley Date: Fri Jul 11 12:35:56 2014 -0400 Re-instate "Respect FNDELAY in __pmConnect() for secure connections." This re-instates commit 75e40a1a033df79ca36b4034670bede4ba39ebdf which was breaking tests 067, 110 and 156. commit ff23f3d6ab3d5d82141761722afec591f15a4597 adds the required error handling code to callers of __pmConnect. commit ff23f3d6ab3d5d82141761722afec591f15a4597 Author: Dave Brolley Date: Fri Jul 11 11:25:40 2014 -0400 Always handle EINPROGRESS from __pmConnect(). NSPR sockets appear to always have the FNDELAY flag set, so it has always been possible for __pmConnect() to return -1 with neterror() set to EINPROGRESS. Now that the NSPR implementation of __pmConnect() uses PR_INTERVAL_NO_WAIT, this happens more often and a few callers that did not handle this were exposed. All callers of __pmConnect() now handle this situation. From brolley@redhat.com Fri Jul 11 14:36:52 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 27C947F47 for ; Fri, 11 Jul 2014 14:36:52 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id BD454AC003 for ; Fri, 11 Jul 2014 12:36:51 -0700 (PDT) X-ASG-Debug-ID: 1405107407-04bdf0356a3db00001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id GyMoGJI7sqMfKkfe (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 11 Jul 2014 12:36:47 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6BJakB1030335 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 11 Jul 2014 15:36:46 -0400 Received: from [10.10.49.250] (vpn-49-250.rdu2.redhat.com [10.10.49.250]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6BJajK0012796; Fri, 11 Jul 2014 15:36:46 -0400 Message-ID: <53C03CCF.3000908@redhat.com> Date: Fri, 11 Jul 2014 15:36:47 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Nathan Scott CC: pcp@oss.sgi.com Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. References: <20140619194444.3B03D58015@fche.csb> <53BC5248.5050100@redhat.com> <256416707.6217487.1404883930815.JavaMail.zimbra@redhat.com> <53BD8921.3000306@redhat.com> <2109477330.6980142.1404945968324.JavaMail.zimbra@redhat.com> <53BE9F30.7010106@redhat.com> <1543911711.7865026.1405028479709.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. In-Reply-To: <1543911711.7865026.1405028479709.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405107407 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/10/2014 05:41 PM, Nathan Scott wrote: > Hmmm, OK. The only other suggestion then would be to make it a more > general, and call it "flags" (where flags can go in/out of the API). > But thats a pretty ordinary approach too, really. > > Oh, or could interrupted-ness be indicated via the return code? No, the interrupted flag is intended to be set from the calling app in after calling the service discovery API (via signal handler, another thread, or some similar means) in order to interrupt the process. > > Anyway, you make a decision - it seems nothing here is particularly > attractive, and you're in the best position to consider all of the > approaches - go ahead, pick one and run with it. OK. The latest incarnation features a pointer to a bit mask for boolean global options and state, including the 'interrupted' bit and now also the 'resolve' bit. For non-boolean global options, we're back to using a string argument. The name of the function is __pmDiscoverServicesWithOptions. I think it best describes the enhancement compared to the existing pmDiscoverServices(1). The commits below (brolley/dev in pcpfans) contain the changes. They also temporarily disable the -t or --timeout option pending a proper re-implementation. Dave ------------------------------------- commit 44e6d0f80e41d24c5c054e0b39e30114bd5c83be Author: Dave Brolley Date: Fri Jul 11 15:26:36 2014 -0400 Don't catch SIGALRM in pmfind.c commit 6531827861ac520ca041a8344b8a39feba4a111d Author: Dave Brolley Date: Fri Jul 11 15:14:54 2014 -0400 Latest service discovery with options API attempt. Revert back to a string based API for non-boolean global options. Pointer to a bit mask of boolean options and state, including PM_SERVICE_DISCOVERY_INTERRUPTED PM_SERVICE_DISCOVERY_RESOLVE. This pointer may be NULL to indicate no flags are set. This commit temporarily disables the global timeout option (-t, --timeout). From nscott@redhat.com Sun Jul 13 21:00:28 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 3A0B57F58 for ; Sun, 13 Jul 2014 21:00:28 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 24C118F8039 for ; Sun, 13 Jul 2014 19:00:27 -0700 (PDT) X-ASG-Debug-ID: 1405303223-04cbb0421ca95d0001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id pLnDXz8GmrOFUbY1 for ; Sun, 13 Jul 2014 19:00:23 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6E20MAg013781; Sun, 13 Jul 2014 22:00:22 -0400 Date: Sun, 13 Jul 2014 22:00:22 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dave Brolley Cc: PCP Mailing List Message-ID: <1170491276.9256269.1405303222288.JavaMail.zimbra@redhat.com> In-Reply-To: <53C01477.6000703@redhat.com> References: <2129401188.6256039.1404891527704.JavaMail.zimbra@redhat.com> <53C01477.6000703@redhat.com> Subject: Re: Some recent QA regressions MIME-Version: 1.0 X-ASG-Orig-Subj: Re: Some recent QA regressions Content-Type: multipart/mixed; boundary="----=_Part_9256264_738270855.1405303222281" X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: Some recent QA regressions Thread-Index: uq7xBg035hSBE+m4eTImfl4IxXDQ5g== X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1405303223 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7494 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain ------=_Part_9256264_738270855.1405303222281 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi Dave, ----- Original Message ----- > On 07/09/2014 03:38 AM, Nathan Scott wrote: > > > > I've pulled all your current work, but had some problems with a > > few tests (see attached bad files). I found reverting the commit > > below got us back into a healthy state, so pushed this for now - > > when you figure it out, just "git revert" on my revert should do > > a revert revert & then just apply your followup fix on top). > > I just redid the change in my pcpfans brolley/dev branch. That in addition > to the fix which was to add EINPROGRESS handling to a few callers of > __pmConnect(). Ah, OK, sounds promising. From a full QA run though I have new failures in tests 230, 775, 835, and 946 that all appear related to these changes. 835 is the new pmdamemcache test, but it was running reliably on Friday - with the latest pull, not so much (it now times-out during the initial pmcd connection). I've attached all the bad files (ip addr for the host is 192.168.122.1 - for the 775 and 946 failures). > I don't think I have permission to do reverts on the dev branch of the > SGI repository, and I would be too afraid to mess it up anyway, so Couple of clarifications - there is no "SGI repository" (our use of git began after SGI involvement in PCP was largely winding down, and the community needed to find a way to exchange code and manage the releases independently). Re the git revert - doesn't matter, but it could've been done in your own tree & then pulled into the main dev branch (just like everything else). But, its of no consequence 0 at the end of the day, we just want the issue fixed, so use whatever is the most convenient way to reach that point - your commitlog explained it just fine. cheers. -- Nathan ------=_Part_9256264_738270855.1405303222281 Content-Type: application/octet-stream; name=946.out.bad Content-Disposition: attachment; filename=946.out.bad Content-Transfer-Encoding: base64 UUEgb3V0cHV0IGNyZWF0ZWQgYnkgOTQ2Ci1tIGF2YWhpCkRpc2NvdmVyZWQgcG1jZCBzZXJ2ZXJz OgpTb3VnaHQgcG1wcm94eSBzZXJ2ZXJzClNvdWdodCBwbXdlYmQgc2VydmVycwpFeGl0IHN0YXR1 czogMAotcyBwbWNkIC1tIGF2YWhpIC1yCkRpc2NvdmVyZWQgcG1jZCBzZXJ2ZXJzOgogIHBjcDov LzE5Mi4xNjguMTIyLjE6NDQzMjEKICBwY3A6Ly8xOTIuMTY4LjEyMi4xOjQ0MzIxCkV4aXQgc3Rh dHVzOiAwCi1xIC1tIGF2YWhpCkV4aXQgc3RhdHVzOiAwCi1xIC1zIHBtY2QgLW0gYXZhaGkKRXhp dCBzdGF0dXM6IDAKLXEgLXMgcG1jZCAtbSBhdmFoaSx0aW1lb3V0PTUuMApFeGl0IHN0YXR1czog MAotcSAtcyBwbWNkIC1tIGF2YWhpIHdpdGggQVZBSElfRElTQ09WRVJZX1RJTUVPVVQ9NQpFeGl0 IHN0YXR1czogMAotbSBhbGwKRGlzY292ZXJlZCBwbWNkIHNlcnZlcnM6ClNvdWdodCBwbXByb3h5 IHNlcnZlcnMKU291Z2h0IHBtd2ViZCBzZXJ2ZXJzCkV4aXQgc3RhdHVzOiAwCi1tIGFsbCAtLXJl c29sdmUKRGlzY292ZXJlZCBwbWNkIHNlcnZlcnM6CiAgcGNwOi8vMTkyLjE2OC4xMjIuMTo0NDMy MQogIHBjcDovLzE5Mi4xNjguMTIyLjE6NDQzMjEKU291Z2h0IHBtcHJveHkgc2VydmVycwpTb3Vn aHQgcG13ZWJkIHNlcnZlcnMKRXhpdCBzdGF0dXM6IDAK ------=_Part_9256264_738270855.1405303222281 Content-Type: application/octet-stream; name=835.out.bad Content-Disposition: attachment; filename=835.out.bad Content-Transfer-Encoding: base64 UUEgb3V0cHV0IGNyZWF0ZWQgYnkgODM1CldhaXRpbmcgZm9yIHBtY2QgdG8gdGVybWluYXRlIC4u LgoKPT09IG1lbWNhY2hlIGFnZW50IGluc3RhbGxhdGlvbiA9PT0KWW91IHdpbGwgbmVlZCB0byBj aG9vc2UgYW4gYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbiBmb3IgaW5zdGFsbGF0aW9uIG9mCnRo ZSAibWVtY2FjaGUiIFBlcmZvcm1hbmNlIE1ldHJpY3MgRG9tYWluIEFnZW50IChQTURBKS4KCiAg Y29sbGVjdG9yCWNvbGxlY3QgcGVyZm9ybWFuY2Ugc3RhdGlzdGljcyBvbiB0aGlzIHN5c3RlbQog IG1vbml0b3IJYWxsb3cgdGhpcyBzeXN0ZW0gdG8gbW9uaXRvciBsb2NhbCBhbmQvb3IgcmVtb3Rl IHN5c3RlbXMKICBib3RoCQljb2xsZWN0b3IgYW5kIG1vbml0b3IgY29uZmlndXJhdGlvbiBmb3Ig dGhpcyBzeXN0ZW0KClBsZWFzZSBlbnRlciBjKG9sbGVjdG9yKSBvciBtKG9uaXRvcikgb3IgYihv dGgpIFtiXSBVcGRhdGluZyB0aGUgUGVyZm9ybWFuY2UgTWV0cmljcyBOYW1lIFNwYWNlIChQTU5T KSAuLi4KVGVybWluYXRlIFBNREEgaWYgYWxyZWFkeSBpbnN0YWxsZWQgLi4uClsuLi5pbnN0YWxs IGZpbGVzLCBtYWtlIG91dHB1dC4uLl0KVXBkYXRpbmcgdGhlIFBNQ0QgY29udHJvbCBmaWxlLCBh bmQgbm90aWZ5aW5nIFBNQ0QgLi4uClN0YXJ0aW5nIHBtY2QgLi4uIApTdGFydGluZyBwbWxvZ2dl ciAuLi4gCkNoZWNrIG1lbWNhY2hlIG1ldHJpY3MgaGF2ZSBhcHBlYXJlZCAuLi4gMSB3YXJuaW5n cywgMSBtZXRyaWNzIGFuZCAwIHZhbHVlcwoKPT09IGNvbXBhcmUgbWV0cmljIHZhbHVlcyA9PT0K TWV0cmljIC0xMjM4NiBmcm9tIHBtcHJvYmUgbm90IGluIG5ldGNhdCBvdXRwdXQ/Cgo9PT0gcmVt b3ZlIG1lbWNhY2hlIGFnZW50ID09PQpDdWxsaW5nIHRoZSBQZXJmb3JtYW5jZSBNZXRyaWNzIE5h bWUgU3BhY2UgLi4uCm1lbWNhY2hlIC4uLiBkb25lClVwZGF0aW5nIHRoZSBQTUNEIGNvbnRyb2wg ZmlsZSwgYW5kIG5vdGlmeWluZyBQTUNEIC4uLgpbLi4ucmVtb3ZpbmcgZmlsZXMuLi5dCkNoZWNr IG1lbWNhY2hlIG1ldHJpY3MgaGF2ZSBnb25lIGF3YXkgLi4uIE9LCldhaXRpbmcgZm9yIHBtY2Qg dG8gdGVybWluYXRlIC4uLgpTdGFydGluZyBwbWNkIC4uLiAKU3RhcnRpbmcgcG1sb2dnZXIgLi4u IAo= ------=_Part_9256264_738270855.1405303222281 Content-Type: application/octet-stream; name=775.out.bad Content-Disposition: attachment; filename=775.out.bad Content-Transfer-Encoding: base64 UUEgb3V0cHV0IGNyZWF0ZWQgYnkgNzc1Ck5vIGFyZ3VtZW50cwpEaXNjb3ZlcmVkIHBtY2Qgc2Vy dmVyczoKU291Z2h0IHBtcHJveHkgc2VydmVycwpTb3VnaHQgcG13ZWJkIHNlcnZlcnMKRXhpdCBz dGF0dXM6IDAKLXMgcG1jZCAtcgpEaXNjb3ZlcmVkIHBtY2Qgc2VydmVyczoKICBwY3A6Ly8xOTIu MTY4LjEyMi4xOjQ0MzIxCiAgcGNwOi8vMTkyLjE2OC4xMjIuMTo0NDMyMQpFeGl0IHN0YXR1czog MAotbSBhbGwKRGlzY292ZXJlZCBwbWNkIHNlcnZlcnM6ClNvdWdodCBwbXByb3h5IHNlcnZlcnMK U291Z2h0IHBtd2ViZCBzZXJ2ZXJzCkV4aXQgc3RhdHVzOiAwCi1zIHBtY2QgLW0gYWxsIC0tcmVz b2x2ZQpEaXNjb3ZlcmVkIHBtY2Qgc2VydmVyczoKICBwY3A6Ly8xOTIuMTY4LjEyMi4xOjQ0MzIx CiAgcGNwOi8vMTkyLjE2OC4xMjIuMTo0NDMyMQpFeGl0IHN0YXR1czogMAotcQpFeGl0IHN0YXR1 czogMAotcSAtcyBwbWNkCkV4aXQgc3RhdHVzOiAwCi1xIC1tIGFsbApFeGl0IHN0YXR1czogMAot cSAtcyBwbWNkIC1tIGFsbApFeGl0IHN0YXR1czogMAo= ------=_Part_9256264_738270855.1405303222281 Content-Type: application/octet-stream; name=230.out.bad Content-Disposition: attachment; filename=230.out.bad Content-Transfer-Encoding: base64 UUEgb3V0cHV0IGNyZWF0ZWQgYnkgMjMwCj09PSBIYW5nIG9uIENvbm5lY3Rpb24gQ2FzZXMgPT09 CgpFeHBlY3QgaGFuZyAuLi4KcG1sYyBzdGlsbCBydW5uaW5nIC4uLiBraWxsaW5nIGl0IG9mZgoK RXhwZWN0IGhhbmcgYW5kIHdhcm5pbmcgLi4uCnBtbGMgc3RpbGwgcnVubmluZyAuLi4ga2lsbGlu ZyBpdCBvZmYKW0RBVEVdIHBtbGMoUElEKSBXYXJuaW5nOiBpZ25vcmVkIGJhZCBQTUxPR0dFUl9S RVFVRVNUX1RJTUVPVVQgPSAnMS41JwoKRXhwZWN0IG5vIGhhbmcgYW5kIHVuYWJsZSB0byBjb25u ZWN0IHRvIHBtbG9nZ2VyIC4uLgpwbWxjIGhhcyBleGl0ZWQKVW5hYmxlIHRvIGNvbm5lY3QgdG8g cHJpbWFyeSBwbWxvZ2dlciBhdCBNWUhPU1Q6IENvbm5lY3Rpb24gdGltZWQgb3V0Cgo9PT0gVGlt ZW91dCBvbiBwbWxjIGNvbW1hbmRzIGNhc2VzID09PQoKQ2hlY2sgUUEgY29kZSBjbGVhcmVkIHdo ZW4gcG1sYyBleGl0cyAuLi4KcG1sYyBoYXMgZXhpdGVkCkNvbm5lY3RlZCB0byBwcmltYXJ5IHBt bG9nZ2VyIGF0IE1ZSE9TVApxYSAxClFBIFRlc3QgQ2FzZSAjMSBhY3RpdmF0ZWQKcXVpdApHb29k YnllCnBtbGMgaGFzIGV4aXRlZApDb25uZWN0ZWQgdG8gcHJpbWFyeSBwbWxvZ2dlciBhdCBNWUhP U1QKc3RhdHVzCnBtbG9nZ2VyIFtwcmltYXJ5XSBvbiBob3N0IE1ZSE9TVCBpcyBsb2dnaW5nIG1l dHJpY3MgZnJvbSBob3N0IE1ZSE9TVApQTUNEIGhvc3QgICAgICAgIEhPU1QKbG9nIHN0YXJ0ZWQg ICAgICBEQVRFCmxhc3QgbG9nIGVudHJ5ICAgREFURQpjdXJyZW50IHRpbWUgICAgIERBVEUKbG9n IHZvbHVtZSAgICAgICBOVU1CRVIKbG9nIHNpemUgICAgICAgICBOVU1CRVIKcXVpdApHb29kYnll CgpFeHBlY3Qgbm8gaGFuZyBhbmQgbG9nIGNvbW1hbmQgdG8gdGltZW91dCBjb25uZWN0aW5nIHRv IHBtY2QgLi4uCnBtbGMgaGFzIGV4aXRlZApDb25uZWN0ZWQgdG8gcHJpbWFyeSBwbWxvZ2dlciBh dCBNWUhPU1QKcWEgMQpRQSBUZXN0IENhc2UgIzEgYWN0aXZhdGVkCmxvZyBtYW5kYXRvcnkgb24g b25jZSBFcnJvciByZWNlaXZpbmcgcmVzcG9uc2UgZnJvbSBwbWxvZ2dlcjogVGltZW91dCwgY2xv c2VkIGNvbm5lY3Rpb24gdG8gdGhlIHBtbG9nZ2VyIGluc3RhbmNlCkVycm9yIFs8c3RkaW4+LCBs aW5lIDJdCnNhbXBsZS5sb25nLm1pbGxpb24KcXVpdApHb29kYnllCgpFeHBlY3Qgbm8gaGFuZyBh bmQgMm5kIGxvZyBjb21tYW5kIHRvIHRpbWVvdXQgY2hhbmdpbmcgbG9nZ2luZyBzdGF0dXMgLi4u CnBtbGMgaGFzIGV4aXRlZApDb25uZWN0ZWQgdG8gcHJpbWFyeSBwbWxvZ2dlciBhdCBNWUhPU1QK bG9nIG1hbmRhdG9yeSBvbiBvbmNlIHNhbXBsZS5sb25nLm1pbGxpb24KcWEgMQpRQSBUZXN0IENh c2UgIzEgYWN0aXZhdGVkCmxvZyBtYW5kYXRvcnkgb24gb25jZSBzYW1wbGUubG9uZy5taWxsaW9u CkVycm9yIHJlY2VpdmluZyByZXNwb25zZSBmcm9tIHBtbG9nZ2VyOiBUaW1lb3V0LCBjbG9zZWQg Y29ubmVjdGlvbiB0byB0aGUgcG1sb2dnZXIgaW5zdGFuY2UKcXVpdApHb29kYnllCgpFeHBlY3Qg bm8gaGFuZyBhbmQgc3RhdHVzIGNvbW1hbmQgdG8gdGltZW91dCAuLi4KcG1sYyBoYXMgZXhpdGVk CkNvbm5lY3RlZCB0byBwcmltYXJ5IHBtbG9nZ2VyIGF0IE1ZSE9TVApxYSAxClFBIFRlc3QgQ2Fz ZSAjMSBhY3RpdmF0ZWQKc3RhdHVzCkVycm9yIHJlY2VpdmluZyByZXNwb25zZSBmcm9tIHBtbG9n Z2VyOiBUaW1lb3V0LCBjbG9zZWQgY29ubmVjdGlvbiB0byB0aGUgcG1sb2dnZXIgaW5zdGFuY2UK cXVpdApHb29kYnllCgpFeHBlY3QgaGFuZyBhbmQgZmx1c2ggY29tbWFuZCB0byB0aW1lb3V0ICAu Li4KcG1sYyBoYXMgZXhpdGVkCkNvbm5lY3RlZCB0byBwcmltYXJ5IHBtbG9nZ2VyIGF0IE1ZSE9T VApxYSAxClFBIFRlc3QgQ2FzZSAjMSBhY3RpdmF0ZWQKZmx1c2gKRXJyb3IgcmVjZWl2aW5nIHJl c3BvbnNlIGZyb20gcG1sb2dnZXI6IFRpbWVvdXQsIGNsb3NlZCBjb25uZWN0aW9uIHRvIHRoZSBw bWxvZ2dlciBpbnN0YW5jZQpxdWl0Ckdvb2RieWUKCkV4cGVjdCBoYW5nIGFuZCBuZXcgdm9sdW1l IGNvbW1hbmQgdG8gdGltZW91dCAuLi4KcG1sYyBoYXMgZXhpdGVkCkNvbm5lY3RlZCB0byBwcmlt YXJ5IHBtbG9nZ2VyIGF0IE1ZSE9TVApxYSAxClFBIFRlc3QgQ2FzZSAjMSBhY3RpdmF0ZWQKbmV3 IHZvbHVtZQpFcnJvciByZWNlaXZpbmcgcmVzcG9uc2UgZnJvbSBwbWxvZ2dlcjogVGltZW91dCwg Y2xvc2VkIGNvbm5lY3Rpb24gdG8gdGhlIHBtbG9nZ2VyIGluc3RhbmNlCnF1aXQKR29vZGJ5ZQoK RXhwZWN0IG5vIGhhbmcgYW5kIHF1ZXJ5IGNvbW1hbmQgdG8gdGltZW91dCBjb25uZWN0aW5nIHRv IHBtY2QgLi4uCnBtbGMgaGFzIGV4aXRlZApDb25uZWN0ZWQgdG8gcHJpbWFyeSBwbWxvZ2dlciBh dCBNWUhPU1QKcWEgMQpRQSBUZXN0IENhc2UgIzEgYWN0aXZhdGVkCnF1ZXJ5IEVycm9yIHJlY2Vp dmluZyByZXNwb25zZSBmcm9tIHBtbG9nZ2VyOiBUaW1lb3V0LCBjbG9zZWQgY29ubmVjdGlvbiB0 byB0aGUgcG1sb2dnZXIgaW5zdGFuY2UKRXJyb3IgWzxzdGRpbj4sIGxpbmUgMl0Kc2FtcGxlLmxv bmcubWlsbGlvbgpxdWl0Ckdvb2RieWUKCkV4cGVjdCBubyBoYW5nIGFuZCAybmQgcXVlcnkgY29t bWFuZCB0byB0aW1lb3V0IGZldGNoaW5nIGxvZ2dpbmcgc3RhdHVzIC4uLgpwbWxjIGhhcyBleGl0 ZWQKQ29ubmVjdGVkIHRvIHByaW1hcnkgcG1sb2dnZXIgYXQgTVlIT1NUCnF1ZXJ5IHNhbXBsZS5s b25nLm1pbGxpb24Kc2FtcGxlLmxvbmcubWlsbGlvbgogICAgbWFuZCBvbiAgICAgICAgICAgICBv bmNlCgpxYSAxClFBIFRlc3QgQ2FzZSAjMSBhY3RpdmF0ZWQKcXVlcnkgc2FtcGxlLmxvbmcubWls bGlvbgpFcnJvciByZWNlaXZpbmcgcmVzcG9uc2UgZnJvbSBwbWxvZ2dlcjogVGltZW91dCwgY2xv c2VkIGNvbm5lY3Rpb24gdG8gdGhlIHBtbG9nZ2VyIGluc3RhbmNlCnF1aXQKR29vZGJ5ZQo= ------=_Part_9256264_738270855.1405303222281-- From nscott@redhat.com Sun Jul 13 22:41:04 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 57B207F59 for ; Sun, 13 Jul 2014 22:41:04 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 48CC2304048 for ; Sun, 13 Jul 2014 20:41:01 -0700 (PDT) X-ASG-Debug-ID: 1405309258-04cbb0421bac420001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id Ivda9To8icuBfCbQ for ; Sun, 13 Jul 2014 20:40:58 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6E3eQcK030680; Sun, 13 Jul 2014 23:40:26 -0400 Date: Sun, 13 Jul 2014 23:40:25 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dave Brolley Cc: pcp@oss.sgi.com Message-ID: <167962287.9276874.1405309225214.JavaMail.zimbra@redhat.com> In-Reply-To: <53C03CCF.3000908@redhat.com> References: <20140619194444.3B03D58015@fche.csb> <256416707.6217487.1404883930815.JavaMail.zimbra@redhat.com> <53BD8921.3000306@redhat.com> <2109477330.6980142.1404945968324.JavaMail.zimbra@redhat.com> <53BE9F30.7010106@redhat.com> <1543911711.7865026.1405028479709.JavaMail.zimbra@redhat.com> <53C03CCF.3000908@redhat.com> Subject: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. MIME-Version: 1.0 X-ASG-Orig-Subj: Re: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. Thread-Index: ShRQ6Vrflfl2jRrFCNmGgkKCBKZjUw== X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1405309258 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7496 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain Hi Dave, ----- Original Message ----- > On 07/10/2014 05:41 PM, Nathan Scott wrote: > > Hmmm, OK. The only other suggestion then would be to make it a more > > general, and call it "flags" (where flags can go in/out of the API). > > But thats a pretty ordinary approach too, really. > > > > Oh, or could interrupted-ness be indicated via the return code? > No, the interrupted flag is intended to be set from the calling app in > after calling the service discovery API (via signal handler, another > thread, or some similar means) in order to interrupt the process. Mmm, fruity. A temporarily-replaced signal handler for the duration of the call mighta been another alternative, allowing an interface similar to syscall interruption (with EINTR-style return) - but, as I said... > > Anyway, you make a decision - it seems nothing here is particularly > > attractive, and you're in the best position to consider all of the > > approaches - go ahead, pick one and run with it. ... so thanks for doing that :) We can always come back to timeout handling, which it sounds like you're intending to do anyway with that final comment of yours (below). > OK. The latest incarnation features a pointer to a bit mask for boolean > global options and state, including the 'interrupted' bit and now also > the 'resolve' bit. For non-boolean global options, we're back to using a > string argument. The name of the function is > __pmDiscoverServicesWithOptions. I think it best describes the > enhancement compared to the existing pmDiscoverServices(1). Sounds good - all merged, lets get it fixed up now wrt that last bit of QA fallout (from earlier mail, the couple of discovery failures I guess are related to the commits discussed here). > The commits below (brolley/dev in pcpfans) contain the changes. They > also temporarily disable the -t or --timeout option pending a proper > re-implementation. OK, thanks for taking care of it. BTW, we have a release scheduled for Wed & I'm away Thursday - if you feel it'll help, we could postpone to Friday for that planned release? (maybe see how you're going with the QA issues by end of your Monday & lets make a decision then if you think a bit more time is needed). I'll be working through RHEL6 QE-reported issues in the meantime, so hoping you can take on the other regressions here in parallel. Thanks!! cheers. -- Nathan From nscott@redhat.com Sun Jul 13 23:02:45 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0CB7C7F55 for ; Sun, 13 Jul 2014 23:02:45 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 87227AC007 for ; Sun, 13 Jul 2014 21:02:44 -0700 (PDT) X-ASG-Debug-ID: 1405310559-04cbb0421cacfd0001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id Yi5B60HCfLAGcUBP for ; Sun, 13 Jul 2014 21:02:39 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6E42d8V006062; Mon, 14 Jul 2014 00:02:39 -0400 Date: Mon, 14 Jul 2014 00:02:39 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dave Brolley Cc: pcp@oss.sgi.com Message-ID: <1811055467.9278554.1405310559100.JavaMail.zimbra@redhat.com> In-Reply-To: <167962287.9276874.1405309225214.JavaMail.zimbra@redhat.com> References: <20140619194444.3B03D58015@fche.csb> <53BD8921.3000306@redhat.com> <2109477330.6980142.1404945968324.JavaMail.zimbra@redhat.com> <53BE9F30.7010106@redhat.com> <1543911711.7865026.1405028479709.JavaMail.zimbra@redhat.com> <53C03CCF.3000908@redhat.com> <167962287.9276874.1405309225214.JavaMail.zimbra@redhat.com> Subject: Async events (was Re: [pcp] pmServiceDiscoveryInterrupt() commit a8b87e2 et al.) MIME-Version: 1.0 X-ASG-Orig-Subj: Async events (was Re: [pcp] pmServiceDiscoveryInterrupt() commit a8b87e2 et al.) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pmServiceDiscoveryInterrupt() commit a8b87e2 et al. Thread-Index: ShRQ6Vrflfl2jRrFCNmGgkKCBKZjU7KeX3rf X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1405310559 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7496 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain Hi Dave, Oh forgot to mention this... ----- Original Message ----- > ----- Original Message ----- > > On 07/10/2014 05:41 PM, Nathan Scott wrote: > > > Hmmm, OK. The only other suggestion then would be to make it a more > > > general, and call it "flags" (where flags can go in/out of the API). > > > But thats a pretty ordinary approach too, really. > > > > > > Oh, or could interrupted-ness be indicated via the return code? > > No, the interrupted flag is intended to be set from the calling app in > > after calling the service discovery API (via signal handler, another > > thread, or some similar means) in order to interrupt the process. > > Mmm, fruity. A temporarily-replaced signal handler for the duration of > the call mighta been another alternative, allowing an interface similar > to syscall interruption (with EINTR-style return) - but, as I said... See src/libpcp/src/AF.c btw - provides one, cross-platform model you might consider for: > > [...] temporarily disable the -t or --timeout option pending a proper > > re-implementation. (pmlogger uses that stuff extensively, for example) cheers. -- Nathan From nscott@redhat.com Mon Jul 14 03:11:12 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id DB7C77F75 for ; Mon, 14 Jul 2014 03:11:11 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 6BD9DAC001 for ; Mon, 14 Jul 2014 01:11:08 -0700 (PDT) X-ASG-Debug-ID: 1405325462-04bdf0356bb2860001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id M4v0o1aNdZctMsYY for ; Mon, 14 Jul 2014 01:11:02 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6E8B1GU022643 for ; Mon, 14 Jul 2014 04:11:01 -0400 Date: Mon, 14 Jul 2014 04:11:01 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: PCP Mailing List Message-ID: <1726526641.9393409.1405325461637.JavaMail.zimbra@redhat.com> In-Reply-To: <289100926.9392769.1405325419479.JavaMail.zimbra@redhat.com> Subject: pcp updates: brolley merge, lotsa qa MIME-Version: 1.0 X-ASG-Orig-Subj: pcp updates: brolley merge, lotsa qa Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: brolley merge, lotsa qa Thread-Index: EKzkQJavgFmWPqVBg+PYQbnZ+jDmoQ== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1405325462 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7500 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Changes committed to git://git.performancecopilot.org/pcp.git dev debian/libpcp3-dev.install | 1 qa/113 | 2 qa/120 | 4 - qa/128 | 11 ++-- qa/148 | 2 qa/178 | 12 +++++ qa/314 | 4 - qa/348 | 2 qa/635 | 4 - qa/725 | 1 qa/725.out | 48 ++++++++++----------- qa/738 | 2 qa/valgrind-suppress | 8 +++ src/include/pcp/impl.h | 11 ++++ src/include/pcp/pmapi.h | 19 -------- src/libpcp/src/avahi.c | 20 ++++---- src/libpcp/src/avahi.h | 4 - src/libpcp/src/discovery.c | 91 ++++++---------------------------------- src/libpcp/src/exports | 2 src/libpcp/src/internal.h | 2 src/libpcp/src/probe.c | 26 ++++++----- src/libpcp/src/probe.h | 2 src/libpcp/src/secureconnect.c | 10 ++-- src/libpcp_gui/src/timeclient.c | 24 +++++++++- src/perl/PMDA/local.c | 42 ++++++++++++++++++ src/pmcd/src/config.c | 21 +++++++++ src/pmdas/linux_proc/pmda.c | 20 ++++++-- src/pmdas/linux_proc/proc_pid.c | 9 ++- src/pmfind/pmfind.c | 72 +++++++++++++++++-------------- 29 files changed, 266 insertions(+), 210 deletions(-) commit 9279ce5b03d9dfd60ebbc638189d086c4d27258e Author: Nathan Scott Date: Mon Jul 14 18:06:34 2014 +1000 Fix qa/943 failure, PM_ERR_INST for proc cgroup metrics On older kernels, the per-process cgroup files are often empty. Update the per-process PMDA code such that it detects this and responds more approriately. commit 23c923d3450044fe3806c7816624d4285923fcbb Author: Nathan Scott Date: Mon Jul 14 18:03:49 2014 +1000 Cleanup empty tmp test directory after qa/738 commit 4177cb1794cc4f3709b1b53a6aac085c9aa553b5 Author: Nathan Scott Date: Mon Jul 14 18:03:14 2014 +1000 Resolve a race in qa/178 parallel pmlogger startup Its possible that multiple pmloggers end up choosing the same "free" port to communicate with pmlc, resulting in spurious listen(2) errors in pmlogger log files. commit ed7e935d7c1845c5b9b3b6c01b7f5b9c3a20a580 Author: Nathan Scott Date: Mon Jul 14 16:07:11 2014 +1000 Fix test qa/725 to also work correctly on 32-bit hosts commit 761e8a00872210b999624d03b33f9cc9cd440d43 Author: Nathan Scott Date: Mon Jul 14 15:46:57 2014 +1000 Update test qa/314 to allow longer for a pmie log rotation commit fd6c591c65cce843bf9fc6aa3b7d19b2c7ad17f0 Author: Nathan Scott Date: Mon Jul 14 15:01:24 2014 +1000 Filter NSPR memory leaks from the valgrind-checked set. commit d4a9e1e1430050bb6c8a5f483697a8701fa1370f Author: Nathan Scott Date: Mon Jul 14 14:30:06 2014 +1000 Ensure the same locale is set for sort and join commands The join command checks the input is sorted using the same locale as sort, differences here have been observed to cause join(1) to fail with "join: file1 is not sorted" in test qa/128. Audit all of the joins and ensure they match their sorts. Additionally, the perl scriptlet generating nfsstats was using an incorrect string comparison operator, which was observed on still other platforms to generate no reduce nfsstat output to nothing. commit 39c9e5640929dc8f48c15276084cab0f12846c57 Author: Nathan Scott Date: Mon Jul 14 14:22:13 2014 +1000 libpcp: make avahi_entry_group_new diagnostic debug-conditional Resolve failures in test qa/283 where spurious messages were produced in pmcd.log on boxen without avahi-daemon running. commit f3f05e6a6a918132f85f749fb8c01c07eb8a7539 Author: Nathan Scott Date: Mon Jul 14 13:55:39 2014 +1000 pmfind: cater for non-POSIX builds, fix whitespace damage commit 44e6d0f80e41d24c5c054e0b39e30114bd5c83be Author: Dave Brolley Date: Fri Jul 11 15:26:36 2014 -0400 Don't catch SIGALRM in pmfind.c commit 6531827861ac520ca041a8344b8a39feba4a111d Author: Dave Brolley Date: Fri Jul 11 15:14:54 2014 -0400 Latest service discovery with options API attempt. Revert back to a string based API for non-boolean global options. Pointer to a bit mask of boolean options and state, including PM_SERVICE_DISCOVERY_INTERRUPTED PM_SERVICE_DISCOVERY_RESOLVE. This pointer may be NULL to indicate no flags are set. This commit temporarily disables the global timeout option (-t, --timeout). commit a705d6bb86d87fa0cdf0fb0accf5299212cef08d Author: Dave Brolley Date: Fri Jul 11 12:35:56 2014 -0400 Re-instate "Respect FNDELAY in __pmConnect() for secure connections." This re-instates commit 75e40a1a033df79ca36b4034670bede4ba39ebdf which was breaking tests 067, 110 and 156. commit ff23f3d6ab3d5d82141761722afec591f15a4597 adds the required error handling code to callers of __pmConnect. commit e17c5dacf1b5a686e532fc16947ca72406027a9f Merge: ff23f3d a9db131 Author: Dave Brolley Date: Fri Jul 11 11:32:16 2014 -0400 Merge remote-tracking branch 'origin/dev' into brolley/dev commit ff23f3d6ab3d5d82141761722afec591f15a4597 Author: Dave Brolley Date: Fri Jul 11 11:25:40 2014 -0400 Always handle EINPROGRESS from __pmConnect(). NSPR sockets appear to always have the FNDELAY flag set, so it has always been possible for __pmConnect() to return -1 with neterror() set to EINPROGRESS. Now that the NSPR implementation of __pmConnect() uses PR_INTERVAL_NO_WAIT, this happens more often and a few callers that did not handle this were exposed. All callers of __pmConnect() now handle this situation. commit a9db1316178322cd4aeb7ad388dcf6e466c9a77f Author: Nathan Scott Date: Fri Jul 11 17:07:20 2014 +1000 deb build: remove reference to non-existant file From fche@redhat.com Mon Jul 14 06:33:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 4C4C77F89 for ; Mon, 14 Jul 2014 06:33:14 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 269688F8035 for ; Mon, 14 Jul 2014 04:33:10 -0700 (PDT) X-ASG-Debug-ID: 1405337589-04cbb0421abfc00001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id swadhyrfSWdjAnDi (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 04:33:09 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6EBX8Hx010339 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 14 Jul 2014 07:33:09 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6EBX8im026072; Mon, 14 Jul 2014 07:33:08 -0400 Received: by fche.csb (Postfix, from userid 2569) id CB16C58390; Mon, 14 Jul 2014 07:33:07 -0400 (EDT) To: Nathan Scott Cc: Dave Brolley , pcp@oss.sgi.com Subject: Re: Async events References: <20140619194444.3B03D58015@fche.csb> <53BD8921.3000306@redhat.com> <2109477330.6980142.1404945968324.JavaMail.zimbra@redhat.com> <53BE9F30.7010106@redhat.com> <1543911711.7865026.1405028479709.JavaMail.zimbra@redhat.com> <53C03CCF.3000908@redhat.com> <167962287.9276874.1405309225214.JavaMail.zimbra@redhat.com> <1811055467.9278554.1405310559100.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: Async events From: fche@redhat.com (Frank Ch. Eigler) Date: Mon, 14 Jul 2014 07:33:07 -0400 In-Reply-To: <1811055467.9278554.1405310559100.JavaMail.zimbra@redhat.com> (Nathan Scott's message of "Mon, 14 Jul 2014 00:02:39 -0400 (EDT)") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405337589 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 nathans wrote: > Oh forgot to mention this... > [...] > See src/libpcp/src/AF.c btw - provides one, cross-platform model you might > consider for: At least two latent problems should give one pause: - use of SIGALRM and queue structures in a thread-unsafe manner - use of numerous async-signal-unsafe functions in onalarm() signal handler, and callback functions listed __pmAFregister > (pmlogger uses that stuff extensively, for example) To some extent, it's been lucky! One more thing. The functions in AF.c are all __-prefixed, dso-exported, declared only in impl.h, and in this case used by a client. I have several times asked what __ prefixing is supposed to mean, when we use it so arbitrarily. This is a case in point. - FChE From jpwhite4@buffalo.edu Mon Jul 14 11:49:00 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 081BB29DF9 for ; Mon, 14 Jul 2014 11:49:00 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id CD2608F8049 for ; Mon, 14 Jul 2014 09:48:56 -0700 (PDT) X-ASG-Debug-ID: 1405356531-04bdf03569c8770001-S8gJnT Received: from appmailD.acsu.buffalo.edu (appmaild.acsu.buffalo.edu [128.205.5.237]) by cuda.sgi.com with ESMTP id hfjCE4SGqrWHDBtF for ; Mon, 14 Jul 2014 09:48:51 -0700 (PDT) X-Barracuda-Envelope-From: jpwhite4@buffalo.edu X-Barracuda-Apparent-Source-IP: 128.205.5.237 Received: from appmailD.acsu.buffalo.edu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id ECD5A1FBED; Mon, 14 Jul 2014 12:48:49 -0400 (EDT) Received: from appmailD.acsu.buffalo.edu (localhost [127.0.0.1]) by appmailD.acsu.buffalo.edu (Postfix) with ESMTP id A28EC1FBE5; Mon, 14 Jul 2014 12:48:48 -0400 (EDT) Received: from cas-ls1.itorg.ad.buffalo.edu (cas-ls1.acsu.buffalo.edu [128.205.6.47]) by appmailD.acsu.buffalo.edu (Prefixe) with ESMTP id 9B09A1FBE4; Mon, 14 Jul 2014 12:48:48 -0400 (EDT) Received: from MB-LS1.itorg.ad.buffalo.edu ([169.254.1.49]) by cas-ls1.itorg.ad.buffalo.edu ([128.205.6.47]) with mapi id 14.03.0195.001; Mon, 14 Jul 2014 12:48:48 -0400 From: "White, Joseph" To: William Cohen , "pcp@oss.sgi.com" Subject: Re: [pcp] New perfevent PMDA Thread-Topic: [pcp] New perfevent PMDA X-ASG-Orig-Subj: Re: [pcp] New perfevent PMDA Thread-Index: AQHPkWQ7+Of6murkTkSMtOpXHkooOZuKb4wAgADuvwCADOepAIAHnjeA Date: Mon, 14 Jul 2014 16:48:46 +0000 Message-ID: References: <53B1D222.8010601@redhat.com> <53BD6DB8.6020801@redhat.com> In-Reply-To: <53BD6DB8.6020801@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/14.4.3.140616 x-originating-ip: [128.205.245.129] Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-PM-Spam-Prob: : 8% X-Barracuda-Connect: appmaild.acsu.buffalo.edu[128.205.5.237] X-Barracuda-Start-Time: 1405356531 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... QW5zd2VycyBpbmxpbmUgYmVsb3cNCg0KT24gNy85LzE0LCAxMjoyOCBQTSwgIldpbGxpYW0gQ29o ZW4iIDx3Y29oZW5AcmVkaGF0LmNvbT4gd3JvdGU6DQoNCj4NCj4tLTg8LS0tLQ0KICAgU05JUA0K ICAtLTg8LS0tLQ0KPg0KPkhpIEpvZSwNCj4NCj5UaGFua3MgZm9yIGV4cGxhaW5pbmcgdGhlIHJl bGF0aW9uc2hpcCBiZXR3ZWVuIFBDUCBhbmQgWERNb0QuDQo+DQo+SSB3YXMgYWJsZSB0byBidWls ZCB0aGUgcGVyZmV2ZW50IHBtZGEgb24gYW4gYXJtIG1hY2hpbmUuICBJbiBnZW5lcmFsIGl0DQo+ bG9va3MgbGlrZQ0KPkdOVW1ha2Ugc2hvdWxkIGhhdmUgIi1sbSAtbHB0aHJlYWQiIGFkZGVkLiBT b21ldGhpbmcgbGlrZToNCj4NCj5MTERMSUJTID0gJChQQ1BfUE1EQUxJQikgLWxwZm0gLWxydCAt bG0gLWxwdGhyZWFkDQoNClRoYW5rcywgSSdsbCBhZGQgdGhpcyB0byBteSB2ZXJzaW9uIHRvby4N Cg0KPg0KPg0KPkhvdyBkb2VzIG9uZSBpbnN0YWxsIHRoZSBwZXJmZXZlbnQgcG1kYS90ZXN0cyBh bmQgcnVuIHRoZSB0ZXN0cz8gIEkNCj5kaWQgdHJ5IHRvIHJ1biBpdCBidXQgdGhlIHJlc3VsdHMg bG9va2VkIHByZXR0eSBxdWVzdGlvbmFibGUsDQo+cGFydGljdWxhcmx5IHdoZW4gaXQgZ2F2ZSBh ICJyZXN1bHQ6IFBBU1MiIG9uIHRoZSBhcm0gbWFjaGluZS4gIFRoZW4NCj5hZ2FpbiB0aGF0IG1p Z2h0IGJlIGR1ZSB0byB0aGUgZmFrZWZzIGx5aW5nIHdoYXQga2luZCBvZiBtYWNoaW5lIHRoaXMN Cj5pcy4gIEdpdmVuIHRoYXQgdGhlIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgaGFyZHdhcmUgaXMg dmVyeSBwcm9jZXNzb3INCj5pbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBpcyB0aGVyZSBzb21lIHdh eSB0byBtYWtlIHRoZSB1bml0IHRlc3RpbmcNCj5tb3JlIGF3YXJlIG9mIHdoYXQga2luZCBvZiBt YWNoaW5lIGl0IGlzIHJlYWxseSBvbj8NCg0KVGhlIHVuaXQgdGVzdCBoYXJuZXNzIGlzIGRlbGli ZXJhdGVseSBpbmRlcGVuZGVudCBvZiB0aGUgdW5kZXJseWluZw0KbWFjaGluZSBhcmNoaXRlY3R1 cmUgYXMgaXQgaXMgZGVzaWduZWQgdG8gY29uZmlybSB0aGF0IHRoZSBwZXJmZXZlbnQgY29kZQ0K YmVoYXZlcyBhcyBkZXNpZ25lZCBhbmQgaW50ZXJhY3RzIHByb3Blcmx5IHdpdGggZXh0ZXJuYWwg aW50ZXJmYWNlcyAoaWUNCnRoZSBsaWJwZm00IEFQSSBhbmQgdGhlIGxpbnV4IHByb2MgZmlsZXN5 c3RlbSBBUEkpLiBJJ20gZW5jb3VyYWdlZCB0aGF0DQp0aGUgdGVzdHMgcGFzcyBvbiB0aGUgYXJt IGFyY2hpdGVjdHVyZSwgc2luY2UgdGhpcyBtYWtlcyBtZSBsZXNzIHdvcnJpZWQNCnRoYXQgdGhl cmUgaXMgYW55IHg4NiBzcGVjaWZpYyBjb2RlIGx1cmtpbmcgaW4gdGhlIHNvdXJjZS4NCg0KQXQg dGhlIG1vbWVudCwgdGhlcmUgZG9lc24ndCBleGlzdCBhbiBhdXRvbWF0ZWQgbWV0aG9kIHRvIGRv IGNvbXBvbmVudA0KdGVzdGluZy4gQ3VycmVudGx5IGlzIGEgbWFudWFsIHByb2Nlc3MsIHdoZXJl IHlvdSB3b3VsZCBydW4gdGhlIGZ1bGwNCnBlcmZldmVudCBQTURBIGFuZCBjaGVjayB0aGUgbG9n cyBhbmQgcXVlcnkgaXQgdXNpbmcgdGhlIG5vcm1hbCBwY3AgdG9vbHMuDQoNCj4NCj4NCj5UbyBh ZGQgc3VwcG9ydCBmb3IgbmV3IHByb2Nlc3NvcnMgb25lIHdvdWxkIG1ha2UgZW50cmllcyBpbg0K PnBlcmZldmVudC5jb25mPw0KDQpZZXMsIHRoZSBwcm9jZWR1cmUgdGhhdCBJIHN1Z2dlc3QgaXMg YXMgZm9sbG93czoNCjEpIFJ1biB0aGUgcGVyZmV2ZW50IFBNREEgb24geW91ciB0YXJnZXQgYXJj aA0KMikgQ2hlY2sgdGhlIGNvbnRlbnRzIG9mIHRoZSBwZXJmZXZlbnQgbG9nIGZpbGUNCigvdmFy L2xvZy9wY3AvcG1jZC9wZXJmZXZlbnQubG9nKS4gVGhpcyBzaG91bGQgbGlzdCBhbGwgb2YgdGhl IGRldGVjdGVkDQpQTVVzIGFuZCB0aGUgYXZhaWxhYmxlIGhhcmR3YXJlIGNvdW50ZXJzLg0KMykg RWRpdCB0aGUgcGVyZmV2ZW50LmNvbmYgdG8gYWRkIGEgc2VjdGlvbiBmb3IgdGhlIGRlc2lyZWQg UE1VIGFuZCB0aGUNCmRlc2lyZWQgY291bnRlcnMuIFRoZSBQTVUgYW5kIGNvdW50ZXIgbmFtZXMg c2hvdWxkIGJlIGlkZW50aWNhbCB0byB0aGUgdGhlDQpuYW1lcyBsaXN0ZWQgaW4gdGhlIGxvZyBm aWxlIGluIHN0ZXAgKDIpDQo0KSByZXN0YXJ0IHRoZSBwbWRhIGFuZCBjaGVjayB0aGF0IHRoZSBk ZXNpcmVkIGNvdW50ZXJzIGFwcGVhci4NCg0KRm9yIGV4YW1wbGUsIGluIHN0ZXAgKDIpIHlvdSBt aWdodCBzZWUgbG9nIG91dHB1dCBvZiB0aGUgZm9ybSAobm90ZSB0aGlzDQppcyBhbGwgYSBndWVz cywgc2luY2UgSSBkb24ndCBoYXZlIGFjY2VzcyB0byBhbiBhcm0gYm94KToNCg0KRm91bmQgUE1V OiB4c2NhbGUyIChBUk0pIGlkZW50aWZpY2F0aW9uIDIgKFhYIGV2ZW50cyBZWSBnZW5lcmljIGNv dW50ZXJzDQpaWiBmaXhlZCBjb3VudGVycykNCnhzY2FsZTI6OmZvbw0KeHNjYWxlMjo6YmFyDQoN Cg0KDQpUbyBhZGQgdGhlIGZvbyBhbmQgYmFyIGNvdW50ZXJzIHRvIHRoZSBjb25maWd1cmF0aW9u IHlvdSB3b3VsZCBhZGQgc29tZQ0KbGluZXMgb2YgdGhlIGZvcm06DQoNCg0KW3hzY2FsZTJdDQp4 c2NhbGUyOjpmb28NCnhzY2FsZTI6OmJhcg0KDQpBZnRlciB0aGUgcG1kYSBpcyByZXN0YXJ0ZWQs IHRoZW4gaXQgc2hvdWxkIHRyeSB0byBsb2FkIHRoZSBmb28gYW5kIGJhcg0KZXZlbnRzIGlmIGl0 IGlzIHJ1biBvbiBhIHN5c3RlbSB0aGF0IGhhcyBhbiB4c2NhbGUyIFBNVS4NCg0KDQoNCj4NCj4N Cj5UaGUgcG1kYS5jIG1lbnRpb25zIGR1dHkgY3ljbGUgYW5kIHRoYXQgaXQgaXMgcG9zc2libGUg dG8gaGF2ZQ0KPm11bHRpcGxleGluZy4gIElzIHRoZXJlIGFueSB3YXkgdG8gZ3JvdXAgcmVsYXRl ZCBldmVudHMgdG9nZXRoZXIsDQo+cGFydGljdWxhcmx5IG9uZXMgdGhhdCBhcmUgdXNlZCB0byBk ZXJpdmUgcmF0aW8/ICBGb3IgZXhhbXBsZSBoYXZlDQo+bWVtb3J5IHJlZmVyZW5jZXMgYW5kIGNh Y2hlIG1pc3NlcyBpbiB0aGUgc2FtZSBncm91cCBhbmQgaGF2ZSBmbG9hdGluZw0KPnBvaW50IG9w ZXJhdGlvbnMgaW4gYSBzZXBhcmF0ZSBncm91cC4NCj4NCg0KTm8gdGhlIGN1cnJlbnQgdmVyc2lv biBhbHdheXMgcHV0cyBlYWNoIGV2ZW50IGluIGl0cyBvd24gZ3JvdXAuIFRoZQ0KbGlicG1mNCBh cGkgZG9lcyBzdXBwb3J0IHByb2dyYW1taW5nIGNvdW50ZXJzIGluIGdyb3Vwcywgc28gYWRkaW5n IGV2ZW50DQpncm91cGluZyB0byB0aGUgcG1kYSBpcyBxdWl0ZSBkb2FibGUuDQoNCj4NCj4NCj5T aG91bGQgdGhlIGZvbGxvd2luZyBiZSByZW1vdmVkIGluIHBlcmZtYW5hZ2VyLmM6DQo+DQo+Lyog UkVNT1ZFICovDQo+I2luY2x1ZGUgPHN0cmluZy5oPg0KPi8qIFJFTU9WRSAqLw0KDQpZZXMuIC0g aXRzIHByb2JhYmx5IGRlYWQgY29kZSBsZWZ0IG92ZXIgZnJvbSBzb21lIGRlYnVnIHByaW50aW5n Lg0KDQo+DQo+DQo+U2hvdWxkbid0IFBFUkZfQUxMT0NfTE9DS0ZJTEUgaW4gcGVyZm1hbmFnZXIu aCBiZSB0aWVkIHRvIHRoZSBsb2NhdGlvbg0KPnRoYXQgcGNwIGlzIGluc3RhbGxlZCAkKFBNREFE SVJ9Ly9wZXJmbG9jayByYXRoZXIgdGhhbg0KPmFzc3VtaW5nIC92YXIvbGliL3BjcC9wbWRhcy9w ZXJmZXZlbnQvcGVyZmxvY2sgaXMgdGhlIGNvcnJlY3QgcGxhY2U/DQo+DQoNClllcy4gVGhlIGNv ZGUgc2hvdWxkIHByb2JhYmx5IGJlIHVwZGF0ZWQgdG8gY2hlY2sgdGhlIGFwcHJvcHJpYXRlIHBj cA0KZW52aXJvbm1lbnQgdmFyaWFibGUuDQogDQo+DQo+DQo+LVdpbGwNCg0K From brolley@redhat.com Mon Jul 14 13:28:32 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id A734F7F51 for ; Mon, 14 Jul 2014 13:28:32 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 7B8DE8F8050 for ; Mon, 14 Jul 2014 11:28:29 -0700 (PDT) X-ASG-Debug-ID: 1405362507-04bdf03569cd070001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id pZqrBG8ihUROro4W (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 11:28:28 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6EISQE6010582 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 14 Jul 2014 14:28:27 -0400 Received: from [10.15.16.126] (dhcp-10-15-16-126.yyz.redhat.com [10.15.16.126]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6EISQWb004165; Mon, 14 Jul 2014 14:28:26 -0400 Message-ID: <53C4214F.4030405@redhat.com> Date: Mon, 14 Jul 2014 14:28:31 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Nathan Scott CC: PCP Mailing List Subject: Re: Some recent QA regressions References: <2129401188.6256039.1404891527704.JavaMail.zimbra@redhat.com> <53C01477.6000703@redhat.com> <1170491276.9256269.1405303222288.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: Some recent QA regressions In-Reply-To: <1170491276.9256269.1405303222288.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405362508 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/13/2014 10:00 PM, Nathan Scott wrote: > Hi Dave, > > ----- Original Message ----- >> On 07/09/2014 03:38 AM, Nathan Scott wrote: >>> I've pulled all your current work, but had some problems with a >>> few tests (see attached bad files). I found reverting the commit >>> below got us back into a healthy state, so pushed this for now - >>> when you figure it out, just "git revert" on my revert should do >>> a revert revert & then just apply your followup fix on top). >> I just redid the change in my pcpfans brolley/dev branch. That in addition >> to the fix which was to add EINPROGRESS handling to a few callers of >> __pmConnect(). > Ah, OK, sounds promising. From a full QA run though I have new failures > in tests 230, 775, 835, and 946 that all appear related to these changes. > > 835 is the new pmdamemcache test, but it was running reliably on Friday > - with the latest pull, not so much (it now times-out during the initial > pmcd connection). OK. Sorry about that. It turns out that expecting callers of __pmConnect() to handle EIPROGRESS with no timeout was the wrong way to go. It turns out that callers who expect non-blocking connections always call __pmConnectTo() which sets the FNDELAY flag and that callers who expect blocking connections call __pmConnect() directly. So what is really needed is for __pmConnect() and __pmConnectTo() to provide the expected semantics. The commit below does that once and for all. It fixes test 230 for me, but I don't seem to be set properly to run test 835 ([not run] Noones home on the default memcached port 11211) commit 122effcc48ba680e67311156e6ee61ae28922df1 Author: Dave Brolley Date: Mon Jul 14 13:57:39 2014 -0400 Abstract __pmConnect() into __pmConnect and __pmConnectWithFNDELAY(). In PCP, control over whether a connection attempt made via __pmConnect() blocks or not is controlled by setting the FNDELAY (O_NONBLOCK) file status flag in for the file descriptor. However, NSPR's PR_Connect ignores the FNDELAY flags (more accurately, always sets it) and uses an explicit timeout argument to control whether the connection attempt blocks and, if so, for how long. The NSPR implementation of __pmConnect(), therefore has no way of knowing what the caller's intent was. To solve this, we need an explicit __pmConnectWithFNDELAY(). This new function is internal to libpcp and not exported. It is called from within __pmConnectTo() which is the function called within PCP when non-blocking behavior is needed. Code within PCP that calls __pmConnect() directly does not expect non-blocking behavior and so does not need to handle EINPROGRESS. This commit reverts a previous change (commit commit a705d6bb86d87fa0cdf0fb0accf5299212cef08d) for which such handling was added. This commit fixes regressions in qa tests 230 and 835. > I've attached all the bad files (ip addr for the host > is 192.168.122.1 - for the 775 and 946 failures). I'm not quite sure what to do about these two failures. They are actually a problem with the tests themselves. As part of these tests, the -r and --resolve options to pmfind(1) are tested, however, in this case, the address 192.168.122.1 is an address on which a legitimate service has been discovered, but for which the DNS resolution fails. Because of this, it is reported unresolved and the filters in the tests report a failure. I'm not quite sure how else to test whether the -r and --resolve options were respected. Dave From wcohen@redhat.com Mon Jul 14 13:56:44 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 442187F55 for ; Mon, 14 Jul 2014 13:56:44 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 141E8304039 for ; Mon, 14 Jul 2014 11:56:40 -0700 (PDT) X-ASG-Debug-ID: 1405364198-04bdf03569ce520001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id dNdyBxLYs8fSCFDc (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 11:56:38 -0700 (PDT) X-Barracuda-Envelope-From: wcohen@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6EIuZG6023575 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 14 Jul 2014 14:56:35 -0400 Received: from [10.13.129.214] (dhcp129-214.rdu.redhat.com [10.13.129.214]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6EIuYOU017626; Mon, 14 Jul 2014 14:56:34 -0400 Message-ID: <53C427E2.7050805@redhat.com> Date: Mon, 14 Jul 2014 14:56:34 -0400 From: William Cohen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: "White, Joseph" , "pcp@oss.sgi.com" Subject: Re: [pcp] New perfevent PMDA References: <53B1D222.8010601@redhat.com> <53BD6DB8.6020801@redhat.com> X-ASG-Orig-Subj: Re: [pcp] New perfevent PMDA In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405364198 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/14/2014 12:48 PM, White, Joseph wrote: > Answers inline below > > On 7/9/14, 12:28 PM, "William Cohen" wrote: > >> >> --8<---- > SNIP > --8<---- >> >> Hi Joe, >> >> Thanks for explaining the relationship between PCP and XDMoD. >> >> I was able to build the perfevent pmda on an arm machine. In general it >> looks like >> GNUmake should have "-lm -lpthread" added. Something like: >> >> LLDLIBS = $(PCP_PMDALIB) -lpfm -lrt -lm -lpthread > > Thanks, I'll add this to my version too. > >> >> >> How does one install the perfevent pmda/tests and run the tests? I >> did try to run it but the results looked pretty questionable, >> particularly when it gave a "result: PASS" on the arm machine. Then >> again that might be due to the fakefs lying what kind of machine this >> is. Given that the performance monitoring hardware is very processor >> implementation specific is there some way to make the unit testing >> more aware of what kind of machine it is really on? > > The unit test harness is deliberately independent of the underlying > machine architecture as it is designed to confirm that the perfevent code > behaves as designed and interacts properly with external interfaces (ie > the libpfm4 API and the linux proc filesystem API). I'm encouraged that > the tests pass on the arm architecture, since this makes me less worried > that there is any x86 specific code lurking in the source. Hi Joe, Having the test work with the fakefs is a great idea. However, given the various ways that things can fail on real hardware it would be really good to have the tests run in a native mode on the actual hardware. This would uncover things like support for the target machine processor not being available or being broken. OProfile and PAPI allow these types of tests to uncover those types of problems. People might assume that the fakefs test passing on a particular machine implies that the perfevent pmda works on their particular hardware. > At the moment, there doesn't exist an automated method to do component > testing. Currently is a manual process, where you would run the full > perfevent PMDA and check the logs and query it using the normal pcp tools. Would the dbpmda (pcp pmda debugger) allow unit testing of a pmda component? it seems like some fo the things that it does would allow exercising the pmda. > >> >> >> To add support for new processors one would make entries in >> perfevent.conf? > > Yes, the procedure that I suggest is as follows: > 1) Run the perfevent PMDA on your target arch > 2) Check the contents of the perfevent log file > (/var/log/pcp/pmcd/perfevent.log). This should list all of the detected > PMUs and the available hardware counters. > 3) Edit the perfevent.conf to add a section for the desired PMU and the > desired counters. The PMU and counter names should be identical to the the > names listed in the log file in step (2) > 4) restart the pmda and check that the desired counters appear. > > For example, in step (2) you might see log output of the form (note this > is all a guess, since I don't have access to an arm box): > > Found PMU: xscale2 (ARM) identification 2 (XX events YY generic counters > ZZ fixed counters) > xscale2::foo > xscale2::bar > > > > To add the foo and bar counters to the configuration you would add some > lines of the form: > > > [xscale2] > xscale2::foo > xscale2::bar > > After the pmda is restarted, then it should try to load the foo and bar > events if it is run on a system that has an xscale2 PMU. > > > >> >> >> The pmda.c mentions duty cycle and that it is possible to have >> multiplexing. Is there any way to group related events together, >> particularly ones that are used to derive ratio? For example have >> memory references and cache misses in the same group and have floating >> point operations in a separate group. >> > > No the current version always puts each event in its own group. The > libpmf4 api does support programming counters in groups, so adding event > grouping to the pmda is quite doable. Would one make hints in the configure file about possible groupings? -Will From brolley@redhat.com Mon Jul 14 14:28:57 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 2BAD07F55 for ; Mon, 14 Jul 2014 14:28:57 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id B92BFAC006 for ; Mon, 14 Jul 2014 12:28:56 -0700 (PDT) X-ASG-Debug-ID: 1405366131-04cb6c6ad1cd520001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id al9ePUQS9Ta5ST0S (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 12:28:52 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6EJSoPn012254 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 14 Jul 2014 15:28:51 -0400 Received: from [10.15.16.126] (dhcp-10-15-16-126.yyz.redhat.com [10.15.16.126]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6EJSomc004264; Mon, 14 Jul 2014 15:28:50 -0400 Message-ID: <53C42F77.7030008@redhat.com> Date: Mon, 14 Jul 2014 15:28:55 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Nathan Scott CC: PCP Mailing List Subject: Re: Avahi-related test failure (pmcd log messages) References: <1371327369.7960530.1405053093915.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: Avahi-related test failure (pmcd log messages) In-Reply-To: <1371327369.7960530.1405053093915.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405366132 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/11/2014 12:31 AM, Nathan Scott wrote: > Hi Dave, > > The QE team are seeing failures on latest RHEL6 as a result of some > extra diagnostics/errors appearing in pmcd.log during some tests... > > +[Wed Jul 2 13:14:50] pmcd(31512) Error: avahi_entry_group_new () failed: Bad state > +[Wed Jul 2 13:14:50] pmcd(31512) Error: avahi_entry_group_new () failed: Bad state > > This machine does not have either avahi-tools or avahi rpms installed > (so no local avahi-daemon). > > Is the right thing to do here to hide this message behind pmDebug and > DBG_TRACE_DISCOVERY? (as in attached patch) > Sorry -- this got lost in my inbox. Yes, that message should be hidden behind pmDebug and I see that you've already pushed that change. Dave From nscott@redhat.com Mon Jul 14 16:39:21 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 394E67F62 for ; Mon, 14 Jul 2014 16:39:21 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 25C7F8F8059 for ; Mon, 14 Jul 2014 14:39:20 -0700 (PDT) X-ASG-Debug-ID: 1405373959-04cbb0421bd9ff0001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id FCul8U7zZBg9w4eh for ; Mon, 14 Jul 2014 14:39:19 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6ELdI65025613; Mon, 14 Jul 2014 17:39:18 -0400 Date: Mon, 14 Jul 2014 17:39:17 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dave Brolley Cc: PCP Mailing List Message-ID: <1230657559.9961169.1405373957737.JavaMail.zimbra@redhat.com> In-Reply-To: <53C4214F.4030405@redhat.com> References: <2129401188.6256039.1404891527704.JavaMail.zimbra@redhat.com> <53C01477.6000703@redhat.com> <1170491276.9256269.1405303222288.JavaMail.zimbra@redhat.com> <53C4214F.4030405@redhat.com> Subject: Re: Some recent QA regressions MIME-Version: 1.0 X-ASG-Orig-Subj: Re: Some recent QA regressions Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: Some recent QA regressions Thread-Index: 7XX0RNbxzQFQyF1kh8lC81/TESkI/w== X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1405373959 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain Hi Dave, ----- Original Message ----- > On 07/13/2014 10:00 PM, Nathan Scott wrote: > > Ah, OK, sounds promising. From a full QA run though I have new failures > > in tests 230, 775, 835, and 946 that all appear related to these changes. > > > > 835 is the new pmdamemcache test, but it was running reliably on Friday > > - with the latest pull, not so much (it now times-out during the initial > > pmcd connection). > OK. Sorry about that. It turns out that expecting callers of > __pmConnect() to handle EIPROGRESS with no timeout was the wrong way to > go. It turns out that callers who expect non-blocking connections always > call __pmConnectTo() which sets the FNDELAY flag and that callers who > expect blocking connections call __pmConnect() directly. So what is > really needed is for __pmConnect() and __pmConnectTo() to provide the > expected semantics. The commit below does that once and for all. OK - great, thanks Dave. > It fixes test 230 for me, but I don't seem to be set properly to run > test 835 ([not run] Noones home on the default memcached port 11211) Ah sorry, details re this were in one of the other mails (chatting to Chandana) - if you "yum install memcached && service memcached start" you'll have something to talk to on that port. Sounds like you've nailed it though, I'll verify later today - thanks. > > is 192.168.122.1 - for the 775 and 946 failures). > I'm not quite sure what to do about these two failures. They are > actually a problem with the tests themselves. As part of these tests, > the -r and --resolve options to pmfind(1) are tested, however, in this > case, the address 192.168.122.1 is an address on which a legitimate > service has been discovered, but for which the DNS resolution fails. > Because of this, it is reported unresolved and the filters in the tests > report a failure. I'm not quite sure how else to test whether the -r and > --resolve options were respected. Could we verify the state of each host identifier returned using dig and dig -x? IOW, checking that those which can be resolved, are (comparing libpcp and dig output), and those which cannot are not (pmfind vs dig -x) cheers. -- Nathan From mgoodwin@redhat.com Mon Jul 14 20:04:01 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id B484B7F74 for ; Mon, 14 Jul 2014 20:04:01 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 38EBAAC006 for ; Mon, 14 Jul 2014 18:04:01 -0700 (PDT) X-ASG-Debug-ID: 1405386236-04cbb04219e1570001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id tJTvGVWQmwpAJe2U (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 18:03:56 -0700 (PDT) X-Barracuda-Envelope-From: mgoodwin@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6F13t9l002209 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 14 Jul 2014 21:03:55 -0400 Received: from [10.64.180.87] (wlan-180-87.mel.redhat.com [10.64.180.87]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6F13sm2014266 for ; Mon, 14 Jul 2014 21:03:55 -0400 Message-ID: <53C47DFA.1080805@redhat.com> Date: Tue, 15 Jul 2014 11:03:54 +1000 From: Mark Goodwin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: pcp updates: fix Makepkgs build on RHEL5 Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: pcp updates: fix Makepkgs build on RHEL5 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405386236 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Changes committed to git://git.performancecopilot.org/markgw/pcp/pcp.git dev commit 072d422142af9e1b6cb54f59513e3408bdbb7ca2 Author: Mark Goodwin Date: Tue Jul 15 10:56:15 2014 +1000 Fix Makepkgs build on platforms with old GNU tar. Older versions of tar (e.g. on RHEL5), do not support --transform so we have to use git-archive to construct the src tarball. Builds on affected platforms will thus not include any local changes. modified: Makepkgs From mgoodwin@redhat.com Mon Jul 14 20:53:24 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 45E507F50 for ; Mon, 14 Jul 2014 20:53:24 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 3ACF8304032 for ; Mon, 14 Jul 2014 18:53:21 -0700 (PDT) X-ASG-Debug-ID: 1405389196-04cb6c6ad0dd1e0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id YEJAjPAg54lJ8lhH (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 18:53:17 -0700 (PDT) X-Barracuda-Envelope-From: mgoodwin@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6F1rGam030398 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 14 Jul 2014 21:53:16 -0400 Received: from [10.64.180.87] (wlan-180-87.mel.redhat.com [10.64.180.87]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6F1rFqf015718 for ; Mon, 14 Jul 2014 21:53:15 -0400 Message-ID: <53C4898A.4020908@redhat.com> Date: Tue, 15 Jul 2014 11:53:14 +1000 From: Mark Goodwin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: pcp updates: add disk.dm.* device-mapper metrics Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: pcp updates: add disk.dm.* device-mapper metrics Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405389197 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Add new metrics for device-mapper I/O stats. This makes it a lot easier to monitor device-mapper devices by persistent name rather than the dm-[0-9]+ names exported in /proc/diskstats (which are not persistent across reboots or in the face of devices coming or going). Systems not using device-mapper will get No Values Available, i.e. the new dm instance domain will be empty. A follow-up change is required for platforms that do not support the /sys/block/dm-*/dm/name sysfs export, e.g. RHEL5. On those platforms we'll have to match up the major/minor dev numbers in the /dev/mapper/NAME block device with the dev numbers in the first two fields of /proc/diskstats. And some new QA will follow that. Also, re: RH BZ https://bugzilla.redhat.com/show_bug.cgi?id=1109539 ("hinv.map.lvname instance IDs are not persistent"). I think the fix is to use the persistent dm name as the instance domain, with the metric value being the current dm-[0-9]* name (the current implementation has it the other way around). Since I've now done this with the new hinv.map.dmname metric, can hinv.map.lvname be deprecated? Or will we just keep it? Anything depend on it? Changes committed to git://git.performancecopilot.org/markgw/pcp/pcp.git dev commit 6980fafc122847ec215ed3672d91a6b44970d39c Author: Mark Goodwin Date: Fri Jul 11 15:06:53 2014 +1000 Add disk.dm.* and hinv.map.dmname metrics for device-mapper devices. Adds a new metric hinv.map.dmname and subtree disk.dm.* with a new instance domain populated from the persistently named dm devices below /dev/mapper, mapped to non-persistent dm-[0-9]+ names as exported in /proc/diskstats. Devices layered on dm include LVM volumes, dm-multipath, dm-cache, etc. This makes it much easier to monitor filesystems and other traffic mounted on or using logical dm devices, and is complementary to the physical device metrics in disk.dev (sd, etc). modified: src/pmdas/linux/clusters.h modified: src/pmdas/linux/help modified: src/pmdas/linux/indom.h modified: src/pmdas/linux/pmda.c modified: src/pmdas/linux/proc_partitions.c modified: src/pmdas/linux/proc_partitions.h modified: src/pmdas/linux/root_linux From nscott@redhat.com Mon Jul 14 21:47:29 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 635227F7C for ; Mon, 14 Jul 2014 21:47:29 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id DBD78AC001 for ; Mon, 14 Jul 2014 19:47:25 -0700 (PDT) X-ASG-Debug-ID: 1405392443-04cbb0421ce4fd0001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id MVZyzqsfh4toHi8n for ; Mon, 14 Jul 2014 19:47:24 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6F2lNZs016152; Mon, 14 Jul 2014 22:47:23 -0400 Date: Mon, 14 Jul 2014 22:47:22 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Mark Goodwin Cc: pcp@oss.sgi.com Message-ID: <254822503.10153921.1405392442746.JavaMail.zimbra@redhat.com> In-Reply-To: <53C4898A.4020908@redhat.com> References: <53C4898A.4020908@redhat.com> Subject: Re: [pcp] pcp updates: add disk.dm.* device-mapper metrics MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] pcp updates: add disk.dm.* device-mapper metrics Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: add disk.dm.* device-mapper metrics Thread-Index: xCftURY6nzdxiWmWGRpw269yYUgojQ== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1405392443 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain Hi Mark, With Daves quick fixes, looks like tomorrow is still good for 3.9.7 - so I've cherry-picked the Makepkgs fix, & reckon the device mapper changes (and RHEL5 fix & QA) are good 3.9.8 material - does that all sound OK? I'll have some dmcache code too by then, so we can have a release theme. :) ----- Original Message ----- > Also, re: RH BZ https://bugzilla.redhat.com/show_bug.cgi?id=1109539 > ("hinv.map.lvname instance IDs are not persistent"). I think the > fix is to use the persistent dm name as the instance domain, with > the metric value being the current dm-[0-9]* name (the current > implementation has it the other way around). Since I've now done > this with the new hinv.map.dmname metric, can hinv.map.lvname be > deprecated? Or will we just keep it? Anything depend on it? Yep, Stan's making use of it in pmatop so the existing indom will need to be maintained. And also improved, if you could - from your commit log description, a separate instance domain ID for your new code will be needed (you probably did that already) but since the old names are "dm-N" (where N is just an int), the internal instance ID could simply be made to match "N", for more persistent naming right? This wouldn't survive a reboot, but it'd at least persist through addition/removal of new/old DM devices during the lifetime of pmcd. IOW, no pmdaCache* use needed here - should be a simple extension to the way the indom is updated now (same pmdaIndom data structure, just pushing that N into the internal ID via it_set->i_inst ... thoughts?). thanks! -- Nathan From goodwinos@gmail.com Mon Jul 14 22:27:55 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 5BACA7F66 for ; Mon, 14 Jul 2014 22:27:55 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id C7F1BAC001 for ; Mon, 14 Jul 2014 20:27:51 -0700 (PDT) X-ASG-Debug-ID: 1405394866-04cbb0421ae6610001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 6BECbQ64pIa3FCn0 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 20:27:47 -0700 (PDT) X-Barracuda-Envelope-From: goodwinos@gmail.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6F3Rkic008214 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 14 Jul 2014 23:27:46 -0400 Received: from [10.64.180.87] (wlan-180-87.mel.redhat.com [10.64.180.87]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6F3Rifw009172; Mon, 14 Jul 2014 23:27:45 -0400 Message-ID: <53C49FB0.3000101@gmail.com> Date: Tue, 15 Jul 2014 13:27:44 +1000 From: Mark Goodwin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Nathan Scott , Mark Goodwin CC: pcp@oss.sgi.com Subject: Re: [pcp] pcp updates: add disk.dm.* device-mapper metrics References: <53C4898A.4020908@redhat.com> <254822503.10153921.1405392442746.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: [pcp] pcp updates: add disk.dm.* device-mapper metrics In-Reply-To: <254822503.10153921.1405392442746.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405394867 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/15/2014 12:47 PM, Nathan Scott wrote: > Hi Mark, > > With Daves quick fixes, looks like tomorrow is still good for 3.9.7 > - so I've cherry-picked the Makepkgs fix, & reckon the device mapper > changes (and RHEL5 fix & QA) are good 3.9.8 material - does that all > sound OK? I'll have some dmcache code too by then, so we can have a > release theme. :) ok sounds good > ----- Original Message ----- >> Also, re: RH BZ https://bugzilla.redhat.com/show_bug.cgi?id=1109539 >> ("hinv.map.lvname instance IDs are not persistent"). I think the >> fix is to use the persistent dm name as the instance domain, with >> the metric value being the current dm-[0-9]* name (the current >> implementation has it the other way around). Since I've now done >> this with the new hinv.map.dmname metric, can hinv.map.lvname be >> deprecated? Or will we just keep it? Anything depend on it? > > Yep, Stan's making use of it in pmatop so the existing indom will need > to be maintained. And also improved, if you could - from your commit > log description, a separate instance domain ID for your new code will > be needed (you probably did that already) but since the old names are > "dm-N" (where N is just an int), the internal instance ID could simply > be made to match "N", for more persistent naming right? This wouldn't > survive a reboot, but it'd at least persist through addition/removal > of new/old DM devices during the lifetime of pmcd. IOW, no pmdaCache* > use needed here - should be a simple extension to the way the indom is > updated now (same pmdaIndom data structure, just pushing that N into > the internal ID via it_set->i_inst ... thoughts?). Wont work (or I am confused). dm-N gets reused if it is deleted and then a new volume is created (with or without a reboot). Here's an example using snapshots: starting with dm-0, dm-1, dm-2, dm-3 and dm-4 create snap1 (creates dm-5, dm-6 and dm-7) create snap2 (creates dm-8 and dm-9) ... so far so good remove snap1 (deletes dm-5) create snap3 (re-creates dm-5 and renames a few others). Fail. If snap3 created dm-10 and didn't rename any existing then it'd be OK but it doesn't. The only really viable solution is to use the persistent names to populate the instance domain. The dm-* names should be metric values (i.e. the *current* mapping, which may change). Here's the evidence : [root@ocean ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert home rootvg -wi-ao---- 97.66g root rootvg -wi-ao---- 48.83g swap rootvg -wi-ao---- 5.88g backup virtvg -wi-ao---- 850.00g test virtvg -wi-a----- 100.00g [root@ocean ~]# ls -l /dev/mapper total 0 crw-------. 1 root root 10, 236 Jul 14 20:15 control lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-home -> ../dm-4 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-root -> ../dm-1 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-swap -> ../dm-0 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 virtvg-backup -> ../dm-2 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 virtvg-test -> ../dm-3 [root@ocean ~]# lvcreate -L1M -n snap1 -s virtvg/backup Rounding up size to full physical extent 4.00 MiB Logical volume "snap1" created [root@ocean ~]# ls -l /dev/mapper total 0 crw-------. 1 root root 10, 236 Jul 14 20:15 control lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-home -> ../dm-4 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-root -> ../dm-1 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-swap -> ../dm-0 lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-backup -> ../dm-2 lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-backup-real -> ../dm-6 lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-snap1 -> ../dm-5 lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-snap1-cow -> ../dm-7 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 virtvg-test -> ../dm-3 [root@ocean ~]# lvcreate -L1M -n snap2 -s virtvg/backup Rounding up size to full physical extent 4.00 MiB Logical volume "snap2" created [root@ocean ~]# ls -l /dev/mapper total 0 crw-------. 1 root root 10, 236 Jul 14 20:15 control lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-home -> ../dm-4 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-root -> ../dm-1 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-swap -> ../dm-0 lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-backup -> ../dm-2 lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-backup-real -> ../dm-6 lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-snap1 -> ../dm-5 lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-snap1-cow -> ../dm-7 lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-snap2 -> ../dm-8 lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-snap2-cow -> ../dm-9 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 virtvg-test -> ../dm-3 [root@ocean ~]# lvremove /dev/mapper/virtvg-snap1 Do you really want to remove active logical volume snap1? [y/n]: y Logical volume "snap1" successfully removed [root@ocean ~]# ls -l /dev/mapper total 0 crw-------. 1 root root 10, 236 Jul 14 20:15 control lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-home -> ../dm-4 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-root -> ../dm-1 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-swap -> ../dm-0 lrwxrwxrwx. 1 root root 7 Jul 15 13:08 virtvg-backup -> ../dm-2 lrwxrwxrwx. 1 root root 7 Jul 15 13:08 virtvg-backup-real -> ../dm-6 lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-snap1-cow -> ../dm-7 lrwxrwxrwx. 1 root root 7 Jul 15 13:08 virtvg-snap2 -> ../dm-8 lrwxrwxrwx. 1 root root 7 Jul 15 13:08 virtvg-snap2-cow -> ../dm-9 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 virtvg-test -> ../dm-3 [root@ocean ~]# lvcreate -L1M -n snap3 -s virtvg/backup Rounding up size to full physical extent 4.00 MiB Logical volume "snap3" created [root@ocean ~]# ls -l /dev/mapper total 0 crw-------. 1 root root 10, 236 Jul 14 20:15 control lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-home -> ../dm-4 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-root -> ../dm-1 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-swap -> ../dm-0 lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-backup -> ../dm-2 lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-backup-real -> ../dm-6 lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-snap1-cow -> ../dm-7 lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-snap2 -> ../dm-8 lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-snap2-cow -> ../dm-9 lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-snap3 -> ../dm-5 lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-snap3-cow -> ../dm-7 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 virtvg-test -> ../dm-3 From nscott@redhat.com Mon Jul 14 22:41:21 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 80E107F7C for ; Mon, 14 Jul 2014 22:41:21 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 01BB2AC001 for ; Mon, 14 Jul 2014 20:41:20 -0700 (PDT) X-ASG-Debug-ID: 1405395678-04cbb0421ce6dc0001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id EmbdhBirsFu7o6r3 for ; Mon, 14 Jul 2014 20:41:19 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6F3fHsp023618; Mon, 14 Jul 2014 23:41:17 -0400 Date: Mon, 14 Jul 2014 23:41:17 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Mark Goodwin Cc: pcp@oss.sgi.com, Mark Goodwin Message-ID: <946178807.10165893.1405395677190.JavaMail.zimbra@redhat.com> In-Reply-To: <53C49FB0.3000101@gmail.com> References: <53C4898A.4020908@redhat.com> <254822503.10153921.1405392442746.JavaMail.zimbra@redhat.com> <53C49FB0.3000101@gmail.com> Subject: Re: [pcp] pcp updates: add disk.dm.* device-mapper metrics MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] pcp updates: add disk.dm.* device-mapper metrics Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: add disk.dm.* device-mapper metrics Thread-Index: tHgiXJcYvtC4G3mn8WmPu+GfEj9IpQ== X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1405395678 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... ----- Original Message ----- > [...] > Wont work (or I am confused). dm-N gets reused if it is deleted and > then a new volume is created (with or without a reboot). Here's an > example using snapshots: Yep, understood - sorry, wasn't clear - I'm not proposing this as a "fix", and agree your solution is the right thing to do. I was trying to find a way to make the existing indom (which we still need for hinv.map.lvname) behave a bit more predictably. So, even though the numbers recycle (even moreso than I thought, from your example) - anyone interpreting the old indom could still get a little more expected behaviour, with the internal and external IDs actually matching. At the moment, the internal ID is just an internal array index with value depending on readdir() order ... *shrug* ... maybe its not worth the effort but it might save some end-user confusion. cheers. -- Nathan From nscott@redhat.com Mon Jul 14 22:50:06 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 121127F74 for ; Mon, 14 Jul 2014 22:50:06 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id E1121304032 for ; Mon, 14 Jul 2014 20:50:02 -0700 (PDT) X-ASG-Debug-ID: 1405396199-04bdf0356be44f0001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id pGGHEhQw8nRf0HwR for ; Mon, 14 Jul 2014 20:50:00 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6F3nxlQ026269 for ; Mon, 14 Jul 2014 23:49:59 -0400 Date: Mon, 14 Jul 2014 23:49:59 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: PCP Mailing List Message-ID: <379855857.10167118.1405396199676.JavaMail.zimbra@redhat.com> In-Reply-To: <800683057.10166653.1405396095376.JavaMail.zimbra@redhat.com> Subject: pcp updates: brolley+emery+mgoodwin merges, qa MIME-Version: 1.0 X-ASG-Orig-Subj: pcp updates: brolley+emery+mgoodwin merges, qa Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: brolley+emery+mgoodwin merges, qa Thread-Index: LxkhdyZtJy8PcbfBd1hqZazXeyjl+Q== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1405396199 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Changes committed to git://git.performancecopilot.org/pcp.git dev Makepkgs | 9 ++++-- qa/061 | 6 +++- qa/061.out | 50 +++++++++++++++++++------------------- src/libpcp/src/auxconnect.c | 8 +++++- src/libpcp/src/internal.h | 1 src/libpcp/src/secureconnect.c | 28 ++++++++++++--------- src/libpcp_gui/src/timeclient.c | 24 +----------------- src/perl/PMDA/local.c | 42 ------------------------------- src/pmcd/src/config.c | 21 --------------- src/pmdas/lustrecomm/lustrecomm.c | 10 +++---- src/pmdas/sample/src/sample.c | 2 - 11 files changed, 69 insertions(+), 132 deletions(-) commit 07423d8eaf0f9667001f1934bf6ae916dd759fad Author: Nathan Scott Date: Tue Jul 15 13:47:09 2014 +1000 pmdasample: trivial strcpy tweak to defend against older valgrind On a certain far-flung 64bit architecture, on a relatively old enterprise distro, valgrind is producing a bogus warning for an eight-byte read on a 3byte strcpy. Use strncpy to dodge this. commit cdfa900f4286f4eaf79bfa819d488180f2fa4a4d Author: Nathan Scott Date: Tue Jul 15 13:44:06 2014 +1000 Fix qa/061 filter - long hostnames causing pmresult differences Test 061 can produce different output on different hosts as a result of the log preamble result write (v2 logs with pmcd.pmlogger.* in an initial result). Filter the first result write size but keep all of the subsequent result sizes in the output, as these are under test. commit 456432a4a2154adf03c6d57752420eacece26b52 Author: Mark Goodwin Date: Tue Jul 15 10:56:15 2014 +1000 Fix Makepkgs build on platforms with old GNU tar. Older versions of tar (e.g. on RHEL5), do not support --transform so we have to use git-archive to construct the src tarball. Builds on affected platforms will thus not include any local changes. modified: Makepkgs commit 955cb99b2549066d239e77105f5e6304c4a4e55f Merge: f11bfb6 122effc Author: Nathan Scott Date: Tue Jul 15 10:22:08 2014 +1000 Merge branch 'brolley/dev' of ../pcpfans into brolley-merge commit f11bfb661878b96cd081b1eeef173e3a797b29f5 Merge: 9279ce5 c02cc9a Author: Nathan Scott Date: Tue Jul 15 08:57:07 2014 +1000 Merge branch 'dev' of git://git.performancecopilot.org/emery/pcp into emery-merge commit 122effcc48ba680e67311156e6ee61ae28922df1 Author: Dave Brolley Date: Mon Jul 14 13:57:39 2014 -0400 Abstract __pmConnect() into __pmConnect and __pmConnectWithFNDELAY(). In PCP, control over whether a connection attempt made via __pmConnect() blocks or not is controlled by setting the FNDELAY (O_NONBLOCK) file status flag in for the file descriptor. However, NSPR's PR_Connect ignores the FNDELAY flags (more accurately, always sets it) and uses an explicit timeout argument to control whether the connection attempt blocks and, if so, for how long. The NSPR implementation of __pmConnect(), therefore has no way of knowing what the caller's intent was. To solve this, we need an explicit __pmConnectWithFNDELAY(). This new function is internal to libpcp and not exported. It is called from within __pmConnectTo() which is the function called within PCP when non-blocking behavior is needed. Code within PCP that calls __pmConnect() directly does not expect non-blocking behavior and so does not need to handle EINPROGRESS. This commit reverts a previous change (commit commit a705d6bb86d87fa0cdf0fb0accf5299212cef08d) for which such handling was added. This commit fixes regressions in qa tests 230 and 835. commit c02cc9a1ea5f5e3697644b6f27811bf44315b0b2 Author: Scott Emery Date: Fri Jul 11 16:05:59 2014 -0500 src/pmdas/lustrecomm/lustrecomm.c lustrecomm would abort if any lustrecomm.stats.* were collected when one or more of lustrecom.stats.*_length exceeded 32 bits. Defined as PM_TYPE_64, called file_indexed with PM_TYPE_32, which used strtoul on 64 bit value. commit e07d8e8e17755578f7f5f9929b6506ca798c1798 Author: Scott Emery Date: Fri Jul 11 16:01:15 2014 -0500 pcp/src/pmdas/lustrecomm.c lustrecomm.lnet_memused cannot open file. file name was incorrect. From mgoodwin@redhat.com Mon Jul 14 22:55:34 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id D90647F7B for ; Mon, 14 Jul 2014 22:55:34 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id C3FA38F8050 for ; Mon, 14 Jul 2014 20:55:34 -0700 (PDT) X-ASG-Debug-ID: 1405396533-04cbb0421ce75c0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id RS4i9OssMGCBpueK (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 20:55:33 -0700 (PDT) X-Barracuda-Envelope-From: mgoodwin@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6F3tVY1021362 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 14 Jul 2014 23:55:31 -0400 Received: from [10.64.180.87] (wlan-180-87.mel.redhat.com [10.64.180.87]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6F3tTdb025612; Mon, 14 Jul 2014 23:55:30 -0400 Message-ID: <53C4A631.70303@redhat.com> Date: Tue, 15 Jul 2014 13:55:29 +1000 From: Mark Goodwin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Nathan Scott , Mark Goodwin CC: pcp@oss.sgi.com Subject: Re: [pcp] pcp updates: add disk.dm.* device-mapper metrics References: <53C4898A.4020908@redhat.com> <254822503.10153921.1405392442746.JavaMail.zimbra@redhat.com> <53C49FB0.3000101@gmail.com> <946178807.10165893.1405395677190.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: [pcp] pcp updates: add disk.dm.* device-mapper metrics In-Reply-To: <946178807.10165893.1405395677190.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405396533 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/15/2014 01:41 PM, Nathan Scott wrote: > > > ----- Original Message ----- >> [...] >> Wont work (or I am confused). dm-N gets reused if it is deleted and >> then a new volume is created (with or without a reboot). Here's an >> example using snapshots: > > Yep, understood - sorry, wasn't clear - I'm not proposing this as a "fix", > and agree your solution is the right thing to do. I was trying to find a > way to make the existing indom (which we still need for hinv.map.lvname) > behave a bit more predictably. > > So, even though the numbers recycle (even moreso than I thought, from your > example) - anyone interpreting the old indom could still get a little more > expected behaviour, with the internal and external IDs actually matching. > At the moment, the internal ID is just an internal array index with value > depending on readdir() order ... *shrug* ... maybe its not worth the effort > but it might save some end-user confusion. an end-user is going to be confused no matter what with the current hinv.map.lvname indom and values. And I just noticed, different persistent names can point to the same dm mapping, e.g. with the snapshot example, two of the cow volumes point to dm-7 (which makes sense I guess since they are snapshots of the same basevol, so multiple copies of the same cow updates to the basevol are not needed) : [root@ocean ~]# ls -l /dev/mapper total 0 crw-------. 1 root root 10, 236 Jul 14 20:15 control lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-home -> ../dm-4 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-root -> ../dm-1 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-swap -> ../dm-0 lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-backup -> ../dm-2 lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-backup-real -> ../dm-6 lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-snap1-cow -> ../dm-7 lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-snap2 -> ../dm-8 lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-snap2-cow -> ../dm-9 lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-snap3 -> ../dm-5 lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-snap3-cow -> ../dm-7 lrwxrwxrwx. 1 root root 7 Jul 14 20:20 virtvg-test -> ../dm-3 Explains why virtvg-snap1-cow and virtvg-snap3-cow both map to dm-7 but not why virtvg-snap2-cow points to dm-9 ...??? From mgoodwin@redhat.com Mon Jul 14 23:16:55 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 4DED97F3F for ; Mon, 14 Jul 2014 23:16:55 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id C8A1CAC001 for ; Mon, 14 Jul 2014 21:16:51 -0700 (PDT) X-ASG-Debug-ID: 1405397809-04cbb0421ae8280001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id yqd3kKm9ity2wvR2 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 21:16:50 -0700 (PDT) X-Barracuda-Envelope-From: mgoodwin@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6F4GmsC012613 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 15 Jul 2014 00:16:49 -0400 Received: from [10.64.180.87] (wlan-180-87.mel.redhat.com [10.64.180.87]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6F4GlUW002043 for ; Tue, 15 Jul 2014 00:16:47 -0400 Message-ID: <53C4AB2E.6030103@redhat.com> Date: Tue, 15 Jul 2014 14:16:46 +1000 From: Mark Goodwin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: Re: [pcp] pcp updates: add disk.dm.* device-mapper metrics References: <53C4898A.4020908@redhat.com> <254822503.10153921.1405392442746.JavaMail.zimbra@redhat.com> <53C49FB0.3000101@gmail.com> <946178807.10165893.1405395677190.JavaMail.zimbra@redhat.com> <53C4A631.70303@redhat.com> X-ASG-Orig-Subj: Re: [pcp] pcp updates: add disk.dm.* device-mapper metrics In-Reply-To: <53C4A631.70303@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405397810 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/15/2014 01:55 PM, Mark Goodwin wrote: > [root@ocean ~]# ls -l /dev/mapper > total 0 > crw-------. 1 root root 10, 236 Jul 14 20:15 control > lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-home -> ../dm-4 > lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-root -> ../dm-1 > lrwxrwxrwx. 1 root root 7 Jul 14 20:20 rootvg-swap -> ../dm-0 > lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-backup -> ../dm-2 > lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-backup-real -> ../dm-6 > lrwxrwxrwx. 1 root root 7 Jul 15 13:07 virtvg-snap1-cow -> ../dm-7 > lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-snap2 -> ../dm-8 > lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-snap2-cow -> ../dm-9 > lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-snap3 -> ../dm-5 > lrwxrwxrwx. 1 root root 7 Jul 15 13:09 virtvg-snap3-cow -> ../dm-7 > lrwxrwxrwx. 1 root root 7 Jul 14 20:20 virtvg-test -> ../dm-3 > > Explains why virtvg-snap1-cow and virtvg-snap3-cow both map to dm-7 > but not why virtvg-snap2-cow points to dm-9 ...??? To answer my own question : virtvg-snap1-cow shouldn't exist since the snapshot was deleted. The definitive mapping (which PCP correctly uses) is the sysfs exported name, e.g. : [root@ocean ~]# cat /sys/block/dm-7/dm/name virtvg-snap3-cow I think I'll open a BZ against lvm for this (lvremove of a snapshot leaves turds behind in /dev/mapper) Cheers From nscott@redhat.com Mon Jul 14 23:19:00 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 814747F63 for ; Mon, 14 Jul 2014 23:19:00 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id C7CEBAC004 for ; Mon, 14 Jul 2014 21:18:59 -0700 (PDT) X-ASG-Debug-ID: 1405397936-04cbb0421ce8370001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id LFIDLGyCD1xJBO0e for ; Mon, 14 Jul 2014 21:18:57 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6F4ISLp030441; Tue, 15 Jul 2014 00:18:28 -0400 Date: Tue, 15 Jul 2014 00:18:28 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: William Cohen , Joseph White Cc: pcp@oss.sgi.com Message-ID: <1686597428.10172149.1405397908215.JavaMail.zimbra@redhat.com> In-Reply-To: <53C427E2.7050805@redhat.com> References: <53B1D222.8010601@redhat.com> <53BD6DB8.6020801@redhat.com> <53C427E2.7050805@redhat.com> Subject: Re: [pcp] New perfevent PMDA MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] New perfevent PMDA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: New perfevent PMDA Thread-Index: DcPmMhIma3RdH5bDUihrI7NP1V47Pw== X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1405397937 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain Hi guys, ----- Original Message ----- > On 07/14/2014 12:48 PM, White, Joseph wrote: > > [...] > Having the test work with the fakefs is a great idea. However, given the > various ways that things can fail on real hardware it would be really good > to have the tests run in a native mode on the actual hardware. This would > uncover things like support for the target machine processor not being > available or being broken. OProfile and PAPI allow these types of tests to > uncover those types of problems. People might assume that the fakefs test > passing on a particular machine implies that the perfevent pmda works on > their particular hardware. > > > At the moment, there doesn't exist an automated method to do component You'll find the pcp-testsuite harness will help you out here Joe - it makes both the way you've got it and the way Wills describing readily achievable. > > testing. Currently is a manual process, where you would run the full > > perfevent PMDA and check the logs and query it using the normal pcp tools. > > Would the dbpmda (pcp pmda debugger) allow unit testing of a pmda component? Yeah - many tests use this technique. Another common approach (which will work for you too, Joe, with the way you've organised the code) is to use the -L and K options to pminfo(1) to load the PMDA DSO directly into pminfo. valgrind and other tools can be easily run directly on the PMDA code then, and the various pminfo options (like -d, -t, -T, -f, etc) can be used to get fairly well-targeted testing on different aspects of the PMDA code. cheers. -- Nathan From chandana@desilva.id.au Tue Jul 15 14:24:23 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 8581C7F7B for ; Tue, 15 Jul 2014 14:24:23 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 64F658F8068 for ; Tue, 15 Jul 2014 12:24:20 -0700 (PDT) X-ASG-Debug-ID: 1405452254-04bdf0356a109580001-S8gJnT Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) by cuda.sgi.com with ESMTP id dYJzjDVll0uvumqn (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 12:24:15 -0700 (PDT) X-Barracuda-Envelope-From: chandana@desilva.id.au X-Barracuda-Apparent-Source-IP: 204.13.248.66 Received: from ec2-54-252-74-219.ap-southeast-2.compute.amazonaws.com ([54.252.74.219] helo=mail.desilva.id.au) by mho-01-ewr.mailhop.org with esmtpa (Exim 4.72) (envelope-from ) id 1X78Kk-000IUS-2p; Tue, 15 Jul 2014 19:24:14 +0000 Received: from [192.168.1.135] (d211-31-207-129.sun802.vic.optusnet.com.au [211.31.207.129]) by mail.desilva.id.au (Postfix) with ESMTPSA id E5C3E252BC; Tue, 15 Jul 2014 19:24:11 +0000 (UTC) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 54.252.74.219 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX1+cF0+sPxFgKFMrjK0PAaS0RsRtb+h+Wec= Message-ID: <53C57FDB.1010507@desilva.id.au> Date: Wed, 16 Jul 2014 05:24:11 +1000 From: Chandana De Silva Reply-To: chandana@desilva.id.au User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Nathan Scott CC: Dave Brolley , pcp@oss.sgi.com Subject: Re: [pcp] memcache pmda References: <53BCE301.9050408@desilva.id.au> <785523043.6250592.1404890623607.JavaMail.zimbra@redhat.com> <802543966.7124102.1404977059922.JavaMail.zimbra@redhat.com> <53BE4DB4.3090501@desilva.id.au> <637246348.7979701.1405057901942.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: [pcp] memcache pmda In-Reply-To: <637246348.7979701.1405057901942.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mho-03-ewr.mailhop.org[204.13.248.66] X-Barracuda-Start-Time: 1405452254 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7526 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Nathan, I am sorry, but I did not get time to do the QA over the weekend. This week does not look good either Chandana On 11/07/14 15:51, Nathan Scott wrote: > > ----- Original Message ----- >> On 10/07/14 17:24, Nathan Scott wrote: >>> Thanks for the offer Chandana!!! You'll want to read qa/README to get a >>> working test environment setup, and then we will need something like the >>> script in qa/348 (which exercises pmdakvm) for exercising pmdamemcache. >> I will take a look - probably over the weekend > Thanks - please review test qa/835 if you get time? (just a shell script) > >>> I notice there's a fair bit of commented-out code in pmdamemcache which >>> I think maps to metrics we're not exporting yet - so there's scope for a >>> bit of follow-up work here if you're interested Chandana, to export more >>> memcached metrics than we have now - might be of use in your environment. >> I saw that too. It does export a lot more so I will see if I can add >> them later > Good stuff. The 835 test should automatically start exercising those metrics > once they're added, I think. Its a pretty simple test script anyway, would > be easy to extend if it doesn't cover some of the new metrics (e.g. if there > are new "stats xxx" commands to extract the data). > > cheers. > > -- > Nathan From brolley@redhat.com Tue Jul 15 15:04:47 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id BA4897F6F for ; Tue, 15 Jul 2014 15:04:47 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id AE2A58F807A for ; Tue, 15 Jul 2014 13:04:44 -0700 (PDT) X-ASG-Debug-ID: 1405454680-04cbb0421c10b800001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 8ON2KRL181lj14a9 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 13:04:40 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6FK4djD029137 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 15 Jul 2014 16:04:40 -0400 Received: from [10.15.16.126] (dhcp-10-15-16-126.yyz.redhat.com [10.15.16.126]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6FK4dLc004717; Tue, 15 Jul 2014 16:04:39 -0400 Message-ID: <53C5895E.4030806@redhat.com> Date: Tue, 15 Jul 2014 16:04:46 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Nathan Scott CC: PCP Mailing List Subject: Re: Some recent QA regressions References: <2129401188.6256039.1404891527704.JavaMail.zimbra@redhat.com> <53C01477.6000703@redhat.com> <1170491276.9256269.1405303222288.JavaMail.zimbra@redhat.com> <53C4214F.4030405@redhat.com> <1230657559.9961169.1405373957737.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: Some recent QA regressions In-Reply-To: <1230657559.9961169.1405373957737.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405454680 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/14/2014 05:39 PM, Nathan Scott wrote: >>> is 192.168.122.1 - for the 775 and 946 failures). >> I'm not quite sure what to do about these two failures. They are >> actually a problem with the tests themselves. As part of these tests, >> the -r and --resolve options to pmfind(1) are tested, however, in this >> case, the address 192.168.122.1 is an address on which a legitimate >> service has been discovered, but for which the DNS resolution fails. >> Because of this, it is reported unresolved and the filters in the tests >> report a failure. I'm not quite sure how else to test whether the -r and >> --resolve options were respected. > Could we verify the state of each host identifier returned using dig and > dig -x? IOW, checking that those which can be resolved, are (comparing > libpcp and dig output), and those which cannot are not (pmfind vs dig -x) > brolley/dev in pcpfans .... Dave commit ceb06409cbbf4b7942c26713b1b7ac823bfa4810 Author: Dave Brolley Date: Tue Jul 15 15:47:38 2014 -0400 Add a filter for ignoring unresolvable addresses for service discovery tests. The new file qa/common.discovery contains a new filter, _filter_discovery_unresolvable and moves other common code from individual tests as _filter_discovery_sought, _filter_discovery_resolved and _filter_discovery_unresolved. The new file is sourced by tests 775 and 946 which are fixed using the new _filter_discovery_unresolvable. From nscott@redhat.com Tue Jul 15 18:10:46 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id E0A127F81 for ; Tue, 15 Jul 2014 18:10:45 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id D92E78F8066 for ; Tue, 15 Jul 2014 16:10:45 -0700 (PDT) X-ASG-Debug-ID: 1405465840-04cbb0421b1123b0001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id eITkHrcArd4m9FeD for ; Tue, 15 Jul 2014 16:10:41 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6FNAd6Q000785; Tue, 15 Jul 2014 19:10:39 -0400 Date: Tue, 15 Jul 2014 19:10:39 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: chandana@desilva.id.au Cc: Dave Brolley , pcp@oss.sgi.com Message-ID: <1078212491.10942428.1405465839520.JavaMail.zimbra@redhat.com> In-Reply-To: <53C57FDB.1010507@desilva.id.au> References: <53BCE301.9050408@desilva.id.au> <785523043.6250592.1404890623607.JavaMail.zimbra@redhat.com> <802543966.7124102.1404977059922.JavaMail.zimbra@redhat.com> <53BE4DB4.3090501@desilva.id.au> <637246348.7979701.1405057901942.JavaMail.zimbra@redhat.com> <53C57FDB.1010507@desilva.id.au> Subject: Re: [pcp] memcache pmda MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] memcache pmda Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: memcache pmda Thread-Index: FBWnpyB+bqTcVSsdO8bfeP7jU6XsDQ== X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1405465841 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7530 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header ----- Original Message ----- > Nathan, > I am sorry, but I did not get time to do the QA over the weekend. This > week does not look good either No worries - it'll be there waiting for you when you do get some time. :) cheers. -- Nathan From nscott@redhat.com Tue Jul 15 21:45:00 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 86DB17F94 for ; Tue, 15 Jul 2014 21:45:00 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 13291AC001 for ; Tue, 15 Jul 2014 19:44:56 -0700 (PDT) X-ASG-Debug-ID: 1405478691-04bdf0356911a240001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id WpBwyrmM7UfmUPoz for ; Tue, 15 Jul 2014 19:44:51 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6G2ipSB000596 for ; Tue, 15 Jul 2014 22:44:51 -0400 Date: Tue, 15 Jul 2014 22:44:51 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: PCP Mailing List Message-ID: <451400308.10963252.1405478691492.JavaMail.zimbra@redhat.com> In-Reply-To: <58674295.10958187.1405475932087.JavaMail.zimbra@redhat.com> Subject: pcp updates: qa, build tweaks MIME-Version: 1.0 X-ASG-Orig-Subj: pcp updates: qa, build tweaks Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: qa, build tweaks Thread-Index: SYUIIotUbv2NepJjIOweTTKph31PHQ== X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1405478691 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7536 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Changes committed to git://git.performancecopilot.org/pcp.git dev CHANGELOG | 25 +++++++++++++++- build/rpm/fedora.spec | 2 - debian/changelog | 4 +- qa/635 | 25 +++++++++------- qa/775 | 42 +++----------------------- qa/946 | 42 +++----------------------- qa/GNUmakefile | 3 + qa/common.discovery | 64 +++++++++++++++++++++++++++++++++++++++++ src/libpcp/src/probe.c | 6 +++ src/pmfind/pmfind.c | 22 ++++++-------- src/pmieconf/GNUmakefile | 21 +++++++------ src/pmieconf/GNUmakefile.rules | 2 - 12 files changed, 146 insertions(+), 112 deletions(-) commit 78c82b24b5cb1072245bdd69284ab0e042179880 Author: Nathan Scott Date: Wed Jul 16 11:39:45 2014 +1000 Fix test qa/635 for when netstat RX-OVR or TX-OVR are non-zero Experience has shown that the OVR fields are not as was thought for the original version of this test, i.e. just part of the drops metric count (and missing from /proc/net/dev). Turns out the fifo column from procfs is what ends up being reported for the netstat OVR columns. This commit simply separates out the fifo metric handling in the test from the drop metric (were summed, previously) and verifies the two metrics independently against the two netstat columns. commit df04118e59c0d5a5f178e0109b7606fda10adbeb Author: Nathan Scott Date: Wed Jul 16 11:26:18 2014 +1000 pmfind: fix the build on Solaris, without sighandler_t type commit a3fc135bf1a04bd8fe6d2fc1d66cf770e923d3d8 Author: Nathan Scott Date: Wed Jul 16 11:07:15 2014 +1000 Update changelogs and so on, prep for pcp-3.9.7 release commit e42a6be87af2289b8cd99db87360a1e2da7b5c4c Author: Svante Signell Date: Wed Jul 16 10:51:48 2014 +1000 Resolve pthread stack size build issue on GNU/Hurd platform On Hurd there is no pthread minimum stack size defined. On GNU/Linux this value is set to 16384. We use that number as default when PTHREAD_STACK_MIN is not defined. In fact for Hurd it could be as small as 4096, the page size for x86. commit e8e889bdfa3201161b3923b975fa004399d8f902 Author: Nathan Scott Date: Wed Jul 16 10:48:18 2014 +1000 Attempt to workaround a GNU/Hurd build issue for Svante Problem report is as follows, the pmieconf make rules are all a bit wierd, with the subdir descent making things awkward. From: Svante Signell "Due to some yet unknown reason the second time pmieconf is creating the file 'local' it fails with the fname being empty in rules.c. The attached patch makefile.patch is a work-around for this problem by not deleting that file the second time. (cd src/pmieconf; PCP_CONF=../../src/include/pcp.conf LD_LIBRARY_PATH=../../src/libpcp/src:../../src/libpcp_pmda/src:$LD_LIBRARY_PATH HOME=`pwd` PCP_ALT_CPP=../../src/pmcpp/pmcpp ./pmieconf -F -r rulesdir -f local) manually works to create 'local', but not in the nested make calls. It seems that the re-creation of that file could be avoided by modifying the files GNUmakefile and/or GNUmakefile.rules resulting in: Nothing to be done for 'default_pcp' when getting to the examples directory? (Dunno how to do that yet)." For now, I've rearranged the targets a little to try to avoid the problem and included parts of Svante's approach too, but the dependencies here are still not quite right and several things are always rebuilt when they shouldn't be (with or without this change, that is). commit 3aa351852bfd94634cf4a9dae43c36f15f87afb9 Author: Nathan Scott Date: Wed Jul 16 09:15:01 2014 +1000 Add common.discovery file into the pcp-testsuite installed set commit e90d27ffb137a305c74c98e53456f21308b8a73c Merge: ceb0640 07423d8 Author: Dave Brolley Date: Tue Jul 15 15:52:57 2014 -0400 Merge remote-tracking branch 'origin/dev' into brolley/dev commit ceb06409cbbf4b7942c26713b1b7ac823bfa4810 Author: Dave Brolley Date: Tue Jul 15 15:47:38 2014 -0400 Add a filter for ignoring unresolvable addresses for service discovery tests. The new file qa/common.discovery contains a new filter, _filter_discovery_unresolvable and moves other common code from individual tests as _filter_discovery_sought, _filter_discovery_resolved and _filter_discovery_unresolved. The new file is sourced by tests 775 and 946 which are fixed using the new _filter_discovery_unresolvable. From nscott@redhat.com Tue Jul 15 22:35:42 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id EA1307FA8 for ; Tue, 15 Jul 2014 22:35:41 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 77529AC001 for ; Tue, 15 Jul 2014 20:35:38 -0700 (PDT) X-ASG-Debug-ID: 1405481733-04cbb0421b11d150001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id AkdcDajkgKNsQm0u for ; Tue, 15 Jul 2014 20:35:34 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6G3ZXuf018221; Tue, 15 Jul 2014 23:35:33 -0400 Date: Tue, 15 Jul 2014 23:35:33 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dave Brolley Cc: PCP Mailing List Message-ID: <1342612945.10970148.1405481733537.JavaMail.zimbra@redhat.com> In-Reply-To: <53C5895E.4030806@redhat.com> References: <2129401188.6256039.1404891527704.JavaMail.zimbra@redhat.com> <53C01477.6000703@redhat.com> <1170491276.9256269.1405303222288.JavaMail.zimbra@redhat.com> <53C4214F.4030405@redhat.com> <1230657559.9961169.1405373957737.JavaMail.zimbra@redhat.com> <53C5895E.4030806@redhat.com> Subject: Re: Some recent QA regressions MIME-Version: 1.0 X-ASG-Orig-Subj: Re: Some recent QA regressions Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: Some recent QA regressions Thread-Index: TWPiQmGEce0xnuYsJZcKMDcvyXkAsg== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1405481734 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7537 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain ----- Original Message ----- > On 07/14/2014 05:39 PM, Nathan Scott wrote: > > Could we verify the state of each host identifier returned using dig and > > dig -x? IOW, checking that those which can be resolved, are (comparing > > libpcp and dig output), and those which cannot are not (pmfind vs dig -x) > > > brolley/dev in pcpfans .... > Works perfectly :) - thanks Dave. -- Nathan From dak-unpriv@franck.debian.org Wed Jul 16 02:12:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 6A1CC7F57 for ; Wed, 16 Jul 2014 02:12:35 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id EB5E3AC006 for ; Wed, 16 Jul 2014 00:12:34 -0700 (PDT) X-ASG-Debug-ID: 1405494753-04cb6c6ad1123e70001-S8gJnT Received: from muffat.debian.org (muffat.debian.org [206.12.19.146]) by cuda.sgi.com with ESMTP id 5MVGZqE3HrFKHaaG (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for ; Wed, 16 Jul 2014 00:12:33 -0700 (PDT) X-Barracuda-Envelope-From: dak-unpriv@franck.debian.org X-Barracuda-Apparent-Source-IP: 206.12.19.146 Received: from franck.debian.org ([138.16.160.12]) from C=NA,ST=NA,L=Ankh Morpork,O=Debian SMTP,OU=Debian SMTP CA,CN=franck.debian.org,EMAIL=hostmaster@franck.debian.org (verified) by muffat.debian.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from ) id 1X7JOC-0004m0-76 for pcp@oss.sgi.com; Wed, 16 Jul 2014 07:12:32 +0000 Received: from dak-unpriv by franck.debian.org with local (Exim 4.80) (envelope-from ) id 1X7JOA-00013g-EV for pcp@oss.sgi.com; Wed, 16 Jul 2014 07:12:30 +0000 To: pcp@oss.sgi.com From: Debian FTP Masters Subject: Processing of pcp_3.9.8_i386.changes Date: Wed, 16 Jul 2014 07:12:30 +0000 X-ASG-Orig-Subj: Processing of pcp_3.9.8_i386.changes X-Debian: DAK X-DAK: DAK Precedence: bulk Auto-Submitted: auto-generated X-Debian-Package: pcp Message-Id: Sender: unprivileged ftp-master role account X-Barracuda-Connect: muffat.debian.org[206.12.19.146] X-Barracuda-Start-Time: 1405494753 X-Barracuda-Encrypted: AES128-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7540 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- pcp_3.9.8_i386.changes uploaded successfully to localhost along with the files: pcp_3.9.8_i386.deb pcp-conf_3.9.8_i386.deb libpcp3-dev_3.9.8_i386.deb libpcp3_3.9.8_i386.deb libpcp-gui2-dev_3.9.8_i386.deb libpcp-gui2_3.9.8_i386.deb libpcp-mmv1-dev_3.9.8_i386.deb libpcp-mmv1_3.9.8_i386.deb libpcp-pmda3-dev_3.9.8_i386.deb libpcp-pmda3_3.9.8_i386.deb libpcp-trace2-dev_3.9.8_i386.deb libpcp-trace2_3.9.8_i386.deb libpcp-import1-dev_3.9.8_i386.deb libpcp-import1_3.9.8_i386.deb python-pcp_3.9.8_i386.deb libpcp-pmda-perl_3.9.8_i386.deb libpcp-import-perl_3.9.8_i386.deb libpcp-logsummary-perl_3.9.8_i386.deb libpcp-mmv-perl_3.9.8_i386.deb pcp-import-sar2pcp_3.9.8_all.deb pcp-import-mrtg2pcp_3.9.8_all.deb pcp-import-sheet2pcp_3.9.8_all.deb pcp-import-iostat2pcp_3.9.8_all.deb pcp-import-collectl2pcp_3.9.8_i386.deb pcp-doc_3.9.8_all.deb pcp-testsuite_3.9.8_i386.deb pcp-manager_3.9.8_i386.deb pcp-webapi_3.9.8_i386.deb pcp-gui_3.9.8_i386.deb pcp_3.9.8.dsc pcp_3.9.8.tar.xz Greetings, Your Debian queue daemon (running on host franck.debian.org) From envelope@ftp-master.debian.org Wed Jul 16 02:19:25 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 9EECB7F5F for ; Wed, 16 Jul 2014 02:19:24 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 1CE05AC001 for ; Wed, 16 Jul 2014 00:19:23 -0700 (PDT) X-ASG-Debug-ID: 1405495162-04cb6c6ad3124210001-S8gJnT Received: from muffat.debian.org (muffat.debian.org [206.12.19.146]) by cuda.sgi.com with ESMTP id CN7N6FQ7Kx2zeo2a (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for ; Wed, 16 Jul 2014 00:19:22 -0700 (PDT) X-Barracuda-Envelope-From: envelope@ftp-master.debian.org X-Barracuda-Apparent-Source-IP: 206.12.19.146 Received: from franck.debian.org ([138.16.160.12]) from C=NA,ST=NA,L=Ankh Morpork,O=Debian SMTP,OU=Debian SMTP CA,CN=franck.debian.org,EMAIL=hostmaster@franck.debian.org (verified) by muffat.debian.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from ) id 1X7JUn-00056G-DM; Wed, 16 Jul 2014 07:19:21 +0000 Received: from dak by franck.debian.org with local (Exim 4.80) (envelope-from ) id 1X7JUm-0002qT-3y; Wed, 16 Jul 2014 07:19:20 +0000 From: Debian FTP Masters To: PCP Development Team , Nathan Scott X-DAK: dak process-upload X-Debian: DAK X-Debian-Package: pcp Precedence: bulk Auto-Submitted: auto-generated MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Subject: pcp_3.9.8_i386.changes ACCEPTED into unstable Message-Id: X-ASG-Orig-Subj: pcp_3.9.8_i386.changes ACCEPTED into unstable Sender: Archive Administrator Date: Wed, 16 Jul 2014 07:19:20 +0000 X-Barracuda-Connect: muffat.debian.org[206.12.19.146] X-Barracuda-Start-Time: 1405495162 X-Barracuda-Encrypted: AES128-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7540 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Accepted: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Format: 1.8 Date: Wed, 16 Jul 2014 15:58:31 +1000 Source: pcp Binary: pcp pcp-conf libpcp3-dev libpcp3 libpcp-gui2-dev libpcp-gui2 libpcp-mmv1-dev libpcp-mmv1 libpcp-pmda3-dev libpcp-pmda3 libpcp-trace2-dev libpcp-trace2 libpcp-import1-dev libpcp-import1 python-pcp libpcp-pmda-perl libpcp-import-perl libpcp-logsummary-perl libpcp-mmv-perl pcp-import-sar2pcp pcp-import-mrtg2pcp pcp-import-sheet2pcp pcp-import-iostat2pcp pcp-import-collectl2pcp pcp-doc pcp-testsuite pcp-manager pcp-webapi pcp-gui Architecture: source i386 all Version: 3.9.8 Distribution: unstable Urgency: low Maintainer: PCP Development Team Changed-By: Nathan Scott Description: libpcp-gui2 - Performance Co-Pilot graphical client tools library libpcp-gui2-dev - Performance Co-Pilot graphical client tools library and headers libpcp-import-perl - Performance Co-Pilot log import Perl module libpcp-import1 - Performance Co-Pilot data import library libpcp-import1-dev - Performance Co-Pilot data import library and headers libpcp-logsummary-perl - Performance Co-Pilot historical log summary module libpcp-mmv-perl - Performance Co-Pilot Memory Mapped Value Perl module libpcp-mmv1 - Performance Co-Pilot Memory Mapped Value client library libpcp-mmv1-dev - Performance Co-Pilot Memory Mapped Value library and headers libpcp-pmda-perl - Performance Co-Pilot Domain Agent Perl module libpcp-pmda3 - Performance Co-Pilot Domain Agent library libpcp-pmda3-dev - Performance Co-Pilot Domain Agent library and headers libpcp-trace2 - Performance Co-Pilot application tracing library libpcp-trace2-dev - Performance Co-Pilot application tracing library and headers libpcp3 - Performance Co-Pilot library libpcp3-dev - Performance Co-Pilot library and headers pcp - System level performance monitoring and performance management pcp-conf - Performance Co-Pilot runtime configuration pcp-doc - Documentation and tutorial for the Performance Co-Pilot pcp-gui - Visualisation tools for the Performance Co-Pilot toolkit pcp-import-collectl2pcp - Tool for importing data from collectl into PCP archive logs pcp-import-iostat2pcp - Tool for importing data from iostat into PCP archive logs pcp-import-mrtg2pcp - Tool for importing data from MRTG into PCP archive logs pcp-import-sar2pcp - Tool for importing data from sar into PCP archive logs pcp-import-sheet2pcp - Tool for importing data from a spreadsheet into PCP archive logs pcp-manager - Performance Co-Pilot (PCP) manager daemon pcp-testsuite - Performance Co-Pilot (PCP) Test Suite pcp-webapi - Performance Co-Pilot (PCP) web API service python-pcp - Performance Co-Pilot Python PMAPI module Closes: 754929 Changes: pcp (3.9.8) unstable; urgency=low . * New release to update package metadata (closes: #754929) Checksums-Sha1: f0f26a0563ef6b54820f283978a2c5f81711a13f 2816 pcp_3.9.8.dsc 57fad4cfa145069ab81cb057499bddeea7aa7928 10082200 pcp_3.9.8.tar.xz 8a7fd00d11964104d73d256f4f3a2dcfd80725e0 1222946 pcp_3.9.8_i386.deb 284f208c65b74379ffd97178dc45baac896ff2f9 16828 pcp-conf_3.9.8_i386.deb cb9771c840aec859985825ca893a447bb7cb0418 413514 libpcp3-dev_3.9.8_i386.deb 0801704afcae566d8bf3b53a972c7de972d36cc9 187528 libpcp3_3.9.8_i386.deb 758f8a4db3f325a2e9be1d9041252f1008606c08 16582 libpcp-gui2-dev_3.9.8_i386.deb c5a8b069a193db9b939c1332f787e00fbfdb917d 15406 libpcp-gui2_3.9.8_i386.deb c8f4d4f044fb38e91d8c9a58fb35aee054c6f741 19194 libpcp-mmv1-dev_3.9.8_i386.deb b164b0f1228132ba69afc4c7343bd9a588c2cba1 12522 libpcp-mmv1_3.9.8_i386.deb d2a06393148c2c2ce170e40ba06248a1fde90171 94340 libpcp-pmda3-dev_3.9.8_i386.deb b77749bb469e3543b7b3a24863f147c80ee16165 36016 libpcp-pmda3_3.9.8_i386.deb 0dd1654c25152eed36b591f42205312456fcaa40 27138 libpcp-trace2-dev_3.9.8_i386.deb 27aeae78e6ba1811d3cc0628da4a844b01a5bfc9 19784 libpcp-trace2_3.9.8_i386.deb ccf6c500fd4860200ca48bf6a7b8a25d74625416 16258 libpcp-import1-dev_3.9.8_i386.deb 34a5c6b539a70f9769444ee0327d3ce0d3d6141c 15802 libpcp-import1_3.9.8_i386.deb 8dd20b7d5581c82da7edd04c05c82e84c42630a1 49762 python-pcp_3.9.8_i386.deb a4d79dcd5f25fe4a9a9f1daca1775b052ea4cb4a 39534 libpcp-pmda-perl_3.9.8_i386.deb 99225fab35f8e74ef1657f1f4b0c27b9914888f2 16944 libpcp-import-perl_3.9.8_i386.deb 7a568920555b459b225a197e75d90a06cdca3147 11864 libpcp-logsummary-perl_3.9.8_i386.deb 97f8ed732df4354e76ecaf0f7f984c2fb95837d8 18220 libpcp-mmv-perl_3.9.8_i386.deb da1de7dbd7352d28fb74f90490fa42aab6f17d4a 17152 pcp-import-sar2pcp_3.9.8_all.deb 431a6e653928052ba6633010ca9efc3345cdce5f 11048 pcp-import-mrtg2pcp_3.9.8_all.deb b639612c115e2ee92a4e3bbe4ce98f8b19669529 20004 pcp-import-sheet2pcp_3.9.8_all.deb f5ac65f9f1e5cf7a6fa1f5e08a1c275776908f44 18682 pcp-import-iostat2pcp_3.9.8_all.deb 4b95a3066a6e4d7f276d046633db7e69b111033e 23610 pcp-import-collectl2pcp_3.9.8_i386.deb f4ccf966877e554f777d71cded3399754b31fcaa 3142156 pcp-doc_3.9.8_all.deb b6d253f81012495f7371c20b713743ca506bee25 2566120 pcp-testsuite_3.9.8_i386.deb 88b177fb269242e3044b06571ab58a18033f1ff9 47700 pcp-manager_3.9.8_i386.deb e335ff5ac68af2efa77e6f75e1375aeb72a199cd 31450 pcp-webapi_3.9.8_i386.deb 283a5a465483e07f8010920db0ffd5761eba8701 650136 pcp-gui_3.9.8_i386.deb Checksums-Sha256: 8c36e9276b23118051e7086745918c506df7bc3a5242980531396e92b951cb9c 2816 pcp_3.9.8.dsc a3baf0b3c46a6f9da4cc13572357ec33c148662e6b8b1b09bb1886e88efe748f 10082200 pcp_3.9.8.tar.xz 2d5206b9da08f71c1022814e179da381c8ff933ff5ec05ad19cddbc29345ba1d 1222946 pcp_3.9.8_i386.deb d9e67d952f0669b49b5da4da81df7cf6eacc8da341449489fcc73b86d9b7a26b 16828 pcp-conf_3.9.8_i386.deb ba7c6eace3a9b4bc58bf9dbdbc75953e8a9880ae223006d15a4c8153548aba52 413514 libpcp3-dev_3.9.8_i386.deb feed523883a8287078580af6a303c293895cbe5d459923873c17a6c7e4cef650 187528 libpcp3_3.9.8_i386.deb 94022e9662cc222983418c6dcad3d67f13f2634c1e2fc035a39936c0d2fd9d04 16582 libpcp-gui2-dev_3.9.8_i386.deb b76303102253291d7fed98a3addf0be0c498f7787ef76e0277a0b308c7e03232 15406 libpcp-gui2_3.9.8_i386.deb 23dfebd8aa9644938eb922bb0f17b4932a7cd50a71f00d01d332d32c14c16ac6 19194 libpcp-mmv1-dev_3.9.8_i386.deb 305ad08363bd5992e224e13b3cf124497ffc20adef1da3f1e58ded6a5620637a 12522 libpcp-mmv1_3.9.8_i386.deb 75c5519f97085a29c0ee8a29d9683bf5b7abceb02443ba09df5c674fa2e5fcbc 94340 libpcp-pmda3-dev_3.9.8_i386.deb 9750c2c5bb6943790eb496f9bed3e67883263c4da253b45bcebf8c3ee15c412f 36016 libpcp-pmda3_3.9.8_i386.deb 03b30d65c56197701e9177aff816510869923465b5cc2f6ac7f14a000236ac12 27138 libpcp-trace2-dev_3.9.8_i386.deb f131106789bdc2f0bdd1ed72c4f627ad12e67ba2a2a779fff4098970a0667e72 19784 libpcp-trace2_3.9.8_i386.deb d8db69deebddd082ed37f2c69618174d1b7c8b52486609df41d7d2a78dd792a6 16258 libpcp-import1-dev_3.9.8_i386.deb 8871ba2263ad12b771f6989ccb1a53d6ad6c55c5c165c4661ee129df474448de 15802 libpcp-import1_3.9.8_i386.deb ae4e7cc5d291fea4c42b68ce0ac49c8baf5b3274febc31c5f3f42c3ac6683b88 49762 python-pcp_3.9.8_i386.deb d96b23f071299076703f99b712709afa632ed9160b4f1585f7b3db5611fbd2de 39534 libpcp-pmda-perl_3.9.8_i386.deb 201068d255809e4720d8cdf0abaddc7ef94ae3977259263f65d224633b6cc254 16944 libpcp-import-perl_3.9.8_i386.deb 543263dfac1cbf6d704aa1ac3e67287a1837f146147846b481755cce669da90f 11864 libpcp-logsummary-perl_3.9.8_i386.deb 20a7156cf8271915e215e19c97d6341ee76ec013b137ba4372e42545ba63627d 18220 libpcp-mmv-perl_3.9.8_i386.deb 9566dc0e3907e3d0df864392f6b313c65b19291c1cbf7ee1333676b0cce375c9 17152 pcp-import-sar2pcp_3.9.8_all.deb 8cdb3ba88b682dce8426bdeea285b1254d4866f1859a7342dd541335b595fad9 11048 pcp-import-mrtg2pcp_3.9.8_all.deb 64d28fc3b124c2cc6e5675b63043431a293c77742af7134b91abf4cc6b10a17e 20004 pcp-import-sheet2pcp_3.9.8_all.deb 6f581a5abb657c23766633d569f40c141db6967d5fa33f91ad63bbdc96b22e43 18682 pcp-import-iostat2pcp_3.9.8_all.deb b550c65b1fb5d8d7e8aaa3cc56b0be12e3c746629e36310c7431197bc6c277aa 23610 pcp-import-collectl2pcp_3.9.8_i386.deb 6832af3bc865ae0d421c58e582a5d1a4a8727637617ed8c9e3c52b08e3ae519c 3142156 pcp-doc_3.9.8_all.deb 07d9391c824d30b380f68d9447cb58daa8b89c52b6feb1e26b8ca5c75061b5ef 2566120 pcp-testsuite_3.9.8_i386.deb c48fc2b23294b558dabce00cb8a9c4723ea3acd195fb33bfe44faffb0702b41e 47700 pcp-manager_3.9.8_i386.deb ee60a74d56c6ec10ec6c4bd8f4af96c11b2d2833894ee1a98e9c3aae1e0b23e3 31450 pcp-webapi_3.9.8_i386.deb 6b09b1955fea651abd880db964eb7f96ebb0e69ff7ede7ba6a6f8055c5dc0ca1 650136 pcp-gui_3.9.8_i386.deb Files: 25455bdb800d902072775157ff10ac10 1222946 utils extra pcp_3.9.8_i386.deb f57a0445c088370609b615e23a2160d4 16828 libs extra pcp-conf_3.9.8_i386.deb 20865e40500721fc2d6992c2de3d235a 413514 libdevel extra libpcp3-dev_3.9.8_i386.deb 8787549027605ff483e12b2447973d8b 187528 libs extra libpcp3_3.9.8_i386.deb fddf4101520e2e38d8d2830026fe6c51 16582 libdevel extra libpcp-gui2-dev_3.9.8_i386.deb ae8efec929ed3a3a298d89dae2f757d2 15406 libs extra libpcp-gui2_3.9.8_i386.deb 3fe832fbab1bed2a8d2901c8f0f13f63 19194 libdevel extra libpcp-mmv1-dev_3.9.8_i386.deb 305e6a414705d047678fdcb4749765cd 12522 libs extra libpcp-mmv1_3.9.8_i386.deb efab9f48883c60edd179d6288702b330 94340 libdevel extra libpcp-pmda3-dev_3.9.8_i386.deb 9f73a75727044658a0176371d23aaba7 36016 libs extra libpcp-pmda3_3.9.8_i386.deb a61f5b4879dde6b86979e2b1a643a4d5 27138 libdevel extra libpcp-trace2-dev_3.9.8_i386.deb 8fe77394a486e809d51f15e4771b4f10 19784 libs extra libpcp-trace2_3.9.8_i386.deb a1cb0bb00b9c48d9d57392b3cafe2e6f 16258 libdevel extra libpcp-import1-dev_3.9.8_i386.deb 7f44c229fb4c04a71fa110fa4054a5df 15802 libs extra libpcp-import1_3.9.8_i386.deb 6a38ba9bca585f4869cfac848505d211 49762 python extra python-pcp_3.9.8_i386.deb 6aa94463050a817f4a345d476303ad11 39534 perl extra libpcp-pmda-perl_3.9.8_i386.deb b69a9347ee45b2f4e3e6ddef7f1f444b 16944 perl extra libpcp-import-perl_3.9.8_i386.deb 1b0937dea0222181b10beaf2e33dcc44 11864 perl extra libpcp-logsummary-perl_3.9.8_i386.deb 082a63bcac78f144c2ae2c46e526138a 18220 perl extra libpcp-mmv-perl_3.9.8_i386.deb 86eba650b1a2096675b3de7e77a91600 17152 utils extra pcp-import-sar2pcp_3.9.8_all.deb 4fe1c2e82a752ff8e8a32a882ac7d278 11048 utils extra pcp-import-mrtg2pcp_3.9.8_all.deb 3e5725fe00028ae01c08dad147036ae7 20004 utils extra pcp-import-sheet2pcp_3.9.8_all.deb c183e612dbaeee5dc3fe5251ef5c9f47 18682 utils extra pcp-import-iostat2pcp_3.9.8_all.deb 666ac4a9b6c9b2b4f4a7b5706ecb1502 23610 utils extra pcp-import-collectl2pcp_3.9.8_i386.deb 81b07ef709a0f5854e91de45651638ae 3142156 doc extra pcp-doc_3.9.8_all.deb 4b99980b6fdc6e51371ce24b5b2c8c2c 2566120 utils extra pcp-testsuite_3.9.8_i386.deb ea661ae59f34661a34c065aef94de2be 47700 utils extra pcp-manager_3.9.8_i386.deb 19ebd8f5c93b9a57a6072c3525151b07 31450 utils extra pcp-webapi_3.9.8_i386.deb 5046192fb9d12421cac6239e323f985f 650136 utils extra pcp-gui_3.9.8_i386.deb 2a8084d36b1264ea2f3960e420129e03 2816 utils extra pcp_3.9.8.dsc b57296d53f6ee3285e6d396d439142bd 10082200 utils extra pcp_3.9.8.tar.xz -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlPGHEsACgkQm8fl3HSIa2OGRQCgtPmUsGPuYJXTMlEjQKj6QawN S2QAn0Sbg2YGbBpcaB8W6B8zSwve6gNM =r7C2 -----END PGP SIGNATURE----- Thank you for your contribution to Debian. From pcp-announce-bounces@oss.sgi.com Wed Jul 16 02:24:28 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from oss.sgi.com (localhost [IPv6:::1]) by oss.sgi.com (Postfix) with ESMTP id B44CE7FBB; Wed, 16 Jul 2014 02:24:28 -0500 (CDT) X-Original-To: pcp-announce@oss.sgi.com Delivered-To: pcp-announce@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 35BD77FB5 for ; Wed, 16 Jul 2014 02:24:26 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 20D708F8052 for ; Wed, 16 Jul 2014 00:24:23 -0700 (PDT) X-ASG-Debug-ID: 1405495458-04cb6c6ad0124430001-87ZIJf Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by cuda.sgi.com with ESMTP id 3H2VNl08cn8U9qmM for ; Wed, 16 Jul 2014 00:24:18 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.25 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6G7OIqr012467 for ; Wed, 16 Jul 2014 03:24:18 -0400 Date: Wed, 16 Jul 2014 03:24:18 -0400 (EDT) From: Nathan Scott To: pcp-announce Message-ID: <1374143850.11023868.1405495458035.JavaMail.zimbra@redhat.com> In-Reply-To: <1360047061.11020421.1405494985611.JavaMail.zimbra@redhat.com> MIME-Version: 1.0 X-ASG-Orig-Subj: Performance Co-Pilot 3.9.7 released X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: Performance Co-Pilot 3.9.7 released Thread-Index: tfcvyxOIdJ9tpaOreRC2hqeePtYtcg== X-Barracuda-Connect: mx4-phx2.redhat.com[209.132.183.25] X-Barracuda-Start-Time: 1405495458 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-BRTS-Evidence: pcp.io X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7540 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Subject: [pcp-announce] Performance Co-Pilot 3.9.7 released X-BeenThere: pcp-announce@oss.sgi.com X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Nathan Scott List-Id: pcp announcements List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pcp-announce-bounces@oss.sgi.com Sender: pcp-announce-bounces@oss.sgi.com Hi all, The latest version of PCP is out, and built for all the usual platforms. For those of us getting forgetful in our old age, there is also a short-cut URL available now: http://pcp.io Inspired by recent experimentation using PCP with containers (via docker.io). But, more on that in a future release. For anyone integrating PCP with Nagios, please take some time to investigate the pmie changes - they're intended specially for you... pcp-3.9.7 (16 July 2014) - pmie: "ruleset" extensions to the pmie(1) language - pmdaproc: additional memory and new blkio cgroup metrics - pmdanvidia: new Nvidia GPU PMDA using NVML interfaces - pmdainfiniband: add switch counter metrics - pmdalustrecomm: bug fixes in the lnet memory metrics - pmdamemcache: fixed underlying socket code - pmdalinux: mem.util.available for down-rev kernels - pmdagfs2: several fixes and improvements in behaviour - pmdas: support for long form command line options (aix, jbd2, linux, lustre, mounts, processes, sample, sendmail, txmon, xfs) - libpcp: 'timeout' option for 'probe' service discovery - libpcp: secure sockets timeout handling improvements - pmie examples: updates to the pmie tutorial docs - pmchart: new MemAvailable view for mem.util.available - porting: additional GNU/Hurd port updates - packaging: fix Makepkgs script for old tar versions - packaging: fix rpm builds for rpm versions prior to 4.6 - libpcp: use minimum required stack for discovery threads - libpcp: archive folio parsing in option handling code - python APIs: archive folio parsing for recording tools - man pages: updates to service discovery APIs and tools - libpcp: archive interpolation thread safety improvements - libpcp: fixed memory leak from pmDestroyContext(3) -- Nathan _______________________________________________ pcp-announce mailing list pcp-announce@oss.sgi.com http://oss.sgi.com/mailman/listinfo/pcp-announce From fche@redhat.com Wed Jul 16 10:45:46 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id B57DF7FB6 for ; Wed, 16 Jul 2014 10:45:46 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id A5B9130404E for ; Wed, 16 Jul 2014 08:45:43 -0700 (PDT) X-ASG-Debug-ID: 1405525537-04cbb0421a13f9a0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 7YYIuhzzvIZL66jN (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 16 Jul 2014 08:45:39 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6GFjaxF031952 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 16 Jul 2014 11:45:36 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6GFjZpV005395; Wed, 16 Jul 2014 11:45:36 -0400 Received: by fche.csb (Postfix, from userid 2569) id EF0C158390; Wed, 16 Jul 2014 11:45:34 -0400 (EDT) To: Nathan Scott Cc: PCP Mailing List Subject: Re: pcp updates: qa, build tweaks References: <58674295.10958187.1405475932087.JavaMail.zimbra@redhat.com> <451400308.10963252.1405478691492.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: pcp updates: qa, build tweaks From: fche@redhat.com (Frank Ch. Eigler) Date: Wed, 16 Jul 2014 11:45:34 -0400 In-Reply-To: <451400308.10963252.1405478691492.JavaMail.zimbra@redhat.com> (Nathan Scott's message of "Tue, 15 Jul 2014 22:44:51 -0400 (EDT)") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405525539 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Nathan Scott writes: > [...] > commit e8e889bdfa3201161b3923b975fa004399d8f902 > Author: Nathan Scott > Date: Wed Jul 16 10:48:18 2014 +1000 > > Attempt to workaround a GNU/Hurd build issue for Svante > > Problem report is as follows, the pmieconf make rules are all > a bit wierd, with the subdir descent making things awkward. > > From: Svante Signell > "Due to some yet unknown reason the second time pmieconf is creating > the file 'local' it fails with the fname being empty in rules.c. The > attached patch makefile.patch is a work-around for this problem by not > deleting that file the second time. > [...] Another factor might be make -j parallelism; pmieconf/GNUmakefile contains a .NOTPARALLEL: directive to pessimize that, but GNUmakefile.rules doesn't. - FChE From conference.b11@gmail.com Thu Jul 17 05:18:37 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,HTML_MESSAGE,T_DKIM_INVALID autolearn=no version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 862CB7FC5 for ; Thu, 17 Jul 2014 05:18:37 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 89BC78F8070 for ; Thu, 17 Jul 2014 03:18:34 -0700 (PDT) X-ASG-Debug-ID: 1405592299-04cbb0421c169960001-S8gJnT Received: from mail-we0-f195.google.com (mail-we0-f195.google.com [74.125.82.195]) by cuda.sgi.com with ESMTP id OsnMagP82hi13GlB (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 17 Jul 2014 03:18:20 -0700 (PDT) X-Barracuda-Envelope-From: conference.b11@gmail.com X-Barracuda-Apparent-Source-IP: 74.125.82.195 Received: by mail-we0-f195.google.com with SMTP id p10so657372wes.2 for ; Thu, 17 Jul 2014 03:18:19 -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=6cMKNRzte+EwrkqpgZVW4auW//2TvzOdvWxCp7na32E=; b=qw9GR5IUCI1Q6Pl6z67PZO2iKrnaWcHC4twilc4zS7z7QjKJlehC6u1s3mt2YSMfy5 KpiCFBhRi5YtvN6jXzekth94aVtyWBDVtdmQwm7EqfT80Yg9X25utWNq1M4VLHold61X YHhWsGLf9SBZqA83kYrPpD2/aYF2vckbkYDyQWu7htg2dCwP8FtNguUuXncNaCASUX04 MsjD3IycUn27dOfnFf5wj93TaQ1v66uUhUzMkzy5mB6xW65KpOAk/bcdoUNVwskOiyWI MFkbyup74A59cBWwIqlx5eouGbey6YHbRqZhhruzDqhg86NdSQ+AKonVcW9TAn2rKdmI IeXw== MIME-Version: 1.0 X-Received: by 10.194.110.10 with SMTP id hw10mr43696064wjb.81.1405592296898; Thu, 17 Jul 2014 03:18:16 -0700 (PDT) Received: by 10.216.171.130 with HTTP; Thu, 17 Jul 2014 03:18:16 -0700 (PDT) Date: Thu, 17 Jul 2014 03:18:16 -0700 Message-ID: Subject: Call for paper: 2nd International Conference on Economics, Finance and Management Outlooks From: muhammad usman X-ASG-Orig-Subj: Call for paper: 2nd International Conference on Economics, Finance and Management Outlooks To: INFO@pakinsight.com Content-Type: multipart/alternative; boundary=089e010d870c8e810c04fe60f56c X-Barracuda-Connect: mail-we0-f195.google.com[74.125.82.195] X-Barracuda-Start-Time: 1405592300 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-BRTS-Evidence: 29027ae9fe94fd2bbc0865d56903494b-5484-txt X-Barracuda-BRTS-Evidence: 56990abc751c180daf5b022ebfa36754-29334-htm X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7574 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --089e010d870c8e810c04fe60f56c Content-Type: text/plain; charset=UTF-8 Dear *Sir/Madam* The *Asian Economic and Social Society and Pak Publishing Group* are organizing a 2nd International Conference on Economics, Finance and Management Outlooks 20-21 December, 2014,* Pearl International Hotel, Kuala Lumpur, Malaysia.* Website: http://www.pakrdw.com/?ic=details&id=4 We would like to take this opportunity to invite you and your colleagues to attend this conference on *20-21 December, 2014 Malaysia*. Please share this call for paper with your friends and colleagues through forwarding e-mail. The call for paper find below this e-mail. *Call for Paper* The 2nd International Conference on Economics, Finance and Management Outlooks 20-21 December is organized by the Asian Economic and Social Society, and Pak Publishing Group. The purpose of this conference is to bring together researchers from around the globe in order to present and discuss new trends in the fields of Scientific Research. *Topics of interest for submission include, but are not limited to:* Conference Main Theme: Economics, Finance and Management Outlooks *Sub-themes* *Economic Issues* Growth and Development Strategies Fiscal System and Policy Monetary System and Policy Income Distribution Poverty Unemployment Inflation Investment Consumption and Saving Human Capital Trade Policy FDI WTO The History of Economic Thought Energy and Environment Financial Issues Financial Reforms Finance and Investment Finance and Saving International Trade and *Finance* Asset Pricing Theory Risk Securitization Derivatives and Structured Financial Products Commercial Insurance and Reinsurance Corporate Finance, Mergers and Acquisitions The Microstructure of the Financial Market Liquidity and Price mechanism in stock Market *Management Issues * Business Management Corporate Governance Human Resource Management Business & Market Strategies Entrepreneurship E-business Services Information Technology Management Production & Operations Strategies Total Quality Management Strategic Management Mutual Fund Management T-bill, T-bond, and Dividend Policy Management Research Methods and Managerial Economics Corporate Social Responsibility Economic Sustainability and any disciplines concerning the interaction between management and enterprise sustainable development *Proceeding* All selected papers will be published in a book with an ISBN by Pak publishing Group. Conference proceedings will be submitted to ISI Thomson Reuters Web of Science, Google Scholar, and Microsoft Academic Search for consideration and indexation. *Journal Publication* After conference presentation few selected papers will publish in the special or regular issues of the following journals : *Procedia-Economics and Finance (Scopus Indexed)* *Procedia - Social and Behavioral Sciences (Scopus Indexed)* *Asian Economic and Financial Review * (*Online ISSN:* 2222-6737 - *Print ISSN:* 2305-2147 ) URL: http://www.aessweb.com/journals/5002 *International journal of Asian Social Science * (*Online ISSN: *2224-4441*- Print ISSN: *2226-5139 ) URL : http://www.aessweb.com/journals/5007 *International Journal of Management and Sustainability * (*Online ISSN:* 2306-0662* - Print ISSN:* 2306-9856 ) URL : http://www.pakinsight.com/?ic=journal&journal=11 *International Journal of Sustainable Development & World Policy * (*Online ISSN: *2305-705X* - Print ISSN: *2306-9929) URL: http://www.pakinsight.com/?ic=journal&journal=26 *International Journal of Sustainable Energy and Environmental Research* (*Online ISSN: *2306-6253* - Print ISSN: *2312-5764) URL: http://www.pakinsight.com/?ic=journal&journal=13 *Humanities and Social Sciences Letters ( Online ISSN: 2312-4318 ) URL: * http://www.pakinsight.com/?ic=journal&journal=73 International Journal of Business, Economics and Management (Online ISSN: 2312-0916 - Print ISSN: 2312-5772) *Journal of Empirical Studies * (Online ISSN: 2312-6248 - Print ISSN: 2312-623X) URL: http://www.pakinsight.com/?ic=journal&journal=66 Journal of Social Economics Research (Online ISSN: 2312-6264 - Print ISSN: 2312-6329) URL: http://www.pakinsight.com/?ic=journal&journal=35 *Review of Knowledge Economy URL: * http://www.pakinsight.com/?ic=journal&journal=67 * Journal of Tourism Management Research URL:* http://www.pakinsight.com/?ic=journal&journal=31 Journal of Challenges *URL:* http://www.pakinsight.com/?ic=journal&journal=85 *The Econometric Reviews URL: * http://www.pakinsight.com/?ic=journal&journal=88 * International Journal of Public Policy and Administration Research URL: * http://www.pakinsight.com/?ic=journal&journal=74 *IMPORTANT DATES* Abstract Submission Date: 27 September, 2014 Decision of Acceptance/Rejection: Within 15 days of submission Full Paper Submission Date: 14 November, 2014 Early Bird Discount Date: 14 November, 2014 Conference date: 20-21 December, 2014 *Submit your paper: * *http://www.pakrdw.com/?ic=details&id=4&info=submission* *Registration:* http://www.pakrdw.com/?ic=details&id=4&info=dates *Download Conference Brochure:* Conference Brochure *Contact Information* ICEFMO 2014 Secretariat Asian Economic and Social Society Pak Publishing Group E-mail: conference@pakinsight.com ; editor@aessweb.com Website: http://www.pakrdw.com/?ic=details&id=4 --089e010d870c8e810c04fe60f56c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

= Dear=C2=A0Sir/Madam

= =C2=A0

= The=C2=A0Asian Economic and Social Society and Pak Publishing Group=C2=A0are organizing a 2nd International Conference on Economics, Finance and Management Outlooks

= 20-21 December,= 2014, Pearl International Hotel, Kuala Lumpur, Malaysia.

= Website:=C2=A0<= /span>http://www.pakrdw.c= om/?ic=3Ddetails&id=3D4 =C2=A0

= =C2=A0

= We would like t= o take this opportunity to invite you and your colleagues to attend this conference on=C2=A020-21 December= , 2014 Malaysia. Please share this call for paper with your friends and colleagues through forwarding e-mail.=C2=A0=C2=A0

= =C2=A0

= The call for pa= per find below this e-mail.

= =C2=A0

= =C2=A0

= Call for Paper

=

The 2nd International Conference on Economics, Finance and Management Outlo= oks 20-21 December is organized by the Asian Economic and Social Society, and P= ak Publishing Group. The purpose of this conference is to bring together researchers from around the globe in order to present and discuss new trend= s in the fields of Scientific Research.

= =C2=A0

= =C2=A0

= Topics of in= terest for submission include, but are not limited to:

= Conference Main= Theme:=C2=A0 Economics, Finance and Management Outlooks

= =C2=A0

= Sub-themes

= =C2=A0

= Economic Iss= ues

= =C2=A0

=

= Growth and Deve= lopment Strategies

= Fiscal System a= nd Policy

= Monetary System= and Policy

= Income Distribu= tion

= Poverty<= /p>

= Unemployment

= Inflation

= Investment

= Consumption and= Saving

= Human Capital

= Trade Policy

= FDI

= WTO

= The History of = Economic Thought

= Energy and Envi= ronment

= Financial Issue= s

= Financial Refor= ms

= Finance and Inv= estment

= Finance and Sav= ing

= International T= rade and

=

= =C2=A0

= Finance

=

= Asset Pricing T= heory

= Risk Securitiza= tion

= Derivatives and= Structured Financial Products

= Commercial Insu= rance and Reinsurance

= Corporate Finan= ce, Mergers and Acquisitions

= The Microstruct= ure of the Financial Market

= Liquidity and P= rice mechanism in stock Market

=

= =C2=A0

= Management Issues=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

=

= Business Manage= ment

= Corporate Gover= nance

= Human Resource = Management

= Business & = Market Strategies

= Entrepreneurshi= p

= E-business Serv= ices

= Information Tec= hnology Management

= Production &= ; Operations Strategies

= Total Quality M= anagement

= Strategic Manag= ement

= Mutual Fund Man= agement

= T-bill, T-bond,= and Dividend Policy

= Management Rese= arch Methods and Managerial Economics

= Corporate Socia= l Responsibility

= Economic Sustai= nability and any disciplines concerning the interaction between management and enterprise sustainable development


= Proceeding

= All selected pa= pers will be published in a book with an ISBN by Pak publishing Group. Conference proceedings will be submit= ted to ISI Thomson Reuters Web of Science, Google Scholar, and Microsoft Academ= ic Search for consideration and indexation.

= =C2=A0

= Journal Publ= ication

= After conferenc= e presentation few selected papers will publish in the special or regular issues of=C2=A0 the following journa= ls :

= =C2=A0

= Procedia-Economics and Finance (Scopus Indexed)

= =C2=A0

= Procedia - Social and Behavioral Sciences (Scopus Indexed)

= =C2=A0

Asian Econo= mic and Financial Review=C2=A0
(Online ISSN:=C2=A02222-6737 -=C2=A0Print ISSN:=C2=A02305-214= 7 )
URL:=C2=A0
http://www.aessweb.com/journals/5002

=C2=A0<= /p>

Internation= al journal of Asian Social Science=C2=A0
(Online ISSN:=C2=A02224-4441- Print ISSN:=C2=A02226-5139 ) URL :=C2=A0
http://www.aessweb.com/journals/5007


International Journal of Management and Sustainability=C2=A0
(Online ISSN:=C2=A02306-0662=C2=A0- Print ISSN:=C2=A02306-985= 6 )
URL :=C2=A0
http://www.pakinsight.com/?ic=3Djournal&journal= =3D11

International Jou= rnal of Sustainable Development & World Policy=C2=A0
(Online ISSN:=C2=A02305-705X=C2=A0- Print ISSN:=C2=A02306-992= 9)=C2=A0
URL:=C2=A0
http://www.pakinsight.com/?ic=3Djournal&journal= =3D26

International Jou= rnal of Sustainable Energy and Environmental Research=C2=A0
(Online ISSN:=C2=A02306-6253=C2=A0- Print ISSN:=C2=A02312-576= 4)
URL:=C2=A0
http://www.pakinsight.com/?ic=3Djournal&journal= =3D13

Humanities and So= cial Sciences Letters
( Online ISSN: 2312-4318 )
URL:=C2=A0
http://www.pakinsight.com/?ic=3Djournal&jour= nal=3D73

International Journa= l of Business, Economics and Management=C2=A0
(Online ISSN: 2312-0916 - Print ISSN: 2312-5772)

Journal of Empiri= cal Studies=C2=A0
(Online ISSN: 2312-6248 - Print ISSN: 2312-623X)
URL:=C2=A0
http://www.pakinsight.com/?ic=3Djournal&journal= =3D66

Journal of Social Ec= onomics Research=C2=A0
(Online ISSN: 2312-6264 - Print ISSN: 2312-6329)
URL:=C2=A0
http://www.pakinsight.com/?ic=3Djournal&journal= =3D35

Review of Knowled= ge Economy
URL:=C2=A0
http://www.pakinsight.com/?ic=3Djournal&jour= nal=3D67


Journal of Tourism Management Research
URL:
http://www.pakinsight.com/?ic=3Djournal&journal=3D= 31

Journal of Challenge= s
URL:=C2=A0
http://www.pakinsight.com/?ic=3Djournal&j= ournal=3D85

The Econometric R= eviews
URL:=C2=A0
http://www.pakinsight.com/?ic=3Djournal&jour= nal=3D88


International Journal of Public Policy and Administration Research
URL:=C2=A0
http://www.pakinsight.com/?ic=3Djournal&jour= nal=3D74

= =C2=A0

= IMPORTANT DA= TES

=

Abstract Submission Date: 27 September, 2014

= Decision of Acceptance/Rejection: Within 15 days of submission

= Full Paper Submission Date: 14 November, 2014

= Early Bird Discount Date: 14 November, 2014

= Conference date: 20-21 December, 2014

= =C2=A0

= Submit your = paper: http://www.pakrdw.com/?ic=3Ddetails&id=3D4&info= =3Dsubmission

= Registration= :=C2= =A0http://www.pakrdw.com/?ic=3Ddetails&id=3D4&info=3Ddates =C2=A0=

= Download Con= ference Brochure:=C2=A0 Confer= ence Brochure

= =C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0

Contact Information<= span lang=3D"EN-MY" style=3D"font-family:Arial,sans-serif">

ICEFMO 2014 Secretariat
Asian Economic and Social Society

Pak Publishing Group

E-mail:=C2=A0conference@pakin= sight.com=C2=A0;=C2=A0editor@aessweb.com

Website:=C2=A0http://www.pakrdw.com/?ic=3Ddetails&am= p;id=3D4 =C2=A0

=C2=A0

=C2=A0


--089e010d870c8e810c04fe60f56c-- From dsmith@redhat.com Thu Jul 17 16:14:42 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 8F5207F6D for ; Thu, 17 Jul 2014 16:14:42 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 5B7D88F8037 for ; Thu, 17 Jul 2014 14:14:39 -0700 (PDT) X-ASG-Debug-ID: 1405631674-04bdf068150e5b0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id vKFQE1uVG7FFOCRq (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 17 Jul 2014 14:14:35 -0700 (PDT) X-Barracuda-Envelope-From: dsmith@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6HLEYck030673 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 17 Jul 2014 17:14:34 -0400 Received: from t540p.usersys.redhat.com (dhcp-10-15-1-109.hsv.redhat.com [10.15.1.109]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6HLEXbL014522 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Thu, 17 Jul 2014 17:14:34 -0400 Message-ID: <53C83CB9.3020808@redhat.com> Date: Thu, 17 Jul 2014 16:14:33 -0500 From: David Smith User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Systemtap List , pcp Subject: systemtap/pcp integration Content-Type: multipart/mixed; boundary="------------010000060503030300000202" X-ASG-Orig-Subj: systemtap/pcp integration X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405631674 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 This is a multi-part message in MIME format. --------------010000060503030300000202 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Here's a small update on the prototype systemtap/pcp integration work I'm doing. I've create a systemtap branch, called 'dsmith/mmv' that contains all my work. Basically this work allows systemtap to create 'mmv' memory mapped files. If you checkout and build that, then you should be able to run the attached systemtap script. This script is a translation of pcp's example python mmv script found in src/python/mmv.py. Note that systemtap will create a file called 'mmv' in /proc/systemtap/{MODULE_NAME}. I've just been using pcp's 'mmvdump' utility to dump the contents of the /proc/systemtap/{MODULE_NAME}/mmv file. Currently the pcp mmv pmda only looks in one place for mmv files, but it might be possible to create a symbolic link to systemtap's mmv file to make it happy. The code works for the attached script, but I'm sure it is quite fragile. Things like locking, error checking, documentation, etc. need to be done. -- David Smith dsmith@redhat.com Red Hat http://www.redhat.com 256.217.0141 (direct) 256.837.0057 (fax) --------------010000060503030300000202 Content-Type: text/plain; charset=UTF-8; name="mmv.stp" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="mmv.stp" global inst0, inst1, counter_metric, instant_metric, indom_metric global instant_value probe begin { inst0 = mmv_add_instance(0, "zero") inst1 = mmv_add_instance(1, "hero") printf("instances: %d, %d\n", inst0, inst1) indom0 = mmv_add_indom(1, "We can be heroes", "Set of instances from zero to hero") mmv_add_indom_instance(indom0, inst0) mmv_add_indom_instance(indom0, inst1) printf("indom: %d\n", indom0) counter_metric = mmv_add_metric("counter", 1, MMV_TYPE_NUMBER, MMV_SEM_COUNTER, mmv_units(0, 0, 1, 0, 0, 0), 0, "Example counter metric", "Yep, a test counter metric") instant_metric = mmv_add_metric("instant", 2, MMV_TYPE_NUMBER, MMV_SEM_INSTANT, mmv_units(0, 0, 0, 0, 0, 0), 0, "Example instant metric", "Yep, a test instantaneous metric") indom_metric = mmv_add_metric("indom", 3, MMV_TYPE_NUMBER, MMV_SEM_DISCRETE, mmv_units(0, 0, 0, 0, 0, 0), 1, "", "") printf("metrics: %d, %d, %d\n", counter_metric, instant_metric, indom_metric) mmv_stats_start(42, 0) instant_value = mmv_lookup_value(instant_metric, 0) mmv_set_value(instant_value, 41) mmv_inc_value(instant_value, 2) } probe timer.s(1) { mmv_inc_value(instant_value, 3) } probe end { mmv_stats_stop() } --------------010000060503030300000202-- From aather@netflix.com Thu Jul 17 20:33:47 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 4D9BF7F81 for ; Thu, 17 Jul 2014 20:33:47 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id D1BDCAC001 for ; Thu, 17 Jul 2014 18:33:43 -0700 (PDT) X-ASG-Debug-ID: 1405647221-04cb6c035016770001-S8gJnT Received: from mail-ig0-f171.google.com (mail-ig0-f171.google.com [209.85.213.171]) by cuda.sgi.com with ESMTP id 51JDOB21mF7vhFAm (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 17 Jul 2014 18:33:41 -0700 (PDT) X-Barracuda-Envelope-From: aather@netflix.com X-Barracuda-Apparent-Source-IP: 209.85.213.171 Received: by mail-ig0-f171.google.com with SMTP id l13so70856iga.4 for ; Thu, 17 Jul 2014 18:33:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:date:message-id:subject:from:to:content-type; bh=IaD+xHZmSzzMuz95/nC5Ryv/tmhTqxKEc3xno+CTDLY=; b=jEYjGGLmjACCdGtuWPKbh8sHuAwt4DAbOH1xWYoO/x8iDlgZJZy+CkNQ4VUu57mKHZ wimGbJYDD9tOpnnCUCUG5xAeW10h0XT+69zUoBklbnUMHlM2Ga5luInuutaaq+2icOAd tqbeQ7W9lqPJBJAtRMUJ4/cN94EwBpn/lOtGU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=IaD+xHZmSzzMuz95/nC5Ryv/tmhTqxKEc3xno+CTDLY=; b=cax+FBIrQl2obGUM3yONrqwwtCZG0JU8zQ415pyvbI1zsxVz+6oOwa8U2/57P0F9v0 CqLbu0z4fwFj0NqoSAU9lSNe+nSFdCdEw79YpCOoMq5+HoT2oyeWT8e+IvpR/qx8WgCB RC2RLsZvv0Eg5lMbwJC+3DeZQh55fvLMDb7nHyGb5YKrwnFIRZfeWe1ka9K1pH9gmVdv rwN2T96/xkv2i6cwnl1f81l2QRLekQKvPKcNUCG/LXzwKZtWoDeeGTUD66Hq5VrDfH2T +wYyJMwXxwK2z9fiq55WoY/fZx0oVqsQ2X/aTbu1FIkK+CzvnAUgggkX/NJbt1QGm3EZ CODg== X-Gm-Message-State: ALoCoQni9Ff0V2L8W7lPxglXhAI4F73JIdfXoODD1ZchNK7y0T3t9dpIeU2p0omZQfXBxi+RLT/Z MIME-Version: 1.0 X-Received: by 10.50.126.7 with SMTP id mu7mr34199365igb.20.1405647220852; Thu, 17 Jul 2014 18:33:40 -0700 (PDT) Received: by 10.64.113.70 with HTTP; Thu, 17 Jul 2014 18:33:40 -0700 (PDT) Date: Thu, 17 Jul 2014 18:33:40 -0700 Message-ID: Subject: PCP build on Ubuntu Precise (kernel 3.2) From: Amer Ather X-ASG-Orig-Subj: PCP build on Ubuntu Precise (kernel 3.2) To: pcp@oss.sgi.com Content-Type: multipart/alternative; boundary=047d7b2e1285475e8e04fe6dbfc6 X-Barracuda-Connect: mail-ig0-f171.google.com[209.85.213.171] X-Barracuda-Start-Time: 1405647221 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7591 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --047d7b2e1285475e8e04fe6dbfc6 Content-Type: text/plain; charset=UTF-8 Ubuntu Precise repository contains an older version of PCP (3.5). Since we needed newer features, I tried building PCP version from dev branch (git clone git://git.performancecopilot.org/pcp.git dev), but it requires a newer version of libmicrohttpd. To overcome this dependency, I compiled libmicrohttpd-0.9.34 from the source but ran into pcp build errors. Last time, I built from dev branch on Ubuntu Trusty (kernel 3.13) without any issue because trusty repository contains minimum version of libmicrohttpd. If I point to Trusty repository from the Ubuntu Precise system, it downloads adding packages including newer version of libc6 and that is little risky. Is it possible to build PCP without updating libc on Ubuntu precise? Build Error on Ubuntu Precise with libmicrohttpd-0.9.34: # ./Makepkgs --verbose .... " -I../../src/include -I../../src/include/pcp -o pmwebd -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -Wall -L./src/libpcp/src -L./src/libpcp_pmda/src -Wl,-Bsymbolic-functions -Wl,-z,relro -Wall -L../src/libpcp/src -L../src/libpcp_pmda/src -Wl,-Bsymbolic-functions -Wl,-z,relro -Wall -L../../src/libpcp/src -L../../src/libpcp_pmda/src -pie -Wl,-z,relro -Wl,-z,now main.o util.o pmwebapi.o pmresapi.o -lpcp -lmicrohttpd main.o: In function `mhd_respond': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/main.c:88: undefined reference to `MHD_create_response_from_buffer' pmwebapi.o: In function `pmwebapi_notify_error': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:188: undefined reference to `MHD_create_response_from_buffer' pmwebapi.o: In function `mhdb_fini_response': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:518: undefined reference to `MHD_create_response_from_buffer' pmwebapi.o: In function `pmwebapi_respond_new_context': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:355: undefined reference to `MHD_create_response_from_buffer' pmwebapi.o: In function `pmwebapi_respond': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:1249: undefined reference to `MHD_basic_auth_get_username_password' /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:1288: undefined reference to `MHD_create_response_from_buffer' /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:1259: undefined reference to `MHD_create_response_from_buffer' /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:1272: undefined reference to `MHD_queue_basic_auth_fail_response' pmresapi.o: In function `pmwebres_respond': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmresapi.c:144: undefined reference to `MHD_create_response_from_buffer' /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmresapi.c:115: undefined reference to `MHD_create_response_from_fd_at_offset' collect2: ld returned 1 exit status make[3]: *** [pmwebd] Error 1 make[2]: *** [default_pcp] Error 2 make[2]: Leaving directory `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src' make[1]: *** [default_pcp] Error 2 make[1]: Leaving directory `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8' make: *** [build-stamp] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2 --- Also, do you recommend installing PCP on the system as deb packages or from tarball. Somehow installing from deb packages generated by the build on ubuntu precise (when using trusty repository) was causing inconsistent results. -- Thanks, Amer Ather Cloud Performance Engineering My Location --047d7b2e1285475e8e04fe6dbfc6 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Ubuntu Precise repository contains an older version of PCP= (3.5). Since we needed newer features, I tried building PCP version from d= ev branch (git clone git://git.performancecopilot.org/pcp.git dev), but it requires a newer = version of libmicrohttpd. To overcome this dependency, I compiled libmicroh= ttpd-0.9.34 from the source but ran into pcp build errors.

Last time, I built from dev branch on Ubuntu Trusty (kernel 3.13) = without any issue because trusty repository contains minimum version of lib= microhttpd. =C2=A0If I point to Trusty repository from the Ubuntu Precise s= ystem, it downloads adding packages including newer version of libc6 and th= at is little risky. Is it possible to build PCP without updating libc on Ub= untu precise?

Build Error on Ubuntu Precise with libmicrohttpd-0.9.34:

# ./Makepkgs --verbose
....
" -I../../src/include -I../../src/include/pcp -o pmwebd -W= l,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -= Wall -L./src/libpcp/src -L./src/libpcp_pmda/src =C2=A0-Wl,-Bsymbolic-functi= ons -Wl,-z,relro -Wall -L../src/libpcp/src -L../src/libpcp_pmda/src =C2=A0-= Wl,-Bsymbolic-functions -Wl,-z,relro -Wall -L../../src/libpcp/src -L../../s= rc/libpcp_pmda/src -pie -Wl,-z,relro -Wl,-z,now =C2=A0main.o util.o pmwebap= i.o pmresapi.o =C2=A0 =C2=A0 -lpcp =C2=A0-lmicrohttpd=C2=A0
main.o: In function `mhd_respond':
/home/nflx-kernel-tun= ablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/main.c:88: undefined referen= ce to `MHD_create_response_from_buffer'
pmwebapi.o: In functi= on `pmwebapi_notify_error':
/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pm= webapi.c:188: undefined reference to `MHD_create_response_from_buffer'<= /div>
pmwebapi.o: In function `mhdb_fini_response':
/home= /nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:5= 18: undefined reference to `MHD_create_response_from_buffer'
pmwebapi.o: In function `pmwebapi_respond_new_context':
= /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebap= i.c:355: undefined reference to `MHD_create_response_from_buffer'
pmwebapi.o: In function `pmwebapi_respond':
/home/nflx-k= ernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:1249: un= defined reference to `MHD_basic_auth_get_username_password'
/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebap= i.c:1288: undefined reference to `MHD_create_response_from_buffer'
/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/p= mwebapi.c:1259: undefined reference to `MHD_create_response_from_buffer'= ;
/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pm= webapi.c:1272: undefined reference to `MHD_queue_basic_auth_fail_response&#= 39;
pmresapi.o: In function `pmwebres_respond':
/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmresap= i.c:144: undefined reference to `MHD_create_response_from_buffer'
=
/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pm= resapi.c:115: undefined reference to `MHD_create_response_from_fd_at_offset= '
collect2: ld returned 1 exit status
make[3]: *** [pmwebd] Er= ror 1
make[2]: *** [default_pcp] Error 2
make[2]: Leavi= ng directory `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src= 9;
make[1]: *** [default_pcp] Error 2
make[1]: Leaving director= y `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8'
ma= ke: *** [build-stamp] Error 2
dpkg-buildpackage: error: debian/ru= les build gave error exit status 2
---

Also, do you recommend installing P= CP on the system as deb packages or from tarball. Somehow installing from d= eb packages generated by the build on ubuntu precise (when using trusty rep= ository) was causing inconsistent results.
--
Thanks,

Amer Ather
Clo= ud Performance Engineering
My Location<= /div>
--047d7b2e1285475e8e04fe6dbfc6-- From fche@redhat.com Thu Jul 17 21:06:03 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 3D76A7F9D for ; Thu, 17 Jul 2014 21:06:03 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id CDEDFAC002 for ; Thu, 17 Jul 2014 19:05:59 -0700 (PDT) X-ASG-Debug-ID: 1405649155-04bdf06813190a0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id f4m9QG0FaMTo0WMX (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 17 Jul 2014 19:05:55 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6I25rVp008308 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 17 Jul 2014 22:05:53 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6I25q41026416; Thu, 17 Jul 2014 22:05:53 -0400 Received: by fche.csb (Postfix, from userid 2569) id CFA0B581C2; Thu, 17 Jul 2014 22:05:51 -0400 (EDT) To: Amer Ather Cc: pcp@oss.sgi.com Subject: Re: PCP build on Ubuntu Precise (kernel 3.2) References: X-ASG-Orig-Subj: Re: PCP build on Ubuntu Precise (kernel 3.2) From: fche@redhat.com (Frank Ch. Eigler) Date: Thu, 17 Jul 2014 22:05:47 -0400 In-Reply-To: (Amer Ather's message of "Thu, 17 Jul 2014 18:33:40 -0700") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405649155 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Amer Ather writes: > [...] > To overcome this dependency, I compiled libmicrohttpd-0.9.34 > from the source but ran into pcp build errors. > [...] > Build Error on Ubuntu Precise with libmicrohttpd-0.9.34: > > # ./Makepkgs --verbose > .... > " -I../../src/include -I../../src/include/pcp -o pmwebd > -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,rel= ro > -Wall -L./src/libpcp/src -L./src/libpcp_pmda/src =A0-Wl,-Bsymbolic-functi= ons > -Wl,-z,relro -Wall -L../src/libpcp/src -L../src/libpcp_pmda/src > =A0-Wl,-Bsymbolic-functions -Wl,-z,relro -Wall -L../../src/libpcp/src -L.= ./../src > /libpcp_pmda/src -pie -Wl,-z,relro -Wl,-z,now =A0main.o util.o pmwebapi.o > pmresapi.o =A0 =A0 -lpcp =A0-lmicrohttpd=A0 > main.o: In function `mhd_respond': > /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/main.= c:88: > undefined reference to `MHD_create_response_from_buffer' > pmwebapi.o: In function `pmwebapi_notify_error': > [...] Which -lmicrohttpd did this pick up? I don't see any -L/-l reference to a non-system build. (The named function was introduced back in libmicrohttpd version 0.9.6 or so, so 0.9.34 ought to work nicely.) You could try adding a custom -L to the src/pmwebapi/GNUmakefile's LLDLIBS. > Also, do you recommend installing PCP on the system as deb packages > or from tarball. Somehow installing from deb packages generated by > the build on ubuntu precise (when using trusty repository) was > causing inconsistent results. (In general I prefer to use packaged/versioned software rather than binary tarballs.) - FChE From kenj@internode.on.net Thu Jul 17 22:04:29 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 59D1E7F9E for ; Thu, 17 Jul 2014 22:04:29 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 3893D8F8037 for ; Thu, 17 Jul 2014 20:04:25 -0700 (PDT) X-ASG-Debug-ID: 1405652662-04bdf068131b910001-S8gJnT Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id QuDqTO30IRCOEIwa for ; Thu, 17 Jul 2014 20:04:23 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqwBAAWOyFN20YDz/2dsb2JhbAANS4NgV8Quh0MBgSCEegEBBDhRCxgJJQ8CRhMIAQGIS6xUmEAXjTuCFxaEMAWzIloB Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail07.adl2.internode.on.net with ESMTP; 18 Jul 2014 12:34:22 +0930 Message-ID: <53C88F9D.40209@internode.on.net> Date: Fri, 18 Jul 2014 13:08:13 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: Re: [pcp] PCP build on Ubuntu Precise (kernel 3.2) References: X-ASG-Orig-Subj: Re: [pcp] PCP build on Ubuntu Precise (kernel 3.2) In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1405652662 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7593 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 18/07/14 11:33, Amer Ather wrote: > Ubuntu Precise repository contains an older version of PCP (3.5). Since > we needed newer features, I tried building PCP version from dev branch > (git clone git://git.performancecopilot.org/pcp.git > dev), but it requires a > newer version of libmicrohttpd. To overcome this dependency, I compiled > libmicrohttpd-0.9.34 from the source but ran into pcp build errors. Amer, I have recently built PCP from source on Ubuntu Precise. Gimme a chance to make sure this still works, and we can exchange log files and dpkg info to narrow down the differences. From kenj@internode.on.net Fri Jul 18 03:01:32 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id CC8B67F83 for ; Fri, 18 Jul 2014 03:01:31 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 3C74EAC004 for ; Fri, 18 Jul 2014 01:01:30 -0700 (PDT) X-ASG-Debug-ID: 1405670482-04cb6c034f24ba0001-S8gJnT Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id oWM739poOJoXr7uu for ; Fri, 18 Jul 2014 01:01:23 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvkIAFrTyFN5LBdqPGdsb2JhbABZgkdHUleCeMAGgWGHQwGBBxcEAQEBATg2hAMBAQUIAhkFBSkwAwIGAQIOAwQBASgDAgIZIAoDCQgCBAESCwWIMQ6Pf5wpl0sXjTuCDAoBgniBTgWRGqIIKy8B Received: from ppp121-44-23-106.lns20.syd6.internode.on.net (HELO bozohorize) ([121.44.23.106]) by ipmail06.adl2.internode.on.net with ESMTP; 18 Jul 2014 17:31:20 +0930 From: "Ken McDonell" To: "'Amer Ather'" , References: In-Reply-To: Subject: RE: [pcp] PCP build on Ubuntu Precise (kernel 3.2) Date: Fri, 18 Jul 2014 18:01:17 +1000 X-ASG-Orig-Subj: RE: [pcp] PCP build on Ubuntu Precise (kernel 3.2) Message-ID: <003401cfa25e$76227930$62676b90$@internode.on.net> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0035_01CFA2B2.47D16F60" X-Mailer: Microsoft Outlook 15.0 Thread-Index: AQE+80KSEgd//KUzk6wCmNceYYVnepzG1Ldg Content-Language: en-au X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405670483 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.01 X-Barracuda-Spam-Status: No, SCORE=0.01 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE, THREAD_INDEX X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7598 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.00 HTML_MESSAGE BODY: HTML included in message This is a multipart message in MIME format. ------=_NextPart_000_0035_01CFA2B2.47D16F60 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Amer, =E2=80=A6 =20 OK, on my Ubuntu Precise amd64 QA VM =E2=80=A6 =20 I did have libmicrohttpd-dev 0.4.6 installed, which fails the PCP = minimum revision level, so none of the PCP webapi stuff was being built = (which explains why I have not seen any errors). =20 Tried apt-get upgrade libmicrohttpd-dev =3D> pulls a lot of stuff but not libc6 (2.15-0ubuntu10 before = and after) =3D> but libmicrohttpd-dev is still 0.4.6 =20 So using Ubuntu pkgs on this platform is never going to build the PCP = webapi stuff. =20 Now for your forced build with libmicrohttpd 0.9.34 =E2=80=A6 can you = please send me your src/include/builddefs after configure has been run = in the build? =20 And did you install libmicrohttpd from a package you built, or a make = install from the source tree? =20 From: pcp-bounces@oss.sgi.com [mailto:pcp-bounces@oss.sgi.com] On Behalf = Of Amer Ather Sent: Friday, 18 July 2014 11:34 AM To: pcp@oss.sgi.com Subject: [pcp] PCP build on Ubuntu Precise (kernel 3.2) =20 Ubuntu Precise repository contains an older version of PCP (3.5). Since = we needed newer features, I tried building PCP version from dev branch = (git clone git://git.performancecopilot.org/pcp.git = dev), but it requires a = newer version of libmicrohttpd. To overcome this dependency, I compiled = libmicrohttpd-0.9.34 from the source but ran into pcp build errors. =20 Last time, I built from dev branch on Ubuntu Trusty (kernel 3.13) = without any issue because trusty repository contains minimum version of = libmicrohttpd. If I point to Trusty repository from the Ubuntu Precise = system, it downloads adding packages including newer version of libc6 = and that is little risky. Is it possible to build PCP without updating = libc on Ubuntu precise? =20 Build Error on Ubuntu Precise with libmicrohttpd-0.9.34: =20 # ./Makepkgs --verbose .... " -I../../src/include -I../../src/include/pcp -o pmwebd = -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions = -Wl,-z,relro -Wall -L./src/libpcp/src -L./src/libpcp_pmda/src = -Wl,-Bsymbolic-functions -Wl,-z,relro -Wall -L../src/libpcp/src = -L../src/libpcp_pmda/src -Wl,-Bsymbolic-functions -Wl,-z,relro -Wall = -L../../src/libpcp/src -L../../src/libpcp_pmda/src -pie -Wl,-z,relro = -Wl,-z,now main.o util.o pmwebapi.o pmresapi.o -lpcp -lmicrohttpd=20 main.o: In function `mhd_respond': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/main.= c:88: undefined reference to `MHD_create_response_from_buffer' pmwebapi.o: In function `pmwebapi_notify_error': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:188: undefined reference to `MHD_create_response_from_buffer' pmwebapi.o: In function `mhdb_fini_response': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:518: undefined reference to `MHD_create_response_from_buffer' pmwebapi.o: In function `pmwebapi_respond_new_context': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:355: undefined reference to `MHD_create_response_from_buffer' pmwebapi.o: In function `pmwebapi_respond': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:1249: undefined reference to = `MHD_basic_auth_get_username_password' /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:1288: undefined reference to `MHD_create_response_from_buffer' /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:1259: undefined reference to `MHD_create_response_from_buffer' /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:1272: undefined reference to `MHD_queue_basic_auth_fail_response' pmresapi.o: In function `pmwebres_respond': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmres= api.c:144: undefined reference to `MHD_create_response_from_buffer' /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmres= api.c:115: undefined reference to = `MHD_create_response_from_fd_at_offset' collect2: ld returned 1 exit status make[3]: *** [pmwebd] Error 1 make[2]: *** [default_pcp] Error 2 make[2]: Leaving directory = `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src' make[1]: *** [default_pcp] Error 2 make[1]: Leaving directory = `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8' make: *** [build-stamp] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2 --- =20 Also, do you recommend installing PCP on the system as deb packages or = from tarball. Somehow installing from deb packages generated by the = build on ubuntu precise (when using trusty repository) was causing = inconsistent results. --=20 Thanks, =20 Amer Ather Cloud Performance Engineering My Location = =20 ------=_NextPart_000_0035_01CFA2B2.47D16F60 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable

Amer, =E2=80=A6

 

OK, on my Ubuntu Precise amd64 QA VM = =E2=80=A6

 

I did have libmicrohttpd-dev 0.4.6 = installed, which fails the PCP minimum revision level, so none of the = PCP webapi stuff was being built (which explains why I have not seen any = errors).

 

Tried apt-get upgrade = libmicrohttpd-dev

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 = =3D> pulls a lot of stuff but not libc6 (2.15-0ubuntu10 before and = after)

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 = =3D> but libmicrohttpd-dev is still 0.4.6

 

So using Ubuntu pkgs on this platform is = never going to build the PCP webapi stuff.

 

Now for your forced build with = libmicrohttpd 0.9.34 =E2=80=A6 can you please send me your = src/include/builddefs after configure has been run in the = build?

 

And did you install libmicrohttpd from a = package you built, or a make install from the source = tree?

 

From: = pcp-bounces@oss.sgi.com [mailto:pcp-bounces@oss.sgi.com] On Behalf Of = Amer Ather
Sent: Friday, 18 July 2014 11:34 = AM
To: pcp@oss.sgi.com
Subject: [pcp] PCP build on = Ubuntu Precise (kernel 3.2)

 

Ubuntu = Precise repository contains an older version of PCP (3.5). Since we = needed newer features, I tried building PCP version from dev branch (git = clone git://git.performancecopilot= .org/pcp.git dev), but it requires a newer version of libmicrohttpd. = To overcome this dependency, I compiled libmicrohttpd-0.9.34 from the = source but ran into pcp build errors.

 

Last = time, I built from dev branch on Ubuntu Trusty (kernel 3.13) without any = issue because trusty repository contains minimum version of = libmicrohttpd.  If I point to Trusty repository from the Ubuntu = Precise system, it downloads adding packages including newer version of = libc6 and that is little risky. Is it possible to build PCP without = updating libc on Ubuntu precise?

 

Build Error on Ubuntu Precise with = libmicrohttpd-0.9.34:

 

# = ./Makepkgs --verbose

....

" -I../../src/include -I../../src/include/pcp -o = pmwebd -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions = -Wl,-z,relro -Wall -L./src/libpcp/src -L./src/libpcp_pmda/src =  -Wl,-Bsymbolic-functions -Wl,-z,relro -Wall -L../src/libpcp/src = -L../src/libpcp_pmda/src  -Wl,-Bsymbolic-functions -Wl,-z,relro = -Wall -L../../src/libpcp/src -L../../src/libpcp_pmda/src -pie = -Wl,-z,relro -Wl,-z,now  main.o util.o pmwebapi.o pmresapi.o   =   -lpcp  -lmicrohttpd 

main.o: In function = `mhd_respond':

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/= src/pmwebapi/main.c:88: undefined reference to = `MHD_create_response_from_buffer'

pmwebapi.o: In function = `pmwebapi_notify_error':

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/= src/pmwebapi/pmwebapi.c:188: undefined reference to = `MHD_create_response_from_buffer'

pmwebapi.o: In function = `mhdb_fini_response':

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/= src/pmwebapi/pmwebapi.c:518: undefined reference to = `MHD_create_response_from_buffer'

pmwebapi.o: In function = `pmwebapi_respond_new_context':

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/= src/pmwebapi/pmwebapi.c:355: undefined reference to = `MHD_create_response_from_buffer'

pmwebapi.o: In function = `pmwebapi_respond':

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/= src/pmwebapi/pmwebapi.c:1249: undefined reference to = `MHD_basic_auth_get_username_password'

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/= src/pmwebapi/pmwebapi.c:1288: undefined reference to = `MHD_create_response_from_buffer'

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/= src/pmwebapi/pmwebapi.c:1259: undefined reference to = `MHD_create_response_from_buffer'

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/= src/pmwebapi/pmwebapi.c:1272: undefined reference to = `MHD_queue_basic_auth_fail_response'

pmresapi.o: In function = `pmwebres_respond':

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/= src/pmwebapi/pmresapi.c:144: undefined reference to = `MHD_create_response_from_buffer'

/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/= src/pmwebapi/pmresapi.c:115: undefined reference to = `MHD_create_response_from_fd_at_offset'

collect2: ld returned 1 exit = status

make[3]: *** = [pmwebd] Error 1

make[2]: = *** [default_pcp] Error 2

make[2]: Leaving directory = `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src'

make[1]: *** [default_pcp] Error = 2

make[1]: Leaving = directory = `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8'

make: *** [build-stamp] Error = 2

dpkg-buildpackage: = error: debian/rules build gave error exit status = 2

---

 

Also, do you recommend installing PCP on the system as = deb packages or from tarball. Somehow installing from deb packages = generated by the build on ubuntu precise (when using trusty repository) = was causing inconsistent results.

--

Thanks,

 

Amer Ather

Cloud Performance = Engineering

------=_NextPart_000_0035_01CFA2B2.47D16F60-- From fche@redhat.com Fri Jul 18 10:49:07 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id B65AD7F7B for ; Fri, 18 Jul 2014 10:49:07 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 9529B30404E for ; Fri, 18 Jul 2014 08:49:07 -0700 (PDT) X-ASG-Debug-ID: 1405698542-04bdf068153c010001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id SXc065RcMTwjjcfA (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 18 Jul 2014 08:49:03 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6IFn261017029 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 18 Jul 2014 11:49:02 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6IFn15a030887; Fri, 18 Jul 2014 11:49:02 -0400 Received: by fche.csb (Postfix, from userid 2569) id 5C4AC58390; Fri, 18 Jul 2014 11:49:01 -0400 (EDT) To: David Smith Cc: Systemtap List , pcp Subject: Re: systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> X-ASG-Orig-Subj: Re: systemtap/pcp integration From: fche@redhat.com (Frank Ch. Eigler) Date: Fri, 18 Jul 2014 11:49:01 -0400 In-Reply-To: <53C83CB9.3020808@redhat.com> (David Smith's message of "Thu, 17 Jul 2014 16:14:33 -0500") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405698543 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi, David - > Here's a small update on the prototype systemtap/pcp integration work > I'm doing. Thanks, what a great start. > I've create a systemtap branch, called 'dsmith/mmv' that contains > all my work. Basically this work allows systemtap to create 'mmv' > memory mapped files. (That's git://sourceware.org/git/systemtap.git branch dsmith/mmv.) > [...] The code works for the attached script, but I'm sure it is > quite fragile. Things like locking, error checking, documentation, > etc. need to be done. [...] Overall, are you happy with the general approach of reusing the exact MMV format (and thus the PMDA)? At one point I suggested reworking the earlier prototype so that the bulk of the MMV format's emulation would be based on tapset script code (and possibly more declarative / dynamic / safe) rather than C. Have you come to any conclusions about the propriety of that? How much post-initialization change can the MMV format tolerate, as regarding indom contents or metric availability? I assume such metadata changes are synchronized with the PMDA via the generation numbers. Moving around contents of the mmap region as in __stp_mmv_alloc_data_item sounds like it leaves the data inconsistent during the process; does it need similar protection? - FChE From dsmith@redhat.com Fri Jul 18 11:25:24 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 3128C7F7C for ; Fri, 18 Jul 2014 11:25:24 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 9F9B8AC001 for ; Fri, 18 Jul 2014 09:25:23 -0700 (PDT) X-ASG-Debug-ID: 1405700721-04cbb064e43d290001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id WvCupSruxqSCWlUU (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 18 Jul 2014 09:25:22 -0700 (PDT) X-Barracuda-Envelope-From: dsmith@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6IGPLPH021755 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 18 Jul 2014 12:25:21 -0400 Received: from t540p.usersys.redhat.com (vpn-51-23.rdu2.redhat.com [10.10.51.23]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6IGPJL1022385 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Fri, 18 Jul 2014 12:25:20 -0400 Message-ID: <53C94A6F.4080808@redhat.com> Date: Fri, 18 Jul 2014 11:25:19 -0500 From: David Smith User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: "Frank Ch. Eigler" CC: Systemtap List , pcp Subject: Re: systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> X-ASG-Orig-Subj: Re: systemtap/pcp integration In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405700722 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/18/2014 10:49 AM, Frank Ch. Eigler wrote: > > Hi, David - > >> Here's a small update on the prototype systemtap/pcp integration work >> I'm doing. > > Thanks, what a great start. > >> I've create a systemtap branch, called 'dsmith/mmv' that contains >> all my work. Basically this work allows systemtap to create 'mmv' >> memory mapped files. > > (That's git://sourceware.org/git/systemtap.git branch dsmith/mmv.) > >> [...] The code works for the attached script, but I'm sure it is >> quite fragile. Things like locking, error checking, documentation, >> etc. need to be done. [...] > > Overall, are you happy with the general approach of reusing the exact > MMV format (and thus the PMDA)? That's a good question. I certainly started with reusing the exact MMV format because that's a working format with an existing data consumer on the pcp side of things. Note that the current systemtap implementation is actually a subset of the full pcp MMV format - currently it only supports 64-bit integers (with string values to come). However, as I've worked with the MMV format I've come to realize its limitations. As Nathan has pointed out in another email, the MMV format is designed to only support exporting values, and isn't suited for more event-like tracing. As far as the more technical side of things goes, some of the internal offset logic might be done better/differently. > At one point I suggested reworking the earlier prototype so that the > bulk of the MMV format's emulation would be based on tapset script > code (and possibly more declarative / dynamic / safe) rather than C. > Have you come to any conclusions about the propriety of that? I've been focused on other things, like reworking the allocation logic. As you describe it above, I'm not sure I see where you are headed. Certainly when I add systemtap's dyninst support into the picture, I was planning on sharing that code between systemtap's linux and dyninst runtimes. > How much post-initialization change can the MMV format tolerate, as > regarding indom contents or metric availability? I assume such > metadata changes are synchronized with the PMDA via the generation > numbers. Moving around contents of the mmap region as in > __stp_mmv_alloc_data_item sounds like it leaves the data inconsistent > during the process; does it need similar protection? The MMV format doesn't support any post-initialization changes - once you call "start" the file format can't change without removing and recreating the file. (The reader knows "start" has been called based on when the generation numbers match.) As far as systemtap is concerned, all the memory moving that __stp_mmv_alloc_data_item() does is done before calling "start", so the data being inconsistent as far as the reader is concerned doesn't matter. For the linux runtime side of things, we could not allow reads of the memory-mapped data until "start" has been called (and the data is consistent). -- David Smith dsmith@redhat.com Red Hat http://www.redhat.com 256.217.0141 (direct) 256.837.0057 (fax) From brolley@redhat.com Fri Jul 18 11:43:31 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id A48497F7D for ; Fri, 18 Jul 2014 11:43:31 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 723598F8033 for ; Fri, 18 Jul 2014 09:43:28 -0700 (PDT) X-ASG-Debug-ID: 1405701806-04bdf068143ee30001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id sSsczYBnWNBAWL3w (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 18 Jul 2014 09:43:27 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6IGhQhS021845 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 18 Jul 2014 12:43:26 -0400 Received: from [10.10.48.141] (vpn-48-141.rdu2.redhat.com [10.10.48.141]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6IGhPRe003573 for ; Fri, 18 Jul 2014 12:43:26 -0400 Message-ID: <53C94EB6.7020802@redhat.com> Date: Fri, 18 Jul 2014 12:43:34 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: PCP Mailing List Subject: Tighten up the __pmDiscoverServicesWithOptions() Interface Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: Tighten up the __pmDiscoverServicesWithOptions() Interface Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405701807 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 This commit tightens up the declaration of the 'flags' pointer to be 'const volatile unsigned *' so that __pmDiscoverServicesWithOptions() code cannot write to the referenced memory, without the compiler complaining. It also tells the compiler that the value of the referenced memory can change at any time. This is a backward compatible change which does not affect existing callers. Dave commit 80ab04bcc51e89c9e0481a60fe292395aac7bffa Author: Dave Brolley Date: Thu Jul 17 14:53:23 2014 -0400 Enforce properties of 'flags' parameter to __pmDiscoverServicesWithOptions(). This parameter is now declared: const volatile unsigned *flags This enforces the requirement that __pmDiscoveryServicesWithOptions() must not write the the memory referenced by this pointer, since there is no knowledge of whether this memory requires synchronous access protection. It also enforces the semantics that the contents of the memory can change at any time; specifically the 'interrupted' bit. From fche@redhat.com Fri Jul 18 13:27:58 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id ACA4B7F62 for ; Fri, 18 Jul 2014 13:27:58 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 2E26EAC001 for ; Fri, 18 Jul 2014 11:27:54 -0700 (PDT) X-ASG-Debug-ID: 1405708072-04cb6c035141a70001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id m1ulHV8tSBAUZq5L (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 18 Jul 2014 11:27:53 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6IIRqdG007325 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 18 Jul 2014 14:27:52 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6IIRqRN022102; Fri, 18 Jul 2014 14:27:52 -0400 Received: by fche.csb (Postfix, from userid 2569) id 5CF8858390; Fri, 18 Jul 2014 14:27:51 -0400 (EDT) Date: Fri, 18 Jul 2014 14:27:51 -0400 From: "Frank Ch. Eigler" To: David Smith Cc: Systemtap List , pcp Subject: Re: systemtap/pcp integration Message-ID: <20140718182751.GE20905@redhat.com> X-ASG-Orig-Subj: Re: systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <53C94A6F.4080808@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53C94A6F.4080808@redhat.com> User-Agent: Mutt/1.4.2.2i X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405708073 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Barracuda-BRTS-Status: 1 X-Virus-Scanned: by bsmtpd at sgi.com Hi - dsmith wrote: > [...] > > Overall, are you happy with the general approach of reusing the exact > > MMV format (and thus the PMDA)? > > [...] > However, as I've worked with the MMV format I've come to realize its > limitations. As Nathan has pointed out in another email, the MMV format > is designed to only support exporting values, and isn't suited for more > event-like tracing. As far as the more technical side of things goes, > some of the internal offset logic might be done better/differently. An application of pmda/mmv & pmda/logger to the same stap module could perhaps accomplish both goals (assuming we consider the pcp events overengineered to the extent that supplying timestamped strings is sufficient). Have you considered an alternative unified design? This reminds me of another PCP PMDA we've mentioned in the past: a JSON fetcher/parser. We'll need something like this for a variety of non-systemtap purposes too (interop with JSON-producing tools). What if stap were to produce pcp metrics in the form of /proc/systemtap/* JSON files that the PMDA would read on demand? (The cost of the parsing overhead may be low enough not to worry about it.) A separate generated JSON file could provide metadata. That format could be rich enough to contain events too (mapped from arrays of string). > > At one point I suggested reworking the earlier prototype so that the > > bulk of the MMV format's emulation would be based on tapset script > > code (and possibly more declarative / dynamic / safe) rather than C. > > Have you come to any conclusions about the propriety of that? > > I've been focused on other things, like reworking the allocation logic. > As you describe it above, I'm not sure I see where you are headed. To spell it out, the idea was to encode the mmv format logic (including metadata management) within a stap tapset script instead of as C in the runtime. Then the C runtime would need to do nothing but provide a memory-mapped-byte-array kind of abstraction, and a way for the script code to read/write it (maybe a variant of sprintf("%b...")?). > [...] > > How much post-initialization change can the MMV format tolerate, as > > regarding indom contents or metric availability? I assume such > > metadata changes are synchronized with the PMDA via the generation > > numbers. Moving around contents of the mmap region as in > > __stp_mmv_alloc_data_item sounds like it leaves the data inconsistent > > during the process; does it need similar protection? > > The MMV format doesn't support any post-initialization changes - once > you call "start" the file format can't change without removing and > recreating the file. (The reader knows "start" has been called based on > when the generation numbers match.) [...] (I think generation numbers can be changed during the run, to trigger a pmda/mmv reload, but don't know how thoroughly that works.) - FChE From wcohen@redhat.com Fri Jul 18 16:10:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id C7FA47F5D for ; Fri, 18 Jul 2014 16:10:22 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id AAD538F8039 for ; Fri, 18 Jul 2014 14:10:22 -0700 (PDT) X-ASG-Debug-ID: 1405717817-04cbb064e64b0d0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 9jGytkI0veN4xw69 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 18 Jul 2014 14:10:18 -0700 (PDT) X-Barracuda-Envelope-From: wcohen@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6ILAHDx000709 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 18 Jul 2014 17:10:17 -0400 Received: from [10.13.129.214] (dhcp129-214.rdu.redhat.com [10.13.129.214]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6ILAGaW000392; Fri, 18 Jul 2014 17:10:16 -0400 Message-ID: <53C98D38.7080703@redhat.com> Date: Fri, 18 Jul 2014 17:10:16 -0400 From: William Cohen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: David Smith , Systemtap List , pcp Subject: Re: [pcp] systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> X-ASG-Orig-Subj: Re: [pcp] systemtap/pcp integration In-Reply-To: <53C83CB9.3020808@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405717818 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/17/2014 05:14 PM, David Smith wrote: > Here's a small update on the prototype systemtap/pcp integration work > I'm doing. I've create a systemtap branch, called 'dsmith/mmv' that > contains all my work. Basically this work allows systemtap to create > 'mmv' memory mapped files. > > If you checkout and build that, then you should be able to run the > attached systemtap script. This script is a translation of pcp's example > python mmv script found in src/python/mmv.py. > > Note that systemtap will create a file called 'mmv' in > /proc/systemtap/{MODULE_NAME}. I've just been using pcp's 'mmvdump' > utility to dump the contents of the /proc/systemtap/{MODULE_NAME}/mmv > file. Currently the pcp mmv pmda only looks in one place for mmv files, > but it might be possible to create a symbolic link to systemtap's mmv > file to make it happy. > > The code works for the attached script, but I'm sure it is quite > fragile. Things like locking, error checking, documentation, etc. need > to be done. > > > > _______________________________________________ > pcp mailing list > pcp@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/pcp > Hi David, I was able to get this to work on RHEL 7. However, on fedora20 the mmvdump gets a sigsegv in the dump() function. -Will From kenj@internode.on.net Sat Jul 19 16:41:44 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id A4C297F69 for ; Sat, 19 Jul 2014 16:41:43 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 8354C304039 for ; Sat, 19 Jul 2014 14:41:40 -0700 (PDT) X-ASG-Debug-ID: 1405806094-04cbb064e787590001-S8gJnT Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id xEwafp2IbcY956Lm for ; Sat, 19 Jul 2014 14:41:35 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApAHAIHlylN5LBdq/2dsb2JhbABYgkdHHzNXgidRwDSBVwEJh0QBgQYXdoQDAQEFCAIZCikjDQUGAw4DBAEBIQEGAwIbIA0JCQEEEwsFiDEOqxSXFxeNO4IMBAaCOA8yEoE8BY5DglmLVpJig1YrLwE Received: from ppp121-44-23-106.lns20.syd6.internode.on.net (HELO bozohorize) ([121.44.23.106]) by ipmail07.adl2.internode.on.net with ESMTP; 20 Jul 2014 07:11:30 +0930 From: "Ken McDonell" To: "'Amer Ather'" Cc: Subject: RE: [pcp] PCP build on Ubuntu Precise (kernel 3.2) - [solved] Date: Sun, 20 Jul 2014 07:41:15 +1000 X-ASG-Orig-Subj: RE: [pcp] PCP build on Ubuntu Precise (kernel 3.2) - [solved] Message-ID: <049e01cfa39a$33877480$9a965d80$@internode.on.net> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_049F_01CFA3EE.0538DBB0" X-Mailer: Microsoft Outlook 15.0 Thread-Index: Ac+jmYE1UKMwdVXHRKSugg2HBOBPbA== Content-Language: en-au X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1405806094 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.01 X-Barracuda-Spam-Status: No, SCORE=0.01 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, HTML_MESSAGE, THREAD_INDEX X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7640 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header 0.00 HTML_MESSAGE BODY: HTML included in message This is a multipart message in MIME format. ------=_NextPart_000_049F_01CFA3EE.0538DBB0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Amer, =20 This is all a bit messy. I am not sure what you=E2=80=99re goal state = is here, but assuming you=E2=80=99re OK to build and install = libmicrohttpd by hand as you=E2=80=99ve outlined, the recipe below will = allow you to build new PCP packages =E2=80=A6 =20 As per your instructions, download and unpack the desired libmicrohttp = src tar ball (I used 0.9.34 the same as you). Then $ configure; make $ sudo make install and this installs libraries in /usr/local/lib/libmicrohttpd* =20 Now get rid of the old libraries, as they=E2=80=99ll only confuse = matters =E2=80=A6 =20 $ sudo apt-get remove libmicrohttpd-dev $ sudo apt-get remove libmicrohttpd5 =20 A PCP build in src works now. =20 But Makepkgs fails with dpkg-checkbuilddeps: Unmet build dependencies: libmicrohttpd-dev =20 So remove reference to libmicrohttpd-dev in debian/control.master =20 Now Makepkgs dies silently at dh_shlibdeps step =20 [much head scatching ...] =20 edit debian/rules and add --exclude=3Dpmwebd to the dh_shlibdeps line =20 And bingo, packages are produced by Makepkgs. =20 From: Amer Ather [mailto:aather@netflix.com]=20 Sent: Saturday, 19 July 2014 2:16 AM To: Ken McDonell Cc: pcp@oss.sgi.com Subject: Re: [pcp] PCP build on Ubuntu Precise (kernel 3.2) =20 Hi Ken, =20 I installed libmicrohttpd 0.9.34 from the source and then performed = "configure, make, make install". Library is installed in /usr/local/lib = directory. PCP configure did not complain about the older version of = libmicrohttpd after installing libmicrohttpd-0.9.34 from the source, but = build continue to fail. =20 I also tried -L , as Frank suggested, in GNUmakefile for pmwebapi but it = did not help. Not sure if I am using a correct syntax. What I have = tried: #LLDLIBS =3D $(PCPLIB) -lmicrohttpd LLDLIBS =3D $(PCPLIB) -L /usr/local/lib/libmicrohttpd.so or LLDLIBS =3D $(PCPLIB) -L /usr/local/lib/libmicrohttpd or=20 LLDLIBS =3D $(PCPLIB) -L /usr/local/lib/ =20 Please find builddefs file that you requested. =20 Let me know if you need additional information. Thanks for looking into = it. =20 Amer. =20 On Fri, Jul 18, 2014 at 1:01 AM, Ken McDonell > wrote: Amer, =E2=80=A6 =20 OK, on my Ubuntu Precise amd64 QA VM =E2=80=A6 =20 I did have libmicrohttpd-dev 0.4.6 installed, which fails the PCP = minimum revision level, so none of the PCP webapi stuff was being built = (which explains why I have not seen any errors). =20 Tried apt-get upgrade libmicrohttpd-dev =3D> pulls a lot of stuff but not libc6 (2.15-0ubuntu10 before = and after) =3D> but libmicrohttpd-dev is still 0.4.6 =20 So using Ubuntu pkgs on this platform is never going to build the PCP = webapi stuff. =20 Now for your forced build with libmicrohttpd 0.9.34 =E2=80=A6 can you = please send me your src/include/builddefs after configure has been run = in the build? =20 And did you install libmicrohttpd from a package you built, or a make = install from the source tree? =20 From: pcp-bounces@oss.sgi.com = [mailto:pcp-bounces@oss.sgi.com ] On = Behalf Of Amer Ather Sent: Friday, 18 July 2014 11:34 AM To: pcp@oss.sgi.com =20 Subject: [pcp] PCP build on Ubuntu Precise (kernel 3.2) =20 Ubuntu Precise repository contains an older version of PCP (3.5). Since = we needed newer features, I tried building PCP version from dev branch = (git clone git://git.performancecopilot.org/pcp.git = dev), but it requires a = newer version of libmicrohttpd. To overcome this dependency, I compiled = libmicrohttpd-0.9.34 from the source but ran into pcp build errors. =20 Last time, I built from dev branch on Ubuntu Trusty (kernel 3.13) = without any issue because trusty repository contains minimum version of = libmicrohttpd. If I point to Trusty repository from the Ubuntu Precise = system, it downloads adding packages including newer version of libc6 = and that is little risky. Is it possible to build PCP without updating = libc on Ubuntu precise? =20 Build Error on Ubuntu Precise with libmicrohttpd-0.9.34: =20 # ./Makepkgs --verbose .... " -I../../src/include -I../../src/include/pcp -o pmwebd = -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions = -Wl,-z,relro -Wall -L./src/libpcp/src -L./src/libpcp_pmda/src = -Wl,-Bsymbolic-functions -Wl,-z,relro -Wall -L../src/libpcp/src = -L../src/libpcp_pmda/src -Wl,-Bsymbolic-functions -Wl,-z,relro -Wall = -L../../src/libpcp/src -L../../src/libpcp_pmda/src -pie -Wl,-z,relro = -Wl,-z,now main.o util.o pmwebapi.o pmresapi.o -lpcp -lmicrohttpd=20 main.o: In function `mhd_respond': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/main.= c:88: undefined reference to `MHD_create_response_from_buffer' pmwebapi.o: In function `pmwebapi_notify_error': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:188: undefined reference to `MHD_create_response_from_buffer' pmwebapi.o: In function `mhdb_fini_response': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:518: undefined reference to `MHD_create_response_from_buffer' pmwebapi.o: In function `pmwebapi_respond_new_context': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:355: undefined reference to `MHD_create_response_from_buffer' pmwebapi.o: In function `pmwebapi_respond': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:1249: undefined reference to = `MHD_basic_auth_get_username_password' /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:1288: undefined reference to `MHD_create_response_from_buffer' /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:1259: undefined reference to `MHD_create_response_from_buffer' /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmweb= api.c:1272: undefined reference to `MHD_queue_basic_auth_fail_response' pmresapi.o: In function `pmwebres_respond': /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmres= api.c:144: undefined reference to `MHD_create_response_from_buffer' /home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmres= api.c:115: undefined reference to = `MHD_create_response_from_fd_at_offset' collect2: ld returned 1 exit status make[3]: *** [pmwebd] Error 1 make[2]: *** [default_pcp] Error 2 make[2]: Leaving directory = `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src' make[1]: *** [default_pcp] Error 2 make[1]: Leaving directory = `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8' make: *** [build-stamp] Error 2 dpkg-buildpackage: error: debian/rules build gave error exit status 2 --- =20 Also, do you recommend installing PCP on the system as deb packages or = from tarball. Somehow installing from deb packages generated by the = build on ubuntu precise (when using trusty repository) was causing = inconsistent results. --=20 Thanks, =20 Amer Ather Cloud Performance Engineering My Location = =20 =20 --=20 Thanks, =20 Amer Ather Cloud Performance Engineering My Location = =20 ------=_NextPart_000_049F_01CFA3EE.0538DBB0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable

Amer,

 

This is all a bit messy.=C2=A0 I am not = sure what you=E2=80=99re goal state is here, but assuming you=E2=80=99re = OK to build and install libmicrohttpd by hand as you=E2=80=99ve = outlined, the recipe below will allow you to build new PCP packages = =E2=80=A6

 

As per your instructions, download and = unpack the desired libmicrohttp src tar ball (I used 0.9.34 the same as = you).=C2=A0=C2=A0 Then

$ configure; make

$ sudo make = install

and this installs libraries in = /usr/local/lib/libmicrohttpd*

 

Now get rid of the old libraries, as = they=E2=80=99ll only confuse matters =E2=80=A6

 

$ sudo apt-get remove = libmicrohttpd-dev

$ sudo apt-get remove = libmicrohttpd5

 

A PCP build in src works = now.

 

But Makepkgs fails = with

dpkg-checkbuilddeps: Unmet build = dependencies: libmicrohttpd-dev

 

So remove reference to libmicrohttpd-dev = in =C2=A0debian/control.master

 

Now Makepkgs dies silently at dh_shlibdeps = step

 

[much head scatching = ...]

 

edit debian/rules and add = --exclude=3Dpmwebd to the dh_shlibdeps line

 

And bingo, packages are produced by = Makepkgs.

 

From: Amer = Ather [mailto:aather@netflix.com]
Sent: Saturday, 19 July = 2014 2:16 AM
To: Ken McDonell
Cc: = pcp@oss.sgi.com
Subject: Re: [pcp] PCP build on Ubuntu Precise = (kernel 3.2)

 

Hi = Ken,

 

I = installed libmicrohttpd 0.9.34 from the source and then performed = "configure, make, make install".  Library is installed in = /usr/local/lib directory. PCP configure did not complain about the older = version of libmicrohttpd after installing libmicrohttpd-0.9.34 from the = source, but build continue to fail.

 

I = also tried -L , as Frank suggested, in GNUmakefile for pmwebapi but it = did not help. Not sure if I am using a correct syntax.  What I have = tried:

#LLDLIBS =3D = $(PCPLIB) -lmicrohttpd

LLDLIBS =3D $(PCPLIB) -L = /usr/local/lib/libmicrohttpd.so

or

LLDLIBS =3D $(PCPLIB) -L = /usr/local/lib/libmicrohttpd

or 

LLDLIBS =3D $(PCPLIB) -L = /usr/local/lib/

 

Please find builddefs file that you = requested.

 

Let me know if you need additional information. Thanks = for looking into it.

 

Amer.

 

On Fri, Jul 18, 2014 at 1:01 AM, Ken McDonell <kenj@internode.on.net> = wrote:

Amer, =E2=80=A6

 

OK, on my Ubuntu Precise amd64 QA VM = =E2=80=A6

 

I did have libmicrohttpd-dev 0.4.6 installed, which fails the PCP = minimum revision level, so none of the PCP webapi stuff was being built = (which explains why I have not seen any errors).

 

Tried apt-get upgrade libmicrohttpd-dev

        =3D> pulls a lot of = stuff but not libc6 (2.15-0ubuntu10 before and = after)

        =3D> but = libmicrohttpd-dev is still 0.4.6

 

So using Ubuntu pkgs on this platform is never going to build the PCP = webapi stuff.

 

Now for your forced build with libmicrohttpd 0.9.34 =E2=80=A6 can you = please send me your src/include/builddefs after configure has been run = in the build?

 

And did you install libmicrohttpd from a package you built, or a make = install from the source tree?

 

From: pcp-bounces@oss.sgi.com [mailto:pcp-bounces@oss.sgi.com] On Behalf Of Amer = Ather
Sent: Friday, 18 July 2014 11:34 AM
To: pcp@oss.sgi.com
Subject: [pcp] PCP build = on Ubuntu Precise (kernel = 3.2)

 <= /o:p>

Ubuntu = Precise repository contains an older version of PCP (3.5). Since we = needed newer features, I tried building PCP version from dev branch (git = clone git://git.performancecopilot.org/pcp.git dev), but it = requires a newer version of libmicrohttpd. To overcome this dependency, = I compiled libmicrohttpd-0.9.34 from the source but ran into pcp build = errors.

 <= /o:p>

Last time, = I built from dev branch on Ubuntu Trusty (kernel 3.13) without any issue = because trusty repository contains minimum version of libmicrohttpd. =  If I point to Trusty repository from the Ubuntu Precise system, it = downloads adding packages including newer version of libc6 and that is = little risky. Is it possible to build PCP without updating libc on = Ubuntu precise?

 <= /o:p>

Build Error = on Ubuntu Precise with libmicrohttpd-0.9.34:

 <= /o:p>

# = ./Makepkgs --verbose

....

" = -I../../src/include -I../../src/include/pcp -o pmwebd = -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions = -Wl,-z,relro -Wall -L./src/libpcp/src -L./src/libpcp_pmda/src =  -Wl,-Bsymbolic-functions -Wl,-z,relro -Wall -L../src/libpcp/src = -L../src/libpcp_pmda/src  -Wl,-Bsymbolic-functions -Wl,-z,relro = -Wall -L../../src/libpcp/src -L../../src/libpcp_pmda/src -pie = -Wl,-z,relro -Wl,-z,now  main.o util.o pmwebapi.o pmresapi.o   =   -lpcp  -lmicrohttpd 

main.o: In = function `mhd_respond':

/home/nflx-k= ernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/main.c:88: = undefined reference to = `MHD_create_response_from_buffer'

pmwebapi.o: = In function `pmwebapi_notify_error':

/home/nflx-k= ernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:188: = undefined reference to = `MHD_create_response_from_buffer'

pmwebapi.o: = In function `mhdb_fini_response':

/home/nflx-k= ernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:518: = undefined reference to = `MHD_create_response_from_buffer'

pmwebapi.o: = In function `pmwebapi_respond_new_context':

/home/nflx-k= ernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:355: = undefined reference to = `MHD_create_response_from_buffer'

pmwebapi.o: = In function `pmwebapi_respond':

/home/nflx-k= ernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:1249: = undefined reference to = `MHD_basic_auth_get_username_password'

/home/nflx-k= ernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:1288: = undefined reference to = `MHD_create_response_from_buffer'

/home/nflx-k= ernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:1259: = undefined reference to = `MHD_create_response_from_buffer'

/home/nflx-k= ernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmwebapi.c:1272: = undefined reference to = `MHD_queue_basic_auth_fail_response'

pmresapi.o: = In function `pmwebres_respond':

/home/nflx-k= ernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmresapi.c:144: = undefined reference to = `MHD_create_response_from_buffer'

/home/nflx-k= ernel-tunablestest/dev/build/deb/pcp-3.9.8/src/pmwebapi/pmresapi.c:115: = undefined reference to = `MHD_create_response_from_fd_at_offset'

collect2: = ld returned 1 exit status

make[3]: = *** [pmwebd] Error 1

make[2]: = *** [default_pcp] Error 2

make[2]: = Leaving directory = `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8/src'

make[1]: = *** [default_pcp] Error 2

make[1]: = Leaving directory = `/home/nflx-kernel-tunablestest/dev/build/deb/pcp-3.9.8'

make: *** = [build-stamp] Error 2

dpkg-buildpa= ckage: error: debian/rules build gave error exit status = 2

---

 <= /o:p>

Also, do = you recommend installing PCP on the system as deb packages or from = tarball. Somehow installing from deb packages generated by the build on = ubuntu precise (when using trusty repository) was causing inconsistent = results.

-- =

Thanks,=

 <= /o:p>

Amer = Ather

Cloud = Performance Engineering



 

-- =

Thanks,

 

Amer Ather

Cloud Performance = Engineering

------=_NextPart_000_049F_01CFA3EE.0538DBB0-- From fche@redhat.com Sun Jul 20 13:44:02 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id B05CD7F53 for ; Sun, 20 Jul 2014 13:44:02 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 9EB058F8039 for ; Sun, 20 Jul 2014 11:44:02 -0700 (PDT) X-ASG-Debug-ID: 1405881837-04cb6c0351a6f40001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id o13rPRJcD2w13a1H (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sun, 20 Jul 2014 11:43:58 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6KIhpuB022879 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 20 Jul 2014 14:43:51 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6KIhpuJ014036; Sun, 20 Jul 2014 14:43:51 -0400 Received: by fche.csb (Postfix, from userid 2569) id 549BF584EA; Sun, 20 Jul 2014 14:43:50 -0400 (EDT) To: "Ken McDonell" Cc: "'Amer Ather'" , pcp@oss.sgi.com Subject: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] References: <049e01cfa39a$33877480$9a965d80$@internode.on.net> X-ASG-Orig-Subj: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] From: fche@redhat.com (Frank Ch. Eigler) Date: Sun, 20 Jul 2014 14:43:50 -0400 In-Reply-To: <049e01cfa39a$33877480$9a965d80$@internode.on.net> (Ken McDonell's message of "Sun, 20 Jul 2014 07:41:15 +1000") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405881838 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi - I pushed a patch to fche/pmwebd to use the pkgconfig system to extract a hand-built libmicrohttpd install's include/lib directories. This should work even if the system's libmicrohttpd is in the way and is too old. commit 2429f77a3e5a0f74b6a55d827661cbd3f1bbfb4a Author: Frank Ch. Eigler Date: Sun Jul 20 14:39:45 2014 -0400 pmwebd: switch to pkgconfig configury to extract cflags/libs paths This allows hand-built copies of libmicrohttpd to be used for building pmwebd. It may require the user to configure pcp with the $PKG_CONFIG_PATH environment variable and run with $LD_LIBRARY_PATH. For example, if one hand-builds libmicrohttpd into /usr/local, set export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig export LD_LIBRARY_PATH=/usr/local/lib before configure / make / run. - FChE From aather@netflix.com Sun Jul 20 16:10:58 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id AC5227F53 for ; Sun, 20 Jul 2014 16:10:56 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 3C6B1AC001 for ; Sun, 20 Jul 2014 14:10:53 -0700 (PDT) X-ASG-Debug-ID: 1405890648-04cb6c0350aae70001-S8gJnT Received: from mail-ie0-f174.google.com (mail-ie0-f174.google.com [209.85.223.174]) by cuda.sgi.com with ESMTP id DaSFLFceg86tGscE (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Sun, 20 Jul 2014 14:10:48 -0700 (PDT) X-Barracuda-Envelope-From: aather@netflix.com X-Barracuda-Apparent-Source-IP: 209.85.223.174 Received: by mail-ie0-f174.google.com with SMTP id rp18so6252676iec.33 for ; Sun, 20 Jul 2014 14:10:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Kw3Gi6k2eyoDOz88gtgOlDbAx3Ko89rd1CC+RZyw4Jk=; b=lY0UXrrl7at21b5nPJyaXJIcM1h1yIGVskdRL31Bq2Fh5naLplxGAw79rUUQWrRc5C mLPMLmA19QZ25AcTHOk+NFluvd0jiI4iMQRqGCE7rtuFdBinKqXUzPztN7XhgaZ4Fgfv rm6B3Hz4jYGzYdYhgHkThR3FnENAmuv6QmdbA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=Kw3Gi6k2eyoDOz88gtgOlDbAx3Ko89rd1CC+RZyw4Jk=; b=hkIPuAdaYLXFB9qxzzxbs8pzhoUmnNoI/GfCAuwrXrCLF5yCGhMPzgVKh5w0/XBO/D CyFBawuUNwbAFGBFwjbSvPerpwWHa7wHVIMCdnbbJiZ61RO0Z7oX2/Z8Uy64xYQ3dZqr 4RYh7Wpbu+1QjjBOHQO5jL+c6prPqIlafSldrh6caSTFOoj4gGu0QVlPIUejYwrvuMBS x1gm73URChgIfoE4BDBu9fgbtRVLnOt09CidJ9US+zBFK1ygaFVvxmqNiairi8M76yvw 1vs42+SA0qa9taM5omj2Fth6406uDgoprfJb2nuuCtEpp41aXMLpnmerv0hlQOun6Jzu vR6Q== X-Gm-Message-State: ALoCoQkvtRAf9QrXiYyl1H68k2JCxrejBsGUZQ80QILrbAuqaeSz8hMzKggNShjIe3vgw/VfWKEU MIME-Version: 1.0 X-Received: by 10.42.20.71 with SMTP id f7mr7186765icb.71.1405890647792; Sun, 20 Jul 2014 14:10:47 -0700 (PDT) Received: by 10.64.113.70 with HTTP; Sun, 20 Jul 2014 14:10:47 -0700 (PDT) In-Reply-To: References: <049e01cfa39a$33877480$9a965d80$@internode.on.net> Date: Sun, 20 Jul 2014 14:10:47 -0700 Message-ID: Subject: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] From: Amer Ather X-ASG-Orig-Subj: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] To: "Frank Ch. Eigler" , Martin Spier Cc: Ken McDonell , pcp@oss.sgi.com Content-Type: multipart/alternative; boundary=20cf302922d2a7c06504fea66cc4 X-Barracuda-Connect: mail-ie0-f174.google.com[209.85.223.174] X-Barracuda-Start-Time: 1405890648 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7656 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --20cf302922d2a7c06504fea66cc4 Content-Type: text/plain; charset=UTF-8 Frank and Ken, Thanks for the efforts. I appreciate it. I am on vacation and travelling. Sending this email from Dubai. I cc: Martin Spier (our UI person), who will follow the instructions and build on Precise. Ubuntu Precise is in production and Trusty will become a candidate in few months. It is, however, takes some times a year before internal teams start migrating their apps on the new releases. Amer. On Sun, Jul 20, 2014 at 11:43 AM, Frank Ch. Eigler wrote: > > Hi - > > I pushed a patch to fche/pmwebd to use the pkgconfig system to extract > a hand-built libmicrohttpd install's include/lib directories. This > should work even if the system's libmicrohttpd is in the way and is > too old. > > commit 2429f77a3e5a0f74b6a55d827661cbd3f1bbfb4a > Author: Frank Ch. Eigler > Date: Sun Jul 20 14:39:45 2014 -0400 > > pmwebd: switch to pkgconfig configury to extract cflags/libs paths > > This allows hand-built copies of libmicrohttpd to be used for building > pmwebd. It may require the user to configure pcp with the > $PKG_CONFIG_PATH environment variable and run with $LD_LIBRARY_PATH. > > For example, if one hand-builds libmicrohttpd into /usr/local, set > > export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig > export LD_LIBRARY_PATH=/usr/local/lib > > before configure / make / run. > > > - FChE > -- Thanks, Amer Ather Cloud Performance Engineering My Location --20cf302922d2a7c06504fea66cc4 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Frank and Ken,

Thanks for the efforts. = I appreciate it. I am on vacation and travelling. Sending this email from D= ubai. I =C2=A0cc: Martin Spier (our UI person), who will follow the instruc= tions and build on Precise. Ubuntu Precise is in production and Trusty will= become a candidate in few months. It is, however, takes some times a year = before internal teams start migrating their apps on the new releases.=C2=A0=

Amer.


On Sun, Jul 20, 2014 at 11:43 AM, Frank Ch. Eigler = <= fche@redhat.com> wrote:

Hi -

I pushed a patch to fche/pmwebd to use the pkgconfig system to extract
a hand-built libmicrohttpd install's include/lib directories. =C2=A0Thi= s
should work even if the system's libmicrohttpd is in the way and is
too old.

commit 2429f77a3e5a0f74b6a55d827661cbd3f1bbfb4a
Author: Frank Ch. Eigler <fche@redhat= .com>
Date: =C2=A0 Sun Jul 20 14:39:45 2014 -0400

=C2=A0 =C2=A0 pmwebd: switch to pkgconfig configury to extract cflags/libs = paths

=C2=A0 =C2=A0 This allows hand-built copies of libmicrohttpd to be used for= building
=C2=A0 =C2=A0 pmwebd. =C2=A0It may require the user to configure pcp with t= he
=C2=A0 =C2=A0 $PKG_CONFIG_PATH environment variable and run with $LD_LIBRAR= Y_PATH.

=C2=A0 =C2=A0 For example, if one hand-builds libmicrohttpd into /usr/local= , set

=C2=A0 =C2=A0 =C2=A0 export PKG_CONFIG_PATH=3D/usr/local/lib/pkgconfig
=C2=A0 =C2=A0 =C2=A0 export LD_LIBRARY_PATH=3D/usr/local/lib

=C2=A0 =C2=A0 before configure / make / run.


- FChE



--
Thanks,

Amer Ather
Cloud Performance Engi= neering
--20cf302922d2a7c06504fea66cc4-- From kenj@kenj.com.au Sun Jul 20 16:14:26 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id AC14F7F53 for ; Sun, 20 Jul 2014 16:14:26 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 9B1A1304048 for ; Sun, 20 Jul 2014 14:14:26 -0700 (PDT) X-ASG-Debug-ID: 1405890859-04cbb064e5bc420001-S8gJnT Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id owQovQRtFe1RBOZJ for ; Sun, 20 Jul 2014 14:14:20 -0700 (PDT) X-Barracuda-Envelope-From: kenj@kenj.com.au X-Barracuda-Apparent-Source-IP: 150.101.137.141 Received: from ppp121-44-23-106.lns20.syd6.internode.on.net (HELO bozo-vm.localdomain) ([121.44.23.106]) by ipmail04.adl6.internode.on.net with ESMTP; 21 Jul 2014 06:44:18 +0930 Received: by bozo-vm.localdomain (Postfix, from userid 1000) id A5C42A3054; Mon, 21 Jul 2014 07:14:14 +1000 (EST) To: pcp@oss.sgi.com Subject: pcp updates - small tweak for makefile rules Message-Id: <20140720211414.A5C42A3054@bozo-vm.localdomain> X-ASG-Orig-Subj: pcp updates - small tweak for makefile rules Date: Mon, 21 Jul 2014 07:14:14 +1000 (EST) From: kenj@kenj.com.au (Ken McDonell) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1405890859 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7656 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Changes committed to git://oss.sgi.com/kenj/pcp.git dev src/include/builddefs.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 9a524dadba9e88e34914c37ec0996852eb041bb2 Author: Ken McDonell Date: Mon Jul 21 07:09:12 2014 +1000 DOMAIN_MAKERULE - tweak boolean logic rule ends with ... || rm -f $@ && false which was causing a build failure for every PMDA after a make clean and trying to run make from the top of the src tree. Changed this to ... || ( rm -f $@ && false ) to enforce the intended precedence of the || and && operators From dsmith@redhat.com Mon Jul 21 10:43:49 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 34F3F7F66 for ; Mon, 21 Jul 2014 10:43:49 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 154AF8F8035 for ; Mon, 21 Jul 2014 08:43:45 -0700 (PDT) X-ASG-Debug-ID: 1405957423-04cbb064e6e4970001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id UVE7YrTfj4d4zi4G (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 21 Jul 2014 08:43:44 -0700 (PDT) X-Barracuda-Envelope-From: dsmith@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6LFhhHL020296 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Jul 2014 11:43:43 -0400 Received: from t540p.usersys.redhat.com (dhcp-10-15-1-109.hsv.redhat.com [10.15.1.109]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6LFhgJH029330 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Mon, 21 Jul 2014 11:43:43 -0400 Message-ID: <53CD352E.8030101@redhat.com> Date: Mon, 21 Jul 2014 10:43:42 -0500 From: David Smith User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: William Cohen , Systemtap List , pcp Subject: Re: [pcp] systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <53C98D38.7080703@redhat.com> X-ASG-Orig-Subj: Re: [pcp] systemtap/pcp integration In-Reply-To: <53C98D38.7080703@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405957424 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/18/2014 04:10 PM, William Cohen wrote: > Hi David, > > I was able to get this to work on RHEL 7. However, on fedora20 the mmvdump > gets a sigsegv in the dump() function. Thanks for the bug report. I believe I just fixed this one, so after updating let me know if it doesn't work for you. -- David Smith dsmith@redhat.com Red Hat http://www.redhat.com 256.217.0141 (direct) 256.837.0057 (fax) From wcohen@redhat.com Mon Jul 21 10:54:49 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id A760C7F4E for ; Mon, 21 Jul 2014 10:54:49 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 86C6B304075 for ; Mon, 21 Jul 2014 08:54:46 -0700 (PDT) X-ASG-Debug-ID: 1405958084-04cbb064e4e5280001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id I6sXOtogLJtTJBuk (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 21 Jul 2014 08:54:45 -0700 (PDT) X-Barracuda-Envelope-From: wcohen@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6LFsh2P029655 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Jul 2014 11:54:44 -0400 Received: from [10.13.129.214] (dhcp129-214.rdu.redhat.com [10.13.129.214]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6LFsgbq009166; Mon, 21 Jul 2014 11:54:42 -0400 Message-ID: <53CD37C2.1060705@redhat.com> Date: Mon, 21 Jul 2014 11:54:42 -0400 From: William Cohen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: David Smith , Systemtap List , pcp Subject: Re: [pcp] systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <53C98D38.7080703@redhat.com> <53CD352E.8030101@redhat.com> X-ASG-Orig-Subj: Re: [pcp] systemtap/pcp integration In-Reply-To: <53CD352E.8030101@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405958085 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/21/2014 11:43 AM, David Smith wrote: > On 07/18/2014 04:10 PM, William Cohen wrote: >> Hi David, >> >> I was able to get this to work on RHEL 7. However, on fedora20 the mmvdump >> gets a sigsegv in the dump() function. > > Thanks for the bug report. I believe I just fixed this one, so after > updating let me know if it doesn't work for you. > Hi David, That fix made fedora 20 happy. In one window did: $ ./systemtap_write/install/bin/stap mmv.stp instances: 0, 1 indom: 0 metrics: 0, 1, 2 In another ran the mmvdump from pcp: $ ./mmvdump /proc/systemtap/stap_cb2f18a783870e1474713324d01a25f_25939/mmv MMV file = /proc/systemtap/stap_cb2f18a783870e1474713324d01a25f_25939/mmv Version = 1 Generated = 769479 TOC count = 5 Cluster = 42 Process = 0 Flags = 0x0 TOC[0]: offset 40, indoms offset 1848 (1 entries) [1/1848] 2 instances, starting at offset 152 shorttext=We can be heroes helptext=Set of instances from zero to hero TOC[1]: offset 56, instances offset 152 (2 entries) [1/152] instance = [0 or "zero"] [1/232] instance = [1 or "hero"] TOC[2]: toc offset 72, metrics offset 1880 (3 entries) [1/1880] counter type=64-bit int (0x2), sem=counter (0x1), pad=0x0 units=count (no indom) shorttext=Example counter metric helptext=Yep, a test counter metric [2/1984] instant type=64-bit int (0x2), sem=instant (0x3), pad=0x0 units= (no indom) shorttext=Example instant metric helptext=Yep, a test instantaneous metric [3/2088] indom type=64-bit int (0x2), sem=discrete (0x4), pad=0x0 units= indom=1 (no shorttext) (no helptext) TOC[3]: offset 88, values offset 2192 (4 entries) [1/2192] counter = 0 [2/2224] instant = 325 [3/2256] indom[0 or "zero"] = 0 [3/2288] indom[0 or "zero"] = 0 TOC[4]: offset 104, string offset 312 (6 entries) [1/312] We can be heroes [2/568] Set of instances from zero to hero [3/824] Example counter metric [4/1080] Yep, a test counter metric [5/1336] Example instant metric [6/1592] Yep, a test instantaneous metric -Will From noreply@release.debian.org Mon Jul 21 11:39:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 44F557F3F for ; Mon, 21 Jul 2014 11:39:33 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 24F6E8F8037 for ; Mon, 21 Jul 2014 09:39:29 -0700 (PDT) X-ASG-Debug-ID: 1405960768-04cbb064e5e7a30001-S8gJnT Received: from picconi.debian.org (picconi.debian.org [5.153.231.3]) by cuda.sgi.com with ESMTP id GLs0H4qHF4QlbIPs (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for ; Mon, 21 Jul 2014 09:39:28 -0700 (PDT) X-Barracuda-Envelope-From: noreply@release.debian.org X-Barracuda-Apparent-Source-IP: 5.153.231.3 Received: from mailly.debian.org ([2001:41b8:202:deb:6564:a62:52c3:4b72]) from C=NA,ST=NA,L=Ankh Morpork,O=Debian SMTP,OU=Debian SMTP CA,CN=mailly.debian.org,EMAIL=hostmaster@mailly.debian.org (verified) by picconi.debian.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from ) id 1X9GcZ-000143-8J for pcp@packages.debian.org; Mon, 21 Jul 2014 16:39:27 +0000 Received: from franck.debian.org ([138.16.160.12]) from C=NA,ST=NA,L=Ankh Morpork,O=Debian SMTP,OU=Debian SMTP CA,CN=franck.debian.org,EMAIL=hostmaster@franck.debian.org (verified) by mailly.debian.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from ) id 1X9GcT-0005sN-DD; Mon, 21 Jul 2014 16:39:21 +0000 Received: from release by franck.debian.org with local (Exim 4.80) (envelope-from ) id 1X9GcQ-0006Fr-2b; Mon, 21 Jul 2014 16:39:18 +0000 From: Debian testing watch Precedence: bulk X-Trille: 0.120315.1711 Subject: pcp 3.9.8 MIGRATED to testing X-Testing-Watch-Package: pcp X-ASG-Orig-Subj: pcp 3.9.8 MIGRATED to testing X-Testing-Watch-Version: 3.9.8 To: pcp@packages.debian.org Message-Id: Sender: Release Managers Date: Mon, 21 Jul 2014 16:39:18 +0000 Delivered-To: pcp@packages.debian.org X-Barracuda-Connect: picconi.debian.org[5.153.231.3] X-Barracuda-Start-Time: 1405960768 X-Barracuda-Encrypted: AES128-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7684 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header FYI: The status of the pcp source package in Debian's testing distribution has changed. Previous version: 3.9.1 Current version: 3.9.8 -- This email is automatically generated once a day. As the installation of new packages into testing happens multiple times a day you will receive later changes on the next day. See https://release.debian.org/testing-watch/ for more information. From nscott@redhat.com Mon Jul 21 20:32:32 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 0310B7F55 for ; Mon, 21 Jul 2014 20:32:32 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id E4F628F8033 for ; Mon, 21 Jul 2014 18:32:28 -0700 (PDT) X-ASG-Debug-ID: 1405992743-04cb6c0350f1540001-S8gJnT Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by cuda.sgi.com with ESMTP id ViWcojn83LtB7oWr for ; Mon, 21 Jul 2014 18:32:23 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.25 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6M1WM8V021667; Mon, 21 Jul 2014 21:32:22 -0400 Date: Mon, 21 Jul 2014 21:32:22 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: David Smith Cc: Systemtap List , pcp Message-ID: <861139755.14608867.1405992742567.JavaMail.zimbra@redhat.com> In-Reply-To: <53C83CB9.3020808@redhat.com> References: <53C83CB9.3020808@redhat.com> Subject: Re: [pcp] systemtap/pcp integration MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] systemtap/pcp integration Content-Type: multipart/mixed; boundary="----=_Part_14608865_1230919135.1405992742565" X-Originating-IP: [10.5.82.12] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: systemtap/pcp integration Thread-Index: KuIW0X65/Zab8NmLFyw42gux7XHrsQ== X-Barracuda-Connect: mx4-phx2.redhat.com[209.132.183.25] X-Barracuda-Start-Time: 1405992743 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7700 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain ------=_Part_14608865_1230919135.1405992742565 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi David, ----- Original Message ----- > [...] > Note that systemtap will create a file called 'mmv' in > /proc/systemtap/{MODULE_NAME}. I've just been using pcp's 'mmvdump' > utility to dump the contents of the /proc/systemtap/{MODULE_NAME}/mmv > file. Currently the pcp mmv pmda only looks in one place for mmv files, > but it might be possible to create a symbolic link to systemtap's mmv > file to make it happy. (OOC, what's {MODULE_NAME} in this context?) A symlink would sorta work but it feels like a bit of a workaround - the PMDA is written to be able to detect arrival/departure of new MMV files based on changes in a directory (and the location of that directory is parameterised via /etc/pcp.conf variables). I'd not recommend trying to find it within a stap script ... I imagine it will be cleaner if we go for separate user/kernel locations for MMV files. Attached patch (lightly tested) implements the PCP side of things with that in mind - with this patch (and making the kernel code manage the lifecycle of separate /proc/mmv/* entries), things should begin to work out-of-the-box (the MMV PMDA is already default-enabled in the default pmcd config file, so everything else is in place for you). It also occurs to me that there's not really anything systemtap-specific about the kernel MMV instrumentation you've done, or is there? A device driver author might want to instrument her code, for example, without needing a stap install/script...? It would be worth thinking about if the MMV bits in your script could become a more general kernel module for others to use too (in addition to stap, of course!). The extremely lightweight nature of the interface is such that it can be permanently enabled (that's certainly how the userspace MMV is used). Nice work anyway ... I'm looking forward to seeing the code in wider use. Oh, to use the attached patch with PCP tools - apply to a "dev" PCP tree (git.performancecopilot.org/pcp), build, cd src/pmdas/mmv/src, and ... $ pminfo -L -Kclear -Kadd,70,./pmda_mmv.so,mmv_init mmv ... will serve as a quick sanity test that the metrics are functioning. You can also use gdb on /usr/bin/pminfo to inspect behaviour of the PMDA. Once thats going, installing it properly ('make install') and restarting the pmcd service should get you a fully-functional PCP setup with your kernel code firing on all cylinders (pmchart, pmie, everything will work at that point). cheers. -- Nathan ------=_Part_14608865_1230919135.1405992742565 Content-Type: text/x-patch; name=proc-mmv.patch Content-Disposition: attachment; filename=proc-mmv.patch Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9wbWRhcy9tbXYvc3JjL21tdi5jIGIvc3JjL3BtZGFzL21tdi9zcmMv bW12LmMKaW5kZXggZjNlZjI2Zi4uOTJjZDRlMSAxMDA2NDQKLS0tIGEvc3JjL3BtZGFzL21tdi9z cmMvbW12LmMKKysrIGIvc3JjL3BtZGFzL21tdi9zcmMvbW12LmMKQEAgLTQyLDE1ICs0MiwyMSBA QCBzdGF0aWMgaW50IGluY250OwogCiBzdGF0aWMgaW50IHJlbG9hZDsKIHN0YXRpYyBfX3BtbnNU cmVlICogcG1uczsKLXN0YXRpYyBpbnQgc3RhdHNkaXJfY29kZTsJCS8qIGxhc3Qgc3RhdHNkaXIg c3RhdCBjb2RlICovCi1zdGF0aWMgdGltZV90IHN0YXRzZGlyX3RzOwkJLyogbGFzdCBzdGF0c2Rp ciB0aW1lc3RhbXAgKi8KIHN0YXRpYyBjaGFyICogcHJlZml4ID0gIm1tdiI7CiAKIHN0YXRpYyBj aGFyICogcGNwdG1wZGlyOwkJLyogcHJvYmFibHkgL3Zhci90bXAgKi8KIHN0YXRpYyBjaGFyICog cGNwdmFyZGlyOwkJLyogcHJvYmFibHkgL3Zhci9wY3AgKi8KIHN0YXRpYyBjaGFyICogcGNwcG1k YXNkaXI7CQkvKiBwcm9iYWJseSAvdmFyL3BjcC9wbWRhcyAqLwogc3RhdGljIGNoYXIgcG1uc2Rp cltNQVhQQVRITEVOXTsJLyogcGNwdmFyZGlyL3BtbnMgKi8KLXN0YXRpYyBjaGFyIHN0YXRzZGly W01BWFBBVEhMRU5dOwkvKiBwY3B0bXBkaXIvPHByZWZpeD4gKi8KKwordHlwZWRlZiBzdHJ1Y3Qg eworICAgIGNoYXIJcGF0aFtNQVhQQVRITEVOXTsKKyAgICBpbnQJCXN0YXR1czsJCQkvKiBsYXN0 IHN0YXRzZGlyIHN0YXQgcmV0dXJuIGNvZGUgKi8KKyAgICB0aW1lX3QJdGltZXN0YW1wOwkJLyog bGFzdCBzdGF0c2RpciBtb2RpZnkgdGltZXN0YW1wICovCit9IHN0YXRzZGlyX3Q7CisKK3N0YXRp YyBzdGF0c2Rpcl90IHNkaXJsaXN0WzJdOwkJLyogdXNlcnNwYWNlIGFuZCBrZXJuZWwgTU1WIGZp bGVzICovCisjZGVmaW5lIFNESVJDT1VOVCAoc2l6ZW9mKHNkaXJsaXN0KS9zaXplb2Yoc2Rpcmxp c3RbMF0pKQogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgY2hhciAqCW5hbWU7CQkJLyogc3RyZHVw IGNsaWVudCBuYW1lICovCkBAIC0zNjQsMTMgKzM3MCw0NCBAQCBjcmVhdGVfaW5kb20ocG1kYUV4 dCAqcG1kYSwgc3RhdHNfdCAqcywgbW12X2Rpc2tfaW5kb21fdCAqaWQsIHBtSW5Eb20gaW5kb20p CiAgICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQKK2NyZWF0ZV9jbGllbnRfc3RhdGRpcihz dGF0c2Rpcl90ICpzdGF0c2RpcikKK3sKKyAgICBzdHJ1Y3QgZGlyZW50ICoqZmlsZXM7CisgICAg aW50IG5lZWRfcmVsb2FkID0gMDsKKyAgICBpbnQgaSwgbnVtOworCisgICAgbnVtID0gc2NhbmRp cihzdGF0c2Rpci0+cGF0aCwgJmZpbGVzLCBOVUxMLCBOVUxMKTsKKyAgICBmb3IgKGkgPSAwOyBp IDwgbnVtOyBpKyspIHsKKwlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworCWNoYXIgcGF0aFtNQVhQQVRI TEVOXTsKKwljaGFyICpjbGllbnQ7CisKKwlpZiAoZmlsZXNbaV0tPmRfbmFtZVswXSA9PSAnLicp CisJICAgIGNvbnRpbnVlOworCisJY2xpZW50ID0gZmlsZXNbaV0tPmRfbmFtZTsKKwlzcHJpbnRm KHBhdGgsICIlcyVjJXMiLCBzdGF0c2Rpci0+cGF0aCwgX19wbVBhdGhTZXBhcmF0b3IoKSwgY2xp ZW50KTsKKworCWlmIChzdGF0KHBhdGgsICZzdGF0YnVmKSA+PSAwICYmIFNfSVNSRUcoc3RhdGJ1 Zi5zdF9tb2RlKSkKKwkgICAgaWYgKGNyZWF0ZV9jbGllbnRfc3RhdChjbGllbnQsIHBhdGgsIHN0 YXRidWYuc3Rfc2l6ZSkgPT0gLUVBR0FJTikKKwkJbmVlZF9yZWxvYWQgPSAxOworICAgIH0KKwor ICAgIGZvciAoaSA9IDA7IGkgPCBudW07IGkrKykKKwlmcmVlKGZpbGVzW2ldKTsKKyAgICBpZiAo bnVtID4gMCkKKwlmcmVlKGZpbGVzKTsKKworICAgIHJldHVybiBuZWVkX3JlbG9hZDsKK30KKwog c3RhdGljIHZvaWQKIG1hcF9zdGF0cyhwbWRhRXh0ICpwbWRhKQogewotICAgIHN0cnVjdCBkaXJl bnQgKipmaWxlczsKICAgICBjaGFyIG5hbWVbNjRdOwogICAgIGludCBuZWVkX3JlbG9hZCA9IDA7 Ci0gICAgaW50IGksIGosIGssIHN0cywgbnVtOworICAgIGludCBpLCBqLCBrLCBzdHM7CiAKICAg ICBpZiAocG1ucykKIAlfX3BtRnJlZVBNTlMocG1ucyk7CkBAIC00MDcsMjcgKzQ0NCw4IEBAIG1h cF9zdGF0cyhwbWRhRXh0ICpwbWRhKQogCXNjbnQgPSAwOwogICAgIH0KIAotICAgIG51bSA9IHNj YW5kaXIoc3RhdHNkaXIsICZmaWxlcywgTlVMTCwgTlVMTCk7Ci0gICAgZm9yIChpID0gMDsgaSA8 IG51bTsgaSsrKSB7Ci0Jc3RydWN0IHN0YXQgc3RhdGJ1ZjsKLQljaGFyIHBhdGhbTUFYUEFUSExF Tl07Ci0JY2hhciAqY2xpZW50OwotCi0JaWYgKGZpbGVzW2ldLT5kX25hbWVbMF0gPT0gJy4nKQot CSAgICBjb250aW51ZTsKLQotCWNsaWVudCA9IGZpbGVzW2ldLT5kX25hbWU7Ci0Jc3ByaW50Zihw YXRoLCAiJXMlYyVzIiwgc3RhdHNkaXIsIF9fcG1QYXRoU2VwYXJhdG9yKCksIGNsaWVudCk7Ci0K LQlpZiAoc3RhdChwYXRoLCAmc3RhdGJ1ZikgPj0gMCAmJiBTX0lTUkVHKHN0YXRidWYuc3RfbW9k ZSkpCi0JICAgIGlmIChjcmVhdGVfY2xpZW50X3N0YXQoY2xpZW50LCBwYXRoLCBzdGF0YnVmLnN0 X3NpemUpID09IC1FQUdBSU4pCi0JCW5lZWRfcmVsb2FkID0gMTsKLSAgICB9Ci0KLSAgICBmb3Ig KGkgPSAwOyBpIDwgbnVtOyBpKyspCi0JZnJlZShmaWxlc1tpXSk7Ci0gICAgaWYgKG51bSA+IDAp Ci0JZnJlZShmaWxlcyk7CisgICAgZm9yIChpID0gMDsgaSA8IFNESVJDT1VOVDsgaSsrKQorCW5l ZWRfcmVsb2FkICs9IGNyZWF0ZV9jbGllbnRfc3RhdGRpcigmc2Rpcmxpc3RbaV0pOwogCiAgICAg Zm9yIChpID0gMDsgc2xpc3QgJiYgaSA8IHNjbnQ7IGkrKykgewogCXN0YXRzX3QgKiBzID0gc2xp c3QgKyBpOwpAQCAtNjA5LDExICs2MjcsMzggQEAgbW12X2ZldGNoQ2FsbEJhY2socG1kYU1ldHJp YyAqbWRlc2MsIHVuc2lnbmVkIGludCBpbnN0LCBwbUF0b21WYWx1ZSAqYXRvbSkKICAgICByZXR1 cm4gMDsKIH0KIAorc3RhdGljIGludAorY2hlY2tfdGltZV9zdGF0c2RpcihzdGF0c2Rpcl90ICpz dGF0c2RpcikKK3sKKyAgICBzdHJ1Y3Qgc3RhdCBzOworICAgIGludCBuZWVkX3JlbG9hZCA9IDA7 CisKKyAgICAvKgorICAgICAqIGNoZWNrIGlmIHRoZSBkaXJlY3RvcnkgaGFzIGJlZW4gbW9kaWZp ZWQsIHJlbG9hZCBpZiBzbzsKKyAgICAgKiBub3RlIG1vZGlmaWNhdGlvbiBtYXkgaW52b2x2ZSBy ZW1vdmFsIG9yIG5ld2x5IGFwcGVhcmVkLAorICAgICAqIGEgY2hhbmdlIGluIHBlcm1pc3Npb25z IGZyb20gYWNjZXNzaWJsZSB0byBub3QgKG9yIHZpY2UtCisgICAgICogdmVyc2EpLCBhbmQgc28g b24uCisgICAgICovCisgICAgaWYgKHN0YXQoc3RhdHNkaXItPnBhdGgsICZzKSA+PSAwKSB7CisJ aWYgKHMuc3RfbXRpbWUgIT0gc3RhdHNkaXItPnRpbWVzdGFtcCkgeworCSAgICBuZWVkX3JlbG9h ZCsrOworCSAgICBzdGF0c2Rpci0+c3RhdHVzID0gMDsKKwkgICAgc3RhdHNkaXItPnRpbWVzdGFt cCA9IHMuc3RfbXRpbWU7CisJfQorICAgIH0gZWxzZSB7CisJaWYgKHN0YXRzZGlyLT5zdGF0dXMg IT0gb3NlcnJvcigpKSB7CisJICAgIHN0YXRzZGlyLT5zdGF0dXMgPSBvc2Vycm9yKCk7CisJICAg IHN0YXRzZGlyLT50aW1lc3RhbXAgPSAwOworCSAgICBuZWVkX3JlbG9hZCsrOworCX0KKyAgICB9 CisgICAgcmV0dXJuIG5lZWRfcmVsb2FkOworfQorCiBzdGF0aWMgdm9pZAogbW12X3JlbG9hZF9t YXliZShwbWRhRXh0ICpwbWRhKQogewogICAgIGludCBpOwotICAgIHN0cnVjdCBzdGF0IHM7CiAg ICAgaW50IG5lZWRfcmVsb2FkID0gcmVsb2FkOwogCiAgICAgLyogY2hlY2sgaWYgZ2VuZXJhdGlv biBudW1iZXJzIGNoYW5nZWQgb3IgbW9uaXRvcmVkIHByb2Nlc3MgZXhpdGVkICovCkBAIC02Mjks MjYgKzY3NCw4IEBAIG1tdl9yZWxvYWRfbWF5YmUocG1kYUV4dCAqcG1kYSkKIAl9CiAgICAgfQog Ci0gICAgLyoKLSAgICAgKiBjaGVjayBpZiB0aGUgZGlyZWN0b3J5IGhhcyBiZWVuIG1vZGlmaWVk LCByZWxvYWQgaWYgc287Ci0gICAgICogbm90ZSBtb2RpZmljYXRpb24gbWF5IGludm9sdmUgcmVt b3ZhbCBvciBuZXdseSBhcHBlYXJlZCwKLSAgICAgKiBhIGNoYW5nZSBpbiBwZXJtaXNzaW9ucyBm cm9tIGFjY2Vzc2libGUgdG8gbm90IChvciB2aWNlLQotICAgICAqIHZlcnNhKSwgYW5kIHNvIG9u LgotICAgICAqLwotICAgIGlmIChzdGF0KHN0YXRzZGlyLCAmcykgPj0gMCkgewotCWlmIChzLnN0 X210aW1lICE9IHN0YXRzZGlyX3RzKSB7Ci0JICAgIG5lZWRfcmVsb2FkKys7Ci0JICAgIHN0YXRz ZGlyX2NvZGUgPSAwOwotCSAgICBzdGF0c2Rpcl90cyA9IHMuc3RfbXRpbWU7Ci0JfQotICAgIH0g ZWxzZSB7Ci0JaSA9IG9zZXJyb3IoKTsKLQlpZiAoc3RhdHNkaXJfY29kZSAhPSBpKSB7Ci0JICAg IHN0YXRzZGlyX2NvZGUgPSBpOwotCSAgICBzdGF0c2Rpcl90cyA9IDA7Ci0JICAgIG5lZWRfcmVs b2FkKys7Ci0JfQotICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwgU0RJUkNPVU5UOyBpKyspCisJ bmVlZF9yZWxvYWQgKz0gY2hlY2tfdGltZV9zdGF0c2Rpcigmc2Rpcmxpc3RbaV0pOwogCiAgICAg aWYgKG5lZWRfcmVsb2FkKSB7CiAJaWYgKHBtRGVidWcgJiBEQkdfVFJBQ0VfQVBQTDApCkBAIC04 MDgsNiArODM1LDcgQEAgbW12X2luaXQocG1kYUludGVyZmFjZSAqZHApCiB7CiAgICAgaW50CW07 CiAgICAgaW50IHNlcCA9IF9fcG1QYXRoU2VwYXJhdG9yKCk7CisgICAgY2hhciAqcHJvY2RpcjsK IAogICAgIGlmIChpc0RTTykgewogCXBtZGFEU08oZHAsIFBNREFfSU5URVJGQUNFXzQsICJtbXYi LCBOVUxMKTsKQEAgLTgxOCwxMiArODQ2LDE1IEBAIG1tdl9pbml0KHBtZGFJbnRlcmZhY2UgKmRw KQogICAgIHBjcHRtcGRpciA9IHBtR2V0Q29uZmlnKCJQQ1BfVE1QX0RJUiIpOwogICAgIHBjcHZh cmRpciA9IHBtR2V0Q29uZmlnKCJQQ1BfVkFSX0RJUiIpOwogICAgIHBjcHBtZGFzZGlyID0gcG1H ZXRDb25maWcoIlBDUF9QTURBU19ESVIiKTsKKyAgICBpZiAoKHByb2NkaXIgPSBnZXRlbnYoIlBS T0NfU1RBVFNQQVRIIikpID09IE5VTEwpCisJcHJvY2RpciA9ICIvcHJvYyI7CiAKLSAgICBzbnBy aW50ZihzdGF0c2Rpciwgc2l6ZW9mKHN0YXRzZGlyKSwgIiVzJWMlcyIsIHBjcHRtcGRpciwgc2Vw LCBwcmVmaXgpOwogICAgIHNucHJpbnRmKHBtbnNkaXIsIHNpemVvZihwbW5zZGlyKSwgIiVzJWMi ICJwbW5zIiwgcGNwdmFyZGlyLCBzZXApOwotICAgIHN0YXRzZGlyW3NpemVvZihzdGF0c2Rpcikt MV0gPSAnXDAnOwogICAgIHBtbnNkaXJbc2l6ZW9mKHBtbnNkaXIpLTFdID0gJ1wwJzsKIAorICAg IHNucHJpbnRmKHNkaXJsaXN0WzBdLnBhdGgsIE1BWFBBVEhMRU4tMSwgIiVzJWMlcyIsIHBjcHRt cGRpciwgc2VwLCBwcmVmaXgpOworICAgIHNucHJpbnRmKHNkaXJsaXN0WzFdLnBhdGgsIE1BWFBB VEhMRU4tMSwgIiVzJWMlcyIsIHByb2NkaXIsIHNlcCwgcHJlZml4KTsKKwogICAgIC8qIEluaXRp YWxpemUgaW50ZXJuYWwgZGlzcGF0Y2ggdGFibGUgKi8KICAgICBpZiAoZHAtPnN0YXR1cyA9PSAw KSB7CiAJLyoK ------=_Part_14608865_1230919135.1405992742565-- From kenj@internode.on.net Mon Jul 21 20:55:04 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 6B34B7F55 for ; Mon, 21 Jul 2014 20:55:04 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 4A41A8F8035 for ; Mon, 21 Jul 2014 18:55:04 -0700 (PDT) X-ASG-Debug-ID: 1405994101-04cb6c034ef2590001-S8gJnT Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id IXutlxS1s8VxCU0D for ; Mon, 21 Jul 2014 18:55:02 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmsCAM/DzVN20YDzPGdsb2JhbAANTItmw3SDFwGBLAQBAQEBOIQ6AQEEeAEQCxgJFg8JAwIBAgExFAYNAQcBAa52mCMXj0sHhEYBBI5DpGc Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail06.adl2.internode.on.net with ESMTP; 22 Jul 2014 11:25:01 +0930 Message-ID: <53CDC475.3070407@internode.on.net> Date: Tue, 22 Jul 2014 11:55:01 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: "Frank Ch. Eigler" CC: 'Amer Ather' , pcp@oss.sgi.com Subject: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] References: <049e01cfa39a$33877480$9a965d80$@internode.on.net> X-ASG-Orig-Subj: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405994101 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7701 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header On 21/07/14 04:43, Frank Ch. Eigler wrote: > > Hi - > > I pushed a patch to fche/pmwebd to use the pkgconfig system to extract > a hand-built libmicrohttpd install's include/lib directories. This > should work even if the system's libmicrohttpd is in the way and is > too old. Thanks Frank. I tried your recipe using your pcpfans tree. The build seems to proceed better with both the old and new libmicrohttpd installed, but ... 1. I still need this change or packages are not built. --- a/debian/rules +++ b/debian/rules @@ -212,7 +212,7 @@ binary-arch: checkroot build-stamp dh_perl -p $(pcp_import_sheet) dh_perl -p $(pcp_import_iostat) dh_installdeb - dh_shlibdeps 2>/dev/null # qmake doesn't allow a library list + dh_shlibdeps --exclude=pmwebd dh_gencontrol 2>/dev/null # squash the python:Versions warning dh_md5sums 2. When I try to install the resultant packages I see this (possibly unrelated) problem ... Selecting previously unselected package pcp-webapi. Unpacking pcp-webapi (from .../deb/pcp-webapi_3.9.7_amd64.deb) ... dpkg: error processing build/deb/pcp-webapi_3.9.7_amd64.deb (--install): trying to overwrite '/usr/share/pcp/jsdemos/GNUmakefile', which is also in package pcp 3.9.7 From fche@redhat.com Mon Jul 21 21:04:47 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id D41507F55 for ; Mon, 21 Jul 2014 21:04:47 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id C2CB18F8033 for ; Mon, 21 Jul 2014 19:04:44 -0700 (PDT) X-ASG-Debug-ID: 1405994683-04cb6c034ff2c10001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 5mlty2lM7t7CX4ds (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 21 Jul 2014 19:04:43 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6M24cdX002474 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Jul 2014 22:04:38 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6M24cuh024844; Mon, 21 Jul 2014 22:04:38 -0400 Received: by fche.csb (Postfix, from userid 2569) id 59F29584EA; Mon, 21 Jul 2014 22:04:37 -0400 (EDT) Date: Mon, 21 Jul 2014 22:04:37 -0400 From: "Frank Ch. Eigler" To: Ken McDonell Cc: "'Amer Ather'" , pcp@oss.sgi.com Subject: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] Message-ID: <20140722020437.GA20079@redhat.com> X-ASG-Orig-Subj: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] References: <049e01cfa39a$33877480$9a965d80$@internode.on.net> <53CDC475.3070407@internode.on.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53CDC475.3070407@internode.on.net> User-Agent: Mutt/1.4.2.2i X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405994683 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi, Ken - > [...] > The build seems to proceed better with both the old and new libmicrohttpd installed, but ... > > 1. I still need this change or packages are not built. > > [...] > - dh_shlibdeps 2>/dev/null # qmake doesn't allow a library list > + dh_shlibdeps --exclude=pmwebd > [...] In this context, it seems as though you're trying to build a .deb file whose constituents depend on the hand-built libmicrohttpd, but you don't want that hand-build libmicrohttpd dependency represented. If so, that sounds like a nasty hack (since people who install the .deb without the same hand-built libmicrohttpd would get a failure to start pmwebd). If indeed it is impossible to update the baseos libmicrohttpd on this platform, then perhaps a better solution would be to arrange to include a bundled copy of libmicrohttpd along the pcp tarball, and build/link them together. (I recall at one point, the code base -did- have a bundled libmicrohttpd for just such reasons.) Or else, for that platform only, disable pmwebd. (That could mean requring a different build for old vs. new generations of debian/ubuntu.) > 2. When I try to install the resultant packages I see this (possibly unrelated) problem ... > > Selecting previously unselected package pcp-webapi. > Unpacking pcp-webapi (from .../deb/pcp-webapi_3.9.7_amd64.deb) ... > dpkg: error processing build/deb/pcp-webapi_3.9.7_amd64.deb (--install): > trying to overwrite '/usr/share/pcp/jsdemos/GNUmakefile', which is also in package pcp 3.9.7 Just nuked the unused jsdemos/**/GNUmakefile's from the fche/pmwebd branch; please let me know if that helps. - FChE From fche@redhat.com Mon Jul 21 22:48:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id E42727F5D for ; Mon, 21 Jul 2014 22:48:22 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id C41258F8033 for ; Mon, 21 Jul 2014 20:48:22 -0700 (PDT) X-ASG-Debug-ID: 1406000897-04bdf06812115890001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id SZ4UaRNm700s81X4 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 21 Jul 2014 20:48:18 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6M2vS43007685 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Jul 2014 22:57:28 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6M2vRqd013219; Mon, 21 Jul 2014 22:57:28 -0400 Received: by fche.csb (Postfix, from userid 2569) id 443DA584EA; Mon, 21 Jul 2014 22:57:27 -0400 (EDT) To: Nathan Scott Cc: David Smith , pcp@oss.sgi.com, Systemtap List Subject: Re: systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <861139755.14608867.1405992742567.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: systemtap/pcp integration From: fche@redhat.com (Frank Ch. Eigler) Date: Mon, 21 Jul 2014 22:57:27 -0400 In-Reply-To: <861139755.14608867.1405992742567.JavaMail.zimbra@redhat.com> (Nathan Scott's message of "Mon, 21 Jul 2014 21:32:22 -0400 (EDT)") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406000898 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi, Nathan - nathans wrote: > [...] > (OOC, what's {MODULE_NAME} in this context?) It is usually a machine-generated unique identifier for the systemtap script in question, such as "stap_deadbeefdeadbeefdeadbeef_2222". It is not generally predictable in advance. (A user can override the name, but that costs possible collisions.) > [...] PMDA is written to be able to detect arrival/departure of new > MMV files based on changes in a directory (and the location of that > directory is parameterised via /etc/pcp.conf variables). [...] If we do end up sticking with this MMV approach, the PMDA would probably need to use glob(3) or similar to search for "/proc/systemtap/*/mmv" instead of "/proc/mmv/*". > It also occurs to me that there's not really anything > systemtap-specific about the kernel MMV instrumentation you've done, > or is there? [...] It would be worth thinking about if the MMV > bits in your script could become a more general kernel module for > others to use too [...] Yes, perhaps, though the path of code implementing a seemingly good idea into the kernel is rarely smooth. They generally dislike infrastructure unless it's well-yearned-for. So, if you wish to pursue this goal, some serious selling on LKML will be needed. - FChE From kenj@internode.on.net Tue Jul 22 01:32:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 17BD27F50 for ; Tue, 22 Jul 2014 01:32:33 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id A6A32AC002 for ; Mon, 21 Jul 2014 23:32:32 -0700 (PDT) X-ASG-Debug-ID: 1406010746-04bdf0681211f0e0001-S8gJnT Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id XnEVrNxUi9sN2p7C for ; Mon, 21 Jul 2014 23:32:27 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqQBADUFzlN20YDz/2dsb2JhbAANS4Q3zj4BgSeEeQEBAQMBRzEBEAsUBAkWDwkDAgECAUUGDQEFAgEBiDamZIYukXMXj0sHhEYBBLMrWg Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail07.adl2.internode.on.net with ESMTP; 22 Jul 2014 16:02:25 +0930 Message-ID: <53CE056F.5070903@internode.on.net> Date: Tue, 22 Jul 2014 16:32:15 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: "Frank Ch. Eigler" CC: 'Amer Ather' , pcp@oss.sgi.com Subject: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] References: <049e01cfa39a$33877480$9a965d80$@internode.on.net> <53CDC475.3070407@internode.on.net> <20140722020437.GA20079@redhat.com> X-ASG-Orig-Subj: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] In-Reply-To: <20140722020437.GA20079@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1406010746 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7707 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header G'day Frank. On 22/07/14 12:04, Frank Ch. Eigler wrote: > ... > In this context, it seems as though you're trying to build a .deb file > whose constituents depend on the hand-built libmicrohttpd, but you > don't want that hand-build libmicrohttpd dependency represented. If > so, that sounds like a nasty hack (since people who install the .deb > without the same hand-built libmicrohttpd would get a failure to start > pmwebd). I agree ... I am not sure what Amer's goal is, so I think we should wait for his input. Whatever the goal, I suspect it will be a local "special" for them, and not intended for general consumption. > ... > Or else, for that platform only, disable pmwebd. (That could mean > requring a different build for old vs. new generations of > debian/ubuntu.) It does not need to be special ... the existing configure magic takes care of this ... which is why I had not seen build failures on this platform before playing with hand built libmicrohttpd. > >> 2. When I try to install the resultant packages I see this (possibly unrelated) problem ... >> >> Selecting previously unselected package pcp-webapi. >> Unpacking pcp-webapi (from .../deb/pcp-webapi_3.9.7_amd64.deb) ... >> dpkg: error processing build/deb/pcp-webapi_3.9.7_amd64.deb (--install): >> trying to overwrite '/usr/share/pcp/jsdemos/GNUmakefile', which is also in package pcp 3.9.7 > > Just nuked the unused jsdemos/**/GNUmakefile's from the fche/pmwebd branch; > please let me know if that helps. No that's not the problem. I think it is this commit that's not in your tree. commit fe9e3170eda4d45906999d916b4117a300a01d0f Author: Ken McDonell Date: Thu Feb 27 08:24:33 2014 +1100 debian packaging - minor dirs control issue pcp-webapi.dirs contained the wrong directory list ... seems to have been copied from pcp-manager.dirs .. fix to match pcp-webapi package. From fche@redhat.com Tue Jul 22 06:32:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id BE3DE29DF9 for ; Tue, 22 Jul 2014 06:32:48 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5B4C7AC003 for ; Tue, 22 Jul 2014 04:32:48 -0700 (PDT) X-ASG-Debug-ID: 1406028763-04cb6c0351111c90001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id XVnUQCuaAeRfO6fX (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 04:32:44 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6MBWcPW012670 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 22 Jul 2014 07:32:38 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6MBWcNx007590; Tue, 22 Jul 2014 07:32:38 -0400 Received: by fche.csb (Postfix, from userid 2569) id 8D59558113; Tue, 22 Jul 2014 07:32:37 -0400 (EDT) Date: Tue, 22 Jul 2014 07:32:37 -0400 From: "Frank Ch. Eigler" To: Ken McDonell Cc: "'Amer Ather'" , pcp@oss.sgi.com Subject: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] Message-ID: <20140722113237.GB20079@redhat.com> X-ASG-Orig-Subj: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] References: <049e01cfa39a$33877480$9a965d80$@internode.on.net> <53CDC475.3070407@internode.on.net> <20140722020437.GA20079@redhat.com> <53CE056F.5070903@internode.on.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53CE056F.5070903@internode.on.net> User-Agent: Mutt/1.4.2.2i X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406028763 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi, Ken - > [...] > I think it is this commit that's not in your tree. That commit was actually in the branch (and I re-cherry-picked it as the only way to be sure, from orbit). - FChE From dsmith@redhat.com Tue Jul 22 09:25:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id BF02829DF9 for ; Tue, 22 Jul 2014 09:25:16 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 3EAF3AC003 for ; Tue, 22 Jul 2014 07:25:13 -0700 (PDT) X-ASG-Debug-ID: 1406039107-04cb6c034e11c000001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id kzNJh1cOGmnYLWBY (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 07:25:08 -0700 (PDT) X-Barracuda-Envelope-From: dsmith@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6MEP6BO022095 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 22 Jul 2014 10:25:07 -0400 Received: from t540p.usersys.redhat.com (vpn-54-16.rdu2.redhat.com [10.10.54.16]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6MEP2kI013213 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Tue, 22 Jul 2014 10:25:05 -0400 Message-ID: <53CE743E.9030807@redhat.com> Date: Tue, 22 Jul 2014 09:25:02 -0500 From: David Smith User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: "Frank Ch. Eigler" CC: Systemtap List , pcp Subject: Re: systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <53C94A6F.4080808@redhat.com> <20140718182751.GE20905@redhat.com> X-ASG-Orig-Subj: Re: systemtap/pcp integration In-Reply-To: <20140718182751.GE20905@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406039108 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/18/2014 01:27 PM, Frank Ch. Eigler wrote: > Hi - > > dsmith wrote: > >> [...] >>> Overall, are you happy with the general approach of reusing the exact >>> MMV format (and thus the PMDA)? >> >> [...] >> However, as I've worked with the MMV format I've come to realize its >> limitations. As Nathan has pointed out in another email, the MMV format >> is designed to only support exporting values, and isn't suited for more >> event-like tracing. As far as the more technical side of things goes, >> some of the internal offset logic might be done better/differently. > > An application of pmda/mmv & pmda/logger to the same stap module could > perhaps accomplish both goals (assuming we consider the pcp events > overengineered to the extent that supplying timestamped strings is > sufficient). Have you considered an alternative unified design? > > This reminds me of another PCP PMDA we've mentioned in the past: a > JSON fetcher/parser. We'll need something like this for a variety of > non-systemtap purposes too (interop with JSON-producing tools). What > if stap were to produce pcp metrics in the form of /proc/systemtap/* > JSON files that the PMDA would read on demand? (The cost of the > parsing overhead may be low enough not to worry about it.) A separate > generated JSON file could provide metadata. That format could be rich > enough to contain events too (mapped from arrays of string). I think a JSON fetcher/parser is a good idea. >>> At one point I suggested reworking the earlier prototype so that the >>> bulk of the MMV format's emulation would be based on tapset script >>> code (and possibly more declarative / dynamic / safe) rather than C. >>> Have you come to any conclusions about the propriety of that? >> >> I've been focused on other things, like reworking the allocation logic. >> As you describe it above, I'm not sure I see where you are headed. > > To spell it out, the idea was to encode the mmv format logic > (including metadata management) within a stap tapset script instead of > as C in the runtime. Then the C runtime would need to do nothing but > provide a memory-mapped-byte-array kind of abstraction, and a way for > the script code to read/write it (maybe a variant of > sprintf("%b...")?). Hmm. I think I see where you are going with this, but I don't know if it will work well for a couple of reasons. One is that you don't just write to this array, you have to be able to read it back (in order to shuffle things around, hook up instances to indoms, etc.). In addition, the best way to ensure that a client can read the data produced by the mmv stuff is to use the same header file so we know the data is laid out the same way. -- David Smith dsmith@redhat.com Red Hat http://www.redhat.com 256.217.0141 (direct) 256.837.0057 (fax) From dsmith@redhat.com Tue Jul 22 09:50:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0CEDF29DF9 for ; Tue, 22 Jul 2014 09:50:30 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 9F69AAC003 for ; Tue, 22 Jul 2014 07:50:29 -0700 (PDT) X-ASG-Debug-ID: 1406040624-04bdf068131421b0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id NVSwpnuXFJcyrBGk (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 07:50:25 -0700 (PDT) X-Barracuda-Envelope-From: dsmith@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6MEoO5p027605 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 22 Jul 2014 10:50:24 -0400 Received: from t540p.usersys.redhat.com (vpn-54-16.rdu2.redhat.com [10.10.54.16]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6MEoNTV031383 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Tue, 22 Jul 2014 10:50:24 -0400 Message-ID: <53CE7A2E.6010306@redhat.com> Date: Tue, 22 Jul 2014 09:50:22 -0500 From: David Smith User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Nathan Scott CC: Systemtap List , pcp Subject: Re: [pcp] systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <861139755.14608867.1405992742567.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: [pcp] systemtap/pcp integration In-Reply-To: <861139755.14608867.1405992742567.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406040625 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/21/2014 08:32 PM, Nathan Scott wrote: > Hi David, > > ----- Original Message ----- >> [...] >> Note that systemtap will create a file called 'mmv' in >> /proc/systemtap/{MODULE_NAME}. I've just been using pcp's 'mmvdump' >> utility to dump the contents of the /proc/systemtap/{MODULE_NAME}/mmv >> file. Currently the pcp mmv pmda only looks in one place for mmv files, >> but it might be possible to create a symbolic link to systemtap's mmv >> file to make it happy. > > (OOC, what's {MODULE_NAME} in this context?) As Frank mentioned, {MODULE_NAME} is the name of the module, usually autogenerated. > A symlink would sorta work but it feels like a bit of a workaround - the > PMDA is written to be able to detect arrival/departure of new MMV files > based on changes in a directory (and the location of that directory is > parameterised via /etc/pcp.conf variables). I'd not recommend trying to > find it within a stap script ... I imagine it will be cleaner if we go > for separate user/kernel locations for MMV files. The symlink feels like a bit of a workaround, because it *is* one. Long term we certainly want a better way to find the systemtap MMV files. > Attached patch (lightly tested) implements the PCP side of things with > that in mind - with this patch (and making the kernel code manage the > lifecycle of separate /proc/mmv/* entries), things should begin to work > out-of-the-box (the MMV PMDA is already default-enabled in the default > pmcd config file, so everything else is in place for you). This code sounds like a step in the right direction. Thanks. -- David Smith dsmith@redhat.com Red Hat http://www.redhat.com 256.217.0141 (direct) 256.837.0057 (fax) From fche@redhat.com Tue Jul 22 10:21:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 18C3329DF9 for ; Tue, 22 Jul 2014 10:21:38 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 06F8C30406B for ; Tue, 22 Jul 2014 08:21:34 -0700 (PDT) X-ASG-Debug-ID: 1406042490-04cbb064e6137bf0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id C2Tne0NE4a68SMwn (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 08:21:31 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6MFLTCx027894 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 22 Jul 2014 11:21:30 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6MFLSZO026613; Tue, 22 Jul 2014 11:21:29 -0400 Received: by fche.csb (Postfix, from userid 2569) id 3652058113; Tue, 22 Jul 2014 11:21:28 -0400 (EDT) Date: Tue, 22 Jul 2014 11:21:27 -0400 From: "Frank Ch. Eigler" To: David Smith Cc: Systemtap List , pcp Subject: Re: systemtap/pcp integration Message-ID: <20140722152127.GC20079@redhat.com> X-ASG-Orig-Subj: Re: systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <53C94A6F.4080808@redhat.com> <20140718182751.GE20905@redhat.com> <53CE743E.9030807@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53CE743E.9030807@redhat.com> User-Agent: Mutt/1.4.2.2i X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406042491 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi, David - > [...] > I think a JSON fetcher/parser is a good idea. Good enough to redirect from MMV? > [...] > > To spell it out, the idea was to encode the mmv format logic > > (including metadata management) within a stap tapset script instead of > > as C in the runtime. Then the C runtime would need to do nothing but > > provide a memory-mapped-byte-array kind of abstraction, and a way for > > the script code to read/write it (maybe a variant of > > sprintf("%b...")?). > > Hmm. I think I see where you are going with this, but I don't know if it > will work well for a couple of reasons. One is that you don't just write > to this array, you have to be able to read it back (in order to shuffle > things around, hook up instances to indoms, etc.). (Not if the stap tapset just rewrites the whole metadata if necessary.) > In addition, the best way to ensure that a client can read the data > produced by the mmv stuff is to use the same header file so we know > the data is laid out the same way. Right ... though since MMV is a fixed ABI, a completely separate implementation would help test the robustness of its specification. - FChE From brolley@redhat.com Tue Jul 22 14:21:56 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id B5E647F3F for ; Tue, 22 Jul 2014 14:21:56 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id A3D8A304053 for ; Tue, 22 Jul 2014 12:21:53 -0700 (PDT) X-ASG-Debug-ID: 1406056911-04cbb064e4147830001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id eP7YxVqGCitlFquw (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 12:21:51 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6MJLos7028218 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 22 Jul 2014 15:21:50 -0400 Received: from [10.10.52.245] (vpn-52-245.rdu2.redhat.com [10.10.52.245]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6MJLnTF015950 for ; Tue, 22 Jul 2014 15:21:49 -0400 Message-ID: <53CEB9DB.8050708@redhat.com> Date: Tue, 22 Jul 2014 15:22:03 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: PCP Mailing List Subject: Global Timeout for Service Discovery Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: Global Timeout for Service Discovery Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406056911 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 The following commit implements a global timeout for __pmDiscoverServicesWithOptions(). The timeout is specified as "timeout=N.N" in the global options string argument, where N.N is a floating point value indicating the number of seconds before timing out. The implementation is a sleeping thread which wakes up after the specified amount of time and sets a flag indicating that the timeout has expired. If the discovery process finishes before the timeout, the sleeping thread is cancelled. The flag exists on the stack of __pmDiscoverServicesWithOptions() which joins with the sleeping thread before returning, thus ensuring that it is always safe for the sleeping thread to set the flag. The implementation is reflected in pmfind(1) vie the new --timeout=N.N and -t N.N options. The implementation also creates a new __pmServiceDiscoveryOptions struct which gets passed among the internal functions where the 'flags' argument of __pmDiscoverServicesWithOptions() was previously passed. It also consolidates some duplication among various internal options structures. As usual, it's on the brolley/dev branch of pcpfans. Dave ---------------------------------------------------- commit 567fadf6b8c59f86467f3a68c70ad7612bb7c3ce Author: Dave Brolley Date: Tue Jul 22 14:41:25 2014 -0400 Implement a global timeout option for service discovery. timeout=N.N in the options string will interrupt service discovery if it has not completed within the specified number of seconds. From fche@redhat.com Tue Jul 22 15:00:07 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 9953B7F3F for ; Tue, 22 Jul 2014 15:00:07 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id EBBAAAC003 for ; Tue, 22 Jul 2014 13:00:03 -0700 (PDT) X-ASG-Debug-ID: 1406059201-04cbb064e4149860001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id RDZypO87eZB20Bgg (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 13:00:02 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6MK01wV015057 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 22 Jul 2014 16:00:01 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6MK008c006351; Tue, 22 Jul 2014 16:00:00 -0400 Received: by fche.csb (Postfix, from userid 2569) id CAB1458113; Tue, 22 Jul 2014 15:59:59 -0400 (EDT) To: Dave Brolley Cc: PCP Mailing List Subject: Re: Global Timeout for Service Discovery References: <53CEB9DB.8050708@redhat.com> X-ASG-Orig-Subj: Re: Global Timeout for Service Discovery From: fche@redhat.com (Frank Ch. Eigler) Date: Tue, 22 Jul 2014 15:59:59 -0400 In-Reply-To: <53CEB9DB.8050708@redhat.com> (Dave Brolley's message of "Tue, 22 Jul 2014 15:22:03 -0400") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406059202 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi, Dave - > The following commit implements a global timeout for > __pmDiscoverServicesWithOptions(). Looks good. > The implementation is a sleeping thread which wakes up after the > specified amount of time and sets a flag indicating that the timeout > has expired. That sounds good. The lack of fallback for non-threaded libpcp's could be a problem; have you considered returning an outright error instead of the "__pmNotifyErr() & return OK" in this case? In __pmDiscoverServicesWithOptions(), during the thread cleanup, it looks like the code cares about the sts of the pthread_cancel(), but doesn't really. -ESRCH is a valid non-error case there, FWIW. Consider just a "(void) pthread_cancel(...);". For the __pmServiceDiscoveryOptions timedOut field, did you consider having the thread set the INTERRUPTED bit in the flags, instead of that new field? If so, good job figuring out that it'd be a bad idea :-) due to the need to eschew having libpcp modify that const * flags. (All that C options-processing string/realloc() stuff in pmfind.c must leave one, in weak moments, covetous of C++.) - FChE From brolley@redhat.com Tue Jul 22 15:34:40 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 2E4437F3F for ; Tue, 22 Jul 2014 15:34:40 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id BB2CCAC002 for ; Tue, 22 Jul 2014 13:34:36 -0700 (PDT) X-ASG-Debug-ID: 1406061272-04bdf0681315b210001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id eFVr7CGRow1YvI5p (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 13:34:32 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6MKYTcc002727 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 22 Jul 2014 16:34:31 -0400 Received: from [10.10.52.245] (vpn-52-245.rdu2.redhat.com [10.10.52.245]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6MKYRBa024639; Tue, 22 Jul 2014 16:34:28 -0400 Message-ID: <53CECAE1.2020700@redhat.com> Date: Tue, 22 Jul 2014 16:34:41 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: "Frank Ch. Eigler" CC: PCP Mailing List Subject: Re: Global Timeout for Service Discovery References: <53CEB9DB.8050708@redhat.com> X-ASG-Orig-Subj: Re: Global Timeout for Service Discovery In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406061272 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/22/2014 03:59 PM, Frank Ch. Eigler wrote: > Hi, Dave - > >> The following commit implements a global timeout for >> __pmDiscoverServicesWithOptions(). > Looks good. Thanks for reviewing. > >> The implementation is a sleeping thread which wakes up after the >> specified amount of time and sets a flag indicating that the timeout >> has expired. > That sounds good. The lack of fallback for non-threaded libpcp's > could be a problem; have you considered returning an outright error > instead of the "__pmNotifyErr() & return OK" in this case? I didn't consider this. Probably more flexible for the API users who would otherwise have no indication that the timeout was ignored. > In __pmDiscoverServicesWithOptions(), during the thread cleanup, > it looks like the code cares about the sts of the pthread_cancel(), > but doesn't really. -ESRCH is a valid non-error case there, FWIW. > Consider just a "(void) pthread_cancel(...);". Yeah. sts was set but actually ignored. I'll just remove the assignment. > For the __pmServiceDiscoveryOptions timedOut field, did you consider > having the thread set the INTERRUPTED bit in the flags, instead of > that new field? If so, good job figuring out that it'd be a bad idea :-) > due to the need to eschew having libpcp modify that const * flags. Well no, because we had already discussed it in context of changing the flags to const volatile *. > > (All that C options-processing string/realloc() stuff in pmfind.c must > leave one, in weak moments, covetous of C++.) Indeed :-( Function overloading would also be nice for extending the API. Dave From dsmith@redhat.com Tue Jul 22 16:02:07 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 265C27F3F for ; Tue, 22 Jul 2014 16:02:07 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id B7FF8AC004 for ; Tue, 22 Jul 2014 14:02:03 -0700 (PDT) X-ASG-Debug-ID: 1406062919-04cb6c0350133450001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id w0TRShY8tYejWHL5 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 14:01:59 -0700 (PDT) X-Barracuda-Envelope-From: dsmith@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6ML1weC008446 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 22 Jul 2014 17:01:58 -0400 Received: from t540p.usersys.redhat.com (vpn-54-16.rdu2.redhat.com [10.10.54.16]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6ML1sY5006350 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Tue, 22 Jul 2014 17:01:57 -0400 Message-ID: <53CED142.1040109@redhat.com> Date: Tue, 22 Jul 2014 16:01:54 -0500 From: David Smith User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: "Frank Ch. Eigler" CC: Systemtap List , pcp Subject: Re: systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <53C94A6F.4080808@redhat.com> <20140718182751.GE20905@redhat.com> <53CE743E.9030807@redhat.com> <20140722152127.GC20079@redhat.com> X-ASG-Orig-Subj: Re: systemtap/pcp integration In-Reply-To: <20140722152127.GC20079@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406062919 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/22/2014 10:21 AM, Frank Ch. Eigler wrote: > Hi, David - > > >> [...] >> I think a JSON fetcher/parser is a good idea. > > Good enough to redirect from MMV? I think MMV and a JSON fetcher/parser aren't mutually exclusive. I'd say they are complementary. -- David Smith dsmith@redhat.com Red Hat http://www.redhat.com 256.217.0141 (direct) 256.837.0057 (fax) From kenj@internode.on.net Tue Jul 22 17:33:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id D81E07F3F for ; Tue, 22 Jul 2014 17:33:33 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 74A33AC002 for ; Tue, 22 Jul 2014 15:33:29 -0700 (PDT) X-ASG-Debug-ID: 1406068404-04cbb064e7150020001-S8gJnT Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id pGNZ9owWEan7y5hL for ; Tue, 22 Jul 2014 15:33:24 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnsCAPDlzlN20YDzPGdsb2JhbAANTItmxCaDFwGBKAQBAQEBOIQ6AQEEeAEQCxgJFg8JAwIBAgExFAYNAQcBAbBKmCEXjxgzB4RGAQSzMg Received: from ppp118-209-128-243.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.128.243]) by ipmail04.adl6.internode.on.net with ESMTP; 23 Jul 2014 08:03:23 +0930 Message-ID: <53CEE6B6.2030507@internode.on.net> Date: Wed, 23 Jul 2014 08:33:26 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: "Frank Ch. Eigler" CC: 'Amer Ather' , pcp@oss.sgi.com Subject: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] References: <049e01cfa39a$33877480$9a965d80$@internode.on.net> <53CDC475.3070407@internode.on.net> <20140722020437.GA20079@redhat.com> <53CE056F.5070903@internode.on.net> <20140722113237.GB20079@redhat.com> X-ASG-Orig-Subj: Re: PCP build on Ubuntu Precise (kernel 3.2) - [solved] In-Reply-To: <20140722113237.GB20079@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1406068404 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7730 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header On 22/07/14 21:32, Frank Ch. Eigler wrote: > Hi, Ken - > >> [...] >> I think it is this commit that's not in your tree. > > That commit was actually in the branch (and I re-cherry-picked it > as the only way to be sure, from orbit). Hmm not that commit it would appear ... 8^)> But this one 172e26d351295a65fe44e0616a4ea35defb7333c in the fche/pmwebd branch adds usr/share/pcp/jsdemos to the file debian/pcp-webapi.dirs and that causes the problem because the pcp package is already providing that directory ... kenj@vm00:~/src/pcpfans/debian$ dpkg -S /usr/share/pcp/jsdemos pcp: /usr/share/pcp/jsdemos kenj@vm00:~/src/pcpfans/debian$ dpkg -l pcp Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii pcp 3.9.7 System level performance monitoring and perf From nscott@redhat.com Wed Jul 23 05:29:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id D04FD7F3F for ; Wed, 23 Jul 2014 05:29:34 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 57F90AC003 for ; Wed, 23 Jul 2014 03:29:34 -0700 (PDT) X-ASG-Debug-ID: 1406111368-04cb6c034e155550001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id vrM6YLBotly1JNPO for ; Wed, 23 Jul 2014 03:29:29 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6NATSwX031387; Wed, 23 Jul 2014 06:29:28 -0400 Date: Wed, 23 Jul 2014 06:29:28 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: David Smith Cc: Systemtap List , pcp Message-ID: <181878137.16180790.1406111368167.JavaMail.zimbra@redhat.com> In-Reply-To: <53CE7A2E.6010306@redhat.com> References: <53C83CB9.3020808@redhat.com> <861139755.14608867.1405992742567.JavaMail.zimbra@redhat.com> <53CE7A2E.6010306@redhat.com> Subject: Re: [pcp] systemtap/pcp integration MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] systemtap/pcp integration Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.7] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: systemtap/pcp integration Thread-Index: rQ2FeQDNGx9iZE0BGCeuLgNYFgfA7A== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1406111369 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7745 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain Hey David, ----- Original Message ----- > On 07/21/2014 08:32 PM, Nathan Scott wrote: > > Hi David, > > > > ----- Original Message ----- > >> [...] > >> Note that systemtap will create a file called 'mmv' in > >> /proc/systemtap/{MODULE_NAME}. I've just been using pcp's 'mmvdump' > >> utility to dump the contents of the /proc/systemtap/{MODULE_NAME}/mmv > >> file. Currently the pcp mmv pmda only looks in one place for mmv files, > >> but it might be possible to create a symbolic link to systemtap's mmv > >> file to make it happy. > > > > (OOC, what's {MODULE_NAME} in this context?) > > As Frank mentioned, {MODULE_NAME} is the name of the module, usually > autogenerated. Got it. So, next I'm wondering... what is it doing here, in this interface between systemtap/pcp? (interfaces being "forever" and all that, the simpler the better). From a PCP POV it (appears to) add no value, so would seem to be something we can remove/simplify? OTOH maybe not -maybe you can use it as follows: In MMV (and the existing pmdammv, in particular), the basename of these files is used to form the first component of the metric namespace - that is, unless the caller (i.e. you, in your kernel code) sets MMV_FLAG_NOPREFIX. In that case, its ignored (see also mmv_stats_init(3), "name" parameter). So, perhaps for the stap case you could always set that flag, and use those module names as the in a /proc/mmv/ -alike scheme. That'd be a fairly simple mechanism that'd work directly with the patch I sent earlier, I think (they'd need to be files, not directories though - else some slightly more complex code is going to be needed). > > A symlink would sorta work but it feels like a bit of a workaround - the > > PMDA is written to be able to detect arrival/departure of new MMV files > > based on changes in a directory (and the location of that directory is > > parameterised via /etc/pcp.conf variables). I'd not recommend trying to > > find it within a stap script ... I imagine it will be cleaner if we go > > for separate user/kernel locations for MMV files. > > The symlink feels like a bit of a workaround, because it *is* one. Long :) > term we certainly want a better way to find the systemtap MMV files. > > > Attached patch (lightly tested) implements the PCP side of things with > > that in mind - with this patch (and making the kernel code manage the > > lifecycle of separate /proc/mmv/* entries), things should begin to work > > out-of-the-box (the MMV PMDA is already default-enabled in the default > > pmcd config file, so everything else is in place for you). > > This code sounds like a step in the right direction. Well, hopefully something to experiment with anyway; it might get you close to a complete end-to-end working scenario. > [...] > I think MMV and a JSON fetcher/parser aren't mutually exclusive. I'd say > they are complementary. Using memory-mappings to share between user/kernel (or user/user as existing PCP MMV code does) requires fixed locations in the mapping - we're accessing it via pointers on both sides of the fence. Entirely-string representations (which is what I guess the intention with a JSON interface would be?) would lose that property, since the strings (and the values in particular) do not have fixed offsets within the mapping file anymore. I guess you'd have to then completely start over again (for ... reasons?) and implement it more like a traditional /proc interface (via seq_file), where userspace sampling is via open/read/close, and not the mapped memory model where the kernel is actively writing while userspace is actively reading. I haven't seen any other need for a generic JSON interface, so can't really comment as to its suitability for this kind of thing. There is one existing JSON PMDA - the elasticsearch PMDA uses JSON encodings fairly extensively - but it's very specific & not a generic representation like you're after here. Maybe you can use it to help gauge levels of complexity to expect though. cheers. -- Nathan From fche@redhat.com Wed Jul 23 09:42:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 992C87F3F for ; Wed, 23 Jul 2014 09:42:38 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 86FA330407A for ; Wed, 23 Jul 2014 07:42:35 -0700 (PDT) X-ASG-Debug-ID: 1406126550-04cbb064e7180bb0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id iQtLK4H7hBTYxxHo (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 23 Jul 2014 07:42:31 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6NEgTAF006034 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 23 Jul 2014 10:42:29 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6NEgS2O005902; Wed, 23 Jul 2014 10:42:28 -0400 Received: by fche.csb (Postfix, from userid 2569) id 8D36B58508; Wed, 23 Jul 2014 10:42:27 -0400 (EDT) To: Nathan Scott Cc: David Smith , pcp@oss.sgi.com, Systemtap List Subject: Re: systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <861139755.14608867.1405992742567.JavaMail.zimbra@redhat.com> <53CE7A2E.6010306@redhat.com> <181878137.16180790.1406111368167.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: systemtap/pcp integration From: fche@redhat.com (Frank Ch. Eigler) Date: Wed, 23 Jul 2014 10:42:27 -0400 In-Reply-To: <181878137.16180790.1406111368167.JavaMail.zimbra@redhat.com> (Nathan Scott's message of "Wed, 23 Jul 2014 06:29:28 -0400 (EDT)") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406126551 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 nathans wrote: > Got it. So, next I'm wondering... what is [the module name] doing > here, in this interface between systemtap/pcp? [...] systemtap is not a single bundle of instrumentation. It is a tool for building/running many instrumentation scripts. The unique module name lets the kernel tell them apart. > In MMV (and the existing pmdammv, in particular), the basename of > these files is used to form the first component of the metric > namespace [...] That's a most straightforward possibility, though not the most user-friendly one, as the module names change from run to run. Perhaps the systemtap script could propose a pmns prefix via an auxiliary file. > [...] I guess you'd have to then completely start over again [for > JSON] Yes, but the systemtap side of this would be pretty trivial. Printing JSON strings is easy. > (for ... reasons?) Other messages in the thread pointed out some reasons, namely: - ability to generalize to event traffic, not just sampled metrics - robustness, by avoiding fragile C code > [...] I haven't seen any other need for a generic JSON interface > [...] In previous notes it was pointed out that JSON is a good encoding for stats data, because it is exported by other tools like ceph, zabbix, and many others including > [...] elasticsearch [...] So the proposal is to think about a single general JSON PMDA that can be configured to bridge data from multiple JSON-emitting applications, including systemtap scripts. - FChE From minnus@buffalo.edu Wed Jul 23 10:18:57 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id A2F1A7F3F for ; Wed, 23 Jul 2014 10:18:57 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 819218F8037 for ; Wed, 23 Jul 2014 08:18:57 -0700 (PDT) X-ASG-Debug-ID: 1406128732-04cb6c034f1648b0001-S8gJnT Received: from mtareserve1.acsu.buffalo.edu (mtareserve6.acsu.buffalo.edu [128.205.6.4]) by cuda.sgi.com with ESMTP id lD1xbyeNfW1mV8cw for ; Wed, 23 Jul 2014 08:18:52 -0700 (PDT) X-Barracuda-Envelope-From: minnus@buffalo.edu X-Barracuda-Apparent-Source-IP: 128.205.6.4 Received: from localmailD.acsu.buffalo.edu (localmaild.acsu.buffalo.edu [128.205.5.208]) by mtareserve1.acsu.buffalo.edu (Postfix) with ESMTP id 2F00AA18; Wed, 23 Jul 2014 11:18:52 -0400 (EDT) Received: from localmailD.acsu.buffalo.edu (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 25A05309E9; Wed, 23 Jul 2014 11:18:52 -0400 (EDT) Received: from localmailD.acsu.buffalo.edu (localhost [127.0.0.1]) by localmailD.acsu.buffalo.edu (Postfix) with ESMTP id 9E7E6309E3; Wed, 23 Jul 2014 11:18:51 -0400 (EDT) Received: from smtp.buffalo.edu (smtp1.acsu.buffalo.edu [128.205.5.253]) by localmailD.acsu.buffalo.edu (Prefixe) with ESMTP id 8D593309E2; Wed, 23 Jul 2014 11:18:51 -0400 (EDT) Received: from prince.ccr.buffalo.edu (prince.ccr.buffalo.edu [128.205.40.45]) (Authenticated sender: minnus@buffalo.edu) by smtp.buffalo.edu (Postfix) with ESMTPSA id 81798CB8D; Wed, 23 Jul 2014 11:18:51 -0400 (EDT) Message-ID: <53CFD25B.2070408@buffalo.edu> Date: Wed, 23 Jul 2014 11:18:51 -0400 From: Martins Innus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Nathan Scott CC: pcp@oss.sgi.com Subject: Re: [pcp] updated infiniband pmda References: <53A998F1.4050003@buffalo.edu> <1097508451.33910731.1403758163030.JavaMail.zimbra@redhat.com> <53B2EEA0.7020106@buffalo.edu> X-ASG-Orig-Subj: Re: [pcp] updated infiniband pmda In-Reply-To: <53B2EEA0.7020106@buffalo.edu> Content-Type: multipart/mixed; boundary="------------010907030103070503020508" X-PM-EL-Spam-Prob: : 9% X-Barracuda-Connect: mtareserve6.acsu.buffalo.edu[128.205.6.4] X-Barracuda-Start-Time: 1406128732 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7748 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- This is a multi-part message in MIME format. --------------010907030103070503020508 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Nathan, I just realized that 3.9.7 missed a couple changes for the infiniband switch metrics. Probably my fault, looking back, in my second submission, I only included the files that changed from my first submission, not everything. Attached patch should fix. There should be no problem for existing users of 3.9.7 in terms of previous behavior, just that switch metrics will not be reported even if they should be available. Thanks Martins --------------010907030103070503020508 Content-Type: text/x-diff; name="infiniband_fixup.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="infiniband_fixup.patch" --- pmns.orig 2014-07-23 09:57:21.838513124 -0400 +++ pmns 2014-07-23 09:58:18.324757168 -0400 @@ -29,6 +29,7 @@ in out total + switch } infiniband.port.in { @@ -72,6 +73,27 @@ symbol IB:1:19 } +infiniband.port.switch { + in + out + total +} + +infiniband.port.switch.in { + bytes IB:3:0 + packets IB:3:1 +} + +infiniband.port.switch.out { + bytes IB:3:2 + packets IB:3:3 +} + +infiniband.port.switch.total { + bytes IB:3:4 + packets IB:3:5 +} + infiniband.control { query_timeout IB:2:0 hiwat IB:2:1 --- pmda.c.orig 2014-06-26 01:31:37.000000000 -0400 +++ pmda.c 2014-07-23 10:37:50.699643000 -0400 @@ -246,6 +246,42 @@ {PMDA_PMID(2,METRIC_ib_control_hiwat), PM_TYPE_U32, IB_CNT_INDOM, PM_SEM_DISCRETE, PMDA_PMUNITS(0,0,0,0,0,0) } }, + + /* infiniband.port.switch.in.bytes */ + { NULL, + {PMDA_PMID(3,METRIC_ib_port_switch_in_bytes), + PM_TYPE_U64, IB_PORT_INDOM, PM_SEM_COUNTER, + PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) } }, + + /* infiniband.port.switch.in.packets */ + { NULL, + {PMDA_PMID(3,METRIC_ib_port_switch_in_packets), + PM_TYPE_U64, IB_PORT_INDOM, PM_SEM_COUNTER, + PMDA_PMUNITS(0,0,1,0,0,0) } }, + + /* infiniband.port.switch.out.bytes */ + { NULL, + {PMDA_PMID(3,METRIC_ib_port_switch_out_bytes), + PM_TYPE_U64, IB_PORT_INDOM, PM_SEM_COUNTER, + PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) } }, + + /* infiniband.port.switch.out.packets */ + { NULL, + {PMDA_PMID(3,METRIC_ib_port_switch_out_packets), + PM_TYPE_U64, IB_PORT_INDOM, PM_SEM_COUNTER, + PMDA_PMUNITS(0,0,1,0,0,0) } }, + + /* infiniband.port.switch.total.bytes */ + { NULL, + {PMDA_PMID(3,METRIC_ib_port_switch_total_bytes), + PM_TYPE_U64, IB_PORT_INDOM, PM_SEM_COUNTER, + PMDA_PMUNITS(1,0,0,PM_SPACE_BYTE,0,0) } }, + + /* infiniband.port.switch.total.packets */ + { NULL, + {PMDA_PMID(3,METRIC_ib_port_switch_total_packets), + PM_TYPE_U64, IB_PORT_INDOM, PM_SEM_COUNTER, + PMDA_PMUNITS(0,0,1,0,0,0) } }, }; pmdaIndom indomtab[] = { --------------010907030103070503020508-- From brolley@redhat.com Wed Jul 23 10:49:44 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 640017F3F for ; Wed, 23 Jul 2014 10:49:44 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 507E08F8039 for ; Wed, 23 Jul 2014 08:49:44 -0700 (PDT) X-ASG-Debug-ID: 1406130582-04cbb064e51840c0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id JBCEd899HduBWAOf (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 23 Jul 2014 08:49:43 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6NFnfot024133 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 23 Jul 2014 11:49:42 -0400 Received: from [10.10.52.38] (vpn-52-38.rdu2.redhat.com [10.10.52.38]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6NFne1X020545; Wed, 23 Jul 2014 11:49:41 -0400 Message-ID: <53CFD9A3.6010309@redhat.com> Date: Wed, 23 Jul 2014 11:49:55 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: "Frank Ch. Eigler" CC: PCP Mailing List Subject: Re: Global Timeout for Service Discovery References: <53CEB9DB.8050708@redhat.com> X-ASG-Orig-Subj: Re: Global Timeout for Service Discovery In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406130583 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/22/2014 03:59 PM, Frank Ch. Eigler wrote: > > That sounds good. The lack of fallback for non-threaded libpcp's > could be a problem; have you considered returning an outright error > instead of the "__pmNotifyErr() & return OK" in this case? Done. > In __pmDiscoverServicesWithOptions(), during the thread cleanup, > it looks like the code cares about the sts of the pthread_cancel(), > but doesn't really. -ESRCH is a valid non-error case there, FWIW. > Consider just a "(void) pthread_cancel(...);". Done. ------------------------------ commit 1546ba50d1f0b305a446889565dfd4696fae8e48 Author: Dave Brolley Date: Wed Jul 23 11:45:23 2014 -0400 __pmDiscoverServicesWithOptions(): Return error codes for invalid unsupported options. Without this, the API user has no way of knowing that options were invalid or ignored. Also include minor cleanup based on testing and feedback. From nscott@redhat.com Thu Jul 24 02:11:43 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id A21A87F3F for ; Thu, 24 Jul 2014 02:11:43 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 8E7D58F8033 for ; Thu, 24 Jul 2014 00:11:43 -0700 (PDT) X-ASG-Debug-ID: 1406185895-04cbb0728c2b100001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id SYyviHOZ8KgJ4Nze for ; Thu, 24 Jul 2014 00:11:36 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6O7BZRd016559 for ; Thu, 24 Jul 2014 03:11:35 -0400 Date: Thu, 24 Jul 2014 03:11:35 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: pcp Message-ID: <141862231.17081528.1406185895517.JavaMail.zimbra@redhat.com> In-Reply-To: <1081184548.17081210.1406185873338.JavaMail.zimbra@redhat.com> Subject: pcp updates: kenj+martins+brolley merges, dmcache PMDA MIME-Version: 1.0 X-ASG-Orig-Subj: pcp updates: kenj+martins+brolley merges, dmcache PMDA Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.7] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - GC27 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: kenj+martins+brolley merges, dmcache PMDA Thread-Index: fP7DAbvHovUA958W4W05hb4QELHBvg== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1406185896 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=INFO_TLD, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7767 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.00 INFO_TLD URI: Contains an URL in the INFO top-level domain Changes committed to git://git.performancecopilot.org/pcp.git dev images/aboutqt.png |binary images/aboutqt.svg | 136 images/document-save-as.png |binary images/document-save-as.svg | 601 ++++ images/pmview.icns |binary images/pmview.png |binary images/pmview.svg | 503 +++ images/pmviewicon.png |binary images/title-close.png |binary images/title-close.svg | 385 ++ images/title-focus.png |binary images/title-focus.svg | 218 + images/title-trans.png |binary images/title-trans.svg | 218 + images/view-close.png |binary images/view-close.svg | 337 ++ images/view-edit.png |binary images/view-edit.svg | 329 ++ images/view-new.png |binary images/view-new.svg | 317 ++ images/view-rotate.png |binary images/view-rotate.svg | 446 +++ man/man1/GNUmakefile | 2 man/man1/pmdadmcache.1 | 64 qa/985 | 92 qa/985.out | 167 + qa/986 | 73 qa/986.out | 28 qa/admin/check-vm | 5 qa/common.filter | 3 qa/group | 5 src/include/builddefs.in | 2 src/include/pcp/impl.h | 6 src/libapp/.gitignore | 1 src/libapp/GNUmakefile | 60 src/libapp/app.cpp | 274 +- src/libapp/app.h | 81 src/libapp/console.cpp | 96 src/libapp/console.h | 40 src/libapp/console.ui | 132 src/libapp/fileiconprovider.cpp | 139 + src/libapp/fileiconprovider.h | 52 src/libapp/groupcontrol.cpp | 333 ++ src/libapp/groupcontrol.h | 122 src/libapp/images/GNUmakefile | 60 src/libapp/libapp.pro.in | 16 src/libapp/libapp.qrc | 131 src/libapp/recorddialog.cpp | 341 ++ src/libapp/recorddialog.h | 97 src/libapp/recorddialog.ui | 540 +++ src/libapp/statusbar.cpp | 105 src/libapp/statusbar.h | 61 src/libapp/timebutton.cpp | 100 src/libapp/timebutton.h | 60 src/libapp/timecontrol.cpp | 531 +++ src/libapp/timecontrol.h | 126 src/libapp/viewcontrol.cpp | 164 + src/libapp/viewcontrol.h | 70 src/libpcp/src/avahi.c | 25 src/libpcp/src/avahi.h | 10 src/libpcp/src/discovery.c | 172 + src/libpcp/src/internal.h | 13 src/libpcp/src/probe.c | 91 src/libpcp/src/probe.h | 8 src/libpcp_inv/GNUmakefile | 72 src/libpcp_inv/src/App.c++ | 188 - src/libpcp_inv/src/App.cpp | 94 src/libpcp_inv/src/App.h | 94 src/libpcp_inv/src/ColScaleMod.c++ | 772 ++--- src/libpcp_inv/src/ColScaleMod.cpp | 386 +- src/libpcp_inv/src/ColScaleMod.h | 158 - src/libpcp_inv/src/ColorMod.c++ | 660 ++-- src/libpcp_inv/src/ColorMod.cpp | 330 +- src/libpcp_inv/src/ColorMod.h | 146 - src/libpcp_inv/src/ColorScale.c++ | 676 ++-- src/libpcp_inv/src/ColorScale.cpp | 338 +- src/libpcp_inv/src/ColorScale.h | 206 - src/libpcp_inv/src/Form.c++ | 756 ++--- src/libpcp_inv/src/Form.cpp | 378 +- src/libpcp_inv/src/Form.h | 118 src/libpcp_inv/src/FormUI.c++ | 1400 +++++----- src/libpcp_inv/src/FormUI.cpp | 700 ++--- src/libpcp_inv/src/FormUI.h | 152 - src/libpcp_inv/src/GNUmakefile | 140 - src/libpcp_inv/src/Inv.c++ | 800 ++--- src/libpcp_inv/src/Inv.cpp | 400 +- src/libpcp_inv/src/Inv.h | 226 - src/libpcp_inv/src/Launch.c++ | 1628 +++++------ src/libpcp_inv/src/Launch.cpp | 814 ++--- src/libpcp_inv/src/Launch.h | 260 - src/libpcp_inv/src/LaunchMenu.c++ | 696 ++--- src/libpcp_inv/src/LaunchMenu.cpp | 348 +- src/libpcp_inv/src/LaunchMenu.h | 118 src/libpcp_inv/src/Menu.c++ | 680 ++-- src/libpcp_inv/src/Menu.cpp | 340 +- src/libpcp_inv/src/Menu.h | 242 - src/libpcp_inv/src/MetricList.c++ | 932 +++--- src/libpcp_inv/src/MetricList.cpp | 466 +-- src/libpcp_inv/src/MetricList.h | 198 - src/libpcp_inv/src/ModList.c++ | 1896 ++++++------- src/libpcp_inv/src/ModList.cpp | 948 +++--- src/libpcp_inv/src/ModList.h | 302 +- src/libpcp_inv/src/Modulate.c++ | 560 ++-- src/libpcp_inv/src/Modulate.cpp | 280 +- src/libpcp_inv/src/Modulate.h | 252 - src/libpcp_inv/src/PCPColor.c++ | 408 +- src/libpcp_inv/src/PCPColor.cpp | 204 - src/libpcp_inv/src/PCPColor.h | 128 src/libpcp_inv/src/Record.c++ | 2204 ++++++++-------- src/libpcp_inv/src/Record.cpp | 1102 ++++---- src/libpcp_inv/src/Record.h | 258 - src/libpcp_inv/src/ScaleMod.c++ | 748 ++--- src/libpcp_inv/src/ScaleMod.cpp | 374 +- src/libpcp_inv/src/ScaleMod.h | 152 - src/libpcp_inv/src/StackMod.c++ | 2372 ++++++++--------- src/libpcp_inv/src/StackMod.cpp | 1186 ++++---- src/libpcp_inv/src/StackMod.h | 228 - src/libpcp_inv/src/ToggleMod.c++ | 436 +-- src/libpcp_inv/src/ToggleMod.cpp | 218 - src/libpcp_inv/src/ToggleMod.h | 166 - src/libpcp_inv/src/View.c++ | 4380 ++++++++++++++++---------------- src/libpcp_inv/src/View.cpp | 2190 ++++++++-------- src/libpcp_inv/src/View.h | 370 +- src/libpcp_inv/src/VkPixmap.c++ | 644 ++-- src/libpcp_inv/src/VkPixmap.cpp | 322 +- src/libpcp_inv/src/Window.c++ | 1056 +++---- src/libpcp_inv/src/Window.cpp | 528 +-- src/libpcp_inv/src/Window.h | 200 - src/libpcp_inv/src/YScaleMod.c++ | 220 - src/libpcp_inv/src/YScaleMod.cpp | 110 src/libpcp_inv/src/YScaleMod.h | 106 src/pmdas/GNUmakefile | 2 src/pmdas/dmcache/.gitignore | 1 src/pmdas/dmcache/GNUmakefile | 37 src/pmdas/dmcache/Install | 35 src/pmdas/dmcache/Remove | 25 src/pmdas/dmcache/pmdadmcache.python | 260 + src/pmdas/infiniband/pmda.c | 36 src/pmdas/infiniband/pmns | 22 src/pmfind/pmfind.c | 68 src/pmns/stdpmid.pcp | 1 src/pmview/.gitignore | 7 src/pmview/BarMod.c++ | 1212 ++++---- src/pmview/BarMod.cpp | 1212 ++++---- src/pmview/BarMod.h | 296 +- src/pmview/BarObj.c++ | 1076 +++---- src/pmview/BarObj.cpp | 1076 +++---- src/pmview/BarObj.h | 264 - src/pmview/BaseObj.c++ | 262 - src/pmview/BaseObj.cpp | 262 - src/pmview/BaseObj.h | 266 - src/pmview/ColorList.c++ | 422 +-- src/pmview/ColorList.cpp | 422 +-- src/pmview/ColorList.h | 182 - src/pmview/DefaultObj.c++ | 394 +- src/pmview/DefaultObj.cpp | 394 +- src/pmview/DefaultObj.h | 334 +- src/pmview/GNUmakefile | 245 + src/pmview/GridObj.c++ | 636 ++-- src/pmview/GridObj.cpp | 636 ++-- src/pmview/GridObj.h | 242 - src/pmview/LabelObj.c++ | 238 - src/pmview/LabelObj.cpp | 238 - src/pmview/LabelObj.h | 226 - src/pmview/Link.c++ | 444 +-- src/pmview/Link.cpp | 444 +-- src/pmview/Link.h | 116 src/pmview/ModObj.h | 98 src/pmview/PipeObj.c++ | 390 +- src/pmview/PipeObj.cpp | 390 +- src/pmview/PipeObj.h | 126 src/pmview/README | 58 src/pmview/SceneFileObj.c++ | 268 - src/pmview/SceneFileObj.cpp | 268 - src/pmview/SceneFileObj.h | 120 src/pmview/StackObj.c++ | 302 +- src/pmview/StackObj.cpp | 302 +- src/pmview/StackObj.h | 166 - src/pmview/Text.c++ | 678 ++-- src/pmview/Text.cpp | 678 ++-- src/pmview/Text.h | 186 - src/pmview/ViewObj.c++ | 350 +- src/pmview/ViewObj.cpp | 350 +- src/pmview/ViewObj.h | 300 +- src/pmview/Xing.c++ | 400 +- src/pmview/Xing.cpp | 400 +- src/pmview/Xing.h | 106 src/pmview/app-defaults | 207 + src/pmview/barmod.cpp | 607 ++++ src/pmview/barmod.h | 133 src/pmview/barobj.cpp | 539 +++ src/pmview/barobj.h | 125 src/pmview/baseobj.cpp | 125 src/pmview/baseobj.h | 119 src/pmview/colorlist.cpp | 186 + src/pmview/colorlist.h | 77 src/pmview/colormod.cpp | 165 + src/pmview/colormod.h | 59 src/pmview/colorscale.cpp | 158 + src/pmview/colorscale.h | 89 src/pmview/colorscalemod.cpp | 194 + src/pmview/colorscalemod.h | 65 src/pmview/defaultobj.cpp | 175 + src/pmview/defaultobj.h | 152 + src/pmview/error.c++ | 110 src/pmview/error.cpp | 93 src/pmview/front-ends/GNUmakefile | 25 src/pmview/front-ends/clustervis | 357 ++ src/pmview/front-ends/config.clustervis | 51 src/pmview/front-ends/config.dkvis | 44 src/pmview/front-ends/config.mpvis | 45 src/pmview/front-ends/config.nfsvis | 44 src/pmview/front-ends/config.osvis | 63 src/pmview/front-ends/config.weblogvis | 52 src/pmview/front-ends/config.webpingvis | 40 src/pmview/front-ends/config.webvis | 83 src/pmview/front-ends/dkvis | 592 ++++ src/pmview/front-ends/mpvis | 474 +++ src/pmview/front-ends/nfsvis | 262 + src/pmview/front-ends/osvis | 679 ++++ src/pmview/front-ends/pmview-args | 643 ++++ src/pmview/front-ends/weblogvis | 473 +++ src/pmview/front-ends/weblogvis.load | 103 src/pmview/front-ends/weblogvis.rgb |binary src/pmview/front-ends/webpingvis | 398 ++ src/pmview/front-ends/webpingvis.rgb |binary src/pmview/front-ends/webvis | 733 +++++ src/pmview/front-ends/webvis.rgb |binary src/pmview/gram.y | 1509 ++++++++++- src/pmview/gridobj.cpp | 314 ++ src/pmview/gridobj.h | 107 src/pmview/icon |binary src/pmview/labelobj.cpp | 112 src/pmview/labelobj.h | 99 src/pmview/launch.cpp | 487 +++ src/pmview/launch.h | 113 src/pmview/lex.l | 490 +++ src/pmview/link.cpp | 218 + src/pmview/link.h | 52 src/pmview/main.cpp | 503 +++ src/pmview/main.h | 157 + src/pmview/metriclist.cpp | 234 + src/pmview/metriclist.h | 84 src/pmview/modlist.cpp | 473 +++ src/pmview/modlist.h | 134 src/pmview/modobj.h | 43 src/pmview/modulate.cpp | 134 src/pmview/modulate.h | 117 src/pmview/pcpcolor.cpp | 100 src/pmview/pcpcolor.h | 61 src/pmview/pipeobj.cpp | 187 + src/pmview/pipeobj.h | 54 src/pmview/pmview.c++ | 884 +++--- src/pmview/pmview.cpp | 1503 ++++++++-- src/pmview/pmview.desktop | 8 src/pmview/pmview.h | 302 +- src/pmview/pmview.info | 36 src/pmview/pmview.info.in | 18 src/pmview/pmview.pro.in | 35 src/pmview/pmview.qrc | 61 src/pmview/pmview.ui | 390 ++ src/pmview/scalemod.cpp | 187 + src/pmview/scalemod.h | 62 src/pmview/scenefileobj.cpp | 127 src/pmview/scenefileobj.h | 53 src/pmview/scenegroup.cpp | 200 + src/pmview/scenegroup.h | 80 src/pmview/stackmod.cpp | 598 ++++ src/pmview/stackmod.h | 98 src/pmview/stackobj.cpp | 148 + src/pmview/stackobj.h | 76 src/pmview/text.cpp | 338 ++ src/pmview/text.h | 83 src/pmview/togglemod.cpp | 106 src/pmview/togglemod.h | 75 src/pmview/view.cpp | 282 +- src/pmview/viewobj.cpp | 172 + src/pmview/viewobj.h | 135 src/pmview/xing.cpp | 210 + src/pmview/xing.h | 48 src/pmview/yscalemod.cpp | 46 src/pmview/yscalemod.h | 44 src/python/pcp/pmda.py | 25 283 files changed, 56377 insertions(+), 30791 deletions(-) commit 5a210461d4432695e2b00c0448d5eda86c900036 Author: Nathan Scott Date: Thu Jul 24 17:07:56 2014 +1000 pmdadmcache: a device mapper cache target PMDA Adds in the dmcache PMDA. This exports metrics from the Linux device mapper subsystem, when one or more cache targets are in use. These targets allow for faster cache-ier devices to sit in front of slower, spinnier devices (e.g. SSD<>disk). Metrics about read/write cache hits/misses, various sizes of several of the components, and so on, are exported by the kernel. Tests qa/985 and qa/986 are added to exercise the new PMDA. A handful of updates are made to the python module code - mostly issues found after running pylint on it once more. commit 78707f738c5f333da389d8690220d0968955ad3b Author: Martins Innus Date: Thu Jul 24 11:57:58 2014 +1000 Add missing pmns and metrictable additions for IB switch metrics commit 1546ba50d1f0b305a446889565dfd4696fae8e48 Author: Dave Brolley Date: Wed Jul 23 11:45:23 2014 -0400 __pmDiscoverServicesWithOptions(): Return error codes for invalid unsupported options. Without this, the API user has no way of knowing that options were invalid or ignored. Also include minor cleanup based on testing and feedback. commit 839ff4629df77afa9099f1d84ca97cf0b5972da1 Merge: 567fadf a47d465 Author: Dave Brolley Date: Tue Jul 22 14:44:48 2014 -0400 Merge remote-tracking branch 'origin/dev' into brolley/dev commit 567fadf6b8c59f86467f3a68c70ad7612bb7c3ce Author: Dave Brolley Date: Tue Jul 22 14:41:25 2014 -0400 Implement a global timeout option for service discovery. timeout=N.N in the options string will interrupt service discovery if it has not completed within the specified number of seconds. commit a47d46506e96c97289ff2fa820769ac6e7f84c5d Merge: d5b1f87 7d145c5 Author: Nathan Scott Date: Mon Jul 21 09:32:08 2014 +1000 Merge branch 'brolley/dev' of ../pcpfans into brolley-merge commit d5b1f87f3776faabe3c00bb05afa01536b342537 Merge: 9a524da 38bb4f3 Author: Ken McDonell Date: Mon Jul 21 07:16:40 2014 +1000 Merge branch 'dev' of git://git.performancecopilot.org/pcp/pcp into dev Conflicts: src/include/builddefs.in I think my change preserves the original intent ... commit 9a524dadba9e88e34914c37ec0996852eb041bb2 Author: Ken McDonell Date: Mon Jul 21 07:09:12 2014 +1000 DOMAIN_MAKERULE - tweak boolean logic rule ends with ... || rm -f $@ && false which was causing a build failure for every PMDA after a make clean and trying to run make from the top of the src tree. Changed this to ... || ( rm -f $@ && false ) to enforce the intended precedence of the || and && operators commit 7d145c5c3197bd85d9d91c694081097245a18a38 Merge: 80ab04b 38bb4f3 Author: Dave Brolley Date: Fri Jul 18 11:39:40 2014 -0400 Merge remote-tracking branch 'origin/dev' into brolley/dev commit 80ab04bcc51e89c9e0481a60fe292395aac7bffa Author: Dave Brolley Date: Thu Jul 17 14:53:23 2014 -0400 Enforce properties of 'flags' parameter to __pmDiscoverServicesWithOptions(). This parameter is now declared: const volatile unsigned *flags This enforces the requirement that __pmDiscoveryServicesWithOptions() must not write the the memory referenced by this pointer, since there is no knowledge of whether this memory requires synchronous access protection. It also enforces the semantics that the contents of the memory can change at any time; specifically the 'interrupted' bit. commit ff7a1a89b7e1322d658e68ff51dac4f540b27ff2 Author: Ken McDonell Date: Thu Jul 10 09:00:25 2014 +1000 qa/admin/check-vm - 1st cut at packages needed for pmview commit 57422edf11da381eb1fc9f705aff63d1604886be Author: Ken McDonell Date: Thu Jul 10 08:58:42 2014 +1000 pmview - initial version Compiles, parses scene graphs, draws scenes, ... but no metric modulation (animation) and no time controls and ... commit 9661484c65648e8599a0177c9c151b3f4173ca17 Author: Ken McDonell Date: Thu Jul 10 08:57:46 2014 +1000 libapp - cull refs to some unused images, add .gitignore commit c110dfd59117c770e7c75d5f190e37adb5912737 Author: Ken McDonell Date: Tue Jul 8 10:43:19 2014 +1000 libapp - builds in main tree No testing. And lots of functional overlap between here and pmchart, so we'll need so refactoring here to allow pmchart and pmview to share the parts of libapp that are really commmon. Also remnant references to pmchart here indicate origins of this code on pmchart that were never cleaned up when it was extracted to be used my pmview. commit 8be19accd6732f88708e93628fbaf198705653d7 Author: Ken McDonell Date: Tue Jul 8 07:08:57 2014 +1000 libapp & pmview - add startconsole() method Delay the creation of the Console() until after the command line arguments have been parsed so that pmDebug has a chance to be set and influence the output. commit d355162c5d160371a9c07b5872ac79a8d0dedfd8 Author: Ken McDonell Date: Tue Jul 8 07:06:25 2014 +1000 libapp/timecontrol.cpp - add diag to track timecontrol creation commit ef0fa1f69a6811cc65a8e926bb0fca8cb1d93e12 Author: Ken McDonell Date: Tue Jul 8 07:02:59 2014 +1000 libapp - cleaning up Expunge views dir that is not needed. Rework path to images (all should be in ../../images). commit 6848d55ef52a814b5da23822f996d1b9645dea65 Author: Ken McDonell Date: Tue Jul 8 06:57:43 2014 +1000 libapp (new) - refactoring of common UI components Initial checkin of work from Ken and Aconex as released to open source. commit 1f4924ca9ccb43d821dab5c14f92914096c8f86f Author: Ken McDonell Date: Tue Jul 8 06:45:20 2014 +1000 pmview - changes to remove use of QtAssistant commit 5cde3bc101447fc9f62f45ae09107524ca04bfaa Author: Ken McDonell Date: Mon Jul 7 16:56:27 2014 +1000 pmview - add makefile for front-end scripts commit 9d46418ab0c7a4a62b8b24cae2aa3c907f0f2770 Author: Ken McDonell Date: Mon Jul 7 06:58:53 2014 +1000 pmview - merge changes from Aconex commit 813a7652da589c8fa18bce084a4acb1f80621de8 Author: Ken McDonell Date: Sun Jul 6 14:17:52 2014 +1000 Revert "libpcp_inv - base source checkin" This reverts commit fcd9892042e23ea2077da65c9cd6efa80cfd93d6. commit 614365c6c5ed043c6fe9e83c84298013f2c209ac Author: Ken McDonell Date: Sun Jul 6 14:17:00 2014 +1000 Revert "libpcp_inv - rename .c++ files to .cpp" This reverts commit 01f1012e4c201cdde47c61b9a0cdd480abd1ce26. commit 8c5f55dec1dd55955f9332d9b6bdd988b86c6eb9 Author: Ken McDonell Date: Sun Jul 6 14:11:17 2014 +1000 Add images for pmview commit 01f1012e4c201cdde47c61b9a0cdd480abd1ce26 Author: Ken McDonell Date: Sun Jul 6 06:58:48 2014 +1000 libpcp_inv - rename .c++ files to .cpp commit fcd9892042e23ea2077da65c9cd6efa80cfd93d6 Author: Ken McDonell Date: Sun Jul 6 06:55:57 2014 +1000 libpcp_inv - base source checkin This is the code base for the Inventor interface library used by pmview as released to open source by SGI. commit fa7f7569e43bfcbc563ea54d70c14a4013c7b29c Author: Ken McDonell Date: Sun Jul 6 06:51:48 2014 +1000 pmview - rename .c++ files to .cpp commit fda41007d34229e278d6189e27eebd0445175d62 Author: Ken McDonell Date: Sat Jul 5 21:27:29 2014 +1000 pmiew - base source checkin This is the code base for pmview and the associated frontend scripts as released to open source by SGI. From nscott@redhat.com Thu Jul 24 02:12:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id E5B417F3F for ; Thu, 24 Jul 2014 02:12:15 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id B6804304039 for ; Thu, 24 Jul 2014 00:12:12 -0700 (PDT) X-ASG-Debug-ID: 1406185928-04bdf030b02ad90001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id UII96BNIR4vVMPAj for ; Thu, 24 Jul 2014 00:12:08 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6O7C7Xg000825; Thu, 24 Jul 2014 03:12:07 -0400 Date: Thu, 24 Jul 2014 03:12:06 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Martins Innus Cc: pcp@oss.sgi.com Message-ID: <901486034.17081692.1406185926974.JavaMail.zimbra@redhat.com> In-Reply-To: <53CFD25B.2070408@buffalo.edu> References: <53A998F1.4050003@buffalo.edu> <1097508451.33910731.1403758163030.JavaMail.zimbra@redhat.com> <53B2EEA0.7020106@buffalo.edu> <53CFD25B.2070408@buffalo.edu> Subject: Re: [pcp] updated infiniband pmda MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] updated infiniband pmda Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.7] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - GC27 (Linux)/8.0.6_GA_5922) Thread-Topic: updated infiniband pmda Thread-Index: JDcmeqT4wuzixt/px3lgsT9bjDO+xQ== X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1406185928 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7767 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Hi Martins, ----- Original Message ----- > Nathan, > I just realized that 3.9.7 missed a couple changes for the > infiniband switch metrics. Probably my fault, looking back, in my > second submission, I only included the files that changed from my first > submission, not everything. Attached patch should fix. (merged in dev branch now) > There should be no problem for existing users of 3.9.7 in terms of > previous behavior, just that switch metrics will not be reported even if > they should be available. > No worries - we should start thinking about some automated testing for this agent. The model we used for the Nvidia PMDA with a mock version of the library giving fixed results could give us basic sanity testing here too I guess? Install/Remove scripts, pmns validity - even simple valgrind-based memchecks can be done that way too, if especially keen. cheers. -- Nathan From nscott@redhat.com Thu Jul 24 02:40:44 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id DC6607F3F for ; Thu, 24 Jul 2014 02:40:44 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id B7C518F8033 for ; Thu, 24 Jul 2014 00:40:44 -0700 (PDT) X-ASG-Debug-ID: 1406187642-04cbb0728c2ca30001-S8gJnT Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id ARtEOLeGGUu2l7lw for ; Thu, 24 Jul 2014 00:40:43 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6O7egcb005755; Thu, 24 Jul 2014 03:40:42 -0400 Date: Thu, 24 Jul 2014 03:40:42 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: "Frank Ch. Eigler" , David Smith Cc: pcp@oss.sgi.com, Systemtap List Message-ID: <686315886.17105377.1406187642603.JavaMail.zimbra@redhat.com> In-Reply-To: References: <53C83CB9.3020808@redhat.com> <861139755.14608867.1405992742567.JavaMail.zimbra@redhat.com> <53CE7A2E.6010306@redhat.com> <181878137.16180790.1406111368167.JavaMail.zimbra@redhat.com> Subject: Re: systemtap/pcp integration MIME-Version: 1.0 X-ASG-Orig-Subj: Re: systemtap/pcp integration Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.7] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - GC27 (Linux)/8.0.6_GA_5922) Thread-Topic: systemtap/pcp integration Thread-Index: zd4oMNSFFvuZlluzeoDqS8I3gIFOGg== X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1406187643 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7767 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain ----- Original Message ----- > [...] > Yes, but the systemtap side of this would be pretty trivial. Printing > JSON strings is easy. Thats only a small part of the problem though (even just considering the systemtap side of things), and there are many advantages to the MMV format being so close to the representation the PMDA needs to export. > > (for ... reasons?) > > Other messages in the thread pointed out some reasons Those references were a little too vague for me to follow the intent. > - ability to generalize to event traffic, not just sampled metrics That's not really a reason to start over though - the MMV format is versioned, it could easily be extended and all its many advantages kept. Or, a separate PMDA might make a better option there - there is no reason one PMDA needs to service both these (very different) tracing/sampling data models. Anyway, do keep in mind the oft-mentioned cost of string conversions (Ken mentioned on the last call, IIRC, David mentioned his concerns originally, and I will say it again too) - every time we've profiled pmdalinux, the CPU cost is always dominated by the string extraction/ conversion code for the procfs/sysfs files. That will be orders of magnitude worse for event tracing, I imagine. > - robustness, by avoiding fragile C code Do you mean Davids systemtap code? The MMV code in PCP has been around for quite some time, and I know of a number of production environments using it 24x7 on hundreds of machines, for many years - its not fragile at all. Stability in Davids code will come over time, if there really is an issue there (?) but experience would suggest there is no inherent flaw in the approach he's using. > So the proposal is to think about a single general JSON PMDA that can > be configured to bridge data from multiple JSON-emitting applications, > including systemtap scripts. Bridges like this have been implemented several times in the past and it has never worked well. The fundamental, unsolvable-in-the-general-case problem is that we have well-defined metric semantics in PCP. So these bridges have to (attempt to) map from the usually-far-less-so,if-defined -at-all semantics offered by the other tool, and come up with the highly detailed PCP metric metadata, somehow. To date custom PMDAs have always done a better job - more simply-coded, and with domain-specific-code, as designed for PCP PMDAs (we can still use JSON there of course, as in the elasticsearch case). FWIW, I chatted to someone last week who was actually using Zabbix in a production environment - they were interested in exploring the opposite direction to what you've described above. IOW, they would like to have a PCP component that talks Zabbix protocol (JSON-alike, IIRC) such that they wouldn't have to install the Zabbix agent code everywhere. They'd like instead to rely on a PCP component (could pmwebd be taught to fill this role, perhaps? dunno) giving them everything they need for all the many machines they rollout, cookie-cutter style, from PCP. Then, their central Zabbix instance could continue doing their alerting, which they like. It sounded a little bit like the graphana/graphite exporting, and I believe its also JSON-based, so just thought I'd mention it here. cheers. -- Nathan From mspier@netflix.com Thu Jul 24 11:00:41 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 0436F7F3F for ; Thu, 24 Jul 2014 11:00:41 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id E5FC9304071 for ; Thu, 24 Jul 2014 09:00:40 -0700 (PDT) X-ASG-Debug-ID: 1406217635-04cb6c0a6545c70001-S8gJnT Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by cuda.sgi.com with ESMTP id znVjWRNFQV2KekAg (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 24 Jul 2014 09:00:36 -0700 (PDT) X-Barracuda-Envelope-From: mspier@netflix.com X-Barracuda-Apparent-Source-IP: 209.85.212.182 Received: by mail-wi0-f182.google.com with SMTP id d1so4303464wiv.9 for ; Thu, 24 Jul 2014 09:00:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:date:message-id:subject:from:to:cc:content-type; bh=ATLr8J39iJNM8GxyWz96HRMLbFbf0Dv4OV2l4ozQI8I=; b=IOE/LZ3w+xOo0FjlLQckC1db03t5OBWvjDhb+CSDqfNDHZHWzvcqOZ+OX5KSqvt5rJ //lKsuMv/bncODbe4IrZrwUyAhQb7t2KvEd/Ym7ICyH0loO2VngPVKkSJ3zifSi+zr2p HW1cYo6snYVy841KYqSTNn2223AUFKR3WA5eo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to:cc :content-type; bh=ATLr8J39iJNM8GxyWz96HRMLbFbf0Dv4OV2l4ozQI8I=; b=Bi+ZeS3p73FDi/pVuAJww0iIp04b2hTW9/7o74poW+TDdk7UpaI3GeOKopwoirhI51 CnZlHiaw9YZj5v6IMwmZkuOdl3MnxWgeYQtUPMCFjj4rWMhwDjVPaS+2BUwFhi38dgHS nszclUqsX5QarEkqoDwGknEfhy7C3FLQtHif3ncqb8Q+VBYBQovV6KsdYIKHBj6kj0I2 nGRGrKlZaGe5N07BNUicBcmRdyRkcuVWf9WZ43b/Gt2q5Xb+Ql7vRG4ASjCzUHV26kuD Z4nEJGnBfVa/NUpuRTm8EvjbMgmGynj/v7/OYhhW6MCdx8yAZ17toJS82uegSrGQhjPL mAGA== X-Gm-Message-State: ALoCoQnEVDhJFWldRt+lHCirA/h8/Zvdfp71QwdHsHBZBOX/edBre+Y/gj0sXIMf2ixEVgNcHTBr MIME-Version: 1.0 X-Received: by 10.180.93.196 with SMTP id cw4mr35504559wib.69.1406217634360; Thu, 24 Jul 2014 09:00:34 -0700 (PDT) Received: by 10.180.39.148 with HTTP; Thu, 24 Jul 2014 09:00:34 -0700 (PDT) Date: Thu, 24 Jul 2014 09:00:34 -0700 Message-ID: Subject: Combined metrics with PCP_DERIVED_CONFIG From: Martin Spier X-ASG-Orig-Subj: Combined metrics with PCP_DERIVED_CONFIG To: "Frank Ch. Eigler" , pcp@oss.sgi.com Cc: Amer Ather , Nathan Scott Content-Type: multipart/alternative; boundary=f46d0438932b92d3e204fef28eba X-Barracuda-Connect: mail-wi0-f182.google.com[209.85.212.182] X-Barracuda-Start-Time: 1406217636 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7777 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --f46d0438932b92d3e204fef28eba Content-Type: text/plain; charset=UTF-8 I know it's possible to do arithmetic operations on top of metrics to create derived metrics, like: kernel.all.cpu.sum = kernel.all.cpu.sys + kernel.all.cpu.user Is it possible to combine metrics into a single metric with multiple series? Like a derived metric with two or more series: kernel.all.cpu.combined = [kernel.all.cpu.sys, kernel.all.cpu.user] Thanks, Martin --f46d0438932b92d3e204fef28eba Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I know it's possible to do arithmetic operations on to= p of metrics to create derived metrics, like:

kernel.all.cpu.= sum =3D kernel.all.cpu.sys + kernel.all.cpu.user

Is it p= ossible to combine metrics into a single metric with multiple series? Like = a derived metric with two or more series:

kernel.all.cpu.combined =3D [kernel.all.cpu.sys, kernel= .all.cpu.user]

Thanks,
Martin
--f46d0438932b92d3e204fef28eba-- From kenj@internode.on.net Thu Jul 24 15:10:37 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id D8D8E7F3F for ; Thu, 24 Jul 2014 15:10:37 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id C646C304059 for ; Thu, 24 Jul 2014 13:10:34 -0700 (PDT) X-ASG-Debug-ID: 1406232631-04cb6c6c2701510001-S8gJnT Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id s5ymTOf2DJrmLIb0 for ; Thu, 24 Jul 2014 13:10:32 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApQBAOhn0VN20Y9C/2dsb2JhbAANS9Ifgw4JAYElhHsBAQQ4QBELGAkWDwkDAgECAUUTCAEBr1GYNxePUhaEMAEEpyWMMA Received: from ppp118-209-143-66.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.143.66]) by ipmail07.adl2.internode.on.net with ESMTP; 25 Jul 2014 05:40:20 +0930 Message-ID: <53D16827.5010600@internode.on.net> Date: Fri, 25 Jul 2014 06:10:15 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: Re: [pcp] Combined metrics with PCP_DERIVED_CONFIG References: X-ASG-Orig-Subj: Re: [pcp] Combined metrics with PCP_DERIVED_CONFIG In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1406232631 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7783 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 25/07/14 02:00, Martin Spier wrote: > I know it's possible to do arithmetic operations on top of metrics to > create derived metrics, like: > > kernel.all.cpu.sum = kernel.all.cpu.sys + kernel.all.cpu.user > > Is it possible to combine metrics into a single metric with multiple > series? Like a derived metric with two or more series: > > kernel.all.cpu.combined = [kernel.all.cpu.sys, kernel.all.cpu.user] Sorry Martin, I don't understand the question. What do you mean by "multiple series"? Perhaps you could give a small example of what you'd like to achieve? From kenj@internode.on.net Thu Jul 24 17:38:34 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id A97BA7F56 for ; Thu, 24 Jul 2014 17:38:34 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 30016AC005 for ; Thu, 24 Jul 2014 15:38:30 -0700 (PDT) X-ASG-Debug-ID: 1406241508-04cb6c6c25073c0001-S8gJnT Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id f5k7GFSswn2CcNq0 for ; Thu, 24 Jul 2014 15:38:28 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApMBACKK0VN20Y9C/2dsb2JhbAANS9IigxcBgSaEewEBBCcRUQsYCSUPAkYTCAEBr1yYMhePUhaEMAWzVQ Received: from ppp118-209-143-66.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.143.66]) by ipmail07.adl2.internode.on.net with ESMTP; 25 Jul 2014 08:08:27 +0930 Message-ID: <53D18ADF.204@internode.on.net> Date: Fri, 25 Jul 2014 08:38:23 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: Re: [pcp] systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <53C94A6F.4080808@redhat.com> <20140718182751.GE20905@redhat.com> <53CE743E.9030807@redhat.com> <20140722152127.GC20079@redhat.com> <53CED142.1040109@redhat.com> X-ASG-Orig-Subj: Re: [pcp] systemtap/pcp integration In-Reply-To: <53CED142.1040109@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1406241508 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7789 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 23/07/14 07:01, David Smith wrote: > On 07/22/2014 10:21 AM, Frank Ch. Eigler wrote: >> Hi, David - >> >> >>> [...] >>> I think a JSON fetcher/parser is a good idea. >> >> Good enough to redirect from MMV? > > I think MMV and a JSON fetcher/parser aren't mutually exclusive. I'd say > they are complementary. > Joining a bit late here ... 8^)> Please, if there is any choice, let's not add binary->ascii and ascii->binary format conversions on the code path between the producer and consumer of high volume and/or low latency performance data. I hope the reasons are self-evident to this audience. Pushing data from PCP via some JSON plumbing seems to be addressing a different, but important use case. Pushing data into PCP via JSON may be required if the producer of the data provides no more efficient API, and is again a different use case. The mmv model has worked well in the past. If it is not adequate in some respect (e.g. for event records), then I'd advocate making a variant of the mmv model that is refined to address the inadequacies (or even extend the existing mmv model). There is a lot of pain that has been invested in maturing the operational and semantic robustness of the mmv model, so don't discount the effort that would be required to get a completely new model up to the same production standard. From psmith@aconex.com Thu Jul 24 19:43:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 647677F47 for ; Thu, 24 Jul 2014 19:43:38 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id F0339AC006 for ; Thu, 24 Jul 2014 17:43:34 -0700 (PDT) X-ASG-Debug-ID: 1406249006-04bdf047510c500001-S8gJnT Received: from postoffice2.aconex.com (mail.aconex.com [175.45.105.35]) by cuda.sgi.com with ESMTP id sJhpCAj3O9cjoGeQ for ; Thu, 24 Jul 2014 17:43:26 -0700 (PDT) X-Barracuda-Envelope-From: psmith@aconex.com X-Barracuda-Apparent-Source-IP: 175.45.105.35 Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.35.100]) by postoffice2.aconex.com with ESMTP id ELFWNH5JA9lWCuwK for ; Fri, 25 Jul 2014 10:43:25 +1000 (EST) Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.35.102]) by postoffice.aconex.com (Postfix) with ESMTP id 28E513CE00B6 for ; Fri, 25 Jul 2014 10:43:25 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id 24C9D2439FE1 for ; Fri, 25 Jul 2014 10:43:25 +1000 (EST) Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 43yt5Zfaty4c for ; Fri, 25 Jul 2014 10:43:22 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id 66560243A3A5 for ; Fri, 25 Jul 2014 10:43:22 +1000 (EST) X-Virus-Scanned: amavisd-new at aconex.com Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 56IEMVEM9LCq for ; Fri, 25 Jul 2014 10:43:22 +1000 (EST) Received: from paul.engr.acx (paul.engr.acx [192.168.7.130]) by gatekeeper.aconex.com (Postfix) with ESMTPSA id 42C522439FE1 for ; Fri, 25 Jul 2014 10:43:22 +1000 (EST) From: Paul Smith Content-Type: multipart/alternative; boundary="Apple-Mail=_645F10EE-6EDE-40FC-A8ED-C276E81A4FE2" Message-Id: <0A9AAB8D-A7E9-41A9-870F-868A39F4BE6D@aconex.com> Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: [pcp] systemtap/pcp integration Date: Fri, 25 Jul 2014 10:43:20 +1000 X-ASG-Orig-Subj: Re: [pcp] systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <53C94A6F.4080808@redhat.com> <20140718182751.GE20905@redhat.com> <53CE743E.9030807@redhat.com> <20140722152127.GC20079@redhat.com> <53CED142.1040109@redhat.com> <53D18ADF.204@internode.on.net> To: pcp@oss.sgi.com In-Reply-To: <53D18ADF.204@internode.on.net> X-Mailer: Apple Mail (2.1878.6) X-Virus-Scanned: by bsmtpd at aconex.com X-Barracuda-Connect: mail.aconex.com[175.45.105.35] X-Barracuda-Start-Time: 1406249006 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7792 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message --Apple-Mail=_645F10EE-6EDE-40FC-A8ED-C276E81A4FE2 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii I _love_ JSON,It's a useful format for clients to receive post data in = a lot of cases, but for this sort of functionality I would not think = this is the best internal format for capturing the events. Perhaps = there's some clients that want to post that data easily via JSON, but = make that an optional case, behind the scenes it's stored as binary. If = you wanted to keep the format close to JSON, you could consider SMILE: http://wiki.fasterxml.com/SmileFormat For what it's worth, the clustered search service ElasticSearch has 2 = connectors available, a JSON friendly text based connector which allows = simple REST services to plugin via this text protocol, and a second = connector mainly aimed at the companion ElasticSearch Java client layer = that talks binary SMILE for efficiency. The text encoding/decoding can be expensive, so I would be careful about = using it for internal storage/querying, but perhaps SMILE gives you = something close. cheers, Paul Smith On 25 Jul 2014, at 8:38 am, Ken McDonell wrote: > On 23/07/14 07:01, David Smith wrote: >> On 07/22/2014 10:21 AM, Frank Ch. Eigler wrote: >>> Hi, David - >>>=20 >>>=20 >>>> [...] >>>> I think a JSON fetcher/parser is a good idea. >>>=20 >>> Good enough to redirect from MMV? >>=20 >> I think MMV and a JSON fetcher/parser aren't mutually exclusive. I'd = say >> they are complementary. >>=20 >=20 > Joining a bit late here ... 8^)> >=20 > Please, if there is any choice, let's not add binary->ascii and = ascii->binary format conversions on the code path between the producer = and consumer of high volume and/or low latency performance data. I hope = the reasons are self-evident to this audience. >=20 > Pushing data from PCP via some JSON plumbing seems to be addressing a = different, but important use case. Pushing data into PCP via JSON may = be required if the producer of the data provides no more efficient API, = and is again a different use case. >=20 > The mmv model has worked well in the past. If it is not adequate in = some respect (e.g. for event records), then I'd advocate making a = variant of the mmv model that is refined to address the inadequacies (or = even extend the existing mmv model). There is a lot of pain that has = been invested in maturing the operational and semantic robustness of the = mmv model, so don't discount the effort that would be required to get a = completely new model up to the same production standard. >=20 > _______________________________________________ > pcp mailing list > pcp@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/pcp --Apple-Mail=_645F10EE-6EDE-40FC-A8ED-C276E81A4FE2 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii  I _love_ JSON,It's a useful format for clients = to receive post data in a lot of cases, but for this sort of = functionality I would not think this is the best internal format for = capturing the events.  Perhaps there's some clients that want to = post that data easily via JSON, but make that an optional case, behind = the scenes it's stored as binary.  If you wanted to keep the format = close to JSON, you could consider SMILE:


For what it's worth, the = clustered search service ElasticSearch has 2 connectors available, a = JSON friendly text based connector which allows simple REST services to = plugin via this text protocol, and a second connector mainly aimed at = the companion ElasticSearch Java client layer that talks binary SMILE = for efficiency.

The text encoding/decoding can = be expensive, so I would be careful about using it for internal = storage/querying, but perhaps SMILE gives you something = close.

cheers,

Paul = Smith

On 25 Jul 2014, at 8:38 am, Ken McDonell = <kenj@internode.on.net>= wrote:

On 23/07/14 07:01, David Smith wrote:
On 07/22/2014 10:21 AM, Frank Ch. Eigler = wrote:
Hi, David -


[...]
I think a JSON fetcher/parser is a good = idea.

Good enough to redirect from = MMV?

I think MMV and a JSON fetcher/parser aren't = mutually exclusive. I'd say
they are = complementary.


Joining a bit late here ... = 8^)>

Please, if there is any choice, let's not add = binary->ascii and ascii->binary format conversions on the code = path between the producer and consumer of high volume and/or low latency = performance data.  I hope the reasons are self-evident to this = audience.

Pushing data from PCP via some JSON plumbing seems to = be addressing a different, but important use case.  Pushing data = into PCP via JSON may be required if the producer of the data provides = no more efficient API, and is again a different use case.

The mmv = model has worked well in the past.  If it is not adequate in some = respect (e.g. for event records), then I'd advocate making a variant of = the mmv model that is refined to address the inadequacies (or even = extend the existing mmv model).  There is a lot of pain that has = been invested in maturing the operational and semantic robustness of the = mmv model, so don't discount the effort that would be required to get a = completely new model up to the same production = standard.

_______________________________________________
pcp = mailing list
pcp@oss.sgi.com
http://oss.sgi.com/= mailman/listinfo/pcp

= --Apple-Mail=_645F10EE-6EDE-40FC-A8ED-C276E81A4FE2-- From mgoodwin@redhat.com Thu Jul 24 20:36:43 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id CCA7C7F55 for ; Thu, 24 Jul 2014 20:36:43 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5AD41AC005 for ; Thu, 24 Jul 2014 18:36:40 -0700 (PDT) X-ASG-Debug-ID: 1406252195-04cbb0068410040001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id uNSVwUulT4uEvD73 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 18:36:36 -0700 (PDT) X-Barracuda-Envelope-From: mgoodwin@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6P1aZBR006330 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 21:36:35 -0400 Received: from [10.64.49.118] (vpn1-49-118.bne.redhat.com [10.64.49.118]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6P1aW4V022174 for ; Thu, 24 Jul 2014 21:36:34 -0400 Message-ID: <53D1B4A0.9000506@redhat.com> Date: Fri, 25 Jul 2014 11:36:32 +1000 From: Mark Goodwin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: pcp updates: refine dm persistent name mapping for older platforms Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: pcp updates: refine dm persistent name mapping for older platforms Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406252196 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Changes committed to git://git.performancecopilot.org/markgw/pcp/pcp.git dev commit 61b06df88fca55bed487e1d7e672760c64599e10 Author: Mark Goodwin Date: Fri Jul 25 11:19:38 2014 +1000 Refine the dm-* -> persistent name mapping to support older platforms. Older platforms (e.g. RHEL5) do not support /sys/block/dm*/dm/name so we have to match up the dev_t of block devices in /dev/mapper with their major/minor numbers in /proc/diskstats. modified: src/pmdas/linux/proc_partitions.c From nscott@redhat.com Fri Jul 25 04:59:20 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id E9FB129DF9 for ; Fri, 25 Jul 2014 04:59:19 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id D7B0F8F8033 for ; Fri, 25 Jul 2014 02:59:16 -0700 (PDT) X-ASG-Debug-ID: 1406282351-04cb6c6c261cc80001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id No4JlxH7k2mSfXF6 for ; Fri, 25 Jul 2014 02:59:11 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6P9xBgm027680 for ; Fri, 25 Jul 2014 05:59:11 -0400 Date: Fri, 25 Jul 2014 05:59:11 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: pcp Message-ID: <2007524908.17930930.1406282351167.JavaMail.zimbra@redhat.com> In-Reply-To: <124288141.17930482.1406282283731.JavaMail.zimbra@redhat.com> Subject: pcp updates: mgoodwin merge, qa MIME-Version: 1.0 X-ASG-Orig-Subj: pcp updates: mgoodwin merge, qa Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.6] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - GC27 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: mgoodwin merge, qa Thread-Index: qrktR1umCSioLNkZv1UwsddZf0YOzQ== X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1406282351 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7804 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Changes committed to git://git.performancecopilot.org/pcp.git dev qa/543 | 5 +- qa/581 | 1 src/pmdas/dmcache/pmdadmcache.python | 2 src/pmdas/linux/devmapper.c | 15 +++--- src/pmdas/linux/filesys.c | 4 + src/pmdas/linux/getinfo.c | 24 +++++----- src/pmdas/linux/indom.h | 8 ++- src/pmdas/linux/interrupts.c | 5 +- src/pmdas/linux/numa_meminfo.c | 8 ++- src/pmdas/linux/pmda.c | 14 +++++ src/pmdas/linux/proc_cpuinfo.c | 17 ++++--- src/pmdas/linux/proc_loadavg.c | 30 +++--------- src/pmdas/linux/proc_meminfo.c | 21 ++------ src/pmdas/linux/proc_net_dev.c | 21 ++++---- src/pmdas/linux/proc_net_netstat.c | 17 +++---- src/pmdas/linux/proc_partitions.c | 83 +++++++++++++++++++++++++---------- 16 files changed, 164 insertions(+), 111 deletions(-) commit 8fbe83d4544666e88b89115103bf1b2a2bef8a7b Author: Nathan Scott Date: Fri Jul 25 19:57:07 2014 +1000 Fix dmcache.dirty metric type - instantaneous, not discrete commit cf92ea54586348eccb397d2960bc6f96cdcd6f14 Author: Nathan Scott Date: Fri Jul 25 19:54:41 2014 +1000 Tighten qa/581 filter for net interfaces on a new f20 laptop commit 10f80cbee5fe8a5818162f7725c58d6f3492aeb3 Author: Nathan Scott Date: Fri Jul 25 19:53:42 2014 +1000 Add _notrun checks to qa/543 in case no local mailer available commit 457e6c55a91ecfc2fab928e8e1b589549b3a1486 Author: Nathan Scott Date: Fri Jul 25 19:51:30 2014 +1000 pmdalinux: allow for mock testing with canned proc/sysfs files As Mark is working toward testing device mapper stuff now, the need for a test-data-injection mechanism for pmdalinux came up once more - this commit introduces the first wave. All of the device code is converted over now, and some of the net and CPU metrics. Enough for Mark to get started though, and for me to continue on in parallel. commit 61b06df88fca55bed487e1d7e672760c64599e10 Author: Mark Goodwin Date: Fri Jul 25 11:19:38 2014 +1000 Refine the dm-* -> persistent name mapping to support older platforms. Older platforms (e.g. RHEL5) do not support /sys/block/dm*/dm/name so we have to match up the dev_t of block devices in /dev/mapper with their major/minor numbers in /proc/diskstats. modified: src/pmdas/linux/proc_partitions.c From mspier@netflix.com Fri Jul 25 13:26:24 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id F0AF529DF9 for ; Fri, 25 Jul 2014 13:26:23 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id DE46F304039 for ; Fri, 25 Jul 2014 11:26:23 -0700 (PDT) X-ASG-Debug-ID: 1406312778-04cb6c6c2630a80001-S8gJnT Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com [209.85.212.175]) by cuda.sgi.com with ESMTP id 6qGk1dDeGjzFgB4Q (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 25 Jul 2014 11:26:19 -0700 (PDT) X-Barracuda-Envelope-From: mspier@netflix.com X-Barracuda-Apparent-Source-IP: 209.85.212.175 Received: by mail-wi0-f175.google.com with SMTP id ho1so1438468wib.2 for ; Fri, 25 Jul 2014 11:26:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=WnHDY1fX7H4lYQ2Y/rSpSQMVuzUIW3VJxCFnzk9FNMk=; b=HAOmcyvEzz+5F7Z+tu+aF4/WyRSG5iRCqIbDBruhcEfxlXuiX5Cnu4DWH7JY2SR4gR wWz0pFevNLSSpQq7lV4J0ysboY4TVxcEB5sp76f0Bnxz83QhGBI5sxaRqzqIMnL0v30q xqWEho1wHhpFIlkXGfpJz4TIkHg3/pi/uR2vM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=WnHDY1fX7H4lYQ2Y/rSpSQMVuzUIW3VJxCFnzk9FNMk=; b=YDn+WusGO7KLXYF1MOHrXpl7vPcx9CKtYPVUBG/3P5eeCkKBFlMYZs1BKqcAeRBMcW kKKeIYKOrLwEm4RiE+dd1vt1FTT1rsGP9abYdKZUaf1ZMs+UPPTW5MxxnzahZlMjrPdt EbDm8F7M0mPAPxyhQGQ2BBuHFGNpKFAvDb5ofB5c3rPOuwcvC6NOLgYLL/JRFKhqYt+x 9nj8Fg6oKmlPffp0twYeFTIMKutKzy5X7tE+exrVjWYkeZH75W4U6Q1+jG22dowTiCer oh8jdvdwl6B1ywkZlhPzQ3QaqnDlpAG5KaP9T7h1Q1O0spTC3BB2UgUGS+x7wVG5FknW orzQ== X-Gm-Message-State: ALoCoQmKd3O07yyivgoaqRpGG7/vHgaNk7WC+KF3Tnzs5fQV2s+O/oQCS+zg9Fmvb7Q/nV4dfZTV MIME-Version: 1.0 X-Received: by 10.180.38.51 with SMTP id d19mr7594339wik.10.1406312778103; Fri, 25 Jul 2014 11:26:18 -0700 (PDT) Received: by 10.180.39.148 with HTTP; Fri, 25 Jul 2014 11:26:18 -0700 (PDT) In-Reply-To: <53D16827.5010600@internode.on.net> References: <53D16827.5010600@internode.on.net> Date: Fri, 25 Jul 2014 11:26:18 -0700 Message-ID: Subject: Re: [pcp] Combined metrics with PCP_DERIVED_CONFIG From: Martin Spier X-ASG-Orig-Subj: Re: [pcp] Combined metrics with PCP_DERIVED_CONFIG To: Ken McDonell Cc: pcp@oss.sgi.com Content-Type: multipart/alternative; boundary=e89a8f6473ed9518a804ff08b557 X-Barracuda-Connect: mail-wi0-f175.google.com[209.85.212.175] X-Barracuda-Start-Time: 1406312778 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7817 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --e89a8f6473ed9518a804ff08b557 Content-Type: text/plain; charset=UTF-8 Sure. I'm building an UI that will consume PCP's API and besides other things, plot the live data. One of the charts I need to draw is composed of user and sys CPU. As of now, I need to fetch two metrics, kernel.all.cpu.sys and kernel.all.cpu.user, each returning a separate data structure and combine them. Eg.: { "timestamp": { "s": 1406312466, "us": 909502 }, "values": [ { "pmid": 251658262, "name": "kernel.all.cpu.sys", "instances": [ { "value": 3614914200 } ] }, { "pmid": 251658260, "name": "kernel.all.cpu.user", "instances": [ { "value": 3165066120 } ] } ] } And what I'm hoping to achieve is something like this: { "timestamp": { "s": 1406312466, "us": 909502 }, "values": [ { "pmid": 251658262, "name": "kernel.all.cpu.combined", "instances": [ { "value": 3614914200, "instance": 1 }, { "value": 3165066120, "instance": 2 } ] } ] } Wondering if it's possible to get something like this with PCP_DERIVED_CONFIG or something else. Thanks, On Thu, Jul 24, 2014 at 1:10 PM, Ken McDonell wrote: > On 25/07/14 02:00, Martin Spier wrote: > >> I know it's possible to do arithmetic operations on top of metrics to >> create derived metrics, like: >> >> kernel.all.cpu.sum = kernel.all.cpu.sys + kernel.all.cpu.user >> >> Is it possible to combine metrics into a single metric with multiple >> series? Like a derived metric with two or more series: >> >> kernel.all.cpu.combined = [kernel.all.cpu.sys, kernel.all.cpu.user] >> > > Sorry Martin, I don't understand the question. > > What do you mean by "multiple series"? > > Perhaps you could give a small example of what you'd like to achieve? > > _______________________________________________ > pcp mailing list > pcp@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/pcp > --e89a8f6473ed9518a804ff08b557 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Sure. I'm building an UI that will consume PCP's A= PI and besides other things, plot the live data. One of the charts I need t= o draw is composed of user and sys CPU. As of now, I need to fetch two metr= ics,=C2=A0kernel.all.cpu.sys and kernel.all.cpu.user, each returning a sepa= rate data structure and combine them. Eg.:

{
=C2=A0 "timestamp": {
= =C2=A0 =C2=A0 "s": 1406312466,
=C2=A0 =C2=A0 "us&q= uot;: 909502
=C2=A0 },
=C2=A0 "values": [
=C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 "pmid": 251= 658262,
=C2=A0 =C2=A0 =C2=A0 "name": "kernel.all.cpu.sys",=
=C2=A0 =C2=A0 =C2=A0 "instances": [
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "v= alue": 3614914200
=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 "pmid": 25165= 8260,
=C2=A0 =C2=A0 =C2=A0 "name": "kernel.all.cpu= .user",
=C2=A0 =C2=A0 =C2=A0 "instances": [
<= div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 "value": 3165066120
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }
=C2=A0 =C2=A0 =C2=A0 ]
=C2=A0 =C2=A0 }
=C2=A0 ]
}

And what I'm hoping to achieve is something like this:
=
{
=C2=A0 "timestamp": {
=C2=A0 =C2=A0 "s": 1406312466,
=C2=A0 =C2=A0 "= ;us": 909502
=C2=A0 },
=C2=A0 "values": = [
=C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 "pmid"= : 251658262,
=C2=A0 =C2=A0 =C2=A0 "name": "kernel.= all.cpu.combined",=C2=A0
=C2=A0 =C2=A0 =C2=A0 "instances": [
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "value&qu= ot;: 3614914200,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "instanc= e": 1
=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 "value&q= uot;: 3165066120,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "instance": 2
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
=C2=A0 =C2=A0 =C2=A0 ]
= =C2=A0 =C2=A0 }
=C2=A0 ]
}

Wondering if it's possible to get something like this with=C2=A0PCP_= DERIVED_CONFIG or something else.

Thanks,


<= div class=3D"gmail_quote">On Thu, Jul 24, 2014 at 1:10 PM, Ken McDonell <kenj@internode.on.net> wrote:
On 2= 5/07/14 02:00, Martin Spier wrote:
I know it's possible to do arithmetic operations on top of metrics to create derived metrics, like:

kernel.all.cpu.sum =3D kernel.all.cpu.sys + kernel.all.cpu.user

Is it possible to combine metrics into a single metric with multiple
series? Like a derived metric with two or more series:

kernel.all.cpu.combined =3D [kernel.all.cpu.sys, kernel.all.cpu.user]

Sorry Martin, I don't understand the question.

What do you mean by "multiple series"?

Perhaps you could give a small example of what you'd like to achieve?
_______________________________________________
pcp mailing list
pcp@oss.sgi.com http:= //oss.sgi.com/mailman/listinfo/pcp

--e89a8f6473ed9518a804ff08b557-- From fche@redhat.com Fri Jul 25 13:42:57 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0B02229DF9 for ; Fri, 25 Jul 2014 13:42:57 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 8BE65AC001 for ; Fri, 25 Jul 2014 11:42:53 -0700 (PDT) X-ASG-Debug-ID: 1406313771-04cb6c6c2731520001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id TllWdpwcAcaQkpTa (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 25 Jul 2014 11:42:52 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6PIgjta016354 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 25 Jul 2014 14:42:45 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6PIgitq029832; Fri, 25 Jul 2014 14:42:45 -0400 Received: by fche.csb (Postfix, from userid 2569) id 422A15816B; Fri, 25 Jul 2014 14:42:44 -0400 (EDT) To: Martin Spier Cc: Ken McDonell , pcp@oss.sgi.com Subject: Re: Combined metrics with PCP_DERIVED_CONFIG References: <53D16827.5010600@internode.on.net> X-ASG-Orig-Subj: Re: Combined metrics with PCP_DERIVED_CONFIG From: fche@redhat.com (Frank Ch. Eigler) Date: Fri, 25 Jul 2014 14:42:39 -0400 In-Reply-To: (Martin Spier's message of "Fri, 25 Jul 2014 11:26:18 -0700") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406313772 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 mspier wrote: > [...] As of now, I need to fetch two metrics,=A0kernel.all.cpu.sys and > kernel.all.cpu.user, each returning a separate data structure and > combine them. [...] And what I'm hoping to achieve is something > like this: [...] ... to create a new metric with a indexed instance domain. Sorry, I don't think the current pmRegisterDerived(3) implementation allows that. (Perhaps code for parsing the separate metrics would be well-spent investment anyway. That's because eventually, you'll likely need other metrics that can't be squished into a single instance-domained derived one due to differences in type/scale.) - FChE From fche@redhat.com Fri Jul 25 14:30:43 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id C5F0A29DF9 for ; Fri, 25 Jul 2014 14:30:43 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 645CBAC002 for ; Fri, 25 Jul 2014 12:30:42 -0700 (PDT) X-ASG-Debug-ID: 1406316638-04cbb006833d440001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id dGkPyhbizd07LRHq (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 25 Jul 2014 12:30:38 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6PJUZm8005302 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 25 Jul 2014 15:30:35 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6PJUYph020017; Fri, 25 Jul 2014 15:30:34 -0400 Received: by fche.csb (Postfix, from userid 2569) id 0587B5816B; Fri, 25 Jul 2014 15:30:33 -0400 (EDT) To: Ken McDonell Cc: pcp@oss.sgi.com Subject: Re: systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <53C94A6F.4080808@redhat.com> <20140718182751.GE20905@redhat.com> <53CE743E.9030807@redhat.com> <20140722152127.GC20079@redhat.com> <53CED142.1040109@redhat.com> <53D18ADF.204@internode.on.net> X-ASG-Orig-Subj: Re: systemtap/pcp integration From: fche@redhat.com (Frank Ch. Eigler) Date: Fri, 25 Jul 2014 15:30:33 -0400 In-Reply-To: <53D18ADF.204@internode.on.net> (Ken McDonell's message of "Fri, 25 Jul 2014 08:38:23 +1000") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406316638 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 kenj wrote: > [...] > Joining a bit late here ... 8^)> Thanks for your thoughts! > Please, if there is any choice, let's not add binary->ascii and > ascii->binary format conversions on the code path between the producer > and consumer of high volume and/or low latency performance data. I > hope the reasons are self-evident to this audience. [...] (Sure, generally speaking; but for lesser intensity, it could be fine. Must measure.) > The mmv model has worked well in the past. [...] It would be nice if we used it ourselves (outside QA toys), so we could experience its robustness & utility right in the code we ship. > [...] There is a lot of pain that has been invested in maturing the > operational and semantic robustness of the mmv model, so don't > discount the effort that would be required to get a completely new > model up to the same production standard. No doubt. And yet, there are some problems visible to the skeptical eye. For example, the use of the g1/g2 generation numbers to delimit "in-flux" times -- it might not be quite enough to prevent TOCTOU errors. If an app mmv_stats_init's (maybe growing new instances or whatever) right after the pmda mmv starts a need_reload==1 processing cycle, some corruption will result. Similarly, an app that scrambles its mmv shared memory content due to error or malevolence could likely also harm the shared systemwide pmda. The pmda seems to trust the data and performs little to no pointer arithmetic checking on the offsets coming therein. (Plus the mmv pmda could be used as a dso right inside pmcd, not even isolated into a process.) - FChE From wcohen@redhat.com Fri Jul 25 15:44:37 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 15F5A29DF9 for ; Fri, 25 Jul 2014 15:44:37 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id A761AAC001 for ; Fri, 25 Jul 2014 13:44:33 -0700 (PDT) X-ASG-Debug-ID: 1406321071-04bdf0475140680001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id EtjigjYcKcCpBJg2 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 25 Jul 2014 13:44:32 -0700 (PDT) X-Barracuda-Envelope-From: wcohen@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6PKiRJw029071 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 25 Jul 2014 16:44:27 -0400 Received: from [10.13.129.214] (dhcp129-214.rdu.redhat.com [10.13.129.214]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6PKiQ3p023552; Fri, 25 Jul 2014 16:44:27 -0400 Message-ID: <53D2C1AA.4040007@redhat.com> Date: Fri, 25 Jul 2014 16:44:26 -0400 From: William Cohen User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Paul Smith , pcp@oss.sgi.com Subject: Re: [pcp] systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <53C94A6F.4080808@redhat.com> <20140718182751.GE20905@redhat.com> <53CE743E.9030807@redhat.com> <20140722152127.GC20079@redhat.com> <53CED142.1040109@redhat.com> <53D18ADF.204@internode.on.net> <0A9AAB8D-A7E9-41A9-870F-868A39F4BE6D@aconex.com> X-ASG-Orig-Subj: Re: [pcp] systemtap/pcp integration In-Reply-To: <0A9AAB8D-A7E9-41A9-870F-868A39F4BE6D@aconex.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406321072 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/24/2014 08:43 PM, Paul Smith wrote: > I _love_ JSON,It's a useful format for clients to receive post data in a lot of cases, but for this sort of functionality I would not think this is the best internal format for capturing the events. Perhaps there's some clients that want to post that data easily via JSON, but make that an optional case, behind the scenes it's stored as binary. If you wanted to keep the format close to JSON, you could consider SMILE: > > http://wiki.fasterxml.com/SmileFormat > > For what it's worth, the clustered search service ElasticSearch has 2 connectors available, a JSON friendly text based connector which allows simple REST services to plugin via this text protocol, and a second connector mainly aimed at the companion ElasticSearch Java client layer that talks binary SMILE for efficiency. > > The text encoding/decoding can be expensive, so I would be careful about using it for internal storage/querying, but perhaps SMILE gives you something close. > > cheers, > > Paul Smith Hi Paul, I have noticed this problem of binary->ascii->binary conversion overhead with high volume trace points in particular the netdev-times script that is available with perf. The script spent a lot of time in the code reading/translating the data. I know it is going to shades of gray rather than a black and white decision, but are there thoughts on guidelines about when it JSON would be bad choice for use? Or when JSON would be a reasonable choice? JSON is human readable and is one of the reasons that people might prefer to use it. Is there some kind of reader that we can point people at to make it easier to read the SMILE data and verify that their pmda is generating reasonable data? That might tip things in SMILE's favor. -Will > > On 25 Jul 2014, at 8:38 am, Ken McDonell > wrote: > >> On 23/07/14 07:01, David Smith wrote: >>> On 07/22/2014 10:21 AM, Frank Ch. Eigler wrote: >>>> Hi, David - >>>> >>>> >>>>> [...] >>>>> I think a JSON fetcher/parser is a good idea. >>>> >>>> Good enough to redirect from MMV? >>> >>> I think MMV and a JSON fetcher/parser aren't mutually exclusive. I'd say >>> they are complementary. >>> >> >> Joining a bit late here ... 8^)> >> >> Please, if there is any choice, let's not add binary->ascii and ascii->binary format conversions on the code path between the producer and consumer of high volume and/or low latency performance data. I hope the reasons are self-evident to this audience. >> >> Pushing data from PCP via some JSON plumbing seems to be addressing a different, but important use case. Pushing data into PCP via JSON may be required if the producer of the data provides no more efficient API, and is again a different use case. >> >> The mmv model has worked well in the past. If it is not adequate in some respect (e.g. for event records), then I'd advocate making a variant of the mmv model that is refined to address the inadequacies (or even extend the existing mmv model). There is a lot of pain that has been invested in maturing the operational and semantic robustness of the mmv model, so don't discount the effort that would be required to get a completely new model up to the same production standard. >> >> _______________________________________________ >> pcp mailing list >> pcp@oss.sgi.com >> http://oss.sgi.com/mailman/listinfo/pcp > > > > _______________________________________________ > pcp mailing list > pcp@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/pcp > From kenj@internode.on.net Fri Jul 25 15:57:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id C7CCC29DF9 for ; Fri, 25 Jul 2014 15:57:07 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 33DBDAC001 for ; Fri, 25 Jul 2014 13:57:07 -0700 (PDT) X-ASG-Debug-ID: 1406321821-04cb6c6c2638c20001-S8gJnT Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id W3TIKZiylF3IWMhs for ; Fri, 25 Jul 2014 13:57:02 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnINAEfD0lN5LGkOPGdsb2JhbABZgw6IWMtkAwIBgQ8XBQEBAQE4NoQEAQQBCAIdExwjDQMCBgNGGSAKFAIEHgWIKge/WxePSweESQWRM6I4Kw Received: from ppp121-44-105-14.lns20.syd6.internode.on.net (HELO bozohorize) ([121.44.105.14]) by ipmail06.adl6.internode.on.net with ESMTP; 26 Jul 2014 06:26:57 +0930 From: "Ken McDonell" To: "'Frank Ch. Eigler'" Cc: References: <53C83CB9.3020808@redhat.com> <53C94A6F.4080808@redhat.com> <20140718182751.GE20905@redhat.com> <53CE743E.9030807@redhat.com> <20140722152127.GC20079@redhat.com> <53CED142.1040109@redhat.com> <53D18ADF.204@internode.on.net> In-Reply-To: Subject: RE: systemtap/pcp integration Date: Sat, 26 Jul 2014 06:56:56 +1000 X-ASG-Orig-Subj: RE: systemtap/pcp integration Message-ID: <01b401cfa84a$fb2620e0$f17262a0$@internode.on.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 15.0 Thread-Index: AQHCxhm+8lfCJTJjAIA5f95Y/aUPdwJ35NxbAsaqfT0BnLUvNgHSZl3uAfvczAYBm9NDfwF7h076AbSDFbubT1nhQA== Content-Language: en-au X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1406321822 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.01 X-Barracuda-Spam-Status: No, SCORE=0.01 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, THREAD_INDEX X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7822 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header Frank replied ... > > Please, if there is any choice, let's not add binary->ascii and > > ascii->binary format conversions on the code path between the producer > > and consumer of high volume and/or low latency performance data. I > > hope the reasons are self-evident to this audience. [...] > > (Sure, generally speaking; but for lesser intensity, it could be fine. > Must measure.) Indeed it depends on the data rate ... I think of systemtap (and kernel instrumentation in general) to be at the heavy lifting end of the spectrum in terms of data rates and size, and expect that event trace data might be even more so. But perhaps my "expectations" don't match the norm. > > > The mmv model has worked well in the past. [...] > > It would be nice if we used it ourselves (outside QA toys), so we could > experience its robustness & utility right in the code we ship. As Nathan has said ... "The MMV code in PCP has been around for quite some time, and I know of a number of production environments using it 24x7 on hundreds of machines, for many years - its not fragile at all. " Because of the way the mmv pmda is written, it is likely that the most common use case will be for instrumentation of applications that do not already have a performance data export channel (IPC, log file, status file, callback routine, system call) and are looking for an easy to implement and low overhead option. So by definition, most of the uses will be outside the PCP project's code base. And the cases we know about are in heavy duty production environments. So it is not exclusively the plaything of QA toys, and we don't use it more within the PCP code because the PMDAs we ship are generally ones where the export API exists (in someone else's code) and we're using their API. The systemtap area looks to be one place where such an API does not already exist and we're looking for options. > ... > No doubt. And yet, there are some problems visible to the skeptical eye. > > For example, the use of the g1/g2 generation numbers to delimit "in-flux" > times -- it might not be quite enough to prevent TOCTOU errors. If an app > mmv_stats_init's (maybe growing new instances or > whatever) right after the pmda mmv starts a need_reload==1 processing > cycle, some corruption will result. > > Similarly, an app that scrambles its mmv shared memory content due to error > or malevolence could likely also harm the shared systemwide pmda. The > pmda seems to trust the data and performs little to no pointer arithmetic > checking on the offsets coming therein. (Plus the mmv pmda could be used > as a dso right inside pmcd, not even isolated into a process.) Sceptical eyes are always welcome ... I'd be happy to take these issues on board to inform a plan to improve the mmv pmda. Since these are your observations, could you open a bz issue so we can track 'em? The DSO pmda issue is however not really an mmv problem, it is a general caveat on any PMDA that is added as a DSO, namely pmcd is exposed to coding errors in the PMDA. For this reason we really don't recommend the DSO pmda option except in cases where the pmcd<->pmda latency is an issue and we want to minimize the code path and we have confidence in the quality of the pmda code (e.g we know who wrote it, or it has been field tested in the confines of a daemon PMDA before the config switch is made). From kenj@internode.on.net Fri Jul 25 16:14:40 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 792F029DF9 for ; Fri, 25 Jul 2014 16:14:40 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id D85B8AC002 for ; Fri, 25 Jul 2014 14:14:36 -0700 (PDT) X-ASG-Debug-ID: 1406322873-04cb6c6c27395f0001-S8gJnT Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id gCgwb7alMvW9HXHj for ; Fri, 25 Jul 2014 14:14:34 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmwJAO/H0lN5LGkOPGdsb2JhbABZgkdHUleCeNAgAYEPFwUBAQEBODaEAwEBBQgCGQopIw0DAgYDDgMEAQEoAwICGSAKAwkIAgQTCwWIMahBlxoXjmhjBgGCeIFRBZEzlgaMMisv Received: from ppp121-44-105-14.lns20.syd6.internode.on.net (HELO bozohorize) ([121.44.105.14]) by ipmail06.adl6.internode.on.net with ESMTP; 26 Jul 2014 06:44:29 +0930 From: "Ken McDonell" To: "'Martin Spier'" Cc: References: <53D16827.5010600@internode.on.net> In-Reply-To: Subject: RE: [pcp] Combined metrics with PCP_DERIVED_CONFIG Date: Sat, 26 Jul 2014 07:14:28 +1000 X-ASG-Orig-Subj: RE: [pcp] Combined metrics with PCP_DERIVED_CONFIG Message-ID: <01dc01cfa84d$6e502cd0$4af08670$@internode.on.net> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_01DD_01CFA8A1.3FFDC370" X-Mailer: Microsoft Outlook 15.0 Thread-Index: AQLqevYHlJ8t3saRstjPlO65yWwU6QIjQ3vbAtX7P9GZU9fgQA== Content-Language: en-au X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1406322873 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.01 X-Barracuda-Spam-Status: No, SCORE=0.01 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, HTML_MESSAGE, THREAD_INDEX X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7822 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header 0.00 HTML_MESSAGE BODY: HTML included in message This is a multipart message in MIME format. ------=_NextPart_000_01DD_01CFA8A1.3FFDC370 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Frank has used his psychic powers to pretty much pre-empt my answer. =20 This twists the data semantics more than the =E2=80=9Cderived = metrics=E2=80=9D support is willing to contemplate. =20 The =E2=80=9Cinstances=E2=80=9D you=E2=80=99ve added would need instance = domain support (enumeration, internal index to external name mapping and = vice versa, an indom number) and it would only work for component = metrics that have the same dimension (in the pmUnits sense) and probably = only then for metrics that are scalar (have no associated instance = domain). =20 But with these restrictions, it would be technically feasible to define = a set-value metric (as a derived metric) where the elements of the set = are an ordered enumeration of the values of the metrics in the set). = Unfortunately there is a lot of code, and little available effort, = between =E2=80=9Ctechnically feasible=E2=80=9D and =E2=80=9Cavailable in = PCP=E2=80=9D. =20 From: Martin Spier [mailto:mspier@netflix.com]=20 Sent: Saturday, 26 July 2014 4:26 AM To: Ken McDonell Cc: pcp@oss.sgi.com Subject: Re: [pcp] Combined metrics with PCP_DERIVED_CONFIG =20 Sure. I'm building an UI that will consume PCP's API and besides other = things, plot the live data. One of the charts I need to draw is composed = of user and sys CPU. As of now, I need to fetch two metrics, = kernel.all.cpu.sys and kernel.all.cpu.user, each returning a separate = data structure and combine them. Eg.: =E2=80=A6 =20 ------=_NextPart_000_01DD_01CFA8A1.3FFDC370 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable

Frank has used his psychic powers to = pretty much pre-empt my answer.

 

This twists the data semantics more than = the =E2=80=9Cderived metrics=E2=80=9D support is willing to = contemplate.

 

The =E2=80=9Cinstances=E2=80=9D = you=E2=80=99ve added would need instance domain support (enumeration, = internal index to external name mapping and vice versa, an indom number) = and it would only work for component metrics that have the same = dimension (in the pmUnits sense) and probably only then for metrics that = are scalar (have no associated instance domain).

 

But with these restrictions, it would be = technically feasible to define a set-value metric (as a derived metric) = where the elements of the set are an ordered enumeration of the values = of the metrics in the set).=C2=A0 Unfortunately there is a lot of code, = and little available effort, between =E2=80=9Ctechnically = feasible=E2=80=9D and =E2=80=9Cavailable in = PCP=E2=80=9D.

 

From: Martin = Spier [mailto:mspier@netflix.com]
Sent: Saturday, 26 July = 2014 4:26 AM
To: Ken McDonell
Cc: = pcp@oss.sgi.com
Subject: Re: [pcp] Combined metrics with = PCP_DERIVED_CONFIG

 

Sure. = I'm building an UI that will consume PCP's API and besides other things, = plot the live data. One of the charts I need to draw is composed of user = and sys CPU. As of now, I need to fetch two = metrics, kernel.all.cpu.sys and kernel.all.cpu.user, each returning = a separate data structure and combine them. = Eg.:

=E2=80=A6

 

------=_NextPart_000_01DD_01CFA8A1.3FFDC370-- From mspier@netflix.com Fri Jul 25 21:38:24 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 9E17829DF9 for ; Fri, 25 Jul 2014 21:38:24 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 8ABAA304039 for ; Fri, 25 Jul 2014 19:38:21 -0700 (PDT) X-ASG-Debug-ID: 1406342287-04cb6c6c2447960001-S8gJnT Received: from mail-wg0-f45.google.com (mail-wg0-f45.google.com [74.125.82.45]) by cuda.sgi.com with ESMTP id S8Y3x0r3ETcdUyCl (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 25 Jul 2014 19:38:08 -0700 (PDT) X-Barracuda-Envelope-From: mspier@netflix.com X-Barracuda-Apparent-Source-IP: 74.125.82.45 Received: by mail-wg0-f45.google.com with SMTP id x12so5082646wgg.16 for ; Fri, 25 Jul 2014 19:38:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:date:message-id:subject:from:to:cc:content-type; bh=H/EB8OeRXFxqqoDC7sipkMQ74qVaofp2qzfW5808WJA=; b=KjqkA8TD5htVqdrT+Wv0IUy7589PW0dcrwgNiEz3ssgTLG7FdJitjfaBazErusLbHk KDpVnE/KmwM8DCJqevhVEA/S7PP3BGTWJ3wDVHQMcPpncA39RfzJ90DC8niV/nxbL20l QJPejLjMRhcMSRyY3v0k/7VzSpblj3XU2jLmc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to:cc :content-type; bh=H/EB8OeRXFxqqoDC7sipkMQ74qVaofp2qzfW5808WJA=; b=UMSS8DyJpe+dRdZ7kANbvu2HX2RtXA4ODCDHPnD10vS8eW0zoAZIdlvlh7QXH/YYTW Tq+ATZc6sdQI6hcYjvCC7sEvwtBAmgIsxUAuaBdc36mFh8CUkhTlhXGnYhAg4wIH7iSo NFhaS0RrASgzMOVFiQX6/kFKSw+vv5TGH4LjQZB+bdQeAhnFQqbUtJkRZKo+TZGdORx8 h+Jz3LcvTCtKeBcO28obWobnOZ9MPnDfqJXN61uC9HOyDiMaTnKQBpSxcVSHkIDc4iao mJPqmNy+oWFCPQU/dH8fgnM9IrKInbdIxH25g5PH7FmyMHY2KVeXho0ecxaN4166xRuL U09w== X-Gm-Message-State: ALoCoQnxf7l7uYSevEaihHRsfopUbXQ0YlN5fyJmajGPheBxf1c5ymNHMYoceVKW2aKnTgOU0Xeo MIME-Version: 1.0 X-Received: by 10.194.10.167 with SMTP id j7mr27459297wjb.100.1406336331936; Fri, 25 Jul 2014 17:58:51 -0700 (PDT) Received: by 10.180.39.148 with HTTP; Fri, 25 Jul 2014 17:58:51 -0700 (PDT) Date: Fri, 25 Jul 2014 17:58:51 -0700 Message-ID: Subject: Floating point problem From: Martin Spier X-ASG-Orig-Subj: Floating point problem To: pcp@oss.sgi.com Cc: Coburn Watson , Brendan Gregg , Amer Ather Content-Type: multipart/alternative; boundary=047d7b5d95e7801a5f04ff0e31f6 X-Barracuda-Connect: mail-wg0-f45.google.com[74.125.82.45] X-Barracuda-Start-Time: 1406342287 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7831 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --047d7b5d95e7801a5f04ff0e31f6 Content-Type: text/plain; charset=UTF-8 Ran into a small problem with "value" floating point precision on pmwebd json responses. Cumulative values get too big and I start having problems like this: { "timestamp": { "s": 1406323733, "us": 288692 }, "values": [ { "pmid": 2143289348, "name": "kernel.pct.cpu.user", "instances": [ { *"value": 7.94874E+10* } ] } ] } Since I'm trying to calculate % usage in this case, subtracting previous value from current and normalizing by delta in time, at this point I can't get any useful information to plot due to the low precision. Any suggestions? -Martin --047d7b5d95e7801a5f04ff0e31f6 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Ran into a small problem with "value" float= ing point precision on pmwebd json responses.

Cumu= lative values get too big and I start having problems like this:

{
=C2=A0 "timestamp": {
=C2=A0= =C2=A0 "s": 1406323733,
=C2=A0 =C2=A0 "us": = 288692
=C2=A0 },
=C2=A0 "values": [
=C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 "pmid": 214328934= 8,
=C2=A0 =C2=A0 =C2=A0 "name": "kernel.pct.cpu.user"= ,
=C2=A0 =C2=A0 =C2=A0 "instances": [
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 &quo= t;value": 7.94874E+10
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }
=C2=A0 =C2=A0 =C2=A0 ]
=C2=A0 =C2=A0 }
=C2=A0 ]
}

Since I'm trying to calculate % usage in this case, subtracting previ= ous value from current and normalizing by delta in time, at this point I ca= n't get any useful information to plot due to the low precision.

Any suggestions?

-Martin
=
--047d7b5d95e7801a5f04ff0e31f6-- From mspier@netflix.com Fri Jul 25 22:31:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 4279529DF9 for ; Fri, 25 Jul 2014 22:31:16 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 121B3304043 for ; Fri, 25 Jul 2014 20:31:15 -0700 (PDT) X-ASG-Debug-ID: 1406345469-04bdf04753521c0001-S8gJnT Received: from mail-we0-f180.google.com (mail-we0-f180.google.com [74.125.82.180]) by cuda.sgi.com with ESMTP id YvvZWHv8AHbZEid1 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 25 Jul 2014 20:31:10 -0700 (PDT) X-Barracuda-Envelope-From: mspier@netflix.com X-Barracuda-Apparent-Source-IP: 74.125.82.180 Received: by mail-we0-f180.google.com with SMTP id w61so5065989wes.39 for ; Fri, 25 Jul 2014 20:31:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=/wfJDAMf6ttvTtoUX0aFTwE4D85/E5g7GBpc8xwxxLc=; b=goWdT1wmhrp8R0vdrfarsO6nAgSEnS85emAo3s3oTxHontTAORs7loC7CCqEEriF51 WYMG0oucR1AgaPYu6fCdaUe3yKhYXkfLbHt+VWo8FE0mbfhp6OJBHoq+/lAjWiE0lAi8 zig7T28ULsQdgXLCfnSkXHFOIdhyxsbnalr+M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=/wfJDAMf6ttvTtoUX0aFTwE4D85/E5g7GBpc8xwxxLc=; b=ZRfgTTLoz6WLSgq0cXJF1+X4Ch2lmjYODUvngkPnBYyCUoz3bXj+OunSwJhs2c269w QL3MZ1OIq4DTxDm+bhCbAYLHWpvHXMXBI1GtJ7UB/P+APijZRTB4e8DNMwrmmrVyvlbV tdJBEoekEmEFwdmao8un69ZOIkLqFYO6neqQhJO6GAhCrbpbcuwepzVfL0o9fk8ZK7tO ei3kW4WiPCnmHFMW+rfCUQhvQIxkst5ESguldHX+6PIs1BxMjZkr1PNL+2okx2vqVCqD aOr5JcW6UcnwHoRFCkpv2l5uepEElgb7vQ21jUU21ebUio6k71RZRxUFdAa3ByjMBQ5E pDyg== X-Gm-Message-State: ALoCoQn6jZMsHr/+ewIbp5GlX3VwmMqTrOHka5t/v/jnE3qgHLCDBK7acPokcLcjJymR9JWYpZ1s MIME-Version: 1.0 X-Received: by 10.194.110.161 with SMTP id ib1mr8939481wjb.129.1406335800587; Fri, 25 Jul 2014 17:50:00 -0700 (PDT) Received: by 10.180.39.148 with HTTP; Fri, 25 Jul 2014 17:50:00 -0700 (PDT) In-Reply-To: <01dc01cfa84d$6e502cd0$4af08670$@internode.on.net> References: <53D16827.5010600@internode.on.net> <01dc01cfa84d$6e502cd0$4af08670$@internode.on.net> Date: Fri, 25 Jul 2014 17:50:00 -0700 Message-ID: Subject: Re: [pcp] Combined metrics with PCP_DERIVED_CONFIG From: Martin Spier X-ASG-Orig-Subj: Re: [pcp] Combined metrics with PCP_DERIVED_CONFIG To: Ken McDonell Cc: pcp@oss.sgi.com Content-Type: multipart/alternative; boundary=089e0102fc52d4619a04ff0e11b1 X-Barracuda-Connect: mail-we0-f180.google.com[74.125.82.180] X-Barracuda-Start-Time: 1406345470 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7831 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --089e0102fc52d4619a04ff0e11b1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I figure it would not be trivial to implement it, but I was counting on a slight chance that this would be an undocumented feature. :-) Anyway, this is not a roadblock, but it would make things easier on the UI side for me, hence, worth asking. Thanks Ken and Frank for the prompt response! Cheers, Martin On Fri, Jul 25, 2014 at 2:14 PM, Ken McDonell wrote= : > Frank has used his psychic powers to pretty much pre-empt my answer. > > > > This twists the data semantics more than the =E2=80=9Cderived metrics=E2= =80=9D support is > willing to contemplate. > > > > The =E2=80=9Cinstances=E2=80=9D you=E2=80=99ve added would need instance = domain support > (enumeration, internal index to external name mapping and vice versa, an > indom number) and it would only work for component metrics that have the > same dimension (in the pmUnits sense) and probably only then for metrics > that are scalar (have no associated instance domain). > > > > But with these restrictions, it would be technically feasible to define a > set-value metric (as a derived metric) where the elements of the set are = an > ordered enumeration of the values of the metrics in the set). > Unfortunately there is a lot of code, and little available effort, betwee= n > =E2=80=9Ctechnically feasible=E2=80=9D and =E2=80=9Cavailable in PCP=E2= =80=9D. > > > > *From:* Martin Spier [mailto:mspier@netflix.com] > *Sent:* Saturday, 26 July 2014 4:26 AM > *To:* Ken McDonell > *Cc:* pcp@oss.sgi.com > *Subject:* Re: [pcp] Combined metrics with PCP_DERIVED_CONFIG > > > > Sure. I'm building an UI that will consume PCP's API and besides other > things, plot the live data. One of the charts I need to draw is composed = of > user and sys CPU. As of now, I need to fetch two > metrics, kernel.all.cpu.sys and kernel.all.cpu.user, each returning a > separate data structure and combine them. Eg.: > > =E2=80=A6 > > > --089e0102fc52d4619a04ff0e11b1 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I figure it would not be trivial to implement it, but I wa= s counting on a slight chance that this would be an undocumented feature. := -) Anyway, this is not a roadblock, but it would make things easier on the = UI side for me, hence, worth asking.

Thanks Ken and Frank for the prompt response!

=
Cheers,
Martin

On Fri, Jul 25, 2014 at 2:14 PM, Ken McDonell <= span dir=3D"ltr"><kenj@internode.on.net> wrote:

Frank has use= d his psychic powers to pretty much pre-empt my answer.

=C2=A0

This twists the dat= a semantics more than the =E2=80=9Cderived metrics=E2=80=9D support is will= ing to contemplate.

=C2=A0

The =E2=80=9Cinstan= ces=E2=80=9D you=E2=80=99ve added would need instance domain support (enume= ration, internal index to external name mapping and vice versa, an indom nu= mber) and it would only work for component metrics that have the same dimen= sion (in the pmUnits sense) and probably only then for metrics that are sca= lar (have no associated instance domain).

=C2=A0

But with these rest= rictions, it would be technically feasible to define a set-value metric (as= a derived metric) where the elements of the set are an ordered enumeration= of the values of the metrics in the set).=C2=A0 Unfortunately there is a l= ot of code, and little available effort, between =E2=80=9Ctechnically feasi= ble=E2=80=9D and =E2=80=9Cavailable in PCP=E2=80=9D.

=C2=A0

From: Martin Spier [mailto:mspier@netflix.com]
Sent: Saturday, 26 July 2014 4:26 AM
To: Ken McDonell
<= b>Cc: pcp@oss.sgi.= com
Subject: Re: [pcp] Combined metrics with PCP_DERIVED_CONF= IG

=C2=A0

=

Sure. I'm building an UI that will consume = PCP's API and besides other things, plot the live data. One of the char= ts I need to draw is composed of user and sys CPU. As of now, I need to fet= ch two metrics,=C2=A0kernel.all.cpu.sys and kernel.all.cpu.user, each retur= ning a separate data structure and combine them. Eg.:

=E2=80=A6

=C2=A0


--089e0102fc52d4619a04ff0e11b1-- From kenj@internode.on.net Sat Jul 26 02:41:28 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 58CB07F37 for ; Sat, 26 Jul 2014 02:41:28 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 293788F804B for ; Sat, 26 Jul 2014 00:41:24 -0700 (PDT) X-ASG-Debug-ID: 1406360478-04bdf047525dfd0001-S8gJnT Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id vk6FJ61qkgn5Ekxd for ; Sat, 26 Jul 2014 00:41:19 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4GACBb01N20QaB/2dsb2JhbABZgkdHUleCJ1HQJAGBCRd3hAMBAQUIAhkKKSMNAwIGAw4DBAEBKAMCAhkgDQkIAgQBEgsFiDGnaZcnF49LBgGCeIFRBZE0nmCDWysv Received: from ppp118-209-6-129.lns20.mel4.internode.on.net (HELO bozohorize) ([118.209.6.129]) by ipmail07.adl2.internode.on.net with ESMTP; 26 Jul 2014 17:11:17 +0930 From: "Ken McDonell" To: "'Martin Spier'" , Cc: "'Amer Ather'" , "'Coburn Watson'" , "'Brendan Gregg'" References: In-Reply-To: Subject: RE: [pcp] Floating point problem Date: Sat, 26 Jul 2014 17:40:59 +1000 X-ASG-Orig-Subj: RE: [pcp] Floating point problem Message-ID: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0336_01CFA8F8.CEB751B0" X-Mailer: Microsoft Outlook 15.0 Thread-Index: AQIxaOIXy2571QFdLkYNO/7w2Cm2Rprud8QQ Content-Language: en-au X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1406360478 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.01 X-Barracuda-Spam-Status: No, SCORE=0.01 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE, THREAD_INDEX X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7833 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.00 HTML_MESSAGE BODY: HTML included in message This is a multipart message in MIME format. ------=_NextPart_000_0336_01CFA8F8.CEB751B0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable I think there is a problem with the derived metric definition =E2=80=A6 = looks like the number is a counter, which probably is not correct. =20 Can you send me the derived metric definition please? =20 From: pcp-bounces@oss.sgi.com [mailto:pcp-bounces@oss.sgi.com] On Behalf = Of Martin Spier Sent: Saturday, 26 July 2014 10:59 AM To: pcp@oss.sgi.com Cc: Amer Ather; Coburn Watson; Brendan Gregg Subject: [pcp] Floating point problem =20 Ran into a small problem with "value" floating point precision on pmwebd = json responses. =20 Cumulative values get too big and I start having problems like this: =20 { "timestamp": { "s": 1406323733, "us": 288692 }, "values": [ { "pmid": 2143289348, "name": "kernel.pct.cpu.user", "instances": [ { "value": 7.94874E+10 } ] } ] } =20 Since I'm trying to calculate % usage in this case, subtracting previous = value from current and normalizing by delta in time, at this point I = can't get any useful information to plot due to the low precision. =20 Any suggestions? =20 -Martin ------=_NextPart_000_0336_01CFA8F8.CEB751B0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable

I think there is a problem with the = derived metric definition =E2=80=A6 looks like the number is a counter, = which probably is not correct.

 

Can you send me the derived metric = definition please?

 

From: = pcp-bounces@oss.sgi.com [mailto:pcp-bounces@oss.sgi.com] On Behalf Of = Martin Spier
Sent: Saturday, 26 July 2014 10:59 = AM
To: pcp@oss.sgi.com
Cc: Amer Ather; Coburn = Watson; Brendan Gregg
Subject: [pcp] Floating point = problem

 

Ran into a small problem with "value" = floating point precision on pmwebd json = responses.

 

Cumulative values get too big and I start having = problems like this:

 

{

  = "timestamp": {

    "s": = 1406323733,

    = "us": 288692

  },

  "values": = [

    = {

      = "pmid": 2143289348,

      "name": = "kernel.pct.cpu.user",

      "instances": = [

      =   {

    =       "value": = 7.94874E+10

  =       }

      ]

    }

  ]

}

 

Since I'm trying to calculate % usage in this case, = subtracting previous value from current and normalizing by delta in = time, at this point I can't get any useful information to plot due to = the low precision.

 

Any suggestions?

 

-Martin

------=_NextPart_000_0336_01CFA8F8.CEB751B0-- From fche@redhat.com Sun Jul 27 12:29:39 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 8DDB929DF9 for ; Sun, 27 Jul 2014 12:29:39 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 1CAD1AC002 for ; Sun, 27 Jul 2014 10:29:35 -0700 (PDT) X-ASG-Debug-ID: 1406482170-04cb6c6c258a500001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id vWiFkf964rtDF32v (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sun, 27 Jul 2014 10:29:31 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6RHTFsf021148 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 27 Jul 2014 13:29:15 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6RHTEWp016948; Sun, 27 Jul 2014 13:29:14 -0400 Received: by fche.csb (Postfix, from userid 2569) id 96E0758393; Sun, 27 Jul 2014 13:29:13 -0400 (EDT) Date: Sun, 27 Jul 2014 13:29:13 -0400 From: "Frank Ch. Eigler" To: Ken McDonell Cc: pcp@oss.sgi.com Subject: Re: systemtap/pcp integration Message-ID: <20140727172913.GE12073@redhat.com> X-ASG-Orig-Subj: Re: systemtap/pcp integration References: <53C83CB9.3020808@redhat.com> <53C94A6F.4080808@redhat.com> <20140718182751.GE20905@redhat.com> <53CE743E.9030807@redhat.com> <20140722152127.GC20079@redhat.com> <53CED142.1040109@redhat.com> <53D18ADF.204@internode.on.net> <01b401cfa84a$fb2620e0$f17262a0$@internode.on.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <01b401cfa84a$fb2620e0$f17262a0$@internode.on.net> User-Agent: Mutt/1.4.2.2i X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406482171 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi, Ken - > > (Sure, generally speaking; but for lesser intensity, it could be fine. > > Must measure.) > > Indeed it depends on the data rate ... I think of systemtap (and kernel > instrumentation in general) to be at the heavy lifting end of the spectrum > in terms of data rates and size, and expect that event trace data might be > even more so. [...] That sounds right, though systemtap is often used to compress & analyze the data from a system in situ (where it's most efficient), before reporting it to userspace. Similarly for tracing - stap scripts don't normally bother report each microscopic event, but larger richer derived events/values. While one can program a particular stap script otherwise, the data rates may not be that high. Must measure. > > > The mmv model has worked well in the past. [...] > > > > It would be nice if we used it ourselves (outside QA toys), so we could > > experience its robustness & utility right in the code we ship. > > As Nathan has said ... "The MMV code in PCP has been around for quite some > time, and I know of a number of production environments using it 24x7 on > hundreds of machines, for many years - its not fragile at all. " No one's disputing that, especially considering the extent to which those production environments were assisted by PCP developers, who were well aware how the code worked and didn't need to stray from the super stable parts. > Because of the way the mmv pmda is written, it is likely that the > most common use case will be for instrumentation of applications > that do not already have a performance data export channel (IPC, log > file, status file, callback routine, system call) and are looking > for an easy to implement and low overhead option. So by definition, > most of the uses will be outside the PCP project's code base. That doesn't quite follow. Some places within pcp where we do have log files, ipc, status file etc. kinds of mechanisms just to share some data, could use MMV instead. Those log files could be exported to special clients, as could stats/reports about internal operations of nontrivial servers. It could be an upgrade from one-off shmem protocols crafted for pmcd.{pmie,pmlogger,...}. > [...] > Sceptical eyes are always welcome ... I'd be happy to take these issues on > board to inform a plan to improve the mmv pmda. Since these are your > observations, could you open a bz issue so we can track 'em? Sure thing. > The DSO pmda issue is however not really an mmv problem, it is a general > caveat on any PMDA that is added as a DSO, namely pmcd is exposed to coding > errors in the PMDA. Indeed so. (Only not just coding errors in the sense of outright bugs, but sensitivity to malevolent environments.) Note even the unprivileged process PMDAs may run as user 'pcp', which is not entirely unprivileged. setuid-pcp processes can muck with directories like /var/lib/pcp/tmp, /var/lib/pcp/config, /etc/pcp/pmie, /etc/pcp/pmlogger... so there are some slightly attractive targets there too. - FChE From wwwrun@oss.sgi.com Sun Jul 27 12:35:00 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,NO_RELAYS autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: by oss.sgi.com (Postfix, from userid 30) id 9A2F029DFA; Sun, 27 Jul 2014 12:35:00 -0500 (CDT) From: bugzilla-daemon@oss.sgi.com To: pcp@oss.sgi.com Subject: [Bug 1061] New: mmv pmda sensitive to TOCTOU for shmem metadata extraction Date: Sun, 27 Jul 2014 17:35:00 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Classification: Unclassified X-Bugzilla-Product: pcp X-Bugzilla-Component: pcp X-Bugzilla-Keywords: X-Bugzilla-Severity: major X-Bugzilla-Who: fche@redhat.com X-Bugzilla-Status: NEW X-Bugzilla-Priority: P5 X-Bugzilla-Assigned-To: pcp@kenj.com.au X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter cc classification Message-ID: Content-Type: multipart/alternative; boundary="1406482500.74BAA3B1.31391"; charset="us-ascii" X-Bugzilla-URL: http://oss.sgi.com/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 --1406482500.74BAA3B1.31391 Date: Sun, 27 Jul 2014 12:35:00 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" http://oss.sgi.com/bugzilla/show_bug.cgi?id=1061 Bug ID: 1061 Summary: mmv pmda sensitive to TOCTOU for shmem metadata extraction Product: pcp Version: unspecified Hardware: All OS: Linux Status: NEW Severity: major Priority: P5 Component: pcp Assignee: pcp@kenj.com.au Reporter: fche@redhat.com CC: pcp@oss.sgi.com Classification: Unclassified It appears possible for an libmmv-based application to issue mmv_stats_init(3) calls close enough to confuse the mmv pmda. That's because the mmv pmda only checks the shmem g1/g2 generation numbers once, and assumes that during the whole need_reload==1 processing, the shmem contents will be stable. An adequate workaround could be to have the mmv pmda copy the shmem segment into a private copy (possibly looping if the libmmv app keeps changing things -- but watch out for DoS!), then using the stable private copy to populate the PMNS etc., and to compute persistent pointers to the shmem pmAtoms. -- You are receiving this mail because: You are on the CC list for the bug. --1406482500.74BAA3B1.31391 Date: Sun, 27 Jul 2014 12:35:00 -0500 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8"
Bug ID 1061
Summary mmv pmda sensitive to TOCTOU for shmem metadata extraction
Product pcp
Version unspecified
Hardware All
OS Linux
Status NEW
Severity major
Priority P5
Component pcp
Assignee pcp@kenj.com.au
Reporter fche@redhat.com
CC pcp@oss.sgi.com
Classification Unclassified

It appears possible for an libmmv-based application to issue mmv_stats_init(3)
calls close enough to confuse the mmv pmda.  That's because the mmv pmda only
checks the shmem g1/g2 generation numbers once, and assumes that during the 
whole need_reload==1 processing, the shmem contents will be stable.

An adequate workaround could be to have the mmv pmda copy the shmem segment
into a private copy (possibly looping if the libmmv app keeps changing
things -- but watch out for DoS!), then using the stable private copy to
populate the PMNS etc., and to compute persistent pointers to the shmem
pmAtoms.


You are receiving this mail because:
  • You are on the CC list for the bug.
--1406482500.74BAA3B1.31391-- From wwwrun@oss.sgi.com Sun Jul 27 12:46:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,NO_RELAYS autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: by oss.sgi.com (Postfix, from userid 30) id 5253E29DFA; Sun, 27 Jul 2014 12:46:22 -0500 (CDT) From: bugzilla-daemon@oss.sgi.com To: pcp@oss.sgi.com Subject: [Bug 1062] New: mmv pmda sensitive to malevolent data Date: Sun, 27 Jul 2014 17:46:22 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Classification: Unclassified X-Bugzilla-Product: pcp X-Bugzilla-Component: pcp X-Bugzilla-Keywords: X-Bugzilla-Severity: major X-Bugzilla-Who: fche@redhat.com X-Bugzilla-Status: NEW X-Bugzilla-Priority: P5 X-Bugzilla-Assigned-To: pcp@kenj.com.au X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter cc classification Message-ID: Content-Type: multipart/alternative; boundary="1406483182.8222aB1.32664"; charset="us-ascii" X-Bugzilla-URL: http://oss.sgi.com/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 --1406483182.8222aB1.32664 Date: Sun, 27 Jul 2014 12:46:22 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" http://oss.sgi.com/bugzilla/show_bug.cgi?id=1062 Bug ID: 1062 Summary: mmv pmda sensitive to malevolent data Product: pcp Version: unspecified Hardware: All OS: Linux Status: NEW Severity: major Priority: P5 Component: pcp Assignee: pcp@kenj.com.au Reporter: fche@redhat.com CC: pcp@oss.sgi.com Classification: Unclassified The mmv shmem TOC data structures contain offsets/pointers to other places within the shmem for strings and other data structures. If these offsets/pointers are not as expected, the pmda mmv could be tricked to read non-intended regions of its own memory. (If the pmda were used in DSO mode, it could be used to pull out private memory from the PMCD!) The pmda mmv should defend itself from such trickery by checking all shmem-originated pointer/offset data to ensure that only internal references are processed. While the mmv(5) structure appears to lack linked list type structures that could be vulnerable to DoS (by tricking the pmda to loop infinitely), many other values like table size counts need to be sanity-checked. Considering that unprivileged processes may deposit mmv shmem objects under /var/lib/pcp/tmp, we should consider fuzz-testing the pmda to the same standard as we test the network servers' tolerance to bad packets. -- You are receiving this mail because: You are on the CC list for the bug. --1406483182.8222aB1.32664 Date: Sun, 27 Jul 2014 12:46:22 -0500 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8"
Bug ID 1062
Summary mmv pmda sensitive to malevolent data
Product pcp
Version unspecified
Hardware All
OS Linux
Status NEW
Severity major
Priority P5
Component pcp
Assignee pcp@kenj.com.au
Reporter fche@redhat.com
CC pcp@oss.sgi.com
Classification Unclassified

The mmv shmem TOC data structures contain offsets/pointers to other
places within the shmem for strings and other data structures.  If
these offsets/pointers are not as expected, the pmda mmv could be
tricked to read non-intended regions of its own memory.    (If the
pmda were used in DSO mode, it could be used to pull out private
memory  from the PMCD!)

The pmda mmv should defend itself from such trickery by checking
all shmem-originated pointer/offset data to ensure that only
internal references are processed.  While the mmv(5) structure
appears to lack linked list type structures that could be vulnerable
to DoS (by tricking the pmda to loop infinitely), many other
values like table size counts need to be sanity-checked.

Considering that unprivileged processes may deposit mmv shmem
objects under /var/lib/pcp/tmp, we should consider fuzz-testing
the pmda to the same standard as we test the network servers'
tolerance to bad packets.


You are receiving this mail because:
  • You are on the CC list for the bug.
--1406483182.8222aB1.32664-- From mgoodwin@redhat.com Mon Jul 28 03:38:46 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 5764C7F47 for ; Mon, 28 Jul 2014 03:38:46 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 36676304043 for ; Mon, 28 Jul 2014 01:38:43 -0700 (PDT) X-ASG-Debug-ID: 1406536718-04cb6c6c27a3280001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id kUEFm5htOSEkF8vW (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 28 Jul 2014 01:38:39 -0700 (PDT) X-Barracuda-Envelope-From: mgoodwin@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6S8ccS1016823 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 28 Jul 2014 04:38:38 -0400 Received: from [10.64.49.143] (vpn1-49-143.bne.redhat.com [10.64.49.143]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6S8caiv000418 for ; Mon, 28 Jul 2014 04:38:37 -0400 Message-ID: <53D60C0C.8070806@redhat.com> Date: Mon, 28 Jul 2014 18:38:36 +1000 From: Mark Goodwin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: pcp updates: disk.dm.{read,write}_rawactive Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: pcp updates: disk.dm.{read,write}_rawactive Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406536719 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Needed for pmiostat, coming in the next commit. Changes committed to git://git.performancecopilot.org/markgw/pcp/pcp.git dev commit 520dfbef11f1472148ff1d0dac1ef46383f61053 Author: Mark Goodwin Date: Mon Jul 28 18:34:06 2014 +1000 Implement disk.dm.{read,write}_rawactive, needed for pmiostat. modified: src/pmdas/linux/help modified: src/pmdas/linux/pmda.c modified: src/pmdas/linux/proc_partitions.c modified: src/pmdas/linux/root_linux From mgoodwin@redhat.com Mon Jul 28 05:01:31 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 892547F47 for ; Mon, 28 Jul 2014 05:01:31 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 76F628F8035 for ; Mon, 28 Jul 2014 03:01:27 -0700 (PDT) X-ASG-Debug-ID: 1406541683-04cbb00684c1a90001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 1ZWyksIVqtVpWEN1 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 28 Jul 2014 03:01:23 -0700 (PDT) X-Barracuda-Envelope-From: mgoodwin@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6SA1MbO004712 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 28 Jul 2014 06:01:22 -0400 Received: from [10.64.49.143] (vpn1-49-143.bne.redhat.com [10.64.49.143]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6SA1L0l006507 for ; Mon, 28 Jul 2014 06:01:22 -0400 Message-ID: <53D61F70.2030201@redhat.com> Date: Mon, 28 Jul 2014 20:01:20 +1000 From: Mark Goodwin User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: pcp updates: pmiostat Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: pcp updates: pmiostat Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406541683 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 After a discussion and agreement with Nathan, committing this a bit earlier than I was intending - still has lots of TODO, but it works :) Changes committed to git://git.performancecopilot.org/markgw/pcp/pcp.git dev commit 317340b9a17eed4c60f01c2d79a5ccb9f0d325fa Author: Mark Goodwin Date: Mon Jul 28 19:37:32 2014 +1000 Initial commit for pmiostat, as an essential storage performance analysis tool. pmiostat reports I/O stats for sd or dm devices, with the same fields as sysstat "iostat -x" apart from the following: the svctm (service time) field is omitted since this statistic is now obsolete, and the avgrq-sz field (average request size) is reported in KB whereas sysstat reports in units of sectors. Still needs a man page, pmlogconf config updates, some inevitable python code cleanup, support for regex/patterns to restrict the device names reported, another round of cli usage refinements and QA. This tool is expected to play a part in the new disk.{dev,dm}.* QA effort, using the fake/injected /dev/mapper, /proc/diskstats and /sys/block/* interfaces). So far this has only been manually QA'd against systat's iostat on a variety of simple i/o workloads. modified: src/GNUmakefile new file: src/pmiostat/GNUmakefile new file: src/pmiostat/pmiostat.py From fche@redhat.com Mon Jul 28 07:40:13 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 7008B7F37 for ; Mon, 28 Jul 2014 07:40:13 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 4EDC98F8033 for ; Mon, 28 Jul 2014 05:40:10 -0700 (PDT) X-ASG-Debug-ID: 1406551208-04bdf04752cb370001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id lakenlfJvbXw8XOi (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 28 Jul 2014 05:40:08 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6SCe5pZ000457 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 28 Jul 2014 08:40:05 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6SCe42O002640; Mon, 28 Jul 2014 08:40:05 -0400 Received: by fche.csb (Postfix, from userid 2569) id 2ADF458496; Mon, 28 Jul 2014 08:40:03 -0400 (EDT) To: Martin Spier Cc: pcp@oss.sgi.com, Amer Ather , Coburn Watson , Brendan Gregg Subject: Re: Floating point problem References: X-ASG-Orig-Subj: Re: Floating point problem From: fche@redhat.com (Frank Ch. Eigler) Date: Mon, 28 Jul 2014 08:39:59 -0400 In-Reply-To: (Martin Spier's message of "Fri, 25 Jul 2014 17:58:51 -0700") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406551208 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 mspier wrote: > Ran into a small problem with "value" floating point precision on pmwebd = json > responses. > [...] > =A0 =A0 =A0 "instances": [ > =A0 =A0 =A0 =A0 { > =A0 =A0 =A0 =A0 =A0 "value": 7.94874E+10 > =A0 =A0 =A0 =A0 } > [...] Neither fche/pmwebd nor dev branch pmwebds appear to do any unnecessary casting of pmExtractValue'd integers to floating point, so that transformation must be done beneath pmwebd. - FChE From mspier@netflix.com Mon Jul 28 14:47:39 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=DC_PNG_UNO_LARGO,HTML_MESSAGE, T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id C93CD7F47 for ; Mon, 28 Jul 2014 14:47:39 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id A04C3304043 for ; Mon, 28 Jul 2014 12:47:39 -0700 (PDT) X-ASG-Debug-ID: 1406576855-04cb6c6c24c6ef0001-S8gJnT Received: from mail-we0-f180.google.com (mail-we0-f180.google.com [74.125.82.180]) by cuda.sgi.com with ESMTP id Ip8elkgJD4p6gpxC (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Mon, 28 Jul 2014 12:47:36 -0700 (PDT) X-Barracuda-Envelope-From: mspier@netflix.com X-Barracuda-Apparent-Source-IP: 74.125.82.180 Received: by mail-we0-f180.google.com with SMTP id w61so7790890wes.11 for ; Mon, 28 Jul 2014 12:47:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=ZqfyCoeEyleuC3qh3BWl+twJIjsYN/jNAfxRKMUF10U=; b=VYYfbCKzBRpUAlnlecfMxkKzm3gz2/+GAifX4m7+4LRFT+o4Sm9OSHnZRZCULlYGzT aO4QbtViN71OjnrpE81EesOwL7ff/GCAcaFOgHr//KEkDFfg30iCYY0yu9idxOUZQf3d tL4xIbksQZnZp7DYZyFcVrRNTsE/r7fH6wg3k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=ZqfyCoeEyleuC3qh3BWl+twJIjsYN/jNAfxRKMUF10U=; b=lct/W/fwmzHFgk7tLOTF14gjFgCxwwOFwyPQevaCIj0eQDutaNCo8iy7xLtv9rWIq7 kWQfyodtgWaJ+TOKOhlJOKV8/ZL2m3iaIpPszUOOUP95d7tEg2pzaWRtGMXlOOp2CkCY nZfK+ToWZ6FQLimk0fF1DmVeYJc2DSE8tiTo4RtdysFzd0hNUa7wJwU3faR+/mdsEZVh +qVo2L/3JfTOo0NGbEUsBaABZ06GHQOnLTb4bwaIQjBZvbXsz4OySKN5Usd60MxCSfSZ jkfAL8xTG90isbrBJManPkkFmARffpnNtavPWeXS7EzfbXX4XapT0IGCRdvyT4C2IhOb Fv6A== X-Gm-Message-State: ALoCoQkIPLvporDBIcqJ9N0nz9Rti+ujwXcGgX0h6/p7vzyTqVZ3UAcvCwZFE2vzj3Kl5cyhtUJn MIME-Version: 1.0 X-Received: by 10.180.91.47 with SMTP id cb15mr14992042wib.10.1406576851817; Mon, 28 Jul 2014 12:47:31 -0700 (PDT) Received: by 10.180.39.148 with HTTP; Mon, 28 Jul 2014 12:47:31 -0700 (PDT) In-Reply-To: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> References: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> Date: Mon, 28 Jul 2014 12:47:31 -0700 Message-ID: Subject: Re: [pcp] Floating point problem From: Martin Spier X-ASG-Orig-Subj: Re: [pcp] Floating point problem To: Ken McDonell Cc: pcp@oss.sgi.com, Amer Ather , Coburn Watson , Brendan Gregg Content-Type: multipart/related; boundary=f46d043c7ed69d5fb304ff46312e X-Barracuda-Connect: mail-we0-f180.google.com[74.125.82.180] X-Barracuda-Start-Time: 1406576856 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.60 X-Barracuda-Spam-Status: No, SCORE=0.60 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085, DC_PNG_UNO_LARGO, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7897 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message 0.50 DC_PNG_UNO_LARGO Message contains a single large inline gif 0.10 BSF_SC0_SA085 Custom Rule SA085 --f46d043c7ed69d5fb304ff46312e Content-Type: multipart/alternative; boundary=f46d043c7ed69d5fb004ff46312d --f46d043c7ed69d5fb004ff46312d Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Here it is: kernel.pct.cpu.user =3D 100 * kernel.all.cpu.user / hinv.ncpu kernel.pct.cpu.sys =3D 100 * kernel.all.cpu.sys / hinv.ncpu Same definition Amer posted before. Think it came from: http://www.performancecopilot.org/pcp.git/man/html/howto.cpuperf.html Here are two sample responses I just took, 1 second apart: { "timestamp": { "s": 1406575780, "us": 397728 }, "values": [ { "pmid": 2143289345, "name": "kernel.pct.cpu.user", "instances": [ { "value": 5.35574E+8 } ] } ] } { "timestamp": { "s": 1406575781, "us": 393553 }, "values": [ { "pmid": 2143289345, "name": "kernel.pct.cpu.user", "instances": [ { "value": 5.35574E+8 } ] } ] } Since I'm calculating deltas, the precision only gives me full percentage points at this stage. In this case, since the system was idle, it was either 0 (like the response samples) or 1. =E2=80=8B Let me know if there's anything wrong with the definitions. Thanks, Martin On Sat, Jul 26, 2014 at 12:40 AM, Ken McDonell wrote: > I think there is a problem with the derived metric definition =E2=80=A6 l= ooks like > the number is a counter, which probably is not correct. > > > > Can you send me the derived metric definition please? > > > > *From:* pcp-bounces@oss.sgi.com [mailto:pcp-bounces@oss.sgi.com] *On > Behalf Of *Martin Spier > *Sent:* Saturday, 26 July 2014 10:59 AM > *To:* pcp@oss.sgi.com > *Cc:* Amer Ather; Coburn Watson; Brendan Gregg > *Subject:* [pcp] Floating point problem > > > > Ran into a small problem with "value" floating point precision on pmwebd > json responses. > > > > Cumulative values get too big and I start having problems like this: > > > > { > > "timestamp": { > > "s": 1406323733, > > "us": 288692 > > }, > > "values": [ > > { > > "pmid": 2143289348, > > "name": "kernel.pct.cpu.user", > > "instances": [ > > { > > *"value": 7.94874E+10* > > } > > ] > > } > > ] > > } > > > > Since I'm trying to calculate % usage in this case, subtracting previous > value from current and normalizing by delta in time, at this point I can'= t > get any useful information to plot due to the low precision. > > > > Any suggestions? > > > > -Martin > --f46d043c7ed69d5fb004ff46312d Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Here it is:

kernel.pct.cpu.user = =3D 100 * kernel.all.cpu.user / hinv.ncpu
kernel.pct.cpu.sys =C2= =A0=3D 100 * kernel.all.cpu.sys / hinv.ncpu

= Same definition Amer posted before. Think it came from:


Here are two sample responses I just took, 1 second apa= rt:

{
=C2=A0 "timestamp":= {
=C2=A0 =C2=A0 "s": 1406575780,
=C2=A0 =C2= =A0 "us": 397728
=C2=A0 },
=C2=A0 "values": [
=C2=A0 =C2= =A0 {
=C2=A0 =C2=A0 =C2=A0 "pmid": 2143289345,
=C2=A0 =C2=A0 =C2=A0 "name": "kernel.pct.cpu.user",
=C2=A0 =C2=A0 =C2=A0 "instances": [
=C2=A0 =C2=A0 =C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = "value": 5.35574E+8
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }
=
=C2=A0 =C2=A0 =C2=A0 ]
=C2=A0 =C2=A0 }
=C2=A0 ]
}

{
=C2=A0 "timestamp"= : {
=C2=A0 =C2=A0 "s": 1406575781,
=C2=A0 =C2=A0 "us": 393553
=C2=A0 },
=C2= =A0 "values": [
=C2=A0 =C2=A0 {
=C2=A0 =C2=A0= =C2=A0 "pmid": 2143289345,
=C2=A0 =C2=A0 =C2=A0 "= name": "kernel.pct.cpu.user",
=C2=A0 =C2=A0 =C2=A0= "instances": [
=C2=A0 =C2=A0 =C2=A0 =C2=A0 {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 "value": 5.35574E+8
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = }
=C2=A0 =C2=A0 =C2=A0 ]
=C2=A0 =C2=A0 }
=C2= =A0 ]
}

Since I'm calculating = deltas, the precision only gives me full percentage points at this stage. I= n this case, since the system was idle, it was either 0 (like the response = samples) or 1.


=E2=80=8B
Let me know if = there's anything wrong with the definitions.

T= hanks,
Martin



On Sat, Jul 26, 2014 at 12:40 AM, Ken McDonell <ke= nj@internode.on.net> wrote:

I think= there is a problem with the derived metric definition =E2=80=A6 looks like= the number is a counter, which probably is not correct.

=C2=A0

Can you send me the= derived metric definition please?

=C2=A0

From: pcp-bounces@oss.sgi.com [mailto:pcp-bounces@oss.sgi.com] = On Behalf Of Martin Spier
Sent: Saturday, 26 July 2014 10:59 AM
To: pcp@oss.sgi.com
Cc: Amer= Ather; Coburn Watson; Brendan Gregg
Subject: [pcp] Floating poin= t problem

=C2=A0<= /u>

Ran into a small problem with "= ;value" floating point precision on pmwebd json responses.

=C2=A0

Cumulative values get too big and I start having problems like t= his:

=C2=A0

{

=C2=A0 "timestamp": {

=C2=A0 =C2=A0 "s": 1406323733,

=C2=A0 =C2=A0 "us": 288692

=C2=A0 },

=C2=A0 "values": [

=C2=A0 =C2=A0 {

=C2=A0 =C2=A0 =C2=A0 "pmid": 214328934= 8,

=C2=A0 =C2=A0 =C2= =A0 "name": "kernel.pct.cpu.user",

=C2=A0 =C2=A0 =C2=A0 "instances"= ;: [

=C2=A0 =C2=A0 =C2= =A0 =C2=A0 {

=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 "value": 7.94874E+10

=C2=A0 =C2=A0 =C2=A0 =C2=A0 }

=C2=A0 =C2=A0 =C2=A0 ]

=C2=A0 =C2=A0 }

=C2=A0 ]

}

=C2=A0

Since= I'm trying to calculate % usage in this case, subtracting previous val= ue from current and normalizing by delta in time, at this point I can't= get any useful information to plot due to the low precision.=

=C2=A0

Any suggestions?

=C2=A0

-Martin=


--f46d043c7ed69d5fb004ff46312d-- --f46d043c7ed69d5fb304ff46312e Content-Type: image/png; name="Screen Shot 2014-07-28 at 12.31.46 PM.png" Content-Disposition: inline; filename="Screen Shot 2014-07-28 at 12.31.46 PM.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_hy66zrbm0_1477e7575ecf8785 iVBORw0KGgoAAAANSUhEUgAAA1kAAAFJCAIAAADmKnDWAAAK22lDQ1BJQ0MgUHJvZmlsZQAASA2t lndUU0kXwO97aZBCC0RASuhNkF6l1wAKUgUbIQkklBBCgogdWVRwLaiIgLqiKyIKrgWQtSCi2BbB gt0FWVSUdbFgQ+V7Acnu+c63/31zzsz83p07d+6dd+ecC0B9yBaJMlAVgEyhRBwV7Meck5DIJD0G IpCBAnZAZXNyRL6RkeHwr+19DyCyxZvWMlv/qva/F1S5vBwOABKJLSdzcziZGB/HehtHJJYA4PIw udEiiUjGVRirizEHMT4i49QJbpdx8gTfHdeJifLHdIYAFKhstjgVgPIRkzNzOamYHaomxrZCrkCI cQjGXhw+m4vxWoynZWZmyRjzAcyT/2En9R/MZifLbbLZqXKeiAXbiR0cIMgRZbAXj3/8P4fMDCl2 X+PNABupfHFIFDabYndWlZ4VJmdh8qyISbkAi2iS+dKQ2Enm5Phjdzmxl8sOCJtkaXqs7ySzxRh9 1xFIWDGTLM6KktsXZsyS5ce4D3weS868nMDoSXmKIIg1yfn8mPhJzhXEzZrknPRouQ/5fH+5XCyN kvucIg6Sx5iZg+38fi6H/fdZEn6M7L+O+8PlBQROMk8YK/dHJPGT2xFljOf3uD4vI1guz8mNlu+V iGPk8jR2qCxfx/VFkkj5nUAM8EEKQuACD8SQDFmQARJgQgAIIAdE2BcbsJSQ8PKwPATwzxItFgtS +RKmL/ZyeEyWkGMzjWlva+cIIHuHMh2At4zx94Uwrvwty24FcCvG/rnsCTBlWgBsI4CTTwHo7/+W Gb3BUmQTwOkujlScO6GHl00E7H0rgzpogR4YgTlYgz04gwf4QCCEQgQWSQIsAA4WTyYWySJYCqug CEpgE2yDCtgNe+EAHIaj0ASn4BxchKvQBbfhAfTCALyEYXgPowiCkBAaQke0EH3EBLFC7BFXxAsJ RMKRKCQBSUJSESEiRZYiq5ESpBSpQPYgtcgvyEnkHHIZ6UbuIX3IIPIG+YziUCqqjuqipuh01BX1 RcPQGHQ+mopmo/loIboBLUer0UNoI3oOvYreRnvRl+gIDnAUHANngLPGueL8cRG4RFwKToxbjivG leGqcfW4FlwH7iauFzeE+4Qn4ul4Jt4a74EPwcfiOfhs/HL8enwF/gC+Ed+Ov4nvww/jvxFoBB2C FcGdwCLMIaQSFhGKCGWE/YQThAuE24QBwnsikcggmhFdiCHEBGIacQlxPXEnsYHYSuwm9hNHSCSS FsmK5EmKILFJElIRaQfpEOks6QZpgPRRgaKgr2CvEKSQqCBUKFAoUziocEbhhsIzhVFFFUUTRXfF CEWu4mLFjYr7FFsUrysOKI6SVclmZE9yDDmNvIpcTq4nXyA/JL+lUCiGFDfKbIqAspJSTjlCuUTp o3yiqlEtqf7UeVQpdQO1htpKvUd9S6PRTGk+tESahLaBVks7T3tM+6hEV7JRYilxlVYoVSo1Kt1Q eqWsqGyi7Ku8QDlfuUz5mPJ15SEVRRVTFX8VtspylUqVkyp3VEZU6ap2qhGqmarrVQ+qXlZ9rkZS M1ULVOOqFartVTuv1k/H0Y3o/nQOfTV9H/0CfUCdqG6mzlJPUy9RP6zeqT6soabhqBGnkadRqXFa o5eBY5gyWIwMxkbGUUYP4/MU3Sm+U3hT1k2pn3JjygfNqZo+mjzNYs0Gzduan7WYWoFa6VqbtZq0 HmnjtS21Z2sv0t6lfUF7aKr6VI+pnKnFU49Ova+D6ljqROks0dmrc01nRFdPN1hXpLtD97zukB5D z0cvTW+r3hm9QX26vpe+QH+r/ln9F0wNpi8zg1nObGcOG+gYhBhIDfYYdBqMGpoZxhoWGDYYPjIi G7kapRhtNWozGjbWN55pvNS4zvi+iaKJqwnfZLtJh8kHUzPTeNM1pk2mz800zVhm+WZ1Zg/Naebe 5tnm1ea3LIgWrhbpFjstuixRSydLvmWl5XUr1MrZSmC106p7GmGa2zThtOppd6yp1r7WudZ11n02 DJtwmwKbJptX042nJ07fPL1j+jdbJ9sM2322D+zU7ELtCuxa7N7YW9pz7CvtbznQHIIcVjg0O7x2 tHLkOe5yvOtEd5rptMapzemrs4uz2LneedDF2CXJpcrljqu6a6TretdLbgQ3P7cVbqfcPrk7u0vc j7r/5WHtke5x0OP5DLMZvBn7ZvR7GnqyPfd49noxvZK8fvLq9TbwZntXez/xMfLh+uz3eeZr4Zvm e8j3lZ+tn9jvhN8Hf3f/Zf6tAbiA4IDigM5AtcDYwIrAx0GGQalBdUHDwU7BS4JbQwghYSGbQ+6w dFkcVi1rONQldFloexg1LDqsIuxJuGW4OLxlJjozdOaWmQ9nmcwSzmqKgAhWxJaIR5FmkdmRv84m zo6cXTn7aZRd1NKojmh69MLog9HvY/xiNsY8iDWPlca2xSnHzYurjfsQHxBfGt87Z/qcZXOuJmgn CBKaE0mJcYn7E0fmBs7dNndgntO8onk9883m582/vEB7QcaC0wuVF7IXHksiJMUnHUz6wo5gV7NH klnJVcnDHH/Ods5Lrg93K3eQ58kr5T1L8UwpTXme6pm6JXWQ780v4w8J/AUVgtdpIWm70z6kR6TX pI9lxGc0ZCpkJmWeFKoJ04XtWXpZeVndIitRkag32z17W/awOEy8PwfJmZ/TLFHHCp5rUnPpD9K+ XK/cytyPi+IWHctTzRPmXVtsuXjd4mf5Qfk/L8Ev4SxpW2qwdNXSvmW+y/YsR5YnL29bYbSicMXA yuCVB1aRV6Wv+q3AtqC04N3q+NUthbqFKwv7fwj+oa5IqUhcdGeNx5rda/FrBWs71zms27HuWzG3 +EqJbUlZyZf1nPVXfrT7sfzHsQ0pGzo3Om/ctYm4SbipZ7P35gOlqqX5pf1bZm5p3MrcWrz13baF 2y6XOZbt3k7eLt3eWx5e3rzDeMemHV8q+BW3K/0qG6p0qtZVfdjJ3Xljl8+u+t26u0t2f/5J8NPd PcF7GqtNq8v2Evfm7n26L25fx8+uP9fu195fsv9rjbCm90DUgfZal9ragzoHN9ahddK6wUPzDnUd DjjcXG9dv6eB0VByBI5Ij7z4JemXnqNhR9uOuR6rP25yvOoE/URxI9K4uHG4id/U25zQ3H0y9GRb i0fLiV9tfq05ZXCq8rTG6Y1nyGcKz4ydzT870ipqHTqXeq6/bWHbg/Nzzt9qn93eeSHswqWLQRfP d/h2nL3keenUZffLJ6+4Xmm66ny18ZrTtRO/Of12otO5s/G6y/XmLreulu4Z3WdueN84dzPg5sVb rFtXb8+63d0T23P3zrw7vXe5d5/fy7j3+n7u/dEHKx8SHhY/UnlU9ljncfXvFr839Dr3nu4L6Lv2 JPrJg35O/8s/cv74MlD4lPa07Jn+s9rn9s9PDQYNdr2Y+2Lgpejl6FDRn6p/Vr0yf3X8L5+/rg3P GR54LX499mb9W623Ne8c37WNRI48fp/5fvRD8Uetjwc+uX7q+Bz/+dnooi+kL+VfLb62fAv79nAs c2xMxBazx2sBHDaiKSkAb2oAaAlY7dAFQFaaqJPHNZCJ2h5j5HuXif+LJ2pp2QJWQ0CND0DsSoDw VoBdWDfBmIrNspIpxgdQBwd5xySylpPiYD8OCFWMlSYfx8be6gKQWgC+isfGRneOjX3dh9Xz9wBa syfqc5k2UQWg1IxBJRRcLe4Z3/7P4T/cwQkO+DUR8gAAAZ1pVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3Jl IDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAy LzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIK ICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgog ICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+ODU3PC9leGlmOlBpeGVsWERpbWVuc2lvbj4K ICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjMyOTwvZXhpZjpQaXhlbFlEaW1lbnNpb24+ CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgrWqUgG AABAAElEQVR4Aey9CXwVx5U32kJwdQUIhCRAEosEZhG2CSIQG+w4CNsBnNiEDEyC7ORnkXxj8Hs2 kNj5xct8n/HMw8YvIcbLe7bzTR5kEgc8gfEWG/AKXtgMkQjYEma7bJIAbSCBroSWd/oe0Wr1dqvX 6nvvufZPdFedc+rUv6qrT506VZ3U2dkp0I8QIAQIAUKAECAECAFCICER6JWQtaZKEwKEACFACBAC hAAhQAiICJAtSP2AECAECAFCgBAgBAiBxEWgt7zqZWVl//3f/71///7Lly/L0+maECAECAFCgBAg BAgBQiA+EPjGN77x05/+tLCwEKuTJMULPvPMMx988EF8VJJqQQgQAoQAIUAIEAKEACFggMBPfvKT e++9Fwi6/IKffPIJGIJZWVn/+q//mpeX16sXrR0boEdZhAAhQAgQAoQAIUAIxCQCHR0dR44c+dWv fvXnP/8ZHISTJ0/usvlef/11qBAYgqNGjSJDMCbblpQmBAgBQoAQIAQIAUIgGgJg5o0bN27NmjVA +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 /3Z0dS6aAAAAAElFTkSuQmCC --f46d043c7ed69d5fb304ff46312e-- From fche@redhat.com Mon Jul 28 16:11:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 2C8737F47 for ; Mon, 28 Jul 2014 16:11:18 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id AB434AC002 for ; Mon, 28 Jul 2014 14:11:14 -0700 (PDT) X-ASG-Debug-ID: 1406581872-04cb6c5e30006f0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id Ex2GyoRd4gFiXz1V (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 28 Jul 2014 14:11:13 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6SLB6Bn027419 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 28 Jul 2014 17:11:06 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6SLB5Rr000414; Mon, 28 Jul 2014 17:11:06 -0400 Received: by fche.csb (Postfix, from userid 2569) id 8873258496; Mon, 28 Jul 2014 17:11:04 -0400 (EDT) To: Martin Spier Cc: Ken McDonell , pcp@oss.sgi.com, Amer Ather , Coburn Watson , Brendan Gregg Subject: Re: Floating point problem References: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> X-ASG-Orig-Subj: Re: Floating point problem From: fche@redhat.com (Frank Ch. Eigler) Date: Mon, 28 Jul 2014 17:11:01 -0400 In-Reply-To: (Martin Spier's message of "Mon, 28 Jul 2014 12:47:31 -0700") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406581873 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 mspier wrote: > [...] > kernel.pct.cpu.user =3D 100 * kernel.all.cpu.user / hinv.ncpu > kernel.pct.cpu.sys =A0=3D 100 * kernel.all.cpu.sys / hinv.ncpu PCP_DERIVED_CONFIG=3Dyour_file pminfo -d kernel.pct kernel.pct.cpu.user Data Type: double InDom: PM_INDOM_NULL 0xffffffff Semantics: counter Units: millisec kernel.pct.cpu.sys Data Type: double InDom: PM_INDOM_NULL 0xffffffff Semantics: counter Units: millisec The problem is indicated by the "double", which is printed by pmwebd as a "%g". - FChE From kenj@internode.on.net Mon Jul 28 17:28:00 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 087007F47 for ; Mon, 28 Jul 2014 17:28:00 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id E702330405F for ; Mon, 28 Jul 2014 15:27:56 -0700 (PDT) X-ASG-Debug-ID: 1406586470-04cb6c5e3003f20001-S8gJnT Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id qZ6ubMxkexo0qU7U for ; Mon, 28 Jul 2014 15:27:51 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApUBANnM1lN20Y9C/2dsb2JhbAANTINgV4J4yReHRQGBJ4R7AQEEIxVAARALDgoCAgUWCwICCQMCAQIBRQYNAQcBAYhLphB3lzEXgSyOIAeCeYFRAQSzc1oBAQE Received: from ppp118-209-143-66.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.143.66]) by ipmail07.adl2.internode.on.net with ESMTP; 29 Jul 2014 07:57:49 +0930 Message-ID: <53D6CE6A.8030309@internode.on.net> Date: Tue, 29 Jul 2014 08:27:54 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: Martin Spier CC: pcp@oss.sgi.com, Amer Ather , Coburn Watson , Brendan Gregg Subject: Re: [pcp] Floating point problem References: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> X-ASG-Orig-Subj: Re: [pcp] Floating point problem In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1406586471 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7904 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 On 29/07/14 05:47, Martin Spier wrote: > Here it is: > > kernel.pct.cpu.user = 100 * kernel.all.cpu.user / hinv.ncpu > kernel.pct.cpu.sys = 100 * kernel.all.cpu.sys / hinv.ncpu > > Same definition Amer posted before. Think it came from: > > http://www.performancecopilot.org/pcp.git/man/html/howto.cpuperf.html > As I suspected ... Note in that web page, the table is headed "PCP equivalent (assuming rate conversion)" ... we don't have any rate conversion in play here. The expressions above will produce exactly the floating point precision problem Martin has observed. The options are ... 1. Revisit the design specs for pmwebd and see if it makes sense for this daemon to be performing per-client rate conversion (so taking on some of the role of a PMAPI client, like pmie, pmval, pmchart, pmdumptext, ... and detecting the counter semantics of metrics and rate converting them). In this case the formulae and derived metrics above would work. 2. Push the rate conversion arithmetic out the the pmwebd clients ... this involves keeping the last observed value and the last timestamp, then computing delta(value) / delta(timestamp), and you could do the *100 and /hinv at the same time. I am guessing this is not attractive option. 3. Extend the derived metrics support. We already have delta() which can be applied to counter metrics and returns the difference in value between one pmFetch and the next. This is closer to the semantics Martin needs, but does not include the divide by delta(timestamp) part. I could add rate() as a new intrinsic function for derived metrics that does the rate conversion. With option 3. the derived metric definitions would be something like ... kernel.pct.cpu.user = 100 * rate(kernel.all.cpu.user) / hinv.ncpu Note that rate(kernel.all.cpu.user) would be a double precision number but restricted to the (small) interval [0, hinv.ncpu]. Before jumping into 3., I'd like to hear feedback on options 1. and 2. From fche@redhat.com Mon Jul 28 19:29:06 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id B39A17F56 for ; Mon, 28 Jul 2014 19:29:06 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 7AF24304051 for ; Mon, 28 Jul 2014 17:29:06 -0700 (PDT) X-ASG-Debug-ID: 1406593744-04bdf016a5097c0001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id OSRIcmebKlFz7Oi1 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 28 Jul 2014 17:29:05 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6T0SvGn030552 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 28 Jul 2014 20:28:57 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6T0SutD012704; Mon, 28 Jul 2014 20:28:56 -0400 Received: by fche.csb (Postfix, from userid 2569) id EC03058496; Mon, 28 Jul 2014 20:28:55 -0400 (EDT) To: Ken McDonell Cc: Martin Spier , pcp@oss.sgi.com, Amer Ather , Coburn Watson , Brendan Gregg Subject: Re: Floating point problem References: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> <53D6CE6A.8030309@internode.on.net> X-ASG-Orig-Subj: Re: Floating point problem From: fche@redhat.com (Frank Ch. Eigler) Date: Mon, 28 Jul 2014 20:28:55 -0400 In-Reply-To: <53D6CE6A.8030309@internode.on.net> (Ken McDonell's message of "Tue, 29 Jul 2014 08:27:54 +1000") Message-ID: User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406593745 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi, Ken - kenj wrote: > [...] > The expressions above will produce exactly the floating point > precision problem Martin has observed. > > The options are ... > > 1. Revisit the design specs for pmwebd and see if it makes sense for > this daemon to be performing per-client rate conversion (so taking on > some of the role of a PMAPI client, like pmie, pmval, pmchart, > pmdumptext, ... [...] This is possible (and can be encoded in a backward-compatible way). As pmwebd is a PMAPI bridge, it is both a client and a server. Indeed, this calculation may not be too difficult to code up in this code, benefitting as it does from C++ and readily available context usage statistics. (Just for completeness, I'd like to re-mention the alternative of having libpcp do this, so this many individual PMAPI clients don't have to.) > 2. Push the rate conversion arithmetic out the the pmwebd clients > [...] This is possible too, but we may need to have the derived-metrics machinery preserve numerical precision (and not devolve to floating point numbers prematurely). > 3. Extend the derived metrics support [with rate conversion intrinsics] This is possible too. - FChE From nscott@redhat.com Mon Jul 28 19:33:54 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 8FB967F58 for ; Mon, 28 Jul 2014 19:33:54 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 75F00304059 for ; Mon, 28 Jul 2014 17:33:54 -0700 (PDT) X-ASG-Debug-ID: 1406594032-04cb6c5e2f08dd0001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id 55ENx3bC6i2QkgCi for ; Mon, 28 Jul 2014 17:33:52 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6T0XmZr029385; Mon, 28 Jul 2014 20:33:48 -0400 Date: Mon, 28 Jul 2014 20:33:48 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Ken McDonell Cc: Martin Spier , Amer Ather , Coburn Watson , Brendan Gregg , pcp@oss.sgi.com Message-ID: <179427209.19506045.1406594028288.JavaMail.zimbra@redhat.com> In-Reply-To: <53D6CE6A.8030309@internode.on.net> References: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> <53D6CE6A.8030309@internode.on.net> Subject: Re: [pcp] Floating point problem MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] Floating point problem Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.7] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - GC27 (Linux)/8.0.6_GA_5922) Thread-Topic: Floating point problem Thread-Index: QCkpfIowT2wiwySotKsh/GFZqtXocA== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1406594032 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7909 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Hi Ken, ----- Original Message ----- > [...] > The expressions above will produce exactly the floating point precision > problem Martin has observed. > > The options are ... > > 1. Revisit the design specs for pmwebd and see if it makes sense for > this daemon to be performing per-client rate conversion (so taking on > some of the role of a PMAPI client, like pmie, pmval, pmchart, > pmdumptext, ... and detecting the counter semantics of metrics and rate > converting them). In this case the formulae and derived metrics above > would work. This would require some fairly major pmwebd surgery - it currently keeps very little state for individual connections - no PMAPI data structures at all. > 2. Push the rate conversion arithmetic out the the pmwebd clients ... > this involves keeping the last observed value and the last timestamp, > then computing delta(value) / delta(timestamp), and you could do the > *100 and /hinv at the same time. I am guessing this is not attractive > option. Yeah, this is the status quo where we expect web clients to behave like all the other client tools, and perform these calculations themselves. Not at all ideal for web clients in particular, which have relatively simple needs (i.e. I guess web clients would never do raw mode archive scans, or other low-level things like that). > 3. Extend the derived metrics support. We already have delta() which > can be applied to counter metrics and returns the difference in value > between one pmFetch and the next. This is closer to the semantics > Martin needs, but does not include the divide by delta(timestamp) part. > I could add rate() as a new intrinsic function for derived metrics > that does the rate conversion. > > With option 3. the derived metric definitions would be something like ... > > kernel.pct.cpu.user = 100 * rate(kernel.all.cpu.user) / hinv.ncpu > > Note that rate(kernel.all.cpu.user) would be a double precision number > but restricted to the (small) interval [0, hinv.ncpu]. > > Before jumping into 3., I'd like to hear feedback on options 1. and 2. This sounds like a generally useful extension (beyond the immediate need). AFAICT all of the state information and data structures needed are already in place too, so less complex to tackle. Gets my vote! cheers. -- Nathan From nscott@redhat.com Mon Jul 28 20:12:31 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 9F5F57F5A for ; Mon, 28 Jul 2014 20:12:31 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 6A530304053 for ; Mon, 28 Jul 2014 18:12:28 -0700 (PDT) X-ASG-Debug-ID: 1406596346-04bdf016a40b1c0001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id rO1Sm2D1ob9rZT9H for ; Mon, 28 Jul 2014 18:12:26 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6T1CQf1002983; Mon, 28 Jul 2014 21:12:26 -0400 Date: Mon, 28 Jul 2014 21:12:26 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dave Brolley Cc: pcp Message-ID: <111454194.19514675.1406596346235.JavaMail.zimbra@redhat.com> In-Reply-To: <1859957080.19514428.1406596218762.JavaMail.zimbra@redhat.com> Subject: Recent QA regressions MIME-Version: 1.0 X-ASG-Orig-Subj: Recent QA regressions Content-Type: multipart/mixed; boundary="----=_Part_19514671_1075851569.1406596346229" X-Originating-IP: [10.5.82.7] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - GC27 (Linux)/8.0.6_GA_5922) Thread-Topic: Recent QA regressions Thread-Index: esM8fcSkHZRJ7PU8Y/wNoif/stszoQ== X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1406596346 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7910 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain ------=_Part_19514671_1075851569.1406596346229 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi Dave, I happened to run a non-secure-sockets build through QA recently, and noticed a handful of new failures there. They look related to recent discovery and FNDELAY changes? .bad files attached. cheers. -- Nathan ------=_Part_19514671_1075851569.1406596346229 Content-Type: application/octet-stream; name=776.out.bad Content-Disposition: attachment; filename=776.out.bad Content-Transfer-Encoding: base64 UUEgb3V0cHV0IGNyZWF0ZWQgYnkgNzc2Ci1tIHByb2JlPUlQVjZfQUREUi8xMjgKW1R1ZSBKdWwg MjkgMTA6NTA6MjddIHBtZmluZCgxNzc3MikgRXJyb3I6IF9fcG1Qcm9iZURpc2NvdmVyU2Vydmlj ZXM6IEFkZHJlc3MgJ2ZlODA6OmFlMTY6MmRmZjpmZTA3OjU0OTglZXRoMCcgaXMgbm90IHZhbGlk CltUdWUgSnVsIDI5IDEwOjUwOjI3XSBwbWZpbmQoMTc3NzIpIEVycm9yOiBfX3BtUHJvYmVEaXNj b3ZlclNlcnZpY2VzOiBBZGRyZXNzICdmZTgwOjphZTE2OjJkZmY6ZmUwNzo1NDk4JWV0aDAnIGlz IG5vdCB2YWxpZApbVHVlIEp1bCAyOSAxMDo1MDoyN10gcG1maW5kKDE3NzcyKSBFcnJvcjogX19w bVByb2JlRGlzY292ZXJTZXJ2aWNlczogQWRkcmVzcyAnZmU4MDo6YWUxNjoyZGZmOmZlMDc6NTQ5 OCVldGgwJyBpcyBub3QgdmFsaWQKTm8gcG1jZCBzZXJ2ZXJzIGRpc2NvdmVyZWQKU291Z2h0IHBt cHJveHkgc2VydmVycwpTb3VnaHQgcG13ZWJkIHNlcnZlcnMKRXhpdCBzdGF0dXM6IDAKLXMgcG1j ZCAtbSBwcm9iZT1JUFY2X0FERFIvMTI3IC1yCltUdWUgSnVsIDI5IDEwOjUwOjI3XSBwbWZpbmQo MTc3NzkpIEVycm9yOiBfX3BtUHJvYmVEaXNjb3ZlclNlcnZpY2VzOiBBZGRyZXNzICdmZTgwOjph ZTE2OjJkZmY6ZmUwNzo1NDk4JWV0aDAnIGlzIG5vdCB2YWxpZApObyBwbWNkIHNlcnZlcnMgZGlz Y292ZXJlZApFeGl0IHN0YXR1czogMAotcSAtbSBwcm9iZT1JUFY2X0FERFIvMTI2CltUdWUgSnVs IDI5IDEwOjUwOjI3XSBwbWZpbmQoMTc3ODYpIEVycm9yOiBfX3BtUHJvYmVEaXNjb3ZlclNlcnZp Y2VzOiBBZGRyZXNzICdmZTgwOjphZTE2OjJkZmY6ZmUwNzo1NDk4JWV0aDAnIGlzIG5vdCB2YWxp ZApbVHVlIEp1bCAyOSAxMDo1MDoyN10gcG1maW5kKDE3Nzg2KSBFcnJvcjogX19wbVByb2JlRGlz Y292ZXJTZXJ2aWNlczogQWRkcmVzcyAnZmU4MDo6YWUxNjoyZGZmOmZlMDc6NTQ5OCVldGgwJyBp cyBub3QgdmFsaWQKW1R1ZSBKdWwgMjkgMTA6NTA6MjddIHBtZmluZCgxNzc4NikgRXJyb3I6IF9f cG1Qcm9iZURpc2NvdmVyU2VydmljZXM6IEFkZHJlc3MgJ2ZlODA6OmFlMTY6MmRmZjpmZTA3OjU0 OTglZXRoMCcgaXMgbm90IHZhbGlkCkV4aXQgc3RhdHVzOiAwCi1xIC1zIHBtY2QgLW0gcHJvYmU9 SVBWNl9BRERSLzEyNSAtLXJlc29sdmUKW1R1ZSBKdWwgMjkgMTA6NTA6MjddIHBtZmluZCgxNzc5 MykgRXJyb3I6IF9fcG1Qcm9iZURpc2NvdmVyU2VydmljZXM6IEFkZHJlc3MgJ2ZlODA6OmFlMTY6 MmRmZjpmZTA3OjU0OTglZXRoMCcgaXMgbm90IHZhbGlkCkV4aXQgc3RhdHVzOiAwCi1xIC1zIHBt Y2QgLW0gcHJvYmU9SVBWNl9BRERSLzEyNCxtYXhUaHJlYWRzPTgKW1R1ZSBKdWwgMjkgMTA6NTA6 MjddIHBtZmluZCgxNzgwMCkgRXJyb3I6IF9fcG1Qcm9iZURpc2NvdmVyU2VydmljZXM6IEFkZHJl c3MgJ2ZlODA6OmFlMTY6MmRmZjpmZTA3OjU0OTglZXRoMCcgaXMgbm90IHZhbGlkCkV4aXQgc3Rh dHVzOiAwCg== ------=_Part_19514671_1075851569.1406596346229 Content-Type: application/octet-stream; name=533.out.bad Content-Disposition: attachment; filename=533.out.bad Content-Transfer-Encoding: base64 UUEgb3V0cHV0IGNyZWF0ZWQgYnkgNTMzCmRicG1kYT4gb3BlbiBzb2NrZXQgaXB2NiBQT1JUCkNv bm5lY3QgdG8gUE1EQSBvbiBpcHY2IHBvcnQgUE9SVApkYnBtZGE+IGdldGRlc2Mgb24KZGJwbWRh PiBkZXNjIHNhbXBsZS5kYWVtb25fcGlkClBNSUQ6IDI5LjAuMQpUSU1FU1RBTVAgSnVsIDI5IDEw OjI1OjU4XSBkYnBtZGEoMTQxODApIEVycm9yOiBfX3BtR2V0UERVOiBmZD05IGhkciByZWFkOiBs ZW49LTE6IFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlCkVycm9yOiBfX3BtR2V0UERV KCkgZmFpbGVkOiBQRFUgZW1wdHksIFBNREEgbWF5IGhhdmUgZGllZApkYnBtZGE+IGZldGNoIHNh bXBsZS5kYWVtb25fcGlkClBNSUQocyk6IDI5LjAuMQpFcnJvcjogX19wbUdldFBEVSgpIGZhaWxl ZDogd3JvbmcgUERVICg3MDA1KQpkYnBtZGE+IHRleHQgc2FtcGxlLmRhZW1vbl9waWQKUE1JRDog MjkuMC4xCkVycm9yOiBfX3BtR2V0UERVKCkgZmFpbGVkOiBObyBzdWNoIFBNQVBJIGVycm9yIGNv ZGUgKDI4NjczKQpUSU1FU1RBTVAgSnVsIDI5IDEwOjI1OjU4XSBkYnBtZGEoMTQxODApIEVycm9y OiBfX3BtR2V0UERVOiBmZD05IGhkciByZWFkOiBsZW49LTE6IFJlc291cmNlIHRlbXBvcmFyaWx5 IHVuYXZhaWxhYmxlCkVycm9yOiBfX3BtR2V0UERVKCkgZmFpbGVkOiBObyBlcnJvcgpkYnBtZGE+ IGNsb3NlCmRicG1kYT4gCg== ------=_Part_19514671_1075851569.1406596346229 Content-Type: application/octet-stream; name=531.out.bad Content-Disposition: attachment; filename=531.out.bad Content-Transfer-Encoding: base64 UUEgb3V0cHV0IGNyZWF0ZWQgYnkgNTMxCmRicG1kYT4gb3BlbiBzb2NrZXQgaW5ldCBQT1JUCkNv bm5lY3QgdG8gUE1EQSBvbiBpbmV0IHBvcnQgUE9SVApkYnBtZGE+IGdldGRlc2Mgb24KZGJwbWRh PiBkZXNjIHNhbXBsZS5kYWVtb25fcGlkClBNSUQ6IDI5LjAuMQpUSU1FU1RBTVAgSnVsIDI5IDEw OjI1OjU1XSBkYnBtZGEoMTM2NjApIEVycm9yOiBfX3BtR2V0UERVOiBmZD05IGhkciByZWFkOiBs ZW49LTE6IFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlCkVycm9yOiBfX3BtR2V0UERV KCkgZmFpbGVkOiBQRFUgZW1wdHksIFBNREEgbWF5IGhhdmUgZGllZApkYnBtZGE+IGZldGNoIHNh bXBsZS5kYWVtb25fcGlkClBNSUQocyk6IDI5LjAuMQpFcnJvcjogX19wbUdldFBEVSgpIGZhaWxl ZDogd3JvbmcgUERVICg3MDA1KQpkYnBtZGE+IHRleHQgc2FtcGxlLmRhZW1vbl9waWQKUE1JRDog MjkuMC4xCkVycm9yOiBfX3BtR2V0UERVKCkgZmFpbGVkOiBObyBzdWNoIFBNQVBJIGVycm9yIGNv ZGUgKDI4NjczKQpUSU1FU1RBTVAgSnVsIDI5IDEwOjI1OjU1XSBkYnBtZGEoMTM2NjApIEVycm9y OiBfX3BtR2V0UERVOiBmZD05IGhkciByZWFkOiBsZW49LTE6IFJlc291cmNlIHRlbXBvcmFyaWx5 IHVuYXZhaWxhYmxlCkVycm9yOiBfX3BtR2V0UERVKCkgZmFpbGVkOiBObyBlcnJvcgpkYnBtZGE+ IGNsb3NlCmRicG1kYT4gCg== ------=_Part_19514671_1075851569.1406596346229-- From kenj@internode.on.net Tue Jul 29 01:18:31 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 6A7CB7F4E for ; Tue, 29 Jul 2014 01:18:31 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 07426AC007 for ; Mon, 28 Jul 2014 23:18:30 -0700 (PDT) X-ASG-Debug-ID: 1406614704-04cbb07ea615290001-S8gJnT Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id DBF9bDUwNa0DMqpU for ; Mon, 28 Jul 2014 23:18:24 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhACAPM711N20Y9CPGdsb2JhbAANTItmyQyDHAGBKAUBAQEBOIQ6AQEEOEABEAsYCRYPCQMCAQIBMRQGDQEHAQGvIJhRF49MB4RKAQSzcw Received: from ppp118-209-143-66.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.143.66]) by ipmail06.adl6.internode.on.net with ESMTP; 29 Jul 2014 15:48:23 +0930 Message-ID: <53D73CBF.9090008@internode.on.net> Date: Tue, 29 Jul 2014 16:18:39 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: "Frank Ch. Eigler" CC: Martin Spier , pcp@oss.sgi.com, Amer Ather , Coburn Watson , Brendan Gregg Subject: Re: Floating point problem References: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> <53D6CE6A.8030309@internode.on.net> X-ASG-Orig-Subj: Re: Floating point problem In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1406614704 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7916 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header On 29/07/14 10:28, Frank Ch. Eigler wrote: > > ... > This is possible (and can be encoded in a backward-compatible way). > As pmwebd is a PMAPI bridge, it is both a client and a server. > Indeed, this calculation may not be too difficult to code up in this > code, benefitting as it does from C++ and readily available context > usage statistics. I suspect the effort is comparable for options 1. and 3. and 3. seems like 3. might be more generally useful. I'll investigate the effort required here. > ... (Just for completeness, I'd like to re-mention the > alternative of having libpcp do this, so this many individual PMAPI > clients don't have to.) I am willing to reconsider my historical and philosophical objections here. I think this would need to be _optional_ as there are a number of existing clients and plenty of use cases (especially for pmlogger) where the current semantics (no rate conversion) are preferred. And probably needs to be a modifier to pmNewContext(), as the semantics need to be in place before the first metadata or pmFetch PMAPI call (the descriptors for the counter metrics need to be re-written between pmcd and the client, for example). From nscott@redhat.com Tue Jul 29 04:05:51 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 5B9497F37 for ; Tue, 29 Jul 2014 04:05:51 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id DD379AC002 for ; Tue, 29 Jul 2014 02:05:50 -0700 (PDT) X-ASG-Debug-ID: 1406624744-04cb6c5e2f182f0001-S8gJnT Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) by cuda.sgi.com with ESMTP id v1myTWOa6dTN00C4 for ; Tue, 29 Jul 2014 02:05:45 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.37 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6T95ixa024988 for ; Tue, 29 Jul 2014 05:05:44 -0400 Date: Tue, 29 Jul 2014 05:05:44 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: pcp Message-ID: <1985392871.19700721.1406624744520.JavaMail.zimbra@redhat.com> In-Reply-To: <1968063354.19700488.1406624654988.JavaMail.zimbra@redhat.com> Subject: pcp updates: pmdalinux, python apis, pcp-dmcache MIME-Version: 1.0 X-ASG-Orig-Subj: pcp updates: pmdalinux, python apis, pcp-dmcache Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.7] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - GC27 (Linux)/8.0.6_GA_5922) Thread-Topic: pcp updates: pmdalinux, python apis, pcp-dmcache Thread-Index: 0UVVnbQv6sVOMFtH/M+vavruY0VqRQ== X-Barracuda-Connect: mx5-phx2.redhat.com[209.132.183.37] X-Barracuda-Start-Time: 1406624745 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7918 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Changes committed to git://git.performancecopilot.org/pcp.git dev qa/985.out | 18 ++-- src/pcp/GNUmakefile | 2 src/pcp/dmcache/.gitignore | 1 src/pcp/dmcache/GNUmakefile | 34 ++++++++ src/pcp/dmcache/pcp-dmcache.1 | 38 +++++++++ src/pcp/dmcache/pcp-dmcache.py | 125 +++++++++++++++++++++++++++++++ src/pmdas/dmcache/pmdadmcache.python | 10 +- src/pmdas/linux/proc_net_rpc.c | 9 +- src/pmdas/linux/proc_net_snmp.c | 33 ++++---- src/pmdas/linux/proc_net_sockstat.c | 23 ++--- src/pmdas/linux/proc_net_tcp.c | 11 +- src/pmdas/linux/proc_scsi.c | 12 +-- src/pmdas/linux/proc_slabinfo.c | 10 +- src/pmdas/linux/proc_stat.c | 4 - src/pmdas/linux/proc_sys_fs.c | 9 +- src/pmdas/linux/proc_uptime.c | 9 +- src/pmdas/linux/proc_vmstat.c | 13 ++- src/pmdas/linux/swapdev.c | 4 - src/pmdas/linux/sysfs_kernel.c | 8 +- src/pmdas/linux/sysfs_kernel.h | 6 - src/python/pcp/pmapi.py | 35 ++++++-- src/python/pcp/pmcc.py | 140 ++++++++++++++++++++++++++++------- src/python/pmapi.c | 8 -- 23 files changed, 433 insertions(+), 129 deletions(-) commit 67b41d99715b0e4c6e4edc3836855925526c8c61 Author: Nathan Scott Date: Tue Jul 29 18:33:54 2014 +1000 pmdadmcache: values in kb, not bytes, for some metrics commit 8682e86b4725bd4080c77a9b84a5277d687209bb Author: Nathan Scott Date: Tue Jul 29 18:33:03 2014 +1000 pcp-dmcache: small utility for reporting dm-cache metrics Simple tool for reporting dm-cache read/write hit/miss metrics amongst other things. Relies on the heavy lifting being done within pcp.pmcc and a few fixes and extensions are made there to help. Those include robustness tweaks allowing for missing data, empty options, correctly updating the sample count so it can be visible in more places, and optionally performing rate conversion with the prev/now results its already caching. Also found a reference counting issue with non-option argument handling in the pmapi wrapper, uncovered now that we're using it in more interesting ways. Focussed QA testing will follow in next series of commits, but no regressions found here so far with the existing tests. commit fd032bf80d2fa464e18d46934ff1194e234fc946 Author: Nathan Scott Date: Tue Jul 29 15:23:51 2014 +1000 python api: timeval cast helpers, string routine improvements Extend the python API to provide timeval structure convenience accessors for int/long/float casting (helps with str routines). Add in missing pmNumberStr_r interface. Convert pmUnitStr use to thread-safe variant. Remove an unneeded memory allocation in the derived metric error handling wrapper interface. commit 42c40a5b3350bae98dee4457ddd601defb463427 Author: Nathan Scott Date: Tue Jul 29 10:57:09 2014 +1000 Update test qa/985 after dmcache.dirty semantics change commit fb64ee627632fd79b0e4ab17da981590d7602791 Author: Nathan Scott Date: Mon Jul 28 09:34:13 2014 +1000 pmdalinux: allow for mock testing with canned proc/sysfs files The remaining PMDA file accesses are now converted as well. From brolley@redhat.com Tue Jul 29 09:57:21 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 4349E7F37 for ; Tue, 29 Jul 2014 09:57:21 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 8ADCB8F804C for ; Tue, 29 Jul 2014 07:57:18 -0700 (PDT) X-ASG-Debug-ID: 1406645833-04bdf05e7f01c00001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id IrfaLHpgCsnDWtqH (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 29 Jul 2014 07:57:14 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6TEvDkZ000974 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 29 Jul 2014 10:57:13 -0400 Received: from [10.15.16.140] ([10.15.16.140]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6TEvD8x003815; Tue, 29 Jul 2014 10:57:13 -0400 Message-ID: <53D7B65E.8000408@redhat.com> Date: Tue, 29 Jul 2014 10:57:34 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Nathan Scott CC: pcp Subject: Re: Recent QA regressions References: <111454194.19514675.1406596346235.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: Recent QA regressions In-Reply-To: <111454194.19514675.1406596346235.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406645833 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/28/2014 09:12 PM, Nathan Scott wrote: > Hi Dave, > > I happened to run a non-secure-sockets build through QA recently, > and noticed a handful of new failures there. They look related to > recent discovery and FNDELAY changes? .bad files attached. > I had a quick look. 776 - This is not a FNDELAY issue, but rather that the native API doesn't like the % notation for specifying the scope of a link-local ipv6 address. I'll have to give this some thought. We may have to set the scope id manually after converting the scope-less address string. 531, 533 - Resource temporarily unavailable while reading (EAGAIN?). I'll need to dig into this a bit and see what's up. Dave From brolley@redhat.com Tue Jul 29 17:09:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 935457F4E for ; Tue, 29 Jul 2014 17:09:38 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 7FA09304053 for ; Tue, 29 Jul 2014 15:09:38 -0700 (PDT) X-ASG-Debug-ID: 1406671773-04cb6c555e08860001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id IKYbuf27nKafdklm (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 29 Jul 2014 15:09:34 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6TM9Wc3006335 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 29 Jul 2014 18:09:33 -0400 Received: from [10.15.16.140] ([10.15.16.140]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6TM9V8l002855; Tue, 29 Jul 2014 18:09:32 -0400 Message-ID: <53D81BB1.2090805@redhat.com> Date: Tue, 29 Jul 2014 18:09:53 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Nathan Scott CC: pcp Subject: Re: Recent QA regressions References: <111454194.19514675.1406596346235.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: Recent QA regressions In-Reply-To: <111454194.19514675.1406596346235.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406671774 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/28/2014 09:12 PM, Nathan Scott wrote: > Hi Dave, > > I happened to run a non-secure-sockets build through QA recently, > and noticed a handful of new failures there. They look related to > recent discovery and FNDELAY changes? .bad files attached. > I have fixes and will test overnight. Dave From nscott@redhat.com Tue Jul 29 17:55:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 604A47F4E for ; Tue, 29 Jul 2014 17:55:48 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 3DED48F804C for ; Tue, 29 Jul 2014 15:55:44 -0700 (PDT) X-ASG-Debug-ID: 1406674543-04cbb02d830acc0001-S8gJnT Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by cuda.sgi.com with ESMTP id zyr6xw1bjnLZYFog for ; Tue, 29 Jul 2014 15:55:43 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.25 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6TMthDE021483; Tue, 29 Jul 2014 18:55:43 -0400 Date: Tue, 29 Jul 2014 18:55:43 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dave Brolley Cc: pcp Message-ID: <1786040049.20058232.1406674543026.JavaMail.zimbra@redhat.com> In-Reply-To: <53D81BB1.2090805@redhat.com> References: <111454194.19514675.1406596346235.JavaMail.zimbra@redhat.com> <53D81BB1.2090805@redhat.com> Subject: Re: Recent QA regressions MIME-Version: 1.0 X-ASG-Orig-Subj: Re: Recent QA regressions Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.7] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - GC27 (Linux)/8.0.6_GA_5922) Thread-Topic: Recent QA regressions Thread-Index: sGLss+ujJKo+XqgAeNPnHaXqNWRMmA== X-Barracuda-Connect: mx4-phx2.redhat.com[209.132.183.25] X-Barracuda-Start-Time: 1406674543 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.03 X-Barracuda-Spam-Status: No, SCORE=0.03 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7941 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain ----- Original Message ----- > On 07/28/2014 09:12 PM, Nathan Scott wrote: > > Hi Dave, > > > > I happened to run a non-secure-sockets build through QA recently, > > and noticed a handful of new failures there. They look related to > > recent discovery and FNDELAY changes? .bad files attached. > > > I have fixes and will test overnight. > Awesome - thanks Dave. -- Nathan From potts@hpcapplications.com Tue Jul 29 21:52:51 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 4D92B29DF9 for ; Tue, 29 Jul 2014 21:52:51 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 2CC078F8039 for ; Tue, 29 Jul 2014 19:52:48 -0700 (PDT) X-ASG-Debug-ID: 1406688762-04cb6c555d11ed0001-S8gJnT Received: from mail-yk0-f176.google.com (mail-yk0-f176.google.com [209.85.160.176]) by cuda.sgi.com with ESMTP id 613UmcqKy9DM6HuN (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Tue, 29 Jul 2014 19:52:42 -0700 (PDT) X-Barracuda-Envelope-From: potts@hpcapplications.com X-Barracuda-Apparent-Source-IP: 209.85.160.176 Received: by mail-yk0-f176.google.com with SMTP id 19so346343ykq.21 for ; Tue, 29 Jul 2014 19:52:42 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:organization:user-agent :mime-version:to:subject:content-type; bh=RfRepcy7ldHrNrH3U6ArKx9QikCgbwdbdaDk4BgkywQ=; b=O/SFqcn2tXMDgREWSbZTEfdjvVkJ4r1VUbKgHoN8B6Aiy5M4ATinT80Ls+2B3kqyMz 3v6D1tEDyGDXunA2UNgwmDGESyfwqhwtOp432EnVpcSheWJPszBbf+OSssKXJGP5V9IN EAi9hmoOf206d6hsr4mQI5q/j5qDMzj3k7pcHkFYxvq37OmqDjISUUUsFPQxSld3DA+p EMQr46Jc32lzEwSvyKmHuHcQUfNv/zxCxU/tSFWDf/4R5Y+mJyE3Z69V7FCH3HS/8e8I ttQpo/KKedIMwoKxl1TXS+/YjaEfN7kdKuvCiVzHBcOGVOJ6ORhSHEuXcH2A0V60Ati8 szrQ== X-Gm-Message-State: ALoCoQksRck4pqx1EMZ0oINbn/0rHqIy/Hn4ECJE3ITY1ijtbOgLz4w1+nOtqOpwMt9zzhM199Qj X-Received: by 10.236.228.161 with SMTP id f31mr1932279yhq.44.1406688761875; Tue, 29 Jul 2014 19:52:41 -0700 (PDT) Received: from [10.20.12.75] ([12.207.42.207]) by mx.google.com with ESMTPSA id l46sm1447733yhq.44.2014.07.29.19.52.41 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 29 Jul 2014 19:52:41 -0700 (PDT) Message-ID: <53D85DD1.6030009@hpcapplications.com> Date: Tue, 29 Jul 2014 21:52:01 -0500 From: Mark Potts Organization: HPC Applications Inc. User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: pcp@oss.sgi.com Subject: minimal install not-as-root Content-Type: multipart/alternative; boundary="------------060204070304010600030808" X-ASG-Orig-Subj: minimal install not-as-root X-Barracuda-Connect: mail-yk0-f176.google.com[209.85.160.176] X-Barracuda-Start-Time: 1406688762 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7946 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message This is a multi-part message in MIME format. --------------060204070304010600030808 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, I have a working C++/Linux application that as a side-function collects/consumes some PCP perf data using libpcp library functions. A new imposed requirement is that my application and any libraries/daemons that it uses are to be installed on a group of clustered VMs but the installer _can not act as root_ during the installation. Is it possible to to create a stripped-down PCP version that could be _installed and operated without__ _ _root privileges_? If so, is the logical starting point a source distro or (preferably) a Centos-built rpm, from which I can extract components with rpm2cpio? Perhaps a minimal set that includes pmcd, libpcp, and related dependencies with a user-level pmcd startup. I'd be happy to provide feedback on my efforts, if successful; but I don't even want to begin if there is a brick wall in my path. Thanks. regards, -- *********************************** >> Mark J. Potts, PhD >> >> HPC Applications Inc. >> phone: 512-228-1721 Bus >> 512-828-6153 Fax >> email: potts@hpcapplications.com >> potts@excray.com *********************************** --------------060204070304010600030808 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi,
    I have a working C++/Linux application that as a side-function
    collects/consumes some PCP perf data using libpcp library
    functions.

     A new imposed requirement is that my application and any
     libraries/daemons that it uses are to be installed on a group
     of clustered VMs but the installer can not act as root during
     the installation.  Is it possible to to create a stripped-down
     PCP version that could be installed and operated without
     root privileges

     If so, is the logical starting point a source distro or (preferably)
     a Centos-built rpm, from which I can extract components
     with rpm2cpio?  Perhaps a minimal set that includes pmcd,
     libpcp, and related dependencies with a user-level pmcd startup.

      I'd be happy to provide feedback on my efforts, if successful;
      but I don't even want to begin if there is a brick wall in my
      path.

     Thanks.

                   regards,
-- 
***********************************
>> Mark J. Potts, PhD
>>
>> HPC Applications Inc.
>> phone: 512-228-1721 Bus
>>        512-828-6153 Fax
>> email: potts@hpcapplications.com
>>        potts@excray.com
***********************************
--------------060204070304010600030808-- From nscott@redhat.com Tue Jul 29 22:29:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 173E829DF9 for ; Tue, 29 Jul 2014 22:29:30 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id D1137304053 for ; Tue, 29 Jul 2014 20:29:26 -0700 (PDT) X-ASG-Debug-ID: 1406690961-04bdf03d4215830001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id DCfEqfjeWUcQ6EDH for ; Tue, 29 Jul 2014 20:29:21 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6U3TKtx027531; Tue, 29 Jul 2014 23:29:20 -0400 Date: Tue, 29 Jul 2014 23:29:20 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Mark Potts Cc: pcp@oss.sgi.com Message-ID: <243700663.20162009.1406690960015.JavaMail.zimbra@redhat.com> In-Reply-To: <53D85DD1.6030009@hpcapplications.com> References: <53D85DD1.6030009@hpcapplications.com> Subject: Re: [pcp] minimal install not-as-root MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] minimal install not-as-root Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.7] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - GC27 (Linux)/8.0.6_GA_5922) Thread-Topic: minimal install not-as-root Thread-Index: eKOPh+CfBJXpxjqhy9Rbv3R0cxUM4A== X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1406690961 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7947 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Hi Mark, ----- Original Message ----- > Hi, > I have a working C++/Linux application that as a side-function > collects/consumes some PCP perf data using libpcp library > functions. > > A new imposed requirement is that my application and any > libraries/daemons that it uses are to be installed on a group > of clustered VMs but the installer can not act as root during > the installation. Is it possible to to create a stripped-down > PCP version that could be installed and operated without > root privileges ? > > If so, is the logical starting point a source distro or (preferably) > a Centos-built rpm, from which I can extract components > with rpm2cpio? Perhaps a minimal set that includes pmcd, > libpcp, and related dependencies with a user-level pmcd startup. > > I'd be happy to provide feedback on my efforts, if successful; > but I don't even want to begin if there is a brick wall in my > path. I don't think there's a brick wall, you should be able to get this to work. And, yep, I'd be interested to hear how it goes. If the only thing you need are values/metadata for metrics, and if those metrics are available from PMDAs that function in DSO form, you might not even need to get pmcd up and running. You should be able to use the PM_LOCAL_CONTEXT mode using just libpcp and the DSO PMDA(s) - e.g. pmda_linux.so - from whence your metrics are sourced. See the pmNewContext(3) man page & the -L and -K options to pminfo(1). If you do need pmcd (clustered VMs? might be using the distributed PCP protocol?), you should be able to fire it up with PCP_USER and PCP_GROUP in your environment - it will attempt to change user/group to these early on in its life. Usually it sources these variables from /etc/pcp.conf but environment varibables can override this. You might find the PCP_DIR environment variable handy too. Of course, if you have metrics/PMDAs that need to run in privileged mode to extract their metrics data... then you're in strife :) All the Linux kernel PMDA metrics can nowadays be accessed unprivileged though. Good luck! -- Nathan From mspier@netflix.com Wed Jul 30 13:35:43 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id EA7687F75 for ; Wed, 30 Jul 2014 13:35:43 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id D85BB304051 for ; Wed, 30 Jul 2014 11:35:40 -0700 (PDT) X-ASG-Debug-ID: 1406745338-04cbb02d863d3b0001-S8gJnT Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by cuda.sgi.com with ESMTP id Sfo23lzlHgsRPr81 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 30 Jul 2014 11:35:38 -0700 (PDT) X-Barracuda-Envelope-From: mspier@netflix.com X-Barracuda-Apparent-Source-IP: 209.85.212.176 Received: by mail-wi0-f176.google.com with SMTP id bs8so8054895wib.3 for ; Wed, 30 Jul 2014 11:35:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=SwdIxP3DC4uTgiQZFbpKZJDqPteyZCgYcOkKIt+7i5k=; b=GhLhQnGzKczzXSPb+y/EBuHHercwfUdlHayLUNqMD3Kc0YUThb+rbCYm7pLbgd1gPM bUdV6+vbFzAIYvX5ehqNDAPaLiV3lwaYBU9O42RjtQD1u7sqtBcUiwfEZh0BehEBn0qS wkh4dypaMbvo4TWu3mjZAFwZAebagKavU0YQk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=SwdIxP3DC4uTgiQZFbpKZJDqPteyZCgYcOkKIt+7i5k=; b=R0tmYLsb082kBlSUKfA7usvTBRyT+hAuvSSmzAQCkDXcoYcZfJgTHBqD/FPEuA9C4T LLWYN2C2gUKN9Hgn4SUuh742ygmszU2KgRNy86259ukOj4pmdrBhdvf/jJnlNv+GKOtY 2TzmYyOHb/A7BxqhXHyfpQpQgyHpfqmQ60XGFFpFb0EUqh7pLT5AldfcS2YxlQaQueoz K6eKM/FJ3O/jNfLT73J25Z7aqwDdGdXbgE3VrfTygXdkxmlskWlQbGbzj5FFNVPQdKR5 8Y7IhTPXZbs0cHFOCU8g2pplYX/5zy24lWeHZN51sQoGJiLUXGJ0wwASJ8iFKtXUAJVf /XIA== X-Gm-Message-State: ALoCoQkdfKCn2ZNws1weG1Ay5VslFMfgv9IubQhqALkr19bd6Ji/SJKAErAqJxV8oRg8lvXycqim MIME-Version: 1.0 X-Received: by 10.180.95.66 with SMTP id di2mr8663925wib.60.1406745337874; Wed, 30 Jul 2014 11:35:37 -0700 (PDT) Received: by 10.180.39.148 with HTTP; Wed, 30 Jul 2014 11:35:37 -0700 (PDT) In-Reply-To: <53D73CBF.9090008@internode.on.net> References: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> <53D6CE6A.8030309@internode.on.net> <53D73CBF.9090008@internode.on.net> Date: Wed, 30 Jul 2014 11:35:37 -0700 Message-ID: Subject: Re: Floating point problem From: Martin Spier X-ASG-Orig-Subj: Re: Floating point problem To: Ken McDonell Cc: "Frank Ch. Eigler" , pcp@oss.sgi.com, Amer Ather , Coburn Watson , Brendan Gregg Content-Type: multipart/alternative; boundary=f46d0418252427691204ff6d6c38 X-Barracuda-Connect: mail-wi0-f176.google.com[209.85.212.176] X-Barracuda-Start-Time: 1406745338 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7966 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --f46d0418252427691204ff6d6c38 Content-Type: text/plain; charset=UTF-8 I'm not familiar with PCP's code so I might be completely wide of the mark here, but my understanding is that it's a precision problem. Aren't int64 or GMP (https://gmplib.org/) options in this case? There's also the JSON conversion problem, but one option in this case is sending out a String in the JSON response instead of a number. It's not clean and nice, but it might work. On the client side (JavaScript) I can convert that to a BigDecimal and work with it. On Mon, Jul 28, 2014 at 11:18 PM, Ken McDonell wrote: > On 29/07/14 10:28, Frank Ch. Eigler wrote: > >> >> ... >> This is possible (and can be encoded in a backward-compatible way). >> As pmwebd is a PMAPI bridge, it is both a client and a server. >> Indeed, this calculation may not be too difficult to code up in this >> code, benefitting as it does from C++ and readily available context >> usage statistics. >> > > I suspect the effort is comparable for options 1. and 3. and 3. seems like > 3. might be more generally useful. I'll investigate the effort required > here. > > ... (Just for completeness, I'd like to re-mention the >> >> alternative of having libpcp do this, so this many individual PMAPI >> clients don't have to.) >> > > I am willing to reconsider my historical and philosophical objections here. > > I think this would need to be _optional_ as there are a number of existing > clients and plenty of use cases (especially for pmlogger) where the current > semantics (no rate conversion) are preferred. > > And probably needs to be a modifier to pmNewContext(), as the semantics > need to be in place before the first metadata or pmFetch PMAPI call (the > descriptors for the counter metrics need to be re-written between pmcd and > the client, for example). > --f46d0418252427691204ff6d6c38 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I'm not familiar with PCP's code so I might be com= pletely wide of the mark here, but my understanding is that it's a prec= ision problem. Aren't int64 or GMP (htt= ps://gmplib.org/) options in this case? There's also the JSON conve= rsion problem, but one option in this case is sending out a String in the J= SON response instead of a number. It's not clean and nice, but it might= work. On the client side (JavaScript) I can convert that to a BigDecimal a= nd work with it.




On Mon, Jul 28, 2014 at 11:18 PM, Ken McDonell <ken= j@internode.on.net> wrote:
On 29/07/14 10:28, Frank Ch.= Eigler wrote:

...
This is possible (and can be encoded in a backward-compatible way).
As pmwebd is a PMAPI bridge, it is both a client and a server.
Indeed, this calculation may not be too difficult to code up in this
code, benefitting as it does from C++ and readily available context
usage statistics.

I suspect the effort is comparable for options 1. and 3. and 3. seems like = 3. might be more generally useful. =C2=A0I'll investigate the effort re= quired here.

... (Just for completeness, I'd like to re-mention the
<= br> alternative of having libpcp do this, so this many individual PMAPI
clients don't have to.)

I am willing to reconsider my historical and philosophical objections here.=

I think this would need to be _optional_ as there are a number of existing = clients and plenty of use cases (especially for pmlogger) where the current= semantics (no rate conversion) are preferred.

And probably needs to be a modifier to pmNewContext(), as the semantics nee= d to be in place before the first metadata or pmFetch PMAPI call (the descr= iptors for the counter metrics need to be re-written between pmcd and the c= lient, for example).

--f46d0418252427691204ff6d6c38-- From brolley@redhat.com Wed Jul 30 14:07:13 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 606F87F6F for ; Wed, 30 Jul 2014 14:07:13 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id F2D62AC003 for ; Wed, 30 Jul 2014 12:07:09 -0700 (PDT) X-ASG-Debug-ID: 1406747228-04bdf03d4342970001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id PRxIAzOyWFfWbR8d (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 30 Jul 2014 12:07:08 -0700 (PDT) X-Barracuda-Envelope-From: brolley@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6UJ77Ws020947 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 30 Jul 2014 15:07:08 -0400 Received: from [10.10.60.19] (vpn-60-19.rdu2.redhat.com [10.10.60.19]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6UJ76On008679; Wed, 30 Jul 2014 15:07:07 -0400 Message-ID: <53D94271.60206@redhat.com> Date: Wed, 30 Jul 2014 15:07:29 -0400 From: Dave Brolley User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Nathan Scott CC: pcp Subject: Re: Recent QA regressions References: <111454194.19514675.1406596346235.JavaMail.zimbra@redhat.com> X-ASG-Orig-Subj: Re: Recent QA regressions In-Reply-To: <111454194.19514675.1406596346235.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406747228 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 07/28/2014 09:12 PM, Nathan Scott wrote: > Hi Dave, > > I happened to run a non-secure-sockets build through QA recently, > and noticed a handful of new failures there. They look related to > recent discovery and FNDELAY changes? .bad files attached. > Re: tests 531 and 533: dbpmda was calling __pmConnectTo() even though it does not have code to handle non-blocking I/O. In particular, it was not resetting the original file control flags after connecting, as all other callers of __pmConnectTo() are expected to (and do). It was therefore possible that a subsequent read would return as incomplete with EAGAIN. This has probably been broken for some time. The problem is fixed by using __pmConnect() which does not set the FNDELAY flag. Re: test 766: The native version of __pmStringToSockAddr() calls inet_pton(3), which does not handle the '%' extension for specifying the scope of link-local ipv6 addresses. For example, fe80::3ea9:f4ff:fe76:6c24%em1. The function has now been modified to extract the suffix and to set the scope_id in the address manually. The commits below have been pushed to the brolley/dev branch of pcpfans. Dave ------------------------------------------------- commit b8d4c72b5b821a5c624a220e210b900a93b73803 Author: Dave Brolley Date: Wed Jul 30 14:43:26 2014 -0400 src/dbpmda/src/pmda.c: Use __pmConnect() instead of __pmConnectTo(). The surrounding code does not expect non-blocking I/O and so should not call __pmConnectTo(). commit 1665f9ec83fd3ab2eeb0f1fb85b1cca0eb898cd3 Author: Dave Brolley Date: Wed Jul 30 14:37:20 2014 -0400 Handle the '% X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 210977F67 for ; Wed, 30 Jul 2014 14:40:59 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 007168F8039 for ; Wed, 30 Jul 2014 12:40:55 -0700 (PDT) X-ASG-Debug-ID: 1406749254-04bdf03d4543c00001-S8gJnT Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id h3TDLLdCJABYkSWt (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 30 Jul 2014 12:40:54 -0700 (PDT) X-Barracuda-Envelope-From: fche@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6UJecrc029268 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 30 Jul 2014 15:40:38 -0400 Received: from fche.csb (vpn-61-251.rdu2.redhat.com [10.10.61.251]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6UJebC1018404; Wed, 30 Jul 2014 15:40:38 -0400 Received: by fche.csb (Postfix, from userid 2569) id 4843F5823F; Wed, 30 Jul 2014 15:40:37 -0400 (EDT) Date: Wed, 30 Jul 2014 15:40:37 -0400 From: "Frank Ch. Eigler" To: Martin Spier Cc: Ken McDonell , pcp@oss.sgi.com, Amer Ather , Coburn Watson , Brendan Gregg Subject: Re: Floating point problem Message-ID: <20140730194037.GC8745@redhat.com> X-ASG-Orig-Subj: Re: Floating point problem References: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> <53D6CE6A.8030309@internode.on.net> <53D73CBF.9090008@internode.on.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.2i X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406749254 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi - > I'm not familiar with PCP's code so I might be completely wide of > the mark here, but my understanding is that it's a precision > problem. Aren't int64 or GMP (https://gmplib.org/) options in this > case? Doing derived-metric calculations in int64 form sounds possible, but effort would have to be expended to define casting and rules, and given pure C libpcp, some unpleasant code duplication would be needed. > There's also the JSON conversion problem, but one option in this > case is sending out a String in the JSON response instead of a > number. [...] pmwebd was using the equivalent of printf("%g"), which suffers from a too-low default precision. The fche/pmwebd branch switches to a type-appropriate number of digits of precision, so this part should be better. But even with that, one will have only 52 bits bits of precision/mantissa, fewer than with a 64-bit integer. - FChE From kenj@internode.on.net Wed Jul 30 16:49:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id A47617F8D for ; Wed, 30 Jul 2014 16:49:27 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 92346304039 for ; Wed, 30 Jul 2014 14:49:24 -0700 (PDT) X-ASG-Debug-ID: 1406756958-04cbb02d8344200001-S8gJnT Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id q7kM8AZZ5qTLbcf9 for ; Wed, 30 Jul 2014 14:49:19 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApkCAL9n2VN20Y9CPGdsb2JhbAANTINgg0/IEodTAYEmBQEBAQE4hDoBAQQjFUABEAsOCgICBRYLAgIJAwIBAgExFAYNAQcBAbAed5dqEwSBLI1PAQFPB4J5gVEBBI5lpS2BZg Received: from ppp118-209-143-66.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.143.66]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 07:19:17 +0930 Message-ID: <53D96872.6090905@internode.on.net> Date: Thu, 31 Jul 2014 07:49:38 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: Martin Spier CC: "Frank Ch. Eigler" , pcp@oss.sgi.com, Amer Ather , Coburn Watson , Brendan Gregg Subject: Re: Floating point problem References: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> <53D6CE6A.8030309@internode.on.net> <53D73CBF.9090008@internode.on.net> X-ASG-Orig-Subj: Re: Floating point problem In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406756958 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7972 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 31/07/14 04:35, Martin Spier wrote: > I'm not familiar with PCP's code so I might be completely wide of the > mark here, but my understanding is that it's a precision problem. Aren't > int64 or GMP (https://gmplib.org/) options in this case? There's also > the JSON conversion problem, but one option in this case is sending out > a String in the JSON response instead of a number. It's not clean and > nice, but it might work. On the client side (JavaScript) I can convert > that to a BigDecimal and work with it. Hi all. The problem is (a) the derived metric has the wrong semantics ... counter not delta(counter) and (b) the derived metric involves division ... this will never produce an integer result. I you don't use derived metrics and do all of the rate and percentage arithmetic on the client side (option 2. in my original mail), the problem goes away. Otherwise, you need an implementation of option 1. or 3. I've started working on 3. From bgregg@netflix.com Wed Jul 30 17:00:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id E25347F8E for ; Wed, 30 Jul 2014 17:00:15 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id BFB138F8059 for ; Wed, 30 Jul 2014 15:00:15 -0700 (PDT) X-ASG-Debug-ID: 1406757612-04cbb02d8344630001-S8gJnT Received: from mail-qg0-f48.google.com (mail-qg0-f48.google.com [209.85.192.48]) by cuda.sgi.com with ESMTP id cCT571iPik1HX64C (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 30 Jul 2014 15:00:13 -0700 (PDT) X-Barracuda-Envelope-From: bgregg@netflix.com X-Barracuda-Apparent-Source-IP: 209.85.192.48 Received: by mail-qg0-f48.google.com with SMTP id i50so2643301qgf.21 for ; Wed, 30 Jul 2014 15:00:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=koOL/2HdMfcbXi2dvd2Raa5KBCw2SBCWHq7SpJG0ii4=; b=HujGnOW6Vz5Kvf6WjJKWxk2h/1egj4lEVyfHa8dR8BOFW9LZqIMPt8blphD8le/gM+ kpFXeicB447DJ10UPoKrtcGX+O3AMTr3EzuHkQcdokmFR2mMSKFyOPgc2g1hS4N4Ergf m9CsBsnew+lm8DPHzJQfnuIayXGReXgotv/ks= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=koOL/2HdMfcbXi2dvd2Raa5KBCw2SBCWHq7SpJG0ii4=; b=f0Eg/HIUlk7r2MWghshB2BKxU/vD0sxn3wHw5UA/I6QszBcnNwIi28fqQ+Ue8/DzLN SPgHo8IcATPBY2JjJN8Ft1bwhcA0lrnQSnoKuCTnKUBRKmrYZIsbS2GkxM9e4FpjHvSu Gds5kcyNJ4MvVgX83xvmqTVibv2M/8WnQm80217Zgv50IGgRy2x8bFe29f85drOakXc4 96n0i57Ej6xaDqkmQQbkFgIfcygo6jDbfwc/ZGypxrKaLFhbObdOqN06qGE899lv5Rnp M0iPhDm0N83Mou6pt6QXt/V1iz80kSp5LG9l9IqK1MIbbctiOZswutV1JiSQLoyrY55R NwuA== X-Gm-Message-State: ALoCoQkXXrUQ1u8UKqchzE+wqbT/H7vfRFu2UvAQraOecrtchH4kQJAsD0r3hpZxybkxVWo/58OB MIME-Version: 1.0 X-Received: by 10.140.23.198 with SMTP id 64mr10817179qgp.84.1406757612015; Wed, 30 Jul 2014 15:00:12 -0700 (PDT) Received: by 10.140.93.225 with HTTP; Wed, 30 Jul 2014 15:00:11 -0700 (PDT) In-Reply-To: <53D6CE6A.8030309@internode.on.net> References: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> <53D6CE6A.8030309@internode.on.net> Date: Wed, 30 Jul 2014 15:00:11 -0700 Message-ID: Subject: Re: [pcp] Floating point problem From: Brendan Gregg X-ASG-Orig-Subj: Re: [pcp] Floating point problem To: Ken McDonell Cc: Martin Spier , pcp@oss.sgi.com, Amer Ather , Coburn Watson Content-Type: multipart/alternative; boundary=001a11c12e6abff01104ff70478c X-Barracuda-Connect: mail-qg0-f48.google.com[209.85.192.48] X-Barracuda-Start-Time: 1406757613 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7972 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message 0.10 BSF_SC0_SA085 Custom Rule SA085 --001a11c12e6abff01104ff70478c Content-Type: text/plain; charset=UTF-8 On Mon, Jul 28, 2014 at 3:27 PM, Ken McDonell wrote: > On 29/07/14 05:47, Martin Spier wrote: > >> Here it is: >> >> kernel.pct.cpu.user = 100 * kernel.all.cpu.user / hinv.ncpu >> kernel.pct.cpu.sys = 100 * kernel.all.cpu.sys / hinv.ncpu >> >> Same definition Amer posted before. Think it came from: >> >> http://www.performancecopilot.org/pcp.git/man/html/howto.cpuperf.html >> >> > As I suspected ... > > Note in that web page, the table is headed "PCP equivalent (assuming rate > conversion)" ... we don't have any rate conversion in play here. > > The expressions above will produce exactly the floating point precision > problem Martin has observed. > > The options are ... > > 1. Revisit the design specs for pmwebd and see if it makes sense for this > daemon to be performing per-client rate conversion (so taking on some of > the role of a PMAPI client, like pmie, pmval, pmchart, pmdumptext, ... and > detecting the counter semantics of metrics and rate converting them). In > this case the formulae and derived metrics above would work. > > 2. Push the rate conversion arithmetic out the the pmwebd clients ... this > involves keeping the last observed value and the last timestamp, then > computing delta(value) / delta(timestamp), and you could do the *100 and > /hinv at the same time. I am guessing this is not attractive option. > > 3. Extend the derived metrics support. We already have delta() which can > be applied to counter metrics and returns the difference in value between > one pmFetch and the next. This is closer to the semantics Martin needs, > but does not include the divide by delta(timestamp) part. I could add > rate() as a new intrinsic function for derived metrics that does the rate > conversion. > > With option 3. the derived metric definitions would be something like ... > > kernel.pct.cpu.user = 100 * rate(kernel.all.cpu.user) / hinv.ncpu > > Note that rate(kernel.all.cpu.user) would be a double precision number but > restricted to the (small) interval [0, hinv.ncpu]. > > Before jumping into 3., I'd like to hear feedback on options 1. and 2. > I actually like 2. It's simple. I'd like to not just fetch per-second metrics, but possibly other intervals at the same time, including per-hour and per-day. And possibly from multiple clients. And possibly ad-hoc queries. With 2, I simply stash away whatever cumulative values and timestamp pairs, and use them later when needed. Brendan -- Brendan Gregg, Senior Performance Architect, Netflix --001a11c12e6abff01104ff70478c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable



On Mon, Jul 28, 2014 at 3:27 PM, Ken McDonell <= ;kenj@internode.= on.net> wrote:
On 29/07/14 05:47, Martin Sp= ier wrote:
Here it is:

kernel.pct.cpu.user =3D 100 * kernel.all.cpu.user / hinv.ncpu
kernel.pct.cpu.sys =C2=A0=3D 100 * kernel.all.cpu.sys / hinv.ncpu

Same definition Amer posted before. Think it came from:

http://www.performancecopilot.org/pcp.git/m= an/html/howto.cpuperf.html


As I suspected ...

Note in that web page, the table is headed "PCP equivalent (assuming r= ate conversion)" ... we don't have any rate conversion in play her= e.

The expressions above will produce exactly the floating point precision pro= blem Martin has observed.

The options are ...

1. Revisit the design specs for pmwebd and see if it makes sense for this d= aemon to be performing per-client rate conversion (so taking on some of the= role of a PMAPI client, like pmie, pmval, pmchart, pmdumptext, ... and det= ecting the counter semantics of metrics and rate converting them). =C2=A0In= this case the formulae and derived metrics above would work.

2. Push the rate conversion arithmetic out the the pmwebd clients ... this = involves keeping the last observed value and the last timestamp, then compu= ting delta(value) / delta(timestamp), and you could do the *100 and /hinv a= t the same time. I am guessing this is not attractive option.

3. Extend the derived metrics support. =C2=A0We already have delta() which = can be applied to counter metrics and returns the difference in value betwe= en one pmFetch and the next. =C2=A0This is closer to the semantics Martin n= eeds, but does not include the divide by delta(timestamp) part. =C2=A0I cou= ld add rate() as a new intrinsic function for derived metrics that does the= rate conversion.

With option 3. the derived metric definitions would be something like ...
kernel.pct.cpu.user =3D 100 * rate(kernel.all.cpu.user) / hinv.ncpu

Note that rate(kernel.all.cpu.user) would be a double precision number but = restricted to the (small) interval [0, hinv.ncpu].

Before jumping into 3., I'd like to hear feedback on options 1. and 2.<= br>

I actually like 2. It's simple.

I'd like to not j= ust fetch per-second metrics, but possibly other intervals at the same time= , including per-hour and per-day. And possibly from multiple clients. And p= ossibly ad-hoc queries. With 2, I simply stash away whatever cumulative val= ues and timestamp pairs, and use them later when needed.

Brendan

--
Brendan Gregg, Senior = Performance Architect, Netflix
--001a11c12e6abff01104ff70478c-- From kenj@internode.on.net Wed Jul 30 17:59:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 7C77F7F98 for ; Wed, 30 Jul 2014 17:59:48 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 19445AC004 for ; Wed, 30 Jul 2014 15:59:44 -0700 (PDT) X-ASG-Debug-ID: 1406761178-04bdf03d424ae80001-S8gJnT Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id K20oc8950OQsjo5k for ; Wed, 30 Jul 2014 15:59:38 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApsCACF42VN20Y9CPGdsb2JhbAANTIcvhDfIEoMcAYEmBQEBAQE4hDoBAQQjFUABEAsOCgICBRYLAgIJAwIBAgExFAYNAQcBAbAnd5dvF4EsjiAHgnmBUQEEjmWlLQ Received: from ppp118-209-143-66.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.143.66]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 08:29:37 +0930 Message-ID: <53D978ED.8010100@internode.on.net> Date: Thu, 31 Jul 2014 08:59:57 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: Brendan Gregg CC: Martin Spier , pcp@oss.sgi.com, Amer Ather , Coburn Watson Subject: Re: [pcp] Floating point problem References: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> <53D6CE6A.8030309@internode.on.net> X-ASG-Orig-Subj: Re: [pcp] Floating point problem In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406761178 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7974 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 31/07/14 08:00, Brendan Gregg wrote: > .. > > I actually like 2. It's simple. > > I'd like to not just fetch per-second metrics, but possibly other > intervals at the same time, including per-hour and per-day. And possibly > from multiple clients. And possibly ad-hoc queries. With 2, I simply > stash away whatever cumulative values and timestamp pairs, and use them > later when needed. Excellent. 2. is more consistent with the PCP philosophy where rate conversion (which is but one form of aggregation) is preferably the domain of the clients consuming the performance data, rather than the producers of the data. You'll need to stash the timestamps from the fetches also to do the rate conversion (or other temporal averaging) based on the consistent timestamps at the source of the data. If you start to do serious aggregation, you'll also need the metadata to know if a metric is a counter or not and to allow correct scaling, e.g. to get the units of time for the CPU metrics, so you can scale as required before dividing by the delta in the timestamps. This has all be done before (as Frank points out!), so lemme know if you need any assistance. From mspier@netflix.com Wed Jul 30 18:51:56 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 62DF07F88 for ; Wed, 30 Jul 2014 18:51:56 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 4FB878F8074 for ; Wed, 30 Jul 2014 16:51:53 -0700 (PDT) X-ASG-Debug-ID: 1406764308-04cb6c555c48130001-S8gJnT Received: from mail-we0-f169.google.com (mail-we0-f169.google.com [74.125.82.169]) by cuda.sgi.com with ESMTP id tHiEFQ0f8kLUP6fS (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 30 Jul 2014 16:51:48 -0700 (PDT) X-Barracuda-Envelope-From: mspier@netflix.com X-Barracuda-Apparent-Source-IP: 74.125.82.169 Received: by mail-we0-f169.google.com with SMTP id u56so1917861wes.28 for ; Wed, 30 Jul 2014 16:51:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=IV7A3/ffMeQJtY2N8DD9o9BV/ErCMoFc0igT+S4QF9o=; b=anhTHa+yknl2jXvtOoViH0ZQqppvyNnk7HM+y717cZPtRu9VUt5UczZ4eXW7Q4xVkh gF/2A7f4lznKRGbUft4gM/tpI7+VXoCtqdS3BpC5Olf5T4ANPoFmDwBjSzeNzC/07ff3 ocmvSyLeZ06SDBLgQejCSxyAw5G071tNcNOaY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=IV7A3/ffMeQJtY2N8DD9o9BV/ErCMoFc0igT+S4QF9o=; b=jDgUx5Yq0EuCXwlOSy7UEpoUE39k2WYHmuSwV/kRcvRqanmE3y/WxAIgPdhSzkJpAg 5FlInoTIaT3yT/cU6iJ8V3DHSjXnt840vp5j7omvxed65LDKJDt6M9z2P74jfo4+KhbG UcU6f1naJCrLYU52lVKN0i/mayrq5zHNh3WsIm3m1JQ2LFO6dQhrnw8d7cnBIxfCVNfD gY7t5s0raq4IkSGCoVlGiTS5SaFxEAjMdmSgLCvTsbaz8loNiHJwKibBfTaao07/O580 D6rOQ2v2F7WBA7em6cKeKg/VXIqsBHf7swZY8yyZMrLZPrdwCmMSfSHQUUB/3rSZcVUl h3ug== X-Gm-Message-State: ALoCoQk0DJ+JZAZpdYiZi/aY3n7AmifAeFG3tG1nYNoocczDbXr62TR2aFtMQ9/oweonBk625xpu MIME-Version: 1.0 X-Received: by 10.194.48.103 with SMTP id k7mr11016518wjn.68.1406764307657; Wed, 30 Jul 2014 16:51:47 -0700 (PDT) Received: by 10.180.39.148 with HTTP; Wed, 30 Jul 2014 16:51:47 -0700 (PDT) In-Reply-To: <53D978ED.8010100@internode.on.net> References: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> <53D6CE6A.8030309@internode.on.net> <53D978ED.8010100@internode.on.net> Date: Wed, 30 Jul 2014 16:51:47 -0700 Message-ID: Subject: Re: [pcp] Floating point problem From: Martin Spier X-ASG-Orig-Subj: Re: [pcp] Floating point problem To: Ken McDonell Cc: Brendan Gregg , pcp@oss.sgi.com, Amer Ather , Coburn Watson Content-Type: multipart/alternative; boundary=047d7b86c8e4d7769c04ff71d6e6 X-Barracuda-Connect: mail-we0-f169.google.com[74.125.82.169] X-Barracuda-Start-Time: 1406764308 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7976 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --047d7b86c8e4d7769c04ff71d6e6 Content-Type: text/plain; charset=UTF-8 My understanding was that the original metrics, kernel.all.cpu.user and kernel.all.cpu.sys suffered from the same problem. If that's not the case, I completely agree with option 2. On Wed, Jul 30, 2014 at 3:59 PM, Ken McDonell wrote: > On 31/07/14 08:00, Brendan Gregg wrote: > >> .. >> >> I actually like 2. It's simple. >> >> I'd like to not just fetch per-second metrics, but possibly other >> intervals at the same time, including per-hour and per-day. And possibly >> from multiple clients. And possibly ad-hoc queries. With 2, I simply >> stash away whatever cumulative values and timestamp pairs, and use them >> later when needed. >> > > Excellent. > > 2. is more consistent with the PCP philosophy where rate conversion (which > is but one form of aggregation) is preferably the domain of the clients > consuming the performance data, rather than the producers of the data. > > You'll need to stash the timestamps from the fetches also to do the rate > conversion (or other temporal averaging) based on the consistent timestamps > at the source of the data. > > If you start to do serious aggregation, you'll also need the metadata to > know if a metric is a counter or not and to allow correct scaling, e.g. to > get the units of time for the CPU metrics, so you can scale as required > before dividing by the delta in the timestamps. > > This has all be done before (as Frank points out!), so lemme know if you > need any assistance. > > --047d7b86c8e4d7769c04ff71d6e6 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
My understanding was that the original metrics, kernel.all.cpu.user and ke= rnel.all.cpu.sys suffered from the same problem. If that's not the case= , I completely agree with option 2.


On Wed,= Jul 30, 2014 at 3:59 PM, Ken McDonell <kenj@internode.on.net><= /span> wrote:
On 31/07/14 08:00, Brendan G= regg wrote:
..

I actually like 2. It's simple.

I'd like to not just fetch per-second metrics, but possibly other
intervals at the same time, including per-hour and per-day. And possibly from multiple clients. And possibly ad-hoc queries. With 2, I simply
stash away whatever cumulative values and timestamp pairs, and use them
later when needed.

Excellent.

2. is more consistent with the PCP philosophy where rate conversion (which = is but one form of aggregation) is preferably the domain of the clients con= suming the performance data, rather than the producers of the data.

You'll need to stash the timestamps from the fetches also to do the rat= e conversion (or other temporal averaging) based on the consistent timestam= ps at the source of the data.

If you start to do serious aggregation, you'll also need the metadata t= o know if a metric is a counter or not and to allow correct scaling, e.g. t= o get the units of time for the CPU metrics, so you can scale as required b= efore dividing by the delta in the timestamps.

This has all be done before (as Frank points out!), so lemme know if you ne= ed any assistance.


--047d7b86c8e4d7769c04ff71d6e6-- From kenj@internode.on.net Wed Jul 30 19:34:10 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 8CB007F99 for ; Wed, 30 Jul 2014 19:34:10 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 6B2EF8F807A for ; Wed, 30 Jul 2014 17:34:07 -0700 (PDT) X-ASG-Debug-ID: 1406766844-04bdf03d444da20001-S8gJnT Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id yVOmQmlxwyD3oLhU for ; Wed, 30 Jul 2014 17:34:05 -0700 (PDT) X-Barracuda-Envelope-From: kenj@internode.on.net X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoCAIuO2VN20Y9CPGdsb2JhbAANTIcvhDfIFIMcAYEeBQEBAQE4hDoBAQQjFUEQCw4KAgIFIQICDwIyFAYNAQcBAbA9d5ddF4EsjiAHgnmBUQEEtBI Received: from ppp118-209-143-66.lns20.mel6.internode.on.net (HELO [192.168.1.100]) ([118.209.143.66]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 10:03:30 +0930 Message-ID: <53D98EEF.70100@internode.on.net> Date: Thu, 31 Jul 2014 10:33:51 +1000 From: Ken McDonell User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: Martin Spier CC: Brendan Gregg , pcp@oss.sgi.com, Amer Ather , Coburn Watson Subject: Re: [pcp] Floating point problem References: <033501cfa8a4$fd091ed0$f71b5c70$@internode.on.net> <53D6CE6A.8030309@internode.on.net> <53D978ED.8010100@internode.on.net> X-ASG-Orig-Subj: Re: [pcp] Floating point problem In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406766844 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7978 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 31/07/14 09:51, Martin Spier wrote: > My understanding was that the original metrics, kernel.all.cpu.user and > kernel.all.cpu.sys suffered from the same problem. If that's not the > case, I completely agree with option 2. I do not believe the underlying metrics have any related semantic issues ... they preserve full precision (as much as you can packing a struct timeval in units of sec + usec into an unsigned 64-bit integer in units of msec), up to integer overflow (which can even be handled algorithmically in the client if you want to add extra credit points). From dmatotek@aconex.com Wed Jul 30 20:31:55 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id DBC1B7F93 for ; Wed, 30 Jul 2014 20:31:54 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id B763C8F8087 for ; Wed, 30 Jul 2014 18:31:54 -0700 (PDT) X-ASG-Debug-ID: 1406770307-04cbb02d8549cf0001-S8gJnT Received: from postoffice2.aconex.com (mail.aconex.com [175.45.105.35]) by cuda.sgi.com with ESMTP id xeWoCW4zSu9DgWSg for ; Wed, 30 Jul 2014 18:31:48 -0700 (PDT) X-Barracuda-Envelope-From: dmatotek@aconex.com X-Barracuda-Apparent-Source-IP: 175.45.105.35 Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.35.100]) by postoffice2.aconex.com with ESMTP id cnHjRrBBk9lZ3PNz for ; Thu, 31 Jul 2014 11:31:46 +1000 (EST) Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.35.102]) by postoffice.aconex.com (Postfix) with ESMTP id 63E313CE00BD for ; Thu, 31 Jul 2014 11:31:46 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id 610CA243A3D8 for ; Thu, 31 Jul 2014 11:31:46 +1000 (EST) Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id qOjXu3OMuLJA for ; Thu, 31 Jul 2014 11:31:45 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id DAE33243A4ED for ; Thu, 31 Jul 2014 11:31:45 +1000 (EST) X-Virus-Scanned: amavisd-new at aconex.com Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id V-LhDMoo-E90 for ; Thu, 31 Jul 2014 11:31:45 +1000 (EST) Received: from acxmail-au2.aconex.com (acxmail-au2.aconex.com [192.168.35.104]) by gatekeeper.aconex.com (Postfix) with ESMTP id BE653243A3D8 for ; Thu, 31 Jul 2014 11:31:45 +1000 (EST) Received: from acxmail-au2.aconex.com (localhost.localdomain [127.0.0.1]) by acxmail-au2.aconex.com (Postfix) with ESMTP id B90963B20003 for ; Thu, 31 Jul 2014 11:31:45 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by acxmail-au2.aconex.com (Postfix) with ESMTP id A90503B20002 for ; Thu, 31 Jul 2014 11:31:45 +1000 (EST) X-Virus-Scanned: amavisd-new at aconex.com Received: from acxmail-au2.aconex.com ([127.0.0.1]) by localhost (acxmail-au2.aconex.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id aeBdhPMrJpUr for ; Thu, 31 Jul 2014 11:31:45 +1000 (EST) Received: from acxmail-au2.aconex.com (acxmail-au2.aconex.com [192.168.35.104]) by acxmail-au2.aconex.com (Postfix) with ESMTP id 821B03B20001 for ; Thu, 31 Jul 2014 11:31:45 +1000 (EST) Date: Thu, 31 Jul 2014 11:31:45 +1000 (EST) From: Dennis Matotek To: pcp@oss.sgi.com Message-ID: <796280475.484802.1406770305445.JavaMail.zimbra@aconex.com> In-Reply-To: <1653012570.483596.1406768887110.JavaMail.zimbra@aconex.com> Subject: updating from 3.6.5 to latest version MIME-Version: 1.0 X-ASG-Orig-Subj: updating from 3.6.5 to latest version Content-Type: multipart/alternative; boundary="----=_Part_484801_447636788.1406770305445" X-Originating-IP: [192.168.6.24] X-Mailer: Zimbra 8.0.7_GA_6021 (ZimbraWebClient - GC36 (Linux)/8.0.7_GA_6021) Thread-Topic: updating from 3.6.5 to latest version Thread-Index: zRQEpBSBfAKsvtt3zq9XQW2CKi89zw== X-Virus-Scanned: by bsmtpd at aconex.com X-Barracuda-Connect: mail.aconex.com[175.45.105.35] X-Barracuda-Start-Time: 1406770308 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7979 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.00 HTML_MESSAGE BODY: HTML included in message ------=_Part_484801_447636788.1406770305445 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi all, Is anyone aware of any major gotchas when updating from 3.6.x to something like 3.9.x. Any detailed release notes or upgrade documentation available? Dennis Matotek Systems Engineer Aconex Project success. Easy as Aconex. 96 Flinders Street, Melbourne , Victoria 3000, Australia Tel: +61 3 9240 0213 Fax: +61 3 9240 0299 Email: dmatotek@aconex.com www.aconex.com ------=_Part_484801_447636788.1406770305445 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit
Hi all,

Is anyone aware of any major gotchas when updating from 3.6.x to something like 3.9.x.

Any detailed release notes or upgrade documentation available?

Dennis Matotek
Systems Engineer        

Aconex
Project success. Easy as Aconex.

96 Flinders Street, Melbourne , Victoria 3000, Australia
Tel: +61 3 9240 0213 Fax: +61 3 9240 0299
Email: dmatotek@aconex.com www.aconex.com


------=_Part_484801_447636788.1406770305445-- From nscott@redhat.com Thu Jul 31 02:47:40 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 183CB29DF9 for ; Thu, 31 Jul 2014 02:47:40 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 05EA18F8089 for ; Thu, 31 Jul 2014 00:47:36 -0700 (PDT) X-ASG-Debug-ID: 1406792851-04cbb02d8457040001-S8gJnT Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id KW9w8VhqkVAkUCVv for ; Thu, 31 Jul 2014 00:47:31 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.39 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx6-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6V7lRo3011793; Thu, 31 Jul 2014 03:47:28 -0400 Date: Thu, 31 Jul 2014 03:47:27 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Dennis Matotek Cc: pcp@oss.sgi.com Message-ID: <514211320.21115574.1406792847480.JavaMail.zimbra@redhat.com> In-Reply-To: <796280475.484802.1406770305445.JavaMail.zimbra@aconex.com> References: <796280475.484802.1406770305445.JavaMail.zimbra@aconex.com> Subject: Re: [pcp] updating from 3.6.5 to latest version MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] updating from 3.6.5 to latest version Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.7] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF30 (Linux)/8.0.6_GA_5922) Thread-Topic: updating from 3.6.5 to latest version Thread-Index: zRQEpBSBfAKsvtt3zq9XQW2CKi89zy37zzDc X-Barracuda-Connect: mx6-phx2.redhat.com[209.132.183.39] X-Barracuda-Start-Time: 1406792851 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7987 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Hi Dennis, ----- Original Message ----- > Hi all, > > Is anyone aware of any major gotchas when updating from 3.6.x to something > like 3.9.x. > > Any detailed release notes or upgrade documentation available? > The best source for you will be the CHANGELOG file in the top level of the pcp git tree - it gives fairly detailed coverage of each releases changes. There's a fair bit of stuff - pmcd now running non-root, etc. But we aim to keep a smooth update process working, so it should work. cheers. -- Nathan From dmatotek@aconex.com Thu Jul 31 21:25:56 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: pcp@oss.sgi.com Delivered-To: pcp@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 617787FB7 for ; Thu, 31 Jul 2014 21:25:56 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4D8E730405F for ; Thu, 31 Jul 2014 19:25:56 -0700 (PDT) X-ASG-Debug-ID: 1406859950-04cbb02d83969d0001-S8gJnT Received: from postoffice2.aconex.com (mail.aconex.com [175.45.105.35]) by cuda.sgi.com with ESMTP id EAiFZmr1kijjTMeE for ; Thu, 31 Jul 2014 19:25:51 -0700 (PDT) X-Barracuda-Envelope-From: dmatotek@aconex.com X-Barracuda-Apparent-Source-IP: 175.45.105.35 Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.35.100]) by postoffice2.aconex.com with ESMTP id PDfQLa08dbMhAYtf; Fri, 01 Aug 2014 12:25:48 +1000 (EST) Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.35.102]) by postoffice.aconex.com (Postfix) with ESMTP id AC1DA3CE009B; Fri, 1 Aug 2014 12:25:48 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id A95FC2439F49; Fri, 1 Aug 2014 12:25:48 +1000 (EST) Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id ANhD3qx5nZfU; Fri, 1 Aug 2014 12:25:47 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by gatekeeper.aconex.com (Postfix) with ESMTP id 76BF72439FC1; Fri, 1 Aug 2014 12:25:47 +1000 (EST) X-Virus-Scanned: amavisd-new at aconex.com Received: from gatekeeper.aconex.com ([127.0.0.1]) by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 7WU-AlbGL1lj; Fri, 1 Aug 2014 12:25:47 +1000 (EST) Received: from acxmail-au2.aconex.com (acxmail-au2.aconex.com [192.168.35.104]) by gatekeeper.aconex.com (Postfix) with ESMTP id 53CAB2439F49; Fri, 1 Aug 2014 12:25:47 +1000 (EST) Received: from acxmail-au2.aconex.com (localhost.localdomain [127.0.0.1]) by acxmail-au2.aconex.com (Postfix) with ESMTP id 4B6843B20003; Fri, 1 Aug 2014 12:25:47 +1000 (EST) Received: from localhost (localhost.localdomain [127.0.0.1]) by acxmail-au2.aconex.com (Postfix) with ESMTP id 3B1DB3B20002; Fri, 1 Aug 2014 12:25:47 +1000 (EST) X-Virus-Scanned: amavisd-new at aconex.com Received: from acxmail-au2.aconex.com ([127.0.0.1]) by localhost (acxmail-au2.aconex.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id OK7gEmTgkn5h; Fri, 1 Aug 2014 12:25:47 +1000 (EST) Received: from acxmail-au2.aconex.com (localhost.localdomain [127.0.0.1]) by acxmail-au2.aconex.com (Postfix) with ESMTP id 125733B20001; Fri, 1 Aug 2014 12:25:47 +1000 (EST) Date: Fri, 1 Aug 2014 12:25:45 +1000 (EST) From: Dennis Matotek To: Nathan Scott Cc: pcp@oss.sgi.com Message-ID: <223906435.553305.1406859945166.JavaMail.zimbra@aconex.com> In-Reply-To: <514211320.21115574.1406792847480.JavaMail.zimbra@redhat.com> References: <796280475.484802.1406770305445.JavaMail.zimbra@aconex.com> <514211320.21115574.1406792847480.JavaMail.zimbra@redhat.com> Subject: Re: [pcp] updating from 3.6.5 to latest version MIME-Version: 1.0 X-ASG-Orig-Subj: Re: [pcp] updating from 3.6.5 to latest version Content-Type: multipart/alternative; boundary="----=_Part_553304_747230813.1406859945165" X-Originating-IP: [192.168.6.24] X-Mailer: Zimbra 8.0.7_GA_6021 (ZimbraWebClient - GC36 (Linux)/8.0.7_GA_6021) Thread-Topic: updating from 3.6.5 to latest version Thread-Index: zRQEpBSBfAKsvtt3zq9XQW2CKi89zy37zzDcQQB79D0= X-Virus-Scanned: by bsmtpd at aconex.com X-Barracuda-Connect: mail.aconex.com[175.45.105.35] X-Barracuda-Start-Time: 1406859950 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.8019 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.00 HTML_MESSAGE BODY: HTML included in message ------=_Part_553304_747230813.1406859945165 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hey dude :) Thanks all for the responses ----- Original Message ----- From: "Nathan Scott" To: "Dennis Matotek" Cc: pcp@oss.sgi.com Sent: Thursday, 31 July, 2014 5:47:27 PM Subject: Re: [pcp] updating from 3.6.5 to latest version Hi Dennis, ----- Original Message ----- > Hi all, > > Is anyone aware of any major gotchas when updating from 3.6.x to something > like 3.9.x. > > Any detailed release notes or upgrade documentation available? > The best source for you will be the CHANGELOG file in the top level of the pcp git tree - it gives fairly detailed coverage of each releases changes. There's a fair bit of stuff - pmcd now running non-root, etc. But we aim to keep a smooth update process working, so it should work. cheers. -- Nathan ------=_Part_553304_747230813.1406859945165 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Hey dude :)

=
Thanks all for the responses


From: <= /b>"Nathan Scott" <nathans@redhat.com>
To: "Dennis Matotek"= <dmatotek@aconex.com>
Cc: pcp@oss.sgi.com
Sent: = Thursday, 31 July, 2014 5:47:27 PM
Subject: Re: [pcp] updating fr= om 3.6.5 to latest version

Hi Dennis,

-= ---- Original Message -----
> Hi all,
>
> Is anyone awar= e of any major gotchas when updating from 3.6.x to something
> like 3= .9.x.
>
> Any detailed release notes or upgrade documentation = available?
>

The best source for you will be the C= HANGELOG file in the top level of
the pcp git tree - it gives fairly det= ailed coverage of each releases
changes.

There's a fai= r bit of stuff - pmcd now running non-root, etc.  But we
aim to kee= p a smooth update process working, so it should work.

che= ers.

--
Nathan

------=_Part_553304_747230813.1406859945165--