Commit 7f450ac3 authored by Gabriel Marin's avatar Gabriel Marin Committed by Commit Bot

Disable sampling on cycles precise on all microarchitectures.

We see a large fraction of unmapped samples with cycles precise.
Disable sampling on cycles precise while we investigate the root
cause of unmapped samples.

BUG=b:170558957,b:168312716

Change-Id: Ie566e8e870e0bebc8db8355222f4cbf8cc61e055
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2471579Reviewed-by: default avatarGeorge Burgess <gbiv@chromium.org>
Reviewed-by: default avatarGabriel Marin <gmx@chromium.org>
Commit-Queue: Gabriel Marin <gmx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#817107}
parent badd37e5
...@@ -89,8 +89,7 @@ void ExtractVersionNumbers(const std::string& version, ...@@ -89,8 +89,7 @@ void ExtractVersionNumbers(const std::string& version,
// Returns if a micro-architecture supports the cycles:ppp event. // Returns if a micro-architecture supports the cycles:ppp event.
bool MicroarchitectureHasCyclesPPPEvent(const std::string& uarch) { bool MicroarchitectureHasCyclesPPPEvent(const std::string& uarch) {
return uarch == "Goldmont" || uarch == "GoldmontPlus" || return false;
uarch == "Broadwell" || uarch == "Kabylake" || uarch == "Tigerlake";
} }
// Returns if a micro-architecture supports LBR callgraph profiling. // Returns if a micro-architecture supports LBR callgraph profiling.
......
...@@ -36,11 +36,6 @@ const char kPerfCyclesCmd[] = "perf record -a -e cycles -c 1000003"; ...@@ -36,11 +36,6 @@ const char kPerfCyclesCmd[] = "perf record -a -e cycles -c 1000003";
const char kPerfFPCallgraphCmd[] = "perf record -a -e cycles -g -c 4000037"; const char kPerfFPCallgraphCmd[] = "perf record -a -e cycles -g -c 4000037";
const char kPerfLBRCallgraphCmd[] = const char kPerfLBRCallgraphCmd[] =
"perf record -a -e cycles -c 4000037 --call-graph lbr"; "perf record -a -e cycles -c 4000037 --call-graph lbr";
const char kPerfCyclesPPPCmd[] = "perf record -a -e cycles:ppp -c 1000003";
const char kPerfFPCallgraphPPPCmd[] =
"perf record -a -e cycles:ppp -g -c 4000037";
const char kPerfLBRCallgraphPPPCmd[] =
"perf record -a -e cycles:ppp -c 4000037 --call-graph lbr";
const char kPerfLBRCmd[] = "perf record -a -e r20c4 -b -c 200011"; const char kPerfLBRCmd[] = "perf record -a -e r20c4 -b -c 200011";
const char kPerfLBRCmdAtom[] = "perf record -a -e rc4 -b -c 300001"; const char kPerfLBRCmdAtom[] = "perf record -a -e rc4 -b -c 300001";
const char kPerfITLBMissCyclesCmdIvyBridge[] = const char kPerfITLBMissCyclesCmdIvyBridge[] =
...@@ -519,11 +514,11 @@ TEST_F(PerfCollectorTest, DefaultCommandsBasedOnUarch_Tigerlake) { ...@@ -519,11 +514,11 @@ TEST_F(PerfCollectorTest, DefaultCommandsBasedOnUarch_Tigerlake) {
std::vector<RandomSelector::WeightAndValue> cmds = std::vector<RandomSelector::WeightAndValue> cmds =
internal::GetDefaultCommandsForCpu(cpuid); internal::GetDefaultCommandsForCpu(cpuid);
ASSERT_GE(cmds.size(), 3UL); ASSERT_GE(cmds.size(), 3UL);
EXPECT_EQ(cmds[0].value, kPerfCyclesPPPCmd); EXPECT_EQ(cmds[0].value, kPerfCyclesCmd);
// We have both FP and LBR based callstacks. // We have both FP and LBR based callstacks.
EXPECT_EQ(cmds[1].value, kPerfFPCallgraphPPPCmd); EXPECT_EQ(cmds[1].value, kPerfFPCallgraphCmd);
EXPECT_TRUE(DoesCommandSampleCycles(cmds[0].value)); EXPECT_TRUE(DoesCommandSampleCycles(cmds[0].value));
EXPECT_EQ(cmds[2].value, kPerfLBRCallgraphPPPCmd); EXPECT_EQ(cmds[2].value, kPerfLBRCallgraphCmd);
EXPECT_TRUE(DoesCommandSampleCycles(cmds[1].value)); EXPECT_TRUE(DoesCommandSampleCycles(cmds[1].value));
auto found = auto found =
std::find_if(cmds.begin(), cmds.end(), std::find_if(cmds.begin(), cmds.end(),
...@@ -554,15 +549,15 @@ TEST_F(PerfCollectorTest, DefaultCommandsBasedOnUarch_Goldmont) { ...@@ -554,15 +549,15 @@ TEST_F(PerfCollectorTest, DefaultCommandsBasedOnUarch_Goldmont) {
std::vector<RandomSelector::WeightAndValue> cmds = std::vector<RandomSelector::WeightAndValue> cmds =
internal::GetDefaultCommandsForCpu(cpuid); internal::GetDefaultCommandsForCpu(cpuid);
ASSERT_GE(cmds.size(), 2UL); ASSERT_GE(cmds.size(), 2UL);
EXPECT_EQ(cmds[0].value, kPerfCyclesPPPCmd); EXPECT_EQ(cmds[0].value, kPerfCyclesCmd);
EXPECT_TRUE(DoesCommandSampleCycles(cmds[0].value)); EXPECT_TRUE(DoesCommandSampleCycles(cmds[0].value));
EXPECT_EQ(cmds[1].value, kPerfFPCallgraphPPPCmd); EXPECT_EQ(cmds[1].value, kPerfFPCallgraphCmd);
EXPECT_TRUE(DoesCommandSampleCycles(cmds[1].value)); EXPECT_TRUE(DoesCommandSampleCycles(cmds[1].value));
// No LBR callstacks because the microarchitecture doesn't support it. // No LBR callstacks because the microarchitecture doesn't support it.
auto found = auto found =
std::find_if(cmds.begin(), cmds.end(), std::find_if(cmds.begin(), cmds.end(),
[](const RandomSelector::WeightAndValue& cmd) -> bool { [](const RandomSelector::WeightAndValue& cmd) -> bool {
return cmd.value == kPerfLBRCallgraphPPPCmd; return cmd.value == kPerfLBRCallgraphCmd;
}); });
EXPECT_EQ(cmds.end(), found); EXPECT_EQ(cmds.end(), found);
found = std::find_if(cmds.begin(), cmds.end(), found = std::find_if(cmds.begin(), cmds.end(),
...@@ -593,15 +588,15 @@ TEST_F(PerfCollectorTest, DefaultCommandsBasedOnUarch_GoldmontPlus) { ...@@ -593,15 +588,15 @@ TEST_F(PerfCollectorTest, DefaultCommandsBasedOnUarch_GoldmontPlus) {
std::vector<RandomSelector::WeightAndValue> cmds = std::vector<RandomSelector::WeightAndValue> cmds =
internal::GetDefaultCommandsForCpu(cpuid); internal::GetDefaultCommandsForCpu(cpuid);
ASSERT_GE(cmds.size(), 2UL); ASSERT_GE(cmds.size(), 2UL);
EXPECT_EQ(cmds[0].value, kPerfCyclesPPPCmd); EXPECT_EQ(cmds[0].value, kPerfCyclesCmd);
EXPECT_TRUE(DoesCommandSampleCycles(cmds[0].value)); EXPECT_TRUE(DoesCommandSampleCycles(cmds[0].value));
EXPECT_EQ(cmds[1].value, kPerfFPCallgraphPPPCmd); EXPECT_EQ(cmds[1].value, kPerfFPCallgraphCmd);
EXPECT_TRUE(DoesCommandSampleCycles(cmds[1].value)); EXPECT_TRUE(DoesCommandSampleCycles(cmds[1].value));
// No LBR callstacks because the microarchitecture doesn't support it. // No LBR callstacks because the microarchitecture doesn't support it.
auto found = auto found =
std::find_if(cmds.begin(), cmds.end(), std::find_if(cmds.begin(), cmds.end(),
[](const RandomSelector::WeightAndValue& cmd) -> bool { [](const RandomSelector::WeightAndValue& cmd) -> bool {
return cmd.value == kPerfLBRCallgraphPPPCmd; return cmd.value == kPerfLBRCallgraphCmd;
}); });
EXPECT_EQ(cmds.end(), found); EXPECT_EQ(cmds.end(), found);
found = std::find_if(cmds.begin(), cmds.end(), found = std::find_if(cmds.begin(), cmds.end(),
......
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