Hello community, here is the log from the commit of package pcp.12132 for openSUSE:Leap:15.1:Update checked in at 2020-03-28 12:17:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.1:Update/pcp.12132 (Old) and /work/SRC/openSUSE:Leap:15.1:Update/.pcp.12132.new.3160 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pcp.12132" Sat Mar 28 12:17:15 2020 rev:1 rq:787380 version:4.3.1 Changes: -------- New Changes file: --- /dev/null 2020-03-10 18:28:06.918142398 +0100 +++ /work/SRC/openSUSE:Leap:15.1:Update/.pcp.12132.new.3160/pcp.changes 2020-03-28 12:17:24.541125230 +0100 @@ -0,0 +1,1419 @@ +------------------------------------------------------------------- +Wed Feb 26 10:57:30 UTC 2020 - Michal Suchanek <[email protected]> + +- hv24x7 support (bsc#1155054 ltc#182081). + + 0007-pmdas-perf-Add-cpunumber-option-for-dynamic-perf-eve.patch + + 0008-pmdas-perf-Add-support-for-hv_24x7-nest-events-on-mu.patch + + 0009-qa-perfevent-Test-hv_24x7-events-on-multinode.patch + +------------------------------------------------------------------- +Fri Jan 24 15:56:53 UTC 2020 - David Disseldorp <[email protected]> + +- Fix for security advisory CVE-2019-3696; (bsc#1153921) + + code change already carried +- Fix for security advisory CVE-2019-3695; (bsc#1152763) + + build-drop-old-config-file-transition-code-from-rpm-.patch + +------------------------------------------------------------------- +Wed Aug 28 10:17:39 UTC 2019 - David Disseldorp <[email protected]> + +- Fix python library dependencies broken via shared library packaging policy + split; (bsc#1129991). + +------------------------------------------------------------------- +Fri Mar 8 16:04:30 UTC 2019 - David Disseldorp <[email protected]> + +- Split out zeroconf, pmda-haproxy, pmda-smart, pmda-prometheus, + pcp2elasticsearch, pcp2json, pcp2spark, and pmlogger_daily_report files + into separate packages, matching upstream; (bsc#1128523). +- Fix incorrect dependencies for rewritten monitoring agents; (bsc#1128606). +- Ensure symlink sources and targets are in the same package; (bsc#1127978). +- Move pcp-dstat into the pcp-system-tools package; (bsc#1127978). + +------------------------------------------------------------------- +Thu Mar 7 11:48:47 UTC 2019 - Bernhard Wiedemann <[email protected]> + +- drop unreproducible perfevent_coverage program (boo#1040589) +- override build date to make package build reproducible (boo#1047218) + +------------------------------------------------------------------- +Thu Feb 28 23:04:12 UTC 2019 - [email protected] + +- Upgrade to 4.3.1; (bsc#1127437). + + Add proper systemd timer service dependency tracking + + pmrep: fix a dynamic header corner case with missing values + + pmie: fix for segv and bad sum_inst() use + + pmview: fix a missing timeout slot connection + +- Drop upstreamed patches: + 0004-create-pmlogger-and-pmie-logdirs-during-install.patch + 0007-pmie-add-systemd-timers-as-cron-alternative.patch + 0008-pmlogger_daily-add-systemd-timers-as-cron-alternativ.patch + 0009-pmlogger_daily_report-add-systemd-timers-as-cron-alt.patch + 0010-pmns-don-t-package-.NeedRebuild-for-SUSE-distros.patch + +------------------------------------------------------------------- +Tue Feb 19 14:19:03 UTC 2019 - [email protected] + +- Drop python2 support for Factory and SLES15-SP1; (bsc#1077777). + +------------------------------------------------------------------- +Wed Feb 6 14:21:04 UTC 2019 - [email protected] + +- export PACKAGE_DISTRIBUTION="suse" for build; (bsc#1123311). + +------------------------------------------------------------------- +Thu Jan 31 12:58:08 UTC 2019 - [email protected] + +- Drop distribution-release build dependency completely; (bsc#1123311). + + modify 0010-pmns-don-t-package-.NeedRebuild-for-SUSE-distros.patch + +------------------------------------------------------------------- +Wed Jan 30 10:33:12 UTC 2019 - [email protected] + +- Replace openSUSE/sles-release build dependency; (bsc#1123311). + +------------------------------------------------------------------- +Fri Jan 18 13:13:04 UTC 2019 - [email protected] + +- Drop conflicting dstat symlink; (bsc#1122502). + +------------------------------------------------------------------- +Tue Jan 15 00:17:33 UTC 2019 - [email protected] + +- Package missing PMDA binaries; (bsc#1121920). + + refresh 0001-Install-libraries-without-exec-permission.patch +- Don't package pmns .NeedRebuild flag; (bsc#1092160). + + add 0010-pmns-don-t-package-.NeedRebuild-for-SUSE-distros.patch + +------------------------------------------------------------------- +Thu Jan 10 17:23:03 UTC 2019 - [email protected] + +- Upgrade to 4.3.0; (bsc#1121914). + +- Refreshed patches + 0001-Install-libraries-without-exec-permission.patch + 0007-pmie-add-systemd-timers-as-cron-alternative.patch + 0008-pmlogger_daily-add-systemd-timers-as-cron-alternativ.patch + 0009-pmlogger_daily_report-add-systemd-timers-as-cron-alt.patch + +------------------------------------------------------------------- +Tue Jan 8 14:54:12 UTC 2019 - Jan Engelhardt <[email protected]> + +- Combine systemd service calls to save on macro + generated boilerplate. + +------------------------------------------------------------------- +Mon Jan 7 15:36:54 UTC 2019 - [email protected] + +- Use systemd timers instead of crontab; (bsc#1115413). + + 0007-pmie-add-systemd-timers-as-cron-alternative.patch + + 0008-pmlogger_daily-add-systemd-timers-as-cron-alternativ.patch + + 0009-pmlogger_daily_report-add-systemd-timers-as-cron-alt.patch + +------------------------------------------------------------------- +Fri Dec 7 14:31:07 UTC 2018 - [email protected] + +- Upgrade to 4.2.0 (fate#326865) + +- python package dependency changes + + add setuptools and python-requests + + fix python-jsonpointer + + disable pcp-pmda-postgresql due to missing psycopg2 dependency + +------------------------------------------------------------------- +Fri Sep 7 10:39:49 UTC 2018 - [email protected] + +- Upgrade to 4.1.1 + +- renamed patches + 0002-Install-libraries-without-exec-permission.patch + to 0001-Install-libraries-without-exec-permission.patch + 0005-Remove-runlevel-4-from-init-scripts.patch + to 0003-Remove-runlevel-4-from-init-scripts.patch + 0006-create-pmlogger-and-pmie-logdirs-during-install.patch + to 0004-create-pmlogger-and-pmie-logdirs-during-install.patch + 0008-SUSE-fy-pmsnap-control-path.patch + to 0005-SUSE-fy-pmsnap-control-path.patch + 0009-pmsnap-control-var-www-srv-www.patch + to 0006-pmsnap-control-var-www-srv-www.patch + +- obsolete (upstream) + sysmacros.patch + 0003-pcp-legacy-init-lsb.patch + 0007-Honor-CFLAGS-in-qmake.patch + +- new + 0002-Remove-CPAN-rpaths.patch + 0003-pcp-legacy-init-lsb.patch + 0007-Honor-CFLAGS-in-qmake.patch + +------------------------------------------------------------------- +Mon Aug 6 09:30:46 UTC 2018 - [email protected] + +- sysmacros.patch: Include <sys/sysmacros.h> for major/minor/makedev +- Use %license for COPYING +- Don't exclude post-build-checks + +------------------------------------------------------------------- +Thu Nov 23 13:41:01 UTC 2017 - [email protected] + +- Replace references to /var/adm/fillup-templates with new + %_fillupdir macro (boo#1069468) + +------------------------------------------------------------------- +Wed Aug 30 23:30:36 UTC 2017 - [email protected] + +- Enable QT5 builds for Factory (suse_version > 1320); (bsc#1056477). + +------------------------------------------------------------------- +Wed Aug 30 12:38:58 UTC 2017 - [email protected] + +- Ensure sysconfig files are populated from templates during installation; + (bsc#1056397). + +------------------------------------------------------------------- +Thu Aug 24 15:42:33 UTC 2017 - [email protected] + +- Add weak pcp dependency to pmdas that were split out from the base package + in the 3.10->3.11 update; (bsc#1055503). + +------------------------------------------------------------------- +Mon Jun 19 23:09:32 UTC 2017 - [email protected] + +- Follow the shared library packaging policy and split libpcp_gui.so.2, + libpcp_mmv.so.1, libpcp_trace.so.2, libpcp_import.so.1 and libpcp_web.so.1 + out from libpcp3 into separate packages. +- Drop a number of unneeded explicit library package Requires. +- Fix a number of file manifest conflicts. +- Drop lio pmda on SUSE systems without proper rtslib-fb dependency. + +------------------------------------------------------------------- +Sun Jun 18 19:53:55 UTC 2017 - [email protected] + +- Update to 3.11.9 + See http://git.pcp.io/cgi-bin/gitweb.cgi?p=pcp/pcp.git;a=blob_plain;f=CHANGELOG;hb=3.11.9 + for details. + ++++ 1222 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:Leap:15.1:Update/.pcp.12132.new.3160/pcp.changes New: ---- 0001-Install-libraries-without-exec-permission.patch 0002-Remove-CPAN-rpaths.patch 0003-Remove-runlevel-4-from-init-scripts.patch 0005-SUSE-fy-pmsnap-control-path.patch 0006-pmsnap-control-var-www-srv-www.patch 0007-pmdas-perf-Add-cpunumber-option-for-dynamic-perf-eve.patch 0008-pmdas-perf-Add-support-for-hv_24x7-nest-events-on-mu.patch 0009-qa-perfevent-Test-hv_24x7-events-on-multinode.patch _service build-drop-old-config-file-transition-code-from-rpm-.patch fakefs.tar.gz pcp-4.3.1.tar.bz2 pcp-rpmlintrc pcp.changes pcp.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pcp.spec ++++++ ++++ 3514 lines (skipped) ++++++ 0001-Install-libraries-without-exec-permission.patch ++++++ >From 550357486d093e60ddf8102cf3ff474c7fa1721d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <[email protected]> Date: Fri, 12 Dec 2014 15:43:00 +0100 Subject: [PATCH 1/6] Install libraries without exec permission --- src/genpmda/genpmda | 4 ++-- src/libpcp/src/GNUmakefile | 4 ++-- src/libpcp_fault/src/GNUmakefile | 4 ++-- src/libpcp_gui/src/GNUmakefile | 4 ++-- src/libpcp_import/src/GNUmakefile | 4 ++-- src/libpcp_mmv/src/GNUmakefile | 4 ++-- src/libpcp_pmcd/src/GNUmakefile | 2 +- src/libpcp_pmda/src/GNUmakefile | 4 ++-- src/libpcp_trace/src/GNUmakefile | 4 ++-- src/pmdas/aix/GNUmakefile | 2 +- src/pmdas/darwin/GNUmakefile | 2 +- src/pmdas/freebsd/GNUmakefile | 2 +- src/pmdas/linux/GNUmakefile | 2 +- src/pmdas/linux_proc/GNUmakefile | 2 +- src/pmdas/lustrecomm/GNUmakefile | 2 +- src/pmdas/pmcd/src/GNUmakefile | 2 +- src/pmdas/sendmail/GNUmakefile | 2 +- src/pmdas/solaris/GNUmakefile | 2 +- 18 files changed, 26 insertions(+), 26 deletions(-) Index: pcp/src/genpmda/genpmda =================================================================== --- pcp.orig/src/genpmda/genpmda +++ pcp/src/genpmda/genpmda @@ -899,7 +899,7 @@ install: default \$(INSTALL) -m 755 -d \$(PCP_VAR_DIR)/pmdas \$(INSTALL) -m 755 -d \$(PMDADIR) \$(INSTALL) -m 755 \$(CMDTARGET) \$(PMDADIR)/\$(CMDTARGET) - \$(INSTALL) -m 755 \$(LIBTARGET) \$(PMDADIR)/\$(LIBTARGET) + \$(INSTALL) -m 644 \$(LIBTARGET) \$(PMDADIR)/\$(LIBTARGET) \$(INSTALL) -m 755 $oflag/Install \$(PMDADIR)/Install \$(INSTALL) -m 755 $oflag/Remove \$(PMDADIR)/Remove \$(INSTALL) -m 644 $oflag/Makefile.install \$(PMDADIR)/Makefile @@ -962,7 +962,7 @@ install: default \$(INSTALL) -m 755 -d \$(PCP_VAR_DIR)/pmdas \$(INSTALL) -m 755 -d \$(PMDADIR) \$(INSTALL) -m 755 -f \$(CMDTARGET) \$(PMDADIR)/\$(CMDTARGET) - \$(INSTALL) -m 755 -f \$(LIBTARGET) \$(PMDADIR)/\$(LIBTARGET) + \$(INSTALL) -m 644 -f \$(LIBTARGET) \$(PMDADIR)/\$(LIBTARGET) \$(INSTALL) -m 755 -f $oflag/Install \$(PMDADIR)/Install \$(INSTALL) -m 755 -f $oflag/Remove \$(PMDADIR)/Remove \$(INSTALL) -m 644 -f $oflag/Makefile.install \$(PMDADIR)/Makefile Index: pcp/src/libpcp/src/GNUmakefile =================================================================== --- pcp.orig/src/libpcp/src/GNUmakefile +++ pcp/src/libpcp/src/GNUmakefile @@ -124,7 +124,7 @@ endif install : default ifneq ($(LIBTARGET),) - $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) $(INSTALL) -m 644 $(LIBCONFIG) $(PCP_LIB_DIR)/pkgconfig/$(LIBCONFIG) endif ifneq ($(SYMTARGET),) @@ -133,7 +133,7 @@ ifneq ($(SYMTARGET),) done endif ifneq ($(STATICLIBTARGET),) - $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) + $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) endif $(EXT_FILES): Index: pcp/src/libpcp_fault/src/GNUmakefile =================================================================== --- pcp.orig/src/libpcp_fault/src/GNUmakefile +++ pcp/src/libpcp_fault/src/GNUmakefile @@ -145,7 +145,7 @@ endif install : default ifneq ($(LIBTARGET),) - $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) endif ifneq ($(SYMTARGET),) for tt in $(SYMTARGET); do \ @@ -153,7 +153,7 @@ ifneq ($(SYMTARGET),) done endif ifneq ($(STATICLIBTARGET),) - $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) + $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) endif $(INSTALL) -m 644 $(TOPDIR)/src/include/pcp/fault.h $(PCP_INC_DIR)/fault.h Index: pcp/src/libpcp_gui/src/GNUmakefile =================================================================== --- pcp.orig/src/libpcp_gui/src/GNUmakefile +++ pcp/src/libpcp_gui/src/GNUmakefile @@ -54,7 +54,7 @@ include $(BUILDRULES) install: default ifneq ($(LIBTARGET),) - $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) endif ifneq ($(SYMTARGET),) for tt in $(SYMTARGET); do \ @@ -62,7 +62,7 @@ ifneq ($(SYMTARGET),) done endif ifneq ($(STATICLIBTARGET),) - $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) + $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) endif default_pcp: default Index: pcp/src/libpcp_import/src/GNUmakefile =================================================================== --- pcp.orig/src/libpcp_import/src/GNUmakefile +++ pcp/src/libpcp_import/src/GNUmakefile @@ -54,7 +54,7 @@ include $(BUILDRULES) install: default ifneq ($(LIBTARGET),) - $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) $(INSTALL) -m 644 $(LIBCONFIG) $(PCP_LIB_DIR)/pkgconfig/$(LIBCONFIG) endif ifneq ($(SYMTARGET),) @@ -63,7 +63,7 @@ ifneq ($(SYMTARGET),) done endif ifneq ($(STATICLIBTARGET),) - $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) + $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) endif default_pcp: default Index: pcp/src/libpcp_mmv/src/GNUmakefile =================================================================== --- pcp.orig/src/libpcp_mmv/src/GNUmakefile +++ pcp/src/libpcp_mmv/src/GNUmakefile @@ -47,7 +47,7 @@ include $(BUILDRULES) install: default ifneq ($(LIBTARGET),) - $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) endif ifneq ($(SYMTARGET),) for tt in $(SYMTARGET); do \ @@ -55,7 +55,7 @@ ifneq ($(SYMTARGET),) done endif ifneq ($(STATICLIBTARGET),) - $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) + $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) endif default_pcp: default Index: pcp/src/libpcp_pmcd/src/GNUmakefile =================================================================== --- pcp.orig/src/libpcp_pmcd/src/GNUmakefile +++ pcp/src/libpcp_pmcd/src/GNUmakefile @@ -73,7 +73,7 @@ include $(BUILDRULES) install : default ifeq "$(TARGET_OS)" "mingw" - $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) endif ifeq "$(ENABLE_PROBES)" "true" Index: pcp/src/libpcp_pmda/src/GNUmakefile =================================================================== --- pcp.orig/src/libpcp_pmda/src/GNUmakefile +++ pcp/src/libpcp_pmda/src/GNUmakefile @@ -64,7 +64,7 @@ include $(BUILDRULES) install: default ifneq ($(LIBTARGET),) - $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) $(INSTALL) -m 644 $(LIBCONFIG) $(PCP_LIB_DIR)/pkgconfig/$(LIBCONFIG) endif ifneq ($(SYMTARGET),) @@ -73,7 +73,7 @@ ifneq ($(SYMTARGET),) done endif ifneq ($(STATICLIBTARGET),) - $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) + $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) endif $(XFILES): Index: pcp/src/libpcp_trace/src/GNUmakefile =================================================================== --- pcp.orig/src/libpcp_trace/src/GNUmakefile +++ pcp/src/libpcp_trace/src/GNUmakefile @@ -56,13 +56,13 @@ include $(BUILDRULES) install : default ifneq ($(LIBTARGET),) - $(INSTALL) -m 755 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PCP_LIB_DIR)/$(LIBTARGET) endif ifneq ($(SYMTARGET),) $(INSTALL) -S $(LIBTARGET) $(PCP_LIB_DIR)/$(SYMTARGET) endif ifneq ($(STATICLIBTARGET),) - $(INSTALL) -m 755 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) + $(INSTALL) -m 644 $(STATICLIBTARGET) $(PCP_LIB_DIR)/$(STATICLIBTARGET) endif default_pcp : default Index: pcp/src/pmdas/aix/GNUmakefile =================================================================== --- pcp.orig/src/pmdas/aix/GNUmakefile +++ pcp/src/pmdas/aix/GNUmakefile @@ -44,7 +44,8 @@ build-me: common.h root_aix $(CMDTARGET) install: build-me $(INSTALL) -m 755 -d $(PMDADIR) $(INSTALL) -m 644 domain.h help.dir help.pag $(PMDADIR) - $(INSTALL) -m 755 $(LIBTARGET) $(CMDTARGET) $(PMDADIR) + $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) $(INSTALL) -m 644 root_aix $(PCP_VAR_DIR)/pmns/root_aix else build-me: Index: pcp/src/pmdas/darwin/GNUmakefile =================================================================== --- pcp.orig/src/pmdas/darwin/GNUmakefile +++ pcp/src/pmdas/darwin/GNUmakefile @@ -48,7 +48,8 @@ build-me: root_darwin $(LIBTARGET) $(CMD install: build-me $(INSTALL) -m 755 -d $(PMDADIR) $(INSTALL) -m 644 domain.h help.dir help.pag $(PMDADIR) - $(INSTALL) -m 755 $(LIBTARGET) $(CMDTARGET) $(PMDADIR) + $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) $(INSTALL) -m 644 root_darwin $(PCP_VAR_DIR)/pmns/root_darwin else build-me: Index: pcp/src/pmdas/freebsd/GNUmakefile =================================================================== --- pcp.orig/src/pmdas/freebsd/GNUmakefile +++ pcp/src/pmdas/freebsd/GNUmakefile @@ -49,7 +49,8 @@ build-me: $(LIBTARGET) $(CMDTARGET) help install: default $(INSTALL) -m 755 -d $(PMDADIR) $(INSTALL) -m 644 domain.h help help.dir help.pag $(PMDADIR) - $(INSTALL) -m 755 $(LIBTARGET) $(CMDTARGET) $(PMDADIR) + $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) $(INSTALL) -m 644 root_freebsd $(PCP_VAR_DIR)/pmns/root_freebsd $(INSTALL) -m 644 freebsd_disk_units.conf $(LOGREWRITEDIR)/freebsd_disk_units.conf $(INSTALL) -m 644 freebsd_misc.conf $(LOGREWRITEDIR)/freebsd_misc.conf Index: pcp/src/pmdas/linux/GNUmakefile =================================================================== --- pcp.orig/src/pmdas/linux/GNUmakefile +++ pcp/src/pmdas/linux/GNUmakefile @@ -88,7 +88,8 @@ install: default $(INSTALL) -m 755 -d $(PMDADIR) $(INSTALL) -m 644 domain.h help $(HELPTARGETS) $(PMDADIR) $(INSTALL) -m 644 bandwidth.conf $(PMDADIR)/samplebandwidth.conf - $(INSTALL) -m 755 $(LIBTARGET) $(CMDTARGET) $(PMDADIR) + $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) $(INSTALL) -m 644 root_linux $(PCP_VAR_DIR)/pmns/root_linux $(INSTALL) -m 644 proc_fs_nfsd_fixups.conf $(LOGREWRITEDIR)/linux_proc_fs_nfsd_fixups.conf $(INSTALL) -m 644 proc_net_snmp_migrate.conf $(LOGREWRITEDIR)/linux_proc_net_snmp_migrate.conf Index: pcp/src/pmdas/linux_proc/GNUmakefile =================================================================== --- pcp.orig/src/pmdas/linux_proc/GNUmakefile +++ pcp/src/pmdas/linux_proc/GNUmakefile @@ -69,7 +69,8 @@ build-me: root_proc $(LIBTARGET) $(CMDTA install: default $(INSTALL) -m 755 -d $(PMDADIR) $(INSTALL) -m 644 domain.h help help.dir help.pag root root_proc samplehotproc.conf $(PMDADIR) - $(INSTALL) -m 755 $(LIBTARGET) $(CMDTARGET) $(SCRIPTS) $(PMDADIR) + $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(SCRIPTS) $(PMDADIR) $(INSTALL) -m 644 root_proc $(PCP_VAR_DIR)/pmns/root_proc $(INSTALL) -m 644 $(LOGREWRITERS) $(PCP_VAR_DIR)/config/pmlogrewrite @$(INSTALL_MAN) Index: pcp/src/pmdas/lustrecomm/GNUmakefile =================================================================== --- pcp.orig/src/pmdas/lustrecomm/GNUmakefile +++ pcp/src/pmdas/lustrecomm/GNUmakefile @@ -51,7 +51,7 @@ build-me: $(TARGETS) install: default $(INSTALL) -m 755 -d $(PMDADIR) $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) - #$(INSTALL) -m 755 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) + #$(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) $(INSTALL) -m 755 Install Remove $(PMDADIR) $(INSTALL) -m 644 $(DFILES) root pmns domain.h help $(PMDADIR) @$(INSTALL_MAN) Index: pcp/src/pmdas/pmcd/src/GNUmakefile =================================================================== --- pcp.orig/src/pmdas/pmcd/src/GNUmakefile +++ pcp/src/pmdas/pmcd/src/GNUmakefile @@ -55,7 +55,7 @@ default: $(LIBTARGET) install: default $(INSTALL) -m 755 -d $(PCP_PMDAS_DIR)/pmcd - $(INSTALL) -m 755 $(LIBTARGET) $(PCP_PMDAS_DIR)/pmcd/$(LIBTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PCP_PMDAS_DIR)/pmcd/$(LIBTARGET) include $(BUILDRULES) Index: pcp/src/pmdas/sendmail/GNUmakefile =================================================================== --- pcp.orig/src/pmdas/sendmail/GNUmakefile +++ pcp/src/pmdas/sendmail/GNUmakefile @@ -40,7 +40,7 @@ include $(BUILDRULES) install install_pcp: default $(INSTALL) -m 755 -d $(PMDADIR) - $(INSTALL) -m 755 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/pmda$(IAM)$(EXECSUFFIX) $(INSTALL) -m 755 $(SCRIPTS) $(PMDADIR) $(INSTALL) -m 644 $(DFILES) pmns help root domain.h $(PMDADIR) Index: pcp/src/pmdas/solaris/GNUmakefile =================================================================== --- pcp.orig/src/pmdas/solaris/GNUmakefile +++ pcp/src/pmdas/solaris/GNUmakefile @@ -53,7 +53,8 @@ build-me: root_solaris $(LIBTARGET) $(CM install: build-me $(INSTALL) -m 755 -d $(PMDADIR) $(INSTALL) -m 644 domain.h $(HELPTARGETS) $(PMDADIR) - $(INSTALL) -m 755 $(LIBTARGET) $(CMDTARGET) $(PMDADIR) + $(INSTALL) -m 755 $(CMDTARGET) $(PMDADIR)/$(CMDTARGET) + $(INSTALL) -m 644 $(LIBTARGET) $(PMDADIR)/$(LIBTARGET) $(INSTALL) -m 644 root_solaris $(PCP_VAR_DIR)/pmns/root_solaris else build-me: ++++++ 0002-Remove-CPAN-rpaths.patch ++++++ >From 952ce8410406537e388a41e873941bbc427fd4d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <[email protected]> Date: Fri, 12 Dec 2014 15:45:33 +0100 Subject: [PATCH 2/6] Remove CPAN rpaths --- src/perl/LogImport/Makefile.PL | 2 +- src/perl/MMV/Makefile.PL | 2 +- src/perl/PMDA/Makefile.PL | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/perl/LogImport/Makefile.PL b/src/perl/LogImport/Makefile.PL index a254f5ad501f..2ec42f51a4eb 100644 --- a/src/perl/LogImport/Makefile.PL +++ b/src/perl/LogImport/Makefile.PL @@ -15,7 +15,7 @@ if ($ENV{TARGET_OS} eq "mingw") { else { $ldfrom = "LogImport.o", $inc = "-I$ENV{PCP_TOPDIR}/src/include/pcp -I/usr/include/pcp"; - $libs = ["-L$ENV{PCP_TOPDIR}/src/libpcp/src -L$ENV{PCP_TOPDIR}/src/libpcp_import/src -lpcp_import -lpcp"]; + $libs = ["-lpcp_import -lpcp"]; } if ($ENV{TARGET_OS} eq "darwin") { # standard ones, minus -arch ppc diff --git a/src/perl/MMV/Makefile.PL b/src/perl/MMV/Makefile.PL index 7a6787deda4a..1e4cea0317d4 100644 --- a/src/perl/MMV/Makefile.PL +++ b/src/perl/MMV/Makefile.PL @@ -15,7 +15,7 @@ if ($ENV{TARGET_OS} eq "mingw") { else { $ldfrom = "MMV.o"; $inc = "-I$ENV{PCP_TOPDIR}/src/include/pcp -I/usr/include/pcp"; - $libs = ["-L$ENV{PCP_TOPDIR}/src/libpcp_mmv/src -L$ENV{PCP_TOPDIR}/src/libpcp/src -lpcp_mmv -lpcp"]; + $libs = ["-lpcp_mmv -lpcp"]; } if ($ENV{TARGET_OS} eq "darwin") { # standard ones, minus -arch ppc diff --git a/src/perl/PMDA/Makefile.PL b/src/perl/PMDA/Makefile.PL index d5c44615a651..e2260c4b5397 100644 --- a/src/perl/PMDA/Makefile.PL +++ b/src/perl/PMDA/Makefile.PL @@ -15,7 +15,7 @@ if ($ENV{TARGET_OS} eq "mingw") { else { $ldfrom = "local.o PMDA.o"; $inc = "-I$ENV{PCP_TOPDIR}/src/include/pcp -I/usr/include/pcp"; - $libs = ["-L$ENV{PCP_TOPDIR}/src/libpcp_pmda/src -L$ENV{PCP_TOPDIR}/src/libpcp/src -lpcp_pmda -lpcp"]; + $libs = ["-lpcp_pmda -lpcp"]; } if ($ENV{TARGET_OS} eq "darwin") { # standard ones, minus -arch ppc -- 2.18.0 ++++++ 0003-Remove-runlevel-4-from-init-scripts.patch ++++++ >From 582c2e703b48f2c8aa6a7e574997a4650b8a67a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <[email protected]> Date: Fri, 12 Dec 2014 15:46:15 +0100 Subject: [PATCH 3/6] Remove runlevel 4 from init scripts --- src/pmcd/rc_pcp | 12 ++++++------ src/pmcd/rc_pmcd | 2 +- src/pmie/rc_pmie | 2 +- src/pmlogger/rc_pmlogger | 2 +- src/pmproxy/rc_pmproxy | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/pmcd/rc_pcp b/src/pmcd/rc_pcp index fc58627acc4b..9acf3c6f7cca 100644 --- a/src/pmcd/rc_pcp +++ b/src/pmcd/rc_pcp @@ -31,12 +31,12 @@ # e.g. SuSE, where chkconfig is a perl script. ### BEGIN INIT INFO # Provides: pcp -# Required-Start: -# Should-Start: -# Required-Stop: -# Should-Stop: -# Default-Start: -# Default-Stop: +# Required-Start: $local_fs +# Should-Start: $network $remote_fs $syslog $time +# Required-Stop: $local_fs +# Should-Stop: $network $remote_fs $syslog +# Default-Start: 2 3 5 +# Default-Stop: 0 1 6 # Short-Description: Legacy control for PCP daemons # Description: Legacy init script wrapper for the Performance Co-Pilot (PCP) daemons ### END INIT INFO diff --git a/src/pmcd/rc_pmcd b/src/pmcd/rc_pmcd index f42e435bdf3f..164526fac01a 100644 --- a/src/pmcd/rc_pmcd +++ b/src/pmcd/rc_pmcd @@ -27,7 +27,7 @@ # Should-Start: $network $remote_fs $syslog $time # Required-Stop: $local_fs # Should-Stop: $network $remote_fs $syslog -# Default-Start: 2 3 4 5 +# Default-Start: 2 3 5 # Default-Stop: 0 1 6 # Short-Description: Control pmcd (the collection daemon for PCP) # Description: Configure and control pmcd (the collection daemon for the Performance Co-Pilot) diff --git a/src/pmie/rc_pmie b/src/pmie/rc_pmie index 013f2aab3eed..48c07c61081d 100644 --- a/src/pmie/rc_pmie +++ b/src/pmie/rc_pmie @@ -25,7 +25,7 @@ # Should-Start: $local_fs $network $syslog $time $pmcd # Required-Stop: $remote_fs # Should-Stop: $local_fs $network $syslog $pmcd -# Default-Start: 2 3 4 5 +# Default-Start: 2 3 5 # Default-Stop: 0 1 6 # Short-Description: Control pmie (performance inference engine for PCP) # Description: Configure and control pmie (the performance inference engine for the Performance Co-Pilot) diff --git a/src/pmlogger/rc_pmlogger b/src/pmlogger/rc_pmlogger index 390809a27255..b6038840f23e 100644 --- a/src/pmlogger/rc_pmlogger +++ b/src/pmlogger/rc_pmlogger @@ -27,7 +27,7 @@ # Should-Start: $network $remote_fs $syslog $time $pmcd # Required-Stop: $local_fs # Should-Stop: $network $remote_fs $syslog $pmcd -# Default-Start: 2 3 4 5 +# Default-Start: 2 3 5 # Default-Stop: 0 1 6 # Short-Description: Control pmlogger (the performance metrics logger for PCP) # Description: Configure and control pmlogger (the performance metrics logger for the Performance Co-Pilot) diff --git a/src/pmproxy/rc_pmproxy b/src/pmproxy/rc_pmproxy index 0bb38c005a7b..45ca18b9a5c1 100644 --- a/src/pmproxy/rc_pmproxy +++ b/src/pmproxy/rc_pmproxy @@ -27,7 +27,7 @@ # Should-Start: $local_fs $network $syslog $time $pmcd # Required-Stop: $remote_fs # Should-Stop: $local_fs $network $syslog $pmcd -# Default-Start: 2 3 4 5 +# Default-Start: 2 3 5 # Default-Stop: 0 1 6 # Short-Description: Control pmproxy (the pmcd proxy daemon for PCP) # Description: Configure and control pmproxy (the pmcd proxy daemon for the Performance Co-Pilot) -- 2.18.0 ++++++ 0005-SUSE-fy-pmsnap-control-path.patch ++++++ >From 99d131530bdad67ea92eeeff85181500b5c03768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <[email protected]> Date: Mon, 23 Feb 2015 16:52:38 +0100 Subject: [PATCH 5/6] SUSE-fy pmsnap control path --- src/pmsnap/pmsnap.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pmsnap/pmsnap.sh b/src/pmsnap/pmsnap.sh index 87434a5fbfb9..92be253313ea 100755 --- a/src/pmsnap/pmsnap.sh +++ b/src/pmsnap/pmsnap.sh @@ -26,7 +26,7 @@ prog=`basename $0` LOCALHOST=`pmhostname` CONFIGDIR=$PCP_VAR_DIR/config/pmsnap -CONTROL=$CONFIGDIR/control +CONTROL=/etc/pcp/pmsnap/control [ -z "$PCP_PMSNAPCONTROL_PATH" ] || CONTROL="$PCP_PMSNAPCONTROL_PATH" _usage() @@ -179,7 +179,7 @@ then fi commonargs="$commonargs $@" -CONTROL=$CONFIGDIR/control +CONTROL=/etc/pcp/pmsnap/control if [ ! -f "$CONTROL" ] then echo "$prog: Error: cannot find control file \"$CONTROL\"" -- 2.18.0 ++++++ 0006-pmsnap-control-var-www-srv-www.patch ++++++ >From ee16369892091cbd2eb68402209220591899ba3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <[email protected]> Date: Mon, 23 Feb 2015 16:54:20 +0100 Subject: [PATCH 6/6] pmsnap/control: /var/www -> /srv/www --- src/pmsnap/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pmsnap/control b/src/pmsnap/control index 54440b51bb1c..6cb13206fb1f 100644 --- a/src/pmsnap/control +++ b/src/pmsnap/control @@ -67,5 +67,5 @@ $commonargs='' # === pmsnap Control Specifications === # # Name (Output Image) Folio|Archive Config Arguments -/var/www/pcp/LOCALHOSTNAME.1hour.summary LOCALHOSTNAME/Latest Snap -O-0 -A 10min -t 2min -v 30 -/var/www/pcp/LOCALHOSTNAME.12hour.summary LOCALHOSTNAME/Latest Snap -O-0 -A 1hour -t 30min -v 30 +/srv/www/pcp/LOCALHOSTNAME.1hour.summary LOCALHOSTNAME/Latest Snap -O-0 -A 10min -t 2min -v 30 +/srv/www/pcp/LOCALHOSTNAME.12hour.summary LOCALHOSTNAME/Latest Snap -O-0 -A 1hour -t 30min -v 30 -- 2.18.0 ++++++ 0007-pmdas-perf-Add-cpunumber-option-for-dynamic-perf-eve.patch ++++++ >From 7392ce0cd29e3364989cde2a2342973c7540b72d Mon Sep 17 00:00:00 2001 From: Anju T Sudhakar <[email protected]> Date: Tue, 15 Oct 2019 15:39:11 +0530 Subject: [PATCH] pmdas/perf: Add cpunumber option for dynamic perf events Patch-mainline: 5.0.1 Git-commit: 7392ce0cd29e3364989cde2a2342973c7540b72d For perf events defined under [dynamic] section, perf_event_open() is invoked for the cpumask specified in /sysfs for that event. If no cpumask is defined, then by default perf_event_open() is called for all cpus in the system. For dynamic events like, hv_24x7 nest events, we need perf-event_open() to be invoked on a single cpu on each node to get the counter data. Add support to have the cpu number in the perfevent.conf file for dynamic events, and to use this as the cpumask for perf_event_open() call. Eg: ---> perfevent.conf [dynamic] cpu.branch-misses 3 cpu.cache-references software.page-faults software.context-switches hv_24x7.PM_PB_CYC 13 chip:1 # pmval perfevent.hwcounters.cpu.branch_misses.value metric: perfevent.hwcounters.cpu.branch_misses.value host: #### semantics: cumulative counter (converting to rate) units: count (converting to count / sec) samples: all cpu3 0.0 0.0 Signed-off-by: Anju T Sudhakar <[email protected]> --- src/pmdas/perfevent/configparser.l | 19 +++++++++++++-- src/pmdas/perfevent/perfevent.conf | 11 +++++++++ src/pmdas/perfevent/perfinterface.c | 38 ++++++++++++++++++++--------- 3 files changed, 55 insertions(+), 13 deletions(-) diff --git a/src/pmdas/perfevent/configparser.l b/src/pmdas/perfevent/configparser.l index 29a322480eb1..83ff8c520786 100644 --- a/src/pmdas/perfevent/configparser.l +++ b/src/pmdas/perfevent/configparser.l @@ -195,7 +195,7 @@ static void add_pmc_setting_name_dynamic(configuration_t *config, char *name) } newpmcdynamicsetting = calloc(1, sizeof *newpmcdynamicsetting); newpmcdynamicsetting->name = strdup(name); - newpmcdynamicsetting->cpuConfig = 0; + newpmcdynamicsetting->cpuConfig = -1; newpmcdynamicsetting->scale = 1.0; newpmcdynamicsetting->need_perf_scale = 0; newpmcdynamicsetting->chip = -1; @@ -315,7 +315,7 @@ static void set_pmcsetting_derived_scale(configuration_t *config, double scale, static void set_pmcsetting_cpuconfig(configuration_t *config, int cpuconfig) { - pmcsetting_t *pmcsetting; + pmcsetting_t *pmcsetting, *list; pmcSettingLists_t *setting_lists; if( (NULL == config) || (0 == config->nConfigEntries) ) @@ -340,6 +340,21 @@ static void set_pmcsetting_cpuconfig(configuration_t *config, int cpuconfig) pmcsetting = pmcsetting->next; } } + + else if (context_dynamic) + { + list = config->dynamicpmc->dynamicSettingList; + if (NULL == list) + { + return; + } + while (list->next) + { + list = list->next; + } + pmcsetting = list; + } + else { pmcsetting = config->configArr[config->nConfigEntries-1].pmcSettingList; diff --git a/src/pmdas/perfevent/perfevent.conf b/src/pmdas/perfevent/perfevent.conf index 12d876f2b7d0..c8ca683ae380 100644 --- a/src/pmdas/perfevent/perfevent.conf +++ b/src/pmdas/perfevent/perfevent.conf @@ -25,6 +25,17 @@ # If not specified like above, a user will continue to see the event but # will not be able to monitor it. # +# For events, specified under dynamic section, the cpuconfig can also +# be specified along with the event. +# For eg: +# [dynamic] +# foo.bar [CPU NUMBER] +# +# If no cpu number is specified for events under [dynamic], then the cpumask +# specified in /sys/bus/event_source/devices/ for that event is considered. +# Suppose if cpumask is also not mentioned in /sys/ then the event is monitored +# for all cpus in the system. +# # # For derived events : # [event:derived] diff --git a/src/pmdas/perfevent/perfinterface.c b/src/pmdas/perfevent/perfinterface.c index 161e3fa102c8..e8b8fe490c84 100644 --- a/src/pmdas/perfevent/perfinterface.c +++ b/src/pmdas/perfevent/perfinterface.c @@ -699,20 +699,23 @@ static int perf_setup_dynamic_events(perfdata_t *inst, struct pmu_event *event_ptr; char eventname[BUF_SIZE]; pmcsetting_t *ptr; - int disable_event; + int disable_event, cpusetting; for (pmu_ptr = pmu_list; pmu_ptr; pmu_ptr = pmu_ptr->next) { for (event_ptr = pmu_ptr->ev; event_ptr; event_ptr = event_ptr->next) { ncpus = 0; disable_event = 1; + cpusetting = -1; /* Setup the event name */ pmsprintf(eventname, BUF_SIZE, "%s.%s", pmu_ptr->name, event_ptr->name); for (ptr = dynamic_setting; ptr; ptr = ptr->next) { if (!strncmp(eventname, ptr->name, - strlen(eventname))) + strlen(eventname))) { disable_event = 0; + cpusetting = ptr->cpuConfig; + } } /* Increase the size of event array */ @@ -726,15 +729,28 @@ static int perf_setup_dynamic_events(perfdata_t *inst, } events = evp; - setup_cpu_config(pmu_ptr, &ncpus, &cpumask); - - if (ncpus <= 0) { /* Assume default cpu set */ - cpuarr = archinfo->cpus.index; - ncpus = archinfo->cpus.count; - } else { - cpuarr = cpumask; - } - + /* + * If dynamic events have a cpuconfig defined in the + * perfevent.conf, consider that + */ + if(!(cpusetting < 0)) { + if (cpusetting < archinfo->cpus.count) { + cpuarr = &archinfo->cpus.index[cpusetting]; + ncpus = 1; + } + } else { + /* + * If no cpuconfig specified in perfevent.conf + * setup the cpu config for this event + */ + setup_cpu_config(pmu_ptr, &ncpus, &cpumask); + if (ncpus <= 0) { /* Assume default cpu set */ + cpuarr = archinfo->cpus.index; + ncpus = archinfo->cpus.count; + } else { + cpuarr = cpumask; + } + } event_t *curr = events + nevents; curr->name = strdup(eventname); -- 2.23.0 ++++++ 0008-pmdas-perf-Add-support-for-hv_24x7-nest-events-on-mu.patch ++++++ >From 2251fbdda3b270fa1b1c5f59c83d1e156ff8ea36 Mon Sep 17 00:00:00 2001 From: Madhavan Srinivasan <[email protected]> Date: Wed, 16 Oct 2019 16:09:04 +0530 Subject: [PATCH] pmdas/perf: Add support for hv_24x7 nest events on mutlinode system Patch-mainline: 5.0.1 Git-commit: 2251fbdda3b270fa1b1c5f59c83d1e156ff8ea36 For dynamic perf events like hv_24x7 nest event, `chip_id` is also an event parameter. So for multinode systems, same event can be defined for different nodes(/chips) in the system. Add support for hv_24x7 nest events in mutinode systems. Eg: ---> perfevent.conf [dynamic] hv_24x7.PM_PB_CYC 4 chip:0 hv_24x7.PM_PB_CYC 13 chip:1 hv_24x7.PM_MBA0_CLK_CYC 4 chip:0 hv_24x7.PM_MBA0_CLK_CYC 14 chip:1 # pminfo | grep PM_PB_CYC perfevent.hwcounters.hv_24x7.PM_PB_CYC_chip_1.dutycycle perfevent.hwcounters.hv_24x7.PM_PB_CYC_chip_1.value perfevent.hwcounters.hv_24x7.PM_PB_CYC_chip_0.dutycycle perfevent.hwcounters.hv_24x7.PM_PB_CYC_chip_0.value # pmval perfevent.hwcounters.hv_24x7.PM_PB_CYC_chip_0.value metric: perfevent.hwcounters.hv_24x7.PM_PB_CYC_chip_0.value host: #### semantics: cumulative counter (converting to rate) units: count (converting to count / sec) samples: all cpu4 7.805E+06 # pmval perfevent.hwcounters.hv_24x7.PM_PB_CYC_chip_1.value metric: perfevent.hwcounters.hv_24x7.PM_PB_CYC_chip_1.value host: #### semantics: cumulative counter (converting to rate) units: count (converting to count / sec) samples: all cpu13 7.805E+06 7.805E+06 Signed-off-by: Madhavan Srinivasan <[email protected]> Signed-off-by: Anju T Sudhakar <[email protected]> --- src/pmdas/perfevent/parse_events.c | 221 ++++++++++++++++++----------- 1 file changed, 138 insertions(+), 83 deletions(-) diff --git a/src/pmdas/perfevent/parse_events.c b/src/pmdas/perfevent/parse_events.c index 1632f09b1f32..27fb37df3fb7 100644 --- a/src/pmdas/perfevent/parse_events.c +++ b/src/pmdas/perfevent/parse_events.c @@ -412,89 +412,138 @@ static void cleanup_property_info(struct property_info *pi) */ static int parse_event_string(char *buf, struct pmu_event *event, struct pmu *pmu, struct pmcsetting *dynamicpmc, - char *pmu_name) + char *pmu_name, int *new_events) { struct property_info *pi, *head = NULL, *tmp; - char *start, *ptr, *nptr, **endptr, *str, eventname[BUF_SIZE]; + char *start, *ptr, *nptr, **endptr, *str, eventname[BUF_SIZE], ev_str[BUF_SIZE], pmc_str[BUF_SIZE], *tmp_buf_str; struct pmcsetting *pmctmp; + int i, ret, sub_ev_cnt = 0; + struct pmu_event *sub_event = NULL, *ev_tmp= NULL, *ev_head = NULL; + + pmsprintf(ev_str, sizeof(ev_str), "%s.%s", pmu_name, event->name); + for (pmctmp = dynamicpmc; pmctmp; pmctmp = pmctmp->next) + if (!strncmp(ev_str, pmctmp->name, strlen(ev_str))) + sub_ev_cnt++; + + if (sub_ev_cnt > 1) + *new_events = sub_ev_cnt; + + for (i = 0; i < (sub_ev_cnt - 1); i++) { + ev_tmp = calloc(1, sizeof(*ev_tmp)); + if (!ev_tmp) { + sub_ev_cnt = 0; + break; + } + + if (!sub_event) { + sub_event = ev_tmp; + ev_head = sub_event; + event->next = ev_head; + sub_event->name = strdup(event->name); + } else { + sub_event->next = ev_tmp; + sub_event = sub_event->next; + sub_event->name = strdup(event->name); + } + } - start = buf; - - while (1) { - ptr = strchr(start, '='); - if (!ptr) - break; - - /* Found a property */ - *ptr = '\0'; - ptr++; /* ptr now points to the value */ - pi = calloc(1, sizeof(*pi)); - if (!pi) { - cleanup_property_info(head); - return -E_PERFEVENT_REALLOC; - } - pi->next = NULL; - - pi->name = strdup(start); - if (!pi->name) { - free(pi); - cleanup_property_info(head); - return -E_PERFEVENT_REALLOC; - } - - pmsprintf(eventname, sizeof(eventname), "%s.%s", pmu_name, event->name); - - /* Find next property */ - start = strchr(ptr, ','); - if (!start) { - str = buf + strlen(buf) - 1; - endptr = &str; - nptr = ptr; - if ((!strcmp(nptr, "?")) && (!strcmp(pi->name, "chip"))) { - for (pmctmp = dynamicpmc; pmctmp; pmctmp = pmctmp->next) { - if (!strncmp(eventname, pmctmp->name, strlen(eventname))) + ev_head = event; + + for (i=0; i < sub_ev_cnt; i++) { + head = NULL; + tmp_buf_str = strdup(buf); + start = tmp_buf_str; + + while (1) { + ptr = strchr(start, '='); + if (!ptr) + break; + + /* Found a property */ + *ptr = '\0'; + ptr++; /* ptr now points to the value */ + pi = calloc(1, sizeof(*pi)); + if (!pi) { + cleanup_property_info(head); + return -E_PERFEVENT_REALLOC; + } + + pi->next = NULL; + pi->name = strdup(start); + if (!pi->name) { + free(pi); + cleanup_property_info(head); + return -E_PERFEVENT_REALLOC; + } + + pmsprintf(eventname, sizeof(eventname), "%s.%s", pmu_name, event->name); + + /* Find next property */ + start = strchr(ptr, ','); + if (!start) { + str = buf + strlen(buf) - 1; + endptr = &str; + nptr = ptr; + if ((!strcmp(nptr, "?")) && (!strcmp(pi->name, "chip"))) { + for (pmctmp = dynamicpmc; pmctmp; pmctmp = pmctmp->next) { + if (!strncmp(eventname, pmctmp->name, strlen(pmctmp->name))) { - pi->value = pmctmp->chip; + pmsprintf(ev_str, sizeof(ev_str), "%s_chip_%d", event->name,pmctmp->chip); + event->name = strdup(ev_str); + pmsprintf(pmc_str, sizeof(pmc_str), "%s_chip_%d", pmctmp->name,pmctmp->chip); + pmctmp->name = strdup(pmc_str); + pi->value = pmctmp->chip; + break; } + } + } else + pi->value = strtoull(nptr, endptr, 16); + if (!head) { + head = pi; + pi = pi->next; + } else { + tmp->next = pi; + tmp = tmp->next; } - } else - pi->value = strtoull(nptr, endptr, 16); - if (!head) { - head = pi; - pi = pi->next; - } else { - tmp->next = pi; - tmp = tmp->next; - } - break; - } else { - /* We found the next property */ - *start = '\0'; - str = buf + strlen(buf) - 1; - endptr = &str; - start++; - nptr = ptr; - if ((!strcmp(nptr, "?")) && (!strcmp(pi->name, "chip"))) { - for (pmctmp = dynamicpmc; pmctmp; pmctmp = pmctmp->next) { - if (!strncmp(eventname, pmctmp->name, strlen(eventname))) + break; + } else { + /* We found the next property */ + *start = '\0'; + str = buf + strlen(buf) - 1; + endptr = &str; + start++; + nptr = ptr; + if ((!strcmp(nptr, "?")) && (!strcmp(pi->name, "chip"))) { + for (pmctmp = dynamicpmc; pmctmp; pmctmp = pmctmp->next) { + if (!strncmp(eventname, pmctmp->name, strlen(pmctmp->name))) { - pi->value = pmctmp->chip; + pmsprintf(ev_str, sizeof(ev_str), "%s_chip_%d", event->name,pmctmp->chip); + event->name = strdup(ev_str); + pmsprintf(pmc_str, sizeof(pmc_str), "%s_chip_%d", pmctmp->name,pmctmp->chip); + pmctmp->name = strdup(pmc_str); + pi->value = pmctmp->chip; + break; } - } - } else - pi->value = strtoul(nptr, endptr, 16); - } - - if (!head) { - head = pi; - tmp = head; - } else { - tmp->next = pi; - tmp = tmp->next; - } + } + } else + pi->value = strtoul(nptr, endptr, 16); + } + if (!head) { + head = pi; + tmp = head; + } else { + tmp->next = pi; + tmp = tmp->next; + } + } + ret = fetch_event_config(head, event, pmu); + if (ret) + return ret; + + event->pmu = pmu; + event = event->next; } - - return fetch_event_config(head, event, pmu); + return 0; } /* @@ -509,7 +558,7 @@ static int fetch_events(DIR *events_dir, struct pmu_event **events, struct dirent *dir; struct pmu_event *ev = NULL, *tmp, *head = NULL; char event_path[PATH_MAX], *buf; - int ret = 0; + int ret = 0, sub_events, i; if (!events_dir) return -1; @@ -551,21 +600,27 @@ static int fetch_events(DIR *events_dir, struct pmu_event **events, goto free_buf; } - ret = parse_event_string(buf, tmp, pmu, dynamicpmc, pmu_name); + ret = parse_event_string(buf, tmp, pmu, dynamicpmc, pmu_name, &sub_events); if (ret) { ret = -E_PERFEVENT_RUNTIME; goto free_buf; } - tmp->pmu = pmu; + i = 0; + do { + tmp->pmu = pmu; + if (!ev) { + ev = tmp; + head = ev; + } else { + ev->next = tmp; + ev = ev->next; + } + tmp = tmp->next; + i++; + } while(i < sub_events); - if (!ev) { - ev = tmp; - head = ev; - } else { - ev->next = tmp; - ev = ev->next; - } + sub_events = 0; } *events = head; -- 2.23.0 ++++++ 0009-qa-perfevent-Test-hv_24x7-events-on-multinode.patch ++++++ >From ebe289d9e7a56db41acfb767ebe154c4f885c885 Mon Sep 17 00:00:00 2001 From: Anju T Sudhakar <[email protected]> Date: Fri, 18 Oct 2019 13:15:16 +0530 Subject: [PATCH] qa/perfevent:Test hv_24x7 events on multinode Patch-mainline: 5.0.1 Git-commit: ebe289d9e7a56db41acfb767ebe154c4f885c885 Signed-off-by: Anju T Sudhakar <[email protected]> --- .../config/test_hv_24x7_events_multinode.txt | 9 +++++ qa/perfevent/fakefs.tar.gz | Bin 8136 -> 8921 bytes qa/perfevent/perf_event_test.c | 36 ++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 qa/perfevent/config/test_hv_24x7_events_multinode.txt diff --git a/qa/perfevent/config/test_hv_24x7_events_multinode.txt b/qa/perfevent/config/test_hv_24x7_events_multinode.txt new file mode 100644 index 000000000000..b17ce96eb96e --- /dev/null +++ b/qa/perfevent/config/test_hv_24x7_events_multinode.txt @@ -0,0 +1,9 @@ +[pmuname ] +INSTRUCTIONS_RETIRED cpu +UNHALTED_REFERENCE_CYCLES cpu_rr + +[dynamic] +pmu1.bar chip:0 +pmu1.bar chip:1 +pmu1.foo chip:0 +pmu1.foo chip:1 diff --git a/qa/perfevent/perf_event_test.c b/qa/perfevent/perf_event_test.c index 4b054e0d9fed..90c21547c351 100644 --- a/qa/perfevent/perf_event_test.c +++ b/qa/perfevent/perf_event_test.c @@ -1091,6 +1091,39 @@ void test_parse_raw_events(void) printf("event = %s raw code = 0x%lx\n", pmctmp->name, pmctmp->rawcode); } +/* + * This is the case where there are no PMUs exposed, it should only + * detect the software events. + */ +void test_hv_24x7_events_on_multinode_system(void) +{ + struct pmu *pmu_list = NULL, *tmp; + struct pmu_event *event; + int ev_count = 0; + const char *configfile = "config/test_hv_24x7_events_multinode.txt"; + configuration_t *config; + + config = parse_configfile(configfile); + assert(config != NULL); + + printf( " ===== %s ==== \n", __FUNCTION__) ; + + setenv("SYSFS_PREFIX", "./fakefs/syspmu_multinode", 1); + init_dynamic_events(&pmu_list, config->dynamicpmc->dynamicSettingList); + for (tmp = pmu_list; tmp; tmp = tmp->next) { + printf("PMU name: %s \n", tmp->name); + for (event = tmp->ev; event; event = event->next) { + if (strcmp(tmp->name, "pmu1") == 0) + assert(strstr(event->name, "chip")); + ev_count++; + printf(" event name: %s\n", event->name); + } + } + + printf("%d events found\n", ev_count); + /* software events will be initialized in any case */ + assert(ev_count == (4 + 9)); +} int runtest(int n) { init_mock(); @@ -1200,6 +1233,9 @@ int runtest(int n) case 33: test_parse_raw_events(); break; + case 34: + test_hv_24x7_events_on_multinode_system(); + break; default: ret = -1; } -- 2.23.0 ++++++ _service ++++++ <services> <service name="tar_scm" mode="disabled"> <param name="scm">git</param> <param name="url">https://github.com/performancecopilot/pcp.git</param> <param name="filename">pcp</param> <param name="revision">4.3.1</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">disable</param> </service> <service name="recompress" mode="disabled"> <param name="file">*.tar</param> <param name="compression">bz2</param> </service> <service name="set_version" mode="disabled"> <param name="basename">pcp</param> </service> </services> ++++++ build-drop-old-config-file-transition-code-from-rpm-.patch ++++++ >From 34c83f7ee46224fe410572f33c57a739f7bd044f Mon Sep 17 00:00:00 2001 From: Nathan Scott <[email protected]> Date: Sun, 6 Oct 2019 14:10:40 +1100 Subject: [PATCH] build: drop old config file transition code from rpm specs Its been many years since this transition was done, good time now with pcp-5.0.0 to full this old shell code. Also remove the Fedora crontab transition logic as thats completely moved over to systemd now. --- build/rpm/GNUmakefile | 1 + build/rpm/fedora.spec | 57 +----------------------------------------------- build/rpm/pcp.spec.in | 60 ++------------------------------------------------- 3 files changed, 4 insertions(+), 114 deletions(-) Index: pcp-4.3.1/build/rpm/GNUmakefile =================================================================== --- pcp-4.3.1.orig/build/rpm/GNUmakefile +++ pcp-4.3.1/build/rpm/GNUmakefile @@ -113,6 +113,7 @@ pcp.spec: pcp.spec.in -e's|@pcp_sysconf_dir@|$(PCP_SYSCONF_DIR)|g' \ -e's|@pcp_share_dir@|$(PCP_SHARE_DIR)|g' \ -e's|@pcp_log_dir@|$(PCP_LOG_DIR)|g' \ + -e's|@pcp_sa_dir@|$(PCP_SA_DIR)|g' \ -e's|@pcp_var_dir@|$(PCP_VAR_DIR)|g' \ -e's|@pcp_etc_dir@|$(PCP_ETC_DIR)|g' \ -e's|@pcp_binadm_dir@|$(PCP_BINADM_DIR)|g' \ Index: pcp-4.3.1/build/rpm/fedora.spec =================================================================== --- pcp-4.3.1.orig/build/rpm/fedora.spec +++ pcp-4.3.1/build/rpm/fedora.spec @@ -2466,56 +2466,6 @@ exit 0 getent group pcp >/dev/null || groupadd -r pcp getent passwd pcp >/dev/null || \ useradd -c "Performance Co-Pilot" -g pcp -d %{_localstatedir}/lib/pcp -M -r -s /sbin/nologin pcp -PCP_CONFIG_DIR=%{_localstatedir}/lib/pcp/config -PCP_SYSCONF_DIR=%{_confdir} -PCP_LOG_DIR=%{_logsdir} -PCP_ETC_DIR=%{_sysconfdir} -# rename crontab files to align with current Fedora packaging guidelines -for crontab in pmlogger pmie -do - test -f "$PCP_ETC_DIR/cron.d/$crontab" || continue - mv -f "$PCP_ETC_DIR/cron.d/$crontab" "$PCP_ETC_DIR/cron.d/pcp-$crontab" -done -# produce a script to run post-install to move configs to their new homes -save_configs_script() -{ - _new="$1" - shift - for _dir - do - [ "$_dir" = "$_new" ] && continue - if [ -d "$_dir" ] - then - ( cd "$_dir" ; find . -maxdepth 1 -type f ) | sed -e 's/^\.\///' \ - | while read _file - do - [ "$_file" = "control" ] && continue - _want=true - if [ -f "$_new/$_file" ] - then - # file exists in both directories, pick the more - # recently modified one - _try=`find "$_dir/$_file" -newer "$_new/$_file" -print` - [ -n "$_try" ] || _want=false - fi - $_want && echo cp -p "$_dir/$_file" "$_new/$_file" - done - fi - done -} -# migrate and clean configs if we have had a previous in-use installation -[ -d "$PCP_LOG_DIR" ] || exit 0 # no configuration file upgrades required -rm -f "$PCP_LOG_DIR/configs.sh" -for daemon in pmie pmlogger -do - save_configs_script >> "$PCP_LOG_DIR/configs.sh" "$PCP_CONFIG_DIR/$daemon" \ - "$PCP_SYSCONF_DIR/$daemon" -done -for daemon in pmcd pmproxy -do - save_configs_script >> "$PCP_LOG_DIR/configs.sh" "$PCP_SYSCONF_DIR/$daemon"\ - "$PCP_CONFIG_DIR/$daemon" /etc/$daemon -done exit 0 %if !%{disable_microhttpd} @@ -2867,12 +2817,7 @@ pmieconf -c enable dmthin %endif %post -PCP_LOG_DIR=%{_logsdir} PCP_PMNS_DIR=%{_pmnsdir} -# restore saved configs, if any -test -s "$PCP_LOG_DIR/configs.sh" && source "$PCP_LOG_DIR/configs.sh" -rm -f $PCP_LOG_DIR/configs.sh - chown -R pcp:pcp %{_logsdir}/pmcd 2>/dev/null chown -R pcp:pcp %{_logsdir}/pmlogger 2>/dev/null chown -R pcp:pcp %{_logsdir}/sa 2>/dev/null @@ -2899,7 +2844,7 @@ chmod 644 "$PCP_PMNS_DIR/.NeedRebuild" /sbin/service pmproxy condrestart %endif -cd $PCP_PMNS_DIR && ./Rebuild -s && rm -f .NeedRebuild +cd "$PCP_PMNS_DIR" && ./Rebuild -s && rm -f .NeedRebuild cd %post libs -p /sbin/ldconfig Index: pcp-4.3.1/build/rpm/pcp.spec.in =================================================================== --- pcp-4.3.1.orig/build/rpm/pcp.spec.in +++ pcp-4.3.1/build/rpm/pcp.spec.in @@ -2787,58 +2787,6 @@ chown -R pcpqa:pcpqa @pcp_var_dir@/tests getent group pcp >/dev/null || groupadd -r pcp getent passwd pcp >/dev/null || \ useradd -c "Performance Co-Pilot" -g pcp -d @pcp_var_dir@ -M -r -s /sbin/nologin pcp -# new directories; they should match /etc/pcp.conf settings after install -PCP_CONFIG_DIR=@pcp_var_dir@/config -PCP_SYSCONF_DIR=@pcp_sysconf_dir@ -PCP_LOG_DIR=@pcp_log_dir@ -PCP_ETC_DIR=@pcp_etc_dir@ - -# rename crontab files to align with current Fedora packaging guidelines -for crontab in pmlogger pmie -do - test -f "$PCP_ETC_DIR/cron.d/$crontab" || continue - mv -f "$PCP_ETC_DIR/cron.d/$crontab" "$PCP_ETC_DIR/cron.d/pcp-$crontab" -done -# produce a script to run post-install to move configs to their new homes -save_configs_script() -{ - _new="$1" - shift - for _dir - do - [ "$_dir" = "$_new" ] && continue - if [ -d "$_dir" ] - then - ( cd "$_dir" ; find . -maxdepth 1 -type f ) | sed -e 's/^\.\///' \ - | while read _file - do - [ "$_file" = "control" ] && continue - _want=true - if [ -f "$_new/$_file" ] - then - # file exists in both directories, pick the more - # recently modified one - _try=`find "$_dir/$_file" -newer "$_new/$_file" -print` - [ -n "$_try" ] || _want=false - fi - $_want && echo cp -p "$_dir/$_file" "$_new/$_file" - done - fi - done -} -# migrate and clean configs if we have had a previous in-use installation -[ -d "$PCP_LOG_DIR" ] || exit 0 # no configuration file upgrades required -rm -f "$PCP_LOG_DIR/configs.sh" -for daemon in pmie pmlogger -do - save_configs_script >> "$PCP_LOG_DIR/configs.sh" "$PCP_CONFIG_DIR/$daemon" \ - "$PCP_SYSCONF_DIR/$daemon" -done -for daemon in pmcd pmproxy -do - save_configs_script >> "$PCP_LOG_DIR/configs.sh" "$PCP_SYSCONF_DIR/$daemon"\ - "$PCP_CONFIG_DIR/$daemon" /etc/$daemon -done exit 0 %if "@enable_webapi@" == "true" @@ -3213,11 +3161,7 @@ fi %post PCP_PMNS_DIR=@pcp_var_dir@/pmns PCP_LOG_DIR=@pcp_log_dir@ -PCP_SYSCONFIG_DIR=@pcp_sysconfig_dir@ - -# restore saved configs, if any -test -s "$PCP_LOG_DIR/configs.sh" && source "$PCP_LOG_DIR/configs.sh" -rm -f $PCP_LOG_DIR/configs.sh +PCP_SA_DIR=@pcp_sa_dir@ chown -R pcp:pcp "$PCP_LOG_DIR/pmcd" 2>/dev/null chown -R pcp:pcp "$PCP_LOG_DIR/pmlogger" 2>/dev/null @@ -3246,7 +3190,7 @@ chmod 644 "$PCP_PMNS_DIR/.NeedRebuild" /sbin/service pmproxy condrestart %endif -cd $PCP_PMNS_DIR && ./Rebuild -s && rm -f .NeedRebuild +cd "$PCP_PMNS_DIR" && ./Rebuild -s && rm -f .NeedRebuild cd %post libs -p /sbin/ldconfig ++++++ pcp-rpmlintrc ++++++ # Note: there are some headers (e.g. domain.h) and in a few cases some # C source files that rpmlint complains about. These are not devel files, # but rather they are (slightly obscure) PMDA config files. # addFilter('E: devel-file-in-non-devel-package') # A /var/lib/pcp/tmp directory is created for the safe creation of shared # tmp files. it must be world writeable for PMDAs and client tools, which # may be run as anyone. #addFilter('E: permissions-world-writable')
