Skip to content

Commit 52a8306

Browse files
stevenbriscoeopcm
authored andcommitted
Experimental daemon implementation
Change-Id: I45ed42ecac9b51b81a0e1d78b62edfa7e5f3b997
1 parent bc3241a commit 52a8306

30 files changed

+2461
-41
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616
*.vxd
1717
*.exe
1818
*.tgz
19+
.metadata/
1920
*.sdf
2021
*.suo
2122
Debug
2223
Release
2324
Debug64
2425
Release64
26+
.metadata/

cpucounters.cpp

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2720,47 +2720,6 @@ uint64 PCM::getTickCount(uint64 multiplier, uint32 core)
27202720
return (multiplier * getInvariantTSC(CoreCounterState(), getCoreCounterState(core))) / getNominalFrequency();
27212721
}
27222722

2723-
uint64 RDTSC()
2724-
{
2725-
uint64 result = 0;
2726-
#ifdef _MSC_VER
2727-
// Windows
2728-
#if _MSC_VER>= 1600
2729-
result = static_cast<uint64>(__rdtsc());
2730-
#endif
2731-
#else
2732-
// Linux
2733-
uint32 high = 0, low = 0;
2734-
asm volatile("rdtsc" : "=a" (low), "=d" (high));
2735-
result = low + (uint64(high)<<32ULL);
2736-
#endif
2737-
return result;
2738-
2739-
}
2740-
2741-
uint64 RDTSCP()
2742-
{
2743-
uint64 result = 0;
2744-
#ifdef _MSC_VER
2745-
// Windows
2746-
#if _MSC_VER>= 1600
2747-
unsigned int Aux;
2748-
result = __rdtscp(&Aux);
2749-
#endif
2750-
#else
2751-
// Linux and OS X
2752-
uint32 high = 0, low = 0;
2753-
asm volatile (
2754-
"rdtscp\n\t"
2755-
"mov %%edx, %0\n\t"
2756-
"mov %%eax, %1\n\t":
2757-
"=r" (high), "=r" (low) :: "%rax", "%rcx", "%rdx");
2758-
result = low + (uint64(high)<<32ULL);
2759-
#endif
2760-
return result;
2761-
}
2762-
2763-
27642723
uint64 PCM::getTickCountRDTSCP(uint64 multiplier)
27652724
{
27662725
return (multiplier*RDTSCP())/getNominalFrequency();

cpucounters.h

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1264,6 +1264,46 @@ class BasicCounterState
12641264
int32 getThermalHeadroom() const { return ThermalHeadroom; }
12651265
};
12661266

