Commit 7ddcda32 authored by gmx's avatar gmx Committed by Commit Bot

Enable profiling for Kabylake and Goldmont

Add Kabylake and Goldmont models to the Intel uarch table and
enable profiling for them.

BUG=b:63543388
TEST=none

Review-Url: https://codereview.chromium.org/2970163002
Cr-Commit-Position: refs/heads/master@{#487181}
parent 1751c38c
...@@ -16,44 +16,49 @@ ...@@ -16,44 +16,49 @@
namespace internal { namespace internal {
const IntelUarchTableEntry kIntelUarchTable[] = { const IntelUarchTableEntry kIntelUarchTable[] = {
// These were found on various sources on the Internet. Main ones are: // These were found on various sources on the Internet. Main ones are:
// http://instlatx64.atw.hu/ for CPUID to model name and // http://instlatx64.atw.hu/ for CPUID to model name and
// http://www.cpu-world.com for model name to microarchitecture // http://www.cpu-world.com for model name to microarchitecture
{"06_09", "Banias"}, {"06_09", "Banias"},
{"06_0D", "Dothan"}, {"06_0D", "Dothan"},
{"06_0F", "Merom"}, {"06_0F", "Merom"},
{"06_16", "Merom"}, {"06_16", "Merom"},
{"06_17", "Nehalem"}, {"06_17", "Nehalem"},
{"06_1A", "Nehalem"}, {"06_1A", "Nehalem"},
{"06_1C", "Bonnell"}, // Atom {"06_1C", "Bonnell"}, // Atom
{"06_1D", "Nehalem"}, {"06_1D", "Nehalem"},
{"06_1E", "Nehalem"}, {"06_1E", "Nehalem"},
{"06_1F", "Nehalem"}, {"06_1F", "Nehalem"},
{"06_25", "Westmere"}, {"06_25", "Westmere"},
{"06_26", "Bonnell"}, // Atom {"06_26", "Bonnell"}, // Atom
{"06_2A", "SandyBridge"}, {"06_2A", "SandyBridge"},
{"06_2C", "Westmere"}, {"06_2C", "Westmere"},
{"06_2D", "SandyBridge"}, {"06_2D", "SandyBridge"},
{"06_2E", "Nehalem"}, {"06_2E", "Nehalem"},
{"06_2F", "Westmere"}, {"06_2F", "Westmere"},
{"06_36", "Saltwell"}, // Atom {"06_36", "Saltwell"}, // Atom
{"06_37", "Silvermont"}, {"06_37", "Silvermont"},
{"06_3A", "IvyBridge"}, {"06_3A", "IvyBridge"},
{"06_3C", "Haswell"}, {"06_3C", "Haswell"},
{"06_3D", "Broadwell"}, {"06_3D", "Broadwell"},
{"06_3E", "IvyBridge"}, {"06_3E", "IvyBridge"},
{"06_3F", "Haswell"}, {"06_3F", "Haswell"},
{"06_45", "Haswell"}, {"06_45", "Haswell"},
{"06_46", "Haswell"}, {"06_46", "Haswell"},
{"06_47", "Broadwell"}, // Broadwell-H {"06_47", "Broadwell"}, // Broadwell-H
{"06_4C", "Airmont"}, // Braswell {"06_4C", "Airmont"}, // Braswell
{"06_4D", "Silvermont"}, // Avoton/Rangely {"06_4D", "Silvermont"}, // Avoton/Rangely
{"06_4E", "Skylake"}, {"06_4E", "Skylake"},
{"06_56", "Broadwell"}, // Broadwell-DE {"06_55", "Skylake"}, // Skylake-X
{"06_5E", "Skylake"}, {"06_56", "Broadwell"}, // Broadwell-DE
{"0F_03", "Prescott"}, {"06_5C", "Goldmont"},
{"0F_04", "Prescott"}, {"06_5E", "Skylake"},
{"0F_06", "Presler"}, {"06_5F", "Goldmont"}, // Denverton
{"06_8E", "Kabylake"},
{"06_9E", "Kabylake"},
{"0F_03", "Prescott"},
{"0F_04", "Prescott"},
{"0F_06", "Presler"},
}; };
const IntelUarchTableEntry* kIntelUarchTableEnd = const IntelUarchTableEntry* kIntelUarchTableEnd =
......
...@@ -121,7 +121,8 @@ void ExtractVersionNumbers(const std::string& version, ...@@ -121,7 +121,8 @@ void ExtractVersionNumbers(const std::string& version,
// Returns if a micro-architecture supports LBR callgraph profiling. // Returns if a micro-architecture supports LBR callgraph profiling.
bool MicroarchitectureHasLBRCallgraph(const std::string& uarch) { bool MicroarchitectureHasLBRCallgraph(const std::string& uarch) {
return uarch == "Haswell" || uarch == "Broadwell" || uarch == "Skylake"; return uarch == "Haswell" || uarch == "Broadwell" || uarch == "Skylake" ||
uarch == "Kabylake";
} }
// Returns if a kernel release supports LBR callgraph profiling. // Returns if a kernel release supports LBR callgraph profiling.
...@@ -195,7 +196,8 @@ const std::vector<RandomSelector::WeightAndValue> GetDefaultCommands_x86_64( ...@@ -195,7 +196,8 @@ const std::vector<RandomSelector::WeightAndValue> GetDefaultCommands_x86_64(
cmds.push_back(WeightAndValue(5.0, kPerfRecordCacheMissesCmd)); cmds.push_back(WeightAndValue(5.0, kPerfRecordCacheMissesCmd));
return cmds; return cmds;
} }
if (intel_uarch == "SandyBridge" || intel_uarch == "Skylake") { if (intel_uarch == "SandyBridge" || intel_uarch == "Skylake" ||
intel_uarch == "Kabylake") {
cmds.push_back(WeightAndValue(50.0, kPerfRecordCyclesCmd)); cmds.push_back(WeightAndValue(50.0, kPerfRecordCyclesCmd));
cmds.push_back(WeightAndValue(20.0, callgraph_cmd)); cmds.push_back(WeightAndValue(20.0, callgraph_cmd));
cmds.push_back(WeightAndValue(15.0, kPerfRecordLBRCmd)); cmds.push_back(WeightAndValue(15.0, kPerfRecordLBRCmd));
...@@ -204,7 +206,8 @@ const std::vector<RandomSelector::WeightAndValue> GetDefaultCommands_x86_64( ...@@ -204,7 +206,8 @@ const std::vector<RandomSelector::WeightAndValue> GetDefaultCommands_x86_64(
cmds.push_back(WeightAndValue(5.0, kPerfRecordCacheMissesCmd)); cmds.push_back(WeightAndValue(5.0, kPerfRecordCacheMissesCmd));
return cmds; return cmds;
} }
if (intel_uarch == "Silvermont" || intel_uarch == "Airmont") { if (intel_uarch == "Silvermont" || intel_uarch == "Airmont" ||
intel_uarch == "Goldmont") {
cmds.push_back(WeightAndValue(50.0, kPerfRecordCyclesCmd)); cmds.push_back(WeightAndValue(50.0, kPerfRecordCyclesCmd));
cmds.push_back(WeightAndValue(20.0, callgraph_cmd)); cmds.push_back(WeightAndValue(20.0, callgraph_cmd));
cmds.push_back(WeightAndValue(15.0, kPerfRecordLBRCmdAtom)); cmds.push_back(WeightAndValue(15.0, kPerfRecordLBRCmdAtom));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment