diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 87ab9aa5..537b27ae 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -168,12 +168,14 @@ if(UNIX) # APPLE, LINUX, FREE_BSD # Daemon & client file(GLOB DAEMON_SOURCES "daemon/*.cpp") add_executable(daemon ${DAEMON_SOURCES}) + target_include_directories(daemon PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(daemon PRIVATE PCM_STATIC Threads::Threads) set_target_properties(daemon PROPERTIES OUTPUT_NAME "pcm-daemon") install(TARGETS daemon DESTINATION ${CMAKE_INSTALL_SBINDIR}) file(GLOB CLIENT_SOURCES "client/*.cpp") add_executable(client ${CLIENT_SOURCES}) + target_include_directories(client PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(client PRIVATE Threads::Threads) set_target_properties(client PROPERTIES OUTPUT_NAME "pcm-client") install(TARGETS client DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/src/bw.cpp b/src/bw.cpp index 09779df1..9b36a608 100644 --- a/src/bw.cpp +++ b/src/bw.cpp @@ -4,8 +4,11 @@ // Patrick Konsor // +#include #include + #include "bw.h" +#include "mmio.h" #include "pci.h" #include "utils.h" @@ -179,4 +182,4 @@ uint64 ServerBW::getPMMWrites() return result; } -} // namespace pcm \ No newline at end of file +} // namespace pcm diff --git a/src/bw.h b/src/bw.h index 79dfaad6..a6bb9f47 100644 --- a/src/bw.h +++ b/src/bw.h @@ -10,10 +10,16 @@ */ +#include #include +#include #include -#include -#include "mmio.h" + +#include "types.h" + +namespace pcm { + class MMIORange; +} namespace pcm { @@ -70,4 +76,4 @@ class ServerBW uint64 getPMMWrites(); }; -} // namespace pcm \ No newline at end of file +} // namespace pcm diff --git a/src/client/client.cpp b/src/client/client.cpp index cff9ac67..63e1c35d 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -2,19 +2,15 @@ // Copyright (c) 2009-2017, Intel Corporation // written by Steven Briscoe -#include -#include -#include -#include -#include -#include #include +#include #include -#include #include -#include #include #include +#include +#include +#include #include "../daemon/common.h" #include "client.h" diff --git a/src/client/client.h b/src/client/client.h index 89b7220d..3bbf0d11 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -2,16 +2,13 @@ // Copyright (c) 2009-2017, Intel Corporation // written by Steven Briscoe -#include #include -#include +#include "../daemon/common.h" #ifndef CLIENT_H_ #define CLIENT_H_ -#include "../daemon/common.h" - namespace PCMDaemon { class Client { diff --git a/src/client/main.cpp b/src/client/main.cpp index 01e49b73..72f93510 100644 --- a/src/client/main.cpp +++ b/src/client/main.cpp @@ -4,10 +4,12 @@ //Test program for PCM Daemon client -#include -#include #include +#include +#include +#include +#include "daemon/common.h" #include "client.h" void printTitle(std::string title) diff --git a/src/cpucounters.cpp b/src/cpucounters.cpp index 806b0116..3c1240cb 100644 --- a/src/cpucounters.cpp +++ b/src/cpucounters.cpp @@ -13,70 +13,99 @@ //#define PCM_TEST_FALLBACK_TO_ATOM -#include -#include #ifdef PCM_EXPORTS -// pcm-lib.h includes cpucounters.h #include "windows\pcm-lib.h" -#else -#include "cpucounters.h" #endif + +#include "bw.h" +#include "cpucounters.h" +#include "exceptions/unsupported_processor_exception.hpp" #include "msr.h" +#include "mutex.h" #include "pci.h" +#include "topology.h" #include "types.h" #include "utils.h" -#include "topology.h" +#include "width_extender.h" -#if defined (__FreeBSD__) || defined(__DragonFly__) -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include -#endif +#include #ifdef _MSC_VER -#include -#include + #include +#include #include -#include "winring0/OlsApiInit.h" +#include #include "windows/windriver.h" +#include "winring0/OlsApiInit.h" + #else + +#include #include -#if defined(__FreeBSD__) || (defined(__DragonFly__) && __DragonFly_version >= 400707) -#include -#include -#include -#endif +#include + #include #include + +#endif + #ifdef __linux__ + #include #include #include -#endif +#include + #endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#ifdef PCM_USE_PERF + +#include +#include + +#endif #ifdef __APPLE__ -#include + +#include #include +#include + +#endif + +#if defined (__FreeBSD__) || defined(__DragonFly__) + +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include + #endif namespace pcm { diff --git a/src/cpucounters.h b/src/cpucounters.h index 25ead6e8..cd665c54 100644 --- a/src/cpucounters.h +++ b/src/cpucounters.h @@ -22,49 +22,48 @@ #undef PCM_DEBUG_TOPOLOGY // debug of topology enumeration routine #undef PCM_UNCORE_PMON_BOX_CHECK_STATUS // debug only -#include "types.h" -#include "topologyentry.h" #include "msr.h" #include "pci.h" -#include "bw.h" -#include "width_extender.h" -#include "exceptions/unsupported_processor_exception.hpp" +#include "types.h" +#include "topologyentry.h" -#include +#include #include -#include -#include -#include +#include +#include +#include #include +#include #include +#include #include -#include +#include +#include +#include -#ifdef PCM_USE_PERF -#include -#include -#define PCM_PERF_COUNT_HW_REF_CPU_CYCLES (9) -#endif +#include "mmio.h" +#include "utils.h" +#include "width_extender.h" -#ifndef _MSC_VER -#define NOMINMAX -#include -#include -#include -#include -#include -#include -#endif +#define PCM_PERF_COUNT_HW_REF_CPU_CYCLES (9) #ifdef _MSC_VER -#if _MSC_VER>= 1600 #include #endif -#endif -#ifdef __linux__ #include "resctrl.h" -#endif + +namespace pcm { + class FreeRunningBWCounters; + class ServerBW; + class SystemCounterState; + class SocketCounterState; + class CoreCounterState; + class ServerUncoreCounterState; + class PCM; + class CoreTaskQueue; + class SystemRoot; +} namespace pcm { @@ -72,14 +71,6 @@ namespace pcm { void PCM_API restrictDriverAccess(LPCTSTR path); #endif -class SystemCounterState; -class SocketCounterState; -class CoreCounterState; -class BasicCounterState; -class ServerUncoreCounterState; -class PCM; -class CoreTaskQueue; -class SystemRoot; /* CPU performance monitoring routines @@ -503,8 +494,6 @@ typedef SimpleCounterState PCIeCounterState; typedef SimpleCounterState IIOCounterState; typedef std::vector eventGroup_t; -class PerfVirtualControlRegister; - /*! \brief CPU Performance Monitor diff --git a/src/daemon/common.h b/src/daemon/common.h index 0255e339..1cd0b720 100644 --- a/src/daemon/common.h +++ b/src/daemon/common.h @@ -5,6 +5,7 @@ #ifndef COMMON_H_ #define COMMON_H_ +#include #include #include diff --git a/src/daemon/daemon.cpp b/src/daemon/daemon.cpp index 4f8395e3..edef6027 100644 --- a/src/daemon/daemon.cpp +++ b/src/daemon/daemon.cpp @@ -2,25 +2,34 @@ // Copyright (c) 2009-2018,2022 Intel Corporation // written by Steven Briscoe +#include "common.h" +#include "daemon.h" +#include "exceptions/unsupported_processor_exception.hpp" +#include "types.h" +#include "utils.h" + +#include +#include +#include #include +#include +#include +#include #include -#include -#include -#include -#include +#include +#include +#include #include #include -#include +#include #include +#include +#include -#ifndef CLOCK_MONOTONIC_RAW -#define CLOCK_MONOTONIC_RAW (4) /* needed for SLES11 */ +#ifdef __linux__ +#include #endif -#include "daemon.h" -#include "common.h" -#include "pcm.h" - namespace PCMDaemon { std::string Daemon::shmIdLocation_; diff --git a/src/daemon/daemon.h b/src/daemon/daemon.h index 3718282b..375a59cb 100644 --- a/src/daemon/daemon.h +++ b/src/daemon/daemon.h @@ -5,13 +5,15 @@ #ifndef DAEMON_H_ #define DAEMON_H_ +#include "common.h" +#include "cpucounters.h" + +#include #include #include -#include -#include +#include -#include "common.h" -#include "pcm.h" +using namespace pcm; namespace PCMDaemon { diff --git a/src/dashboard.cpp b/src/dashboard.cpp index fe4fc5e1..dccb065d 100644 --- a/src/dashboard.cpp +++ b/src/dashboard.cpp @@ -1,12 +1,15 @@ // SPDX-License-Identifier: BSD-3-Clause // Copyright (c) 2020, Intel Corporation -#include -#include -#include #include "cpucounters.h" #include "dashboard.h" +#include +#include +#include +#include +#include + namespace pcm { class Target diff --git a/src/mmio.cpp b/src/mmio.cpp index 6ffd2f36..bdf27c3c 100644 --- a/src/mmio.cpp +++ b/src/mmio.cpp @@ -4,28 +4,22 @@ // Patrick Konsor // +#include +#include #include #include -#ifndef _MSC_VER -#include -#endif -#include -#include -#include "pci.h" -#include "mmio.h" -#ifndef _MSC_VER -#include -#include -#endif +#include "mmio.h" +#include "utils.h" #ifdef _MSC_VER #include -#include "utils.h" +#else +#include +#include +#include #endif -#include - namespace pcm { #ifdef _MSC_VER diff --git a/src/mmio.h b/src/mmio.h index a71e028c..5bb10164 100644 --- a/src/mmio.h +++ b/src/mmio.h @@ -14,16 +14,12 @@ #include "types.h" #ifdef _MSC_VER +#include "mutex.h" #include "windows.h" +#include "winmsrdriver\msrstruct.h" #include "winpmem\winpmem.h" -#include "Winmsrdriver\msrstruct.h" -#else -#include #endif -#include "mutex.h" -#include - namespace pcm { #ifdef _MSC_VER @@ -152,4 +148,4 @@ class MMIORange }; #endif -} // namespace pcm \ No newline at end of file +} // namespace pcm diff --git a/src/msr.cpp b/src/msr.cpp index 218863a8..2bee2e38 100644 --- a/src/msr.cpp +++ b/src/msr.cpp @@ -4,33 +4,33 @@ // Austen Ott // Jim Harris (FreeBSD) -#include -#include -#include -#include -#ifndef _MSC_VER -#include -#endif -#include "types.h" #include "msr.h" +#include "types.h" #include "utils.h" -#include -#ifdef _MSC_VER +#include +#include +#include +#include +#include +#include +#include -#include +#ifdef _MSC_VER #include "utils.h" #include "Winmsrdriver\msrstruct.h" #include "winring0/OlsApiInitExt.h" - +#include +#else +#include #endif #if defined(__FreeBSD__) || defined(__DragonFly__) -#include + #include -#endif +#include -#include +#endif namespace pcm { diff --git a/src/msr.h b/src/msr.h index d938d20c..933e1285 100644 --- a/src/msr.h +++ b/src/msr.h @@ -12,16 +12,19 @@ Implemented and tested for Linux and 64-bit Windows 7 */ +#include "mutex.h" #include "types.h" +#include +#include + #ifdef _MSC_VER -#include "windows.h" -#elif __APPLE__ -#include +#include #endif -#include "mutex.h" -#include +#ifdef __APPLE__ +#include +#endif namespace pcm { diff --git a/src/mutex.h b/src/mutex.h index af8426c3..58a5b020 100644 --- a/src/mutex.h +++ b/src/mutex.h @@ -8,6 +8,7 @@ #endif #include +#include namespace pcm { diff --git a/src/pci.cpp b/src/pci.cpp index d8977c3f..27da4c08 100644 --- a/src/pci.cpp +++ b/src/pci.cpp @@ -5,27 +5,27 @@ // Austen Ott // Jim Harris (FreeBSD) +#include "pci.h" +#include "utils.h" + +#include +#include +#include #include +#include #include #include -#include -#include -#include -#include "pci.h" +#include #ifndef _MSC_VER #include #include -#include -#endif - -#ifdef _MSC_VER - +#include +#else #include #include "Winmsrdriver\msrstruct.h" #include "winring0/OlsDef.h" #include "winring0/OlsApiInitExt.h" -#include "utils.h" #endif #if defined (__FreeBSD__) || defined(__DragonFly__) diff --git a/src/pci.h b/src/pci.h index ea9599ee..94850de7 100644 --- a/src/pci.h +++ b/src/pci.h @@ -15,18 +15,16 @@ #include "types.h" +#include + #ifdef _MSC_VER #include "windows.h" -#else -#include #endif #ifdef __APPLE__ #include "PCIDriverInterface.h" #endif -#include - namespace pcm { class PciHandle diff --git a/src/pcm-core.cpp b/src/pcm-core.cpp index 1aab41f5..beafb6a6 100644 --- a/src/pcm-core.cpp +++ b/src/pcm-core.cpp @@ -6,31 +6,29 @@ /*! \file pcm-core.cpp \brief Example of using CPU counters: implements a performance counter monitoring utility for Intel Core, Offcore events */ -#include -#ifdef _MSC_VER -#define strtok_r strtok_s -#include -#include "windows/windriver.h" -#else -#include -#include -#include // for gettimeofday() -#endif -#include + +#include "cpucounters.h" +#include "types.h" +#include "utils.h" + +#include #include -#include +#include +#include #include +#include #include #include -#include -#include -#include "cpucounters.h" -#include "utils.h" +#include +#include + #ifdef _MSC_VER +#define strtok_r strtok_s #include "freegetopt/getopt.h" +#include "windows/windriver.h" +#include #endif -#include #define PCM_DELAY_DEFAULT 1.0 // in seconds #define PCM_DELAY_MIN 0.015 // 15 milliseconds is practical on most modern CPUs #define MAX_CORES 4096 diff --git a/src/pcm-iio.cpp b/src/pcm-iio.cpp index 7a34d16e..eda5fef3 100644 --- a/src/pcm-iio.cpp +++ b/src/pcm-iio.cpp @@ -3,27 +3,38 @@ // written by Patrick Lu, // Aaron Cruz + #include "cpucounters.h" +#include "lspci.h" +#include "pci.h" +#include "types.h" +#include "utils.h" +#include "version.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // std::length_error +#include +#include +#include +#include + #ifdef _MSC_VER #pragma warning(disable : 4996) // for sprintf #include #include "windows/windriver.h" -#else -#include -#endif -#include -#include -#include -#include // std::length_error -#include -#include -#include -#ifdef _MSC_VER #include "freegetopt/getopt.h" #endif -#include "lspci.h" -#include "utils.h" + using namespace std; using namespace pcm; diff --git a/src/pcm-latency.cpp b/src/pcm-latency.cpp index 95ce3b1f..44e681d5 100644 --- a/src/pcm-latency.cpp +++ b/src/pcm-latency.cpp @@ -2,27 +2,27 @@ // Copyright (c) 2018, Intel Corporation // // written by Subhiksha Ravisundar + #include "cpucounters.h" +#include "types.h" +#include "utils.h" +#include "version.h" +#include +#include +#include +#include +#include +#include +#include +#include + #ifdef _MSC_VER #pragma warning(disable : 4996) // for sprintf #include #include "windows/windriver.h" -#else -#include -#endif -#include -#include -#include -#include -#include -#include -#include -#ifdef _MSC_VER #include "freegetopt/getopt.h" #endif -#include "lspci.h" -#include "utils.h" using namespace std; using namespace pcm; diff --git a/src/pcm-lspci.cpp b/src/pcm-lspci.cpp index 591f5f3e..4389c242 100644 --- a/src/pcm-lspci.cpp +++ b/src/pcm-lspci.cpp @@ -2,22 +2,24 @@ // Copyright (c) 2017-2018, Intel Corporation // written by Patrick Lu + #include "cpucounters.h" +#include "lspci.h" +#include "pci.h" +#include "types.h" + +#include +#include +#include +#include + #ifdef _MSC_VER #pragma warning(disable : 4996) // for sprintf #include #include "windows/windriver.h" -#else -#include -#endif -#include -#include -#include -#ifdef _MSC_VER #include "freegetopt/getopt.h" #endif -#include "lspci.h" using namespace std; using namespace pcm; diff --git a/src/pcm-memory.cpp b/src/pcm-memory.cpp index 165bee0b..2fe5ce48 100644 --- a/src/pcm-memory.cpp +++ b/src/pcm-memory.cpp @@ -7,24 +7,24 @@ /*! \file pcm-memory.cpp \brief Example of using CPU counters: implements a performance counter monitoring utility for memory controller channels and DIMMs (ranks) + PMM memory traffic */ +#include "cpucounters.h" +#include "types.h" +#include "utils.h" +#include "version.h" + +#include +#include #include +#include +#include +#include +#include +#include + #ifdef _MSC_VER #include #include "windows/windriver.h" -#else -#include -#include -#include // for gettimeofday() #endif -#include -#include -#include -#include -#include -#include -#include -#include "cpucounters.h" -#include "utils.h" #define PCM_DELAY_DEFAULT 1.0 // in seconds #define PCM_DELAY_MIN 0.015 // 15 milliseconds is practical on most modern CPUs diff --git a/src/pcm-mmio.cpp b/src/pcm-mmio.cpp index 77c22d01..21878923 100644 --- a/src/pcm-mmio.cpp +++ b/src/pcm-mmio.cpp @@ -2,20 +2,24 @@ // Copyright (c) 2012-2020, Intel Corporation // written by Roman Dementiev -#include "cpucounters.h" -#ifdef _MSC_VER -#include -#include "windows/windriver.h" -#else -#include -#endif -#include + +#include "mmio.h" +#include "types.h" +#include "utils.h" +#include "version.h" + +#include #include -#include -#include -#include +#include + #ifdef _MSC_VER #include "freegetopt/getopt.h" +#include "windows/windriver.h" +#include +#endif + +#ifdef __linux__ +#include #endif using namespace pcm; diff --git a/src/pcm-msr.cpp b/src/pcm-msr.cpp index 20039a9a..f7701732 100644 --- a/src/pcm-msr.cpp +++ b/src/pcm-msr.cpp @@ -2,19 +2,24 @@ // Copyright (c) 2012-2020, Intel Corporation // written by Roman Dementiev + #include "cpucounters.h" +#include "msr.h" +#include "types.h" +#include "utils.h" +#include "version.h" + +#include +#include + #ifdef _MSC_VER +#include "freegetopt/getopt.h" #include #include "windows/windriver.h" -#else -#include #endif -#include -#include -#include -#include -#ifdef _MSC_VER -#include "freegetopt/getopt.h" + +#ifdef __linux__ +#include #endif using namespace pcm; diff --git a/src/pcm-numa.cpp b/src/pcm-numa.cpp index 77dc40df..cc8c10a0 100644 --- a/src/pcm-numa.cpp +++ b/src/pcm-numa.cpp @@ -6,29 +6,31 @@ /*! \file pcm-numa.cpp \brief Example of using CPU counters: implements a performance counter monitoring utility for NUMA (remote and local memory accesses counting). Example for programming offcore response events */ -#include -#ifdef _MSC_VER -#include -#include "windows/windriver.h" -#else -#include -#include -#include // for gettimeofday() -#endif -#include + +#include "cpucounters.h" +#include "exceptions/unsupported_processor_exception.hpp" +#include "types.h" +#include "utils.h" +#include "version.h" + #include -#include +#include +#include #include +#include #include #include -#include -#include "cpucounters.h" -#include "utils.h" +#include +#include +#include +#include + #ifdef _MSC_VER #include "freegetopt/getopt.h" +#include "windows/windriver.h" +#include #endif -#include #define PCM_DELAY_DEFAULT 1.0 // in seconds #define PCM_DELAY_MIN 0.015 // 15 milliseconds is practical on most modern CPUs diff --git a/src/pcm-pcicfg.cpp b/src/pcm-pcicfg.cpp index 404d1373..008b9613 100644 --- a/src/pcm-pcicfg.cpp +++ b/src/pcm-pcicfg.cpp @@ -2,19 +2,23 @@ // Copyright (c) 2012, 2018 Intel Corporation // written by Roman Dementiev -#include "cpucounters.h" + +#include "pci.h" +#include "types.h" +#include "utils.h" +#include "version.h" + +#include +#include + #ifdef _MSC_VER +#include "freegetopt/getopt.h" #include #include "windows/windriver.h" -#else -#include #endif -#include -#include -#include -#include -#ifdef _MSC_VER -#include "freegetopt/getopt.h" + +#ifdef __linux__ +#include #endif using namespace pcm; diff --git a/src/pcm-pcie.cpp b/src/pcm-pcie.cpp index 90e06267..71e034e6 100644 --- a/src/pcm-pcie.cpp +++ b/src/pcm-pcie.cpp @@ -7,21 +7,17 @@ /*! \file pcm-pcie.cpp \brief Example of using uncore CBo counters: implements a performance counter monitoring utility for monitoring PCIe bandwidth */ + +#include "pcm-pcie.h" + +#include +#include +#include + #ifdef _MSC_VER #include #include "windows/windriver.h" -#else -#include -#include #endif -#include -#include -#include -#include -#include -#include -#include -#include "pcm-pcie.h" #define PCM_DELAY_DEFAULT 1.0 // in seconds #define PCM_DELAY_MIN 0.015 // 15 milliseconds is practical on most modern CPUs diff --git a/src/pcm-pcie.h b/src/pcm-pcie.h index 91930c0f..1631b5d2 100644 --- a/src/pcm-pcie.h +++ b/src/pcm-pcie.h @@ -3,14 +3,21 @@ #pragma once //written by Roman Sudarikov -#include #include "cpucounters.h" +#include "types.h" #include "utils.h" -#include + +#include #include -#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include #if defined(_MSC_VER) typedef unsigned int uint; diff --git a/src/pcm-power.cpp b/src/pcm-power.cpp index 6f8177a8..0163b755 100644 --- a/src/pcm-power.cpp +++ b/src/pcm-power.cpp @@ -5,21 +5,31 @@ // added PPD cycles by Thomas Willhalm #include "cpucounters.h" -#ifdef _MSC_VER -#include -#include "windows/windriver.h" -#else -#include -#include -#include // for gettimeofday() -#endif +#include "types.h" +#include "types.h" +#include "utils.h" +#include "version.h" + +#include +#include #include +#include +#include #include -#include +#include +#include +#include +#include + #ifdef _MSC_VER #include "freegetopt/getopt.h" +#include +#include "windows/windriver.h" +#endif + +#ifdef __linux__ +#include #endif -#include "utils.h" #define PCM_DELAY_DEFAULT 1.0 // in seconds #define PCM_DELAY_MIN 0.015 // 15 milliseconds is practical on most modern CPUs diff --git a/src/pcm-raw.cpp b/src/pcm-raw.cpp index 97fce9e1..dca7a89a 100644 --- a/src/pcm-raw.cpp +++ b/src/pcm-raw.cpp @@ -4,38 +4,45 @@ /*! \file pcm-raw.cpp \brief Example of using CPU counters: implements a performance counter monitoring utility with raw events interface */ -#include -#ifdef _MSC_VER -#define strtok_r strtok_s -#include -#include "windows/windriver.h" -#else -#include -#include -#include // for gettimeofday() -#endif -#include -#include -#include -#include -#include -#include + +#include "cpucounters.h" +#include "types.h" +#include "utils.h" + +#include +#include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include #include -#include "cpucounters.h" -#include "utils.h" - -#if PCM_SIMDJSON_AVAILABLE -#include "simdjson.h" -#endif +#include +#include #ifdef _MSC_VER #include "freegetopt/getopt.h" +#include "windows/windriver.h" +#include +#endif + +#if PCM_SIMDJSON_AVAILABLE +#include "simdjson.h" #endif -#include #define PCM_DELAY_MIN 0.015 // 15 milliseconds is practical on most modern CPUs #define MAX_CORES 4096 diff --git a/src/pcm-sensor-server.cpp b/src/pcm-sensor-server.cpp index c9523083..116eb52d 100644 --- a/src/pcm-sensor-server.cpp +++ b/src/pcm-sensor-server.cpp @@ -6,27 +6,45 @@ constexpr unsigned int DEFAULT_HTTP_PORT = 9738; constexpr unsigned int DEFAULT_HTTPS_PORT = DEFAULT_HTTP_PORT; -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "cpucounters.h" +#include "dashboard.h" +#include "debug.h" +#include "topology.h" +#include "types.h" +#include "utils.h" +#include +#include +#include #include -#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include - -#include "cpucounters.h" -#include "debug.h" -#include "topology.h" -#include "dashboard.h" +#include +#include #define PCMWebServerVersion "0.1" #if defined (USE_SSL) diff --git a/src/pcm-sensor.cpp b/src/pcm-sensor.cpp index 2e3a25b3..b19ec522 100644 --- a/src/pcm-sensor.cpp +++ b/src/pcm-sensor.cpp @@ -12,11 +12,14 @@ /*! \file pcm-sensor.cpp \brief Example of using CPU counters: implements a graphical plugin for KDE ksysguard */ -#include -#include -#include #include "cpuasynchcounter.h" +#include "cpucounters.h" +#include "types.h" #include "utils.h" +#include "version.h" + +#include +#include using namespace std; using namespace pcm; diff --git a/src/pcm-tsx.cpp b/src/pcm-tsx.cpp index ecd7ebfd..4171ee73 100644 --- a/src/pcm-tsx.cpp +++ b/src/pcm-tsx.cpp @@ -7,28 +7,26 @@ \brief Example of using CPU counters: implements a performance counter monitoring utility for Intel Transactional Synchronization Extensions */ #include -#ifdef _MSC_VER -#include -#include "windows/windriver.h" -#else -#include -#include -#include // for gettimeofday() -#endif -#include + +#include "cpucounters.h" +#include "types.h" +#include "utils.h" + #include -#include +#include #include +#include #include #include -#include -#include "cpucounters.h" -#include "utils.h" +#include +#include + #ifdef _MSC_VER #include "freegetopt/getopt.h" +#include +#include "windows/windriver.h" #endif -#include #define PCM_DELAY_DEFAULT 1.0 // in seconds #define PCM_DELAY_MIN 0.015 // 15 milliseconds is practical on most modern CPUs diff --git a/src/pcm.cpp b/src/pcm.cpp index 42433e94..2276ff11 100644 --- a/src/pcm.cpp +++ b/src/pcm.cpp @@ -8,26 +8,30 @@ /*! \file pcm.cpp \brief Example of using CPU counters: implements a simple performance counter monitoring utility */ +#include "cpucounters.h" +#include "types.h" +#include "utils.h" +#include "version.h" + +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include + #ifdef _MSC_VER #include #include "windows/windriver.h" #else #include -#include // for atexit() -#include // for gettimeofday() #endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "cpucounters.h" -#include "utils.h" #define SIZE (10000000) #define PCM_DELAY_DEFAULT 1.0 // in seconds diff --git a/src/resctrl.cpp b/src/resctrl.cpp index d52d99aa..41dc04c1 100644 --- a/src/resctrl.cpp +++ b/src/resctrl.cpp @@ -4,13 +4,22 @@ #ifdef __linux__ -#include "resctrl.h" #include "cpucounters.h" -#include -#include -#include +#include "resctrl.h" +#include "types.h" +#include "utils.h" + +#include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include namespace pcm { diff --git a/src/resctrl.h b/src/resctrl.h index e389a568..0443427b 100644 --- a/src/resctrl.h +++ b/src/resctrl.h @@ -10,17 +10,18 @@ #ifdef __linux__ -#include #include +#include #include #include -#include -#include namespace pcm { class PCM; +} +namespace pcm +{ class Resctrl { PCM & pcm; diff --git a/src/threadpool.h b/src/threadpool.h index 224c9e86..cab5a488 100644 --- a/src/threadpool.h +++ b/src/threadpool.h @@ -5,12 +5,15 @@ #include "debug.h" -#include -#include +#include #include +#include +#include #include -#include #include +#include +#include +#include namespace pcm { @@ -42,8 +45,6 @@ class LambdaJob : public Work { std::packaged_task task_; }; -class WorkQueue; - class ThreadPool { private: ThreadPool( const int n ) { diff --git a/src/topology.cpp b/src/topology.cpp index 3993efeb..47dfdd14 100644 --- a/src/topology.cpp +++ b/src/topology.cpp @@ -4,6 +4,8 @@ #include "cpucounters.h" #include "topology.h" +#include + namespace pcm { UncoreCounterState ServerUncore::uncoreCounterState( void ) const @@ -99,4 +101,4 @@ Aggregator::Aggregator() ucsFutures_.resize( pcm->getNumSockets() ); } -}// namespace pcm \ No newline at end of file +}// namespace pcm diff --git a/src/topology.h b/src/topology.h index 1864770e..36e201e3 100644 --- a/src/topology.h +++ b/src/topology.h @@ -11,18 +11,28 @@ #include "types.h" #include "cpucounters.h" #include "threadpool.h" +#include +#include +#include +#include +#include +#include +#include "debug.h" +// all can be done with forwards, anything hat actually uses PCM should be put in the topology.cpp file namespace pcm { + class SafeMsrHandle; + class PCM; + class SystemRoot; + class Socket; + class Core; + class HyperThread; + class ServerUncore; + class ClientUncore; -// all can be done with forwards, anything hat actually uses PCM should be put in the topology.cpp file -class PCM; - -class SystemRoot; -class Socket; -class Core; -class HyperThread; -class ServerUncore; -class ClientUncore; +} + +namespace pcm { class Visitor { public: diff --git a/src/utils.cpp b/src/utils.cpp index 329cbe23..a72175b1 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -2,18 +2,25 @@ // Copyright (c) 2009-2018, Intel Corporation // written by Andrey Semin and many others -#include -#include +#include "cpucounters.h" +#include "utils.h" + #include +#include +#include +#include +#include +#include +#include + #ifdef _MSC_VER #include #include #else #include // for waitpid() #include // for ::sleep +#include #endif -#include "utils.h" -#include "cpucounters.h" namespace pcm { diff --git a/src/utils.h b/src/utils.h index bb2ac728..fa5b56f5 100644 --- a/src/utils.h +++ b/src/utils.h @@ -9,24 +9,36 @@ #pragma once -#include -#include -#include -#include #include "types.h" -#include + +#include #include +#include +#include +#include +#include #include -#include +#include +#include +#include +#include +#include + +#ifdef __linux__ +#include +#endif #ifndef _MSC_VER -#include #include -#include +#include #else #include #endif +namespace pcm { + class PCM; +} + namespace pcm { #ifdef _MSC_VER @@ -313,7 +325,6 @@ inline void printDateForJson(const std::string& separator, const std::string &js std::vector split(const std::string & str, const char delim); -class PCM; bool CheckAndForceRTMAbortMode(const char * argv, PCM * m); void print_help_force_rtm_abort_mode(const int alignment); diff --git a/tests/urltest.cpp b/tests/urltest.cpp index fb843d99..1e78b5a2 100644 --- a/tests/urltest.cpp +++ b/tests/urltest.cpp @@ -1,9 +1,12 @@ #define UNIT_TEST 1 - #include "../src/pcm-sensor-server.cpp" - #undef UNIT_TEST +#include +#include +#include +#include + std::vector urls{ "http://otto:test@www.intel.com/~otto/file1.txt", "file://localhost/c/mnt/cd/file2.txt",