1267+
inline uint64 RDTSC()
1268+
{
1269+
uint64 result = 0;
1270+
#ifdef _MSC_VER
1271+
// Windows
1272+
#if _MSC_VER>= 1600
1273+
result = static_cast<uint64>(__rdtsc());
1274+
#endif
1275+
#else
1276+
// Linux
1277+
uint32 high = 0, low = 0;
1278+
asm volatile("rdtsc" : "=a" (low), "=d" (high));
1279+
result = low + (uint64(high)<<32ULL);
1280+
#endif
1281+
return result;
1282+
1283+
}
1284+
1285+
inline uint64 RDTSCP()
1286+
{
1287+
uint64 result = 0;
1288+
#ifdef _MSC_VER
1289+
// Windows
1290+
#if _MSC_VER>= 1600
1291+
unsigned int Aux;
1292+
result = __rdtscp(&Aux);
1293+
#endif
1294+
#else
1295+
// Linux and OS X
1296+
uint32 high = 0, low = 0;
1297+
asm volatile (
1298+
"rdtscp\n\t"
1299+
"mov %%edx, %0\n\t"
1300+
"mov %%eax, %1\n\t":
1301+
"=r" (high), "=r" (low) :: "%rax", "%rcx", "%rdx");
1302+
result = low + (uint64(high)<<32ULL);
1303+
#endif
1304+
return result;
1305+
}
1306+
12671307
/*! \brief Returns QPI LL clock ticks
12681308
\param port QPI port number
12691309
\param before CPU counter state before the experiment

daemon/.cproject

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
3+
<storageModule moduleId="org.eclipse.cdt.core.settings">
4+
<cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.2074615551">
5+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.2074615551" moduleId="org.eclipse.cdt.core.settings" name="Debug">
6+
<externalSettings/>
7+
<extensions>
8+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
9+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
10+
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
11+
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
12+
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
13+
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
14+
</extensions>
15+
</storageModule>
16+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
17+
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.2074615551" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug">
18+
<folderInfo id="cdt.managedbuild.config.gnu.exe.debug.2074615551." name="/" resourcePath="">
19+
<toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.480387373" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
20+
<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.405316494" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
21+
<builder buildPath="${workspace_loc:/daemon/Debug}" id="cdt.managedbuild.target.gnu.builder.exe.debug.1785219374" managedBuildOn="true" name="Gnu Make Builder.Debug" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
22+
<tool id="cdt.managedbuild.tool.gnu.archiver.base.1737647227" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
23+
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.602131366" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
24+
<option id="gnu.cpp.compiler.exe.debug.option.optimization.level.644219600" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
25+
<option id="gnu.cpp.compiler.exe.debug.option.debugging.level.1955298593" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
26+
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.796646685" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
27+
</tool>
28+
<tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.601141438" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug">
29+
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.162719373" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/>
30+
<option id="gnu.c.compiler.exe.debug.option.debugging.level.2019975981" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
31+
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1058706464" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
32+
</tool>
33+
<tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.1617208010" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/>
34+
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.1120146632" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug">
35+
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1575782485" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
36+
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
37+
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
38+
</inputType>
39+
</tool>
40+
<tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.636294950" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug">
41+
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.2109077787" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
42+
</tool>
43+
</toolChain>
44+
</folderInfo>
45+
</configuration>
46+
</storageModule>
47+
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
48+
</cconfiguration>
49+
<cconfiguration id="cdt.managedbuild.config.gnu.exe.release.1333579675">
50+
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.1333579675" moduleId="org.eclipse.cdt.core.settings" name="Release">
51+
<externalSettings/>
52+
<extensions>
53+
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
54+
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
55+
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
56+
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
57+
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
58+
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
59+
</extensions>
60+
</storageModule>
61+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
62+
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.1333579675" name="Release" parent="cdt.managedbuild.config.gnu.exe.release">
63+
<folderInfo id="cdt.managedbuild.config.gnu.exe.release.1333579675." name="/" resourcePath="">
64+
<toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.15947215" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
65+
<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.386141044" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
66+
<builder buildPath="${workspace_loc:/daemon/Release}" id="cdt.managedbuild.target.gnu.builder.exe.release.1236443640" managedBuildOn="true" name="Gnu Make Builder.Release" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
67+
<tool id="cdt.managedbuild.tool.gnu.archiver.base.433504094" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
68+
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.2050305900" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
69+
<option id="gnu.cpp.compiler.exe.release.option.optimization.level.1988215285" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
70+
<option id="gnu.cpp.compiler.exe.release.option.debugging.level.628611940" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
71+
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.488079306" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
72+
</tool>
73+
<tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.473865158" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
74+
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.1222756699" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
75+
<option id="gnu.c.compiler.exe.release.option.debugging.level.90450153" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
76+
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1303683643" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
77+
</tool>
78+
<tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.194065033" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release"/>
79+
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.318410606" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release">
80+
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.684801922" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
81+
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
82+
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
83+
</inputType>
84+
</tool>
85+
<tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.1782319386" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release">
86+
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1600406325" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
87+
</tool>
88+
</toolChain>
89+
</folderInfo>
90+
</configuration>
91+
</storageModule>
92+
</cconfiguration>
93+
</storageModule>
94+
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
95+
<project id="daemon.cdt.managedbuild.target.gnu.exe.821600173" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/>
96+
</storageModule>
97+
<storageModule moduleId="scannerConfiguration">
98+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
99+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.2074615551;cdt.managedbuild.config.gnu.exe.debug.2074615551.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.602131366;cdt.managedbuild.tool.gnu.cpp.compiler.input.796646685">
100+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
101+
</scannerConfigBuildInfo>
102+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.2074615551;cdt.managedbuild.config.gnu.exe.debug.2074615551.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.601141438;cdt.managedbuild.tool.gnu.c.compiler.input.1058706464">
103+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
104+
</scannerConfigBuildInfo>
105+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1333579675;cdt.managedbuild.config.gnu.exe.release.1333579675.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.2050305900;cdt.managedbuild.tool.gnu.cpp.compiler.input.488079306">
106+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
107+
</scannerConfigBuildInfo>
108+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1333579675;cdt.managedbuild.config.gnu.exe.release.1333579675.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.473865158;cdt.managedbuild.tool.gnu.c.compiler.input.1303683643">
109+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
110+
</scannerConfigBuildInfo>
111+
</storageModule>
112+
</cproject>

daemon/.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
.project
2+
client/.project
3+
client/.cproject
4+
client/Debug/client
5+
daemon/.project
6+
daemon/.cproject
7+
daemon/Debug/daemon
8+
daemon/test/test

daemon/.project

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>daemon</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
10+
<triggers>clean,full,incremental,</triggers>
11+
<arguments>
12+
<dictionary>
13+
<key>?name?</key>
14+
<value></value>
15+
</dictionary>
16+
<dictionary>
17+
<key>org.eclipse.cdt.make.core.append_environment</key>
18+
<value>true</value>
19+
</dictionary>
20+
<dictionary>
21+
<key>org.eclipse.cdt.make.core.autoBuildTarget</key>
22+
<value>all</value>
23+
</dictionary>
24+
<dictionary>
25+
<key>org.eclipse.cdt.make.core.buildArguments</key>
26+
<value></value>
27+
</dictionary>
28+
<dictionary>
29+
<key>org.eclipse.cdt.make.core.buildCommand</key>
30+
<value>make</value>
31+
</dictionary>
32+
<dictionary>
33+
<key>org.eclipse.cdt.make.core.buildLocation</key>
34+
<value>${workspace_loc:/daemon/Debug}</value>
35+
</dictionary>
36+
<dictionary>
37+
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
38+
<value>clean</value>
39+
</dictionary>
40+
<dictionary>
41+
<key>org.eclipse.cdt.make.core.contents</key>
42+
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
43+
</dictionary>
44+
<dictionary>
45+
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
46+
<value>false</value>
47+
</dictionary>
48+
<dictionary>
49+
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
50+
<value>true</value>
51+
</dictionary>
52+
<dictionary>
53+
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
54+
<value>true</value>
55+
</dictionary>
56+
<dictionary>
57+
<key>org.eclipse.cdt.make.core.fullBuildTarget</key>
58+
<value>all</value>
59+
</dictionary>
60+
<dictionary>
61+
<key>org.eclipse.cdt.make.core.stopOnError</key>
62+
<value>true</value>
63+
</dictionary>
64+
<dictionary>
65+
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
66+
<value>true</value>
67+
</dictionary>
68+
</arguments>
69+
</buildCommand>
70+
<buildCommand>
71+
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
72+
<triggers>full,incremental,</triggers>
73+
<arguments>
74+
</arguments>
75+
</buildCommand>
76+
</buildSpec>
77+
<natures>
78+
<nature>org.eclipse.cdt.core.cnature</nature>
79+
<nature>org.eclipse.cdt.core.ccnature</nature>
80+
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
81+
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
82+
</natures>
83+
</projectDescription>

0 commit comments

Comments
 (0)