Skip to content

Commit 5ed5a2f

Browse files
authored
Merge pull request #2891 from Creatone/creatone/empty-perf-config
Check if there are perf events to gather.
2 parents 688d2ec + ef3164c commit 5ed5a2f

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

perf/manager_libpfm.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ func NewManager(configFile string, topology []info.Node) (stats.Manager, error)
4848
return nil, fmt.Errorf("unable to parse configuration file %q: %w", configFile, err)
4949
}
5050

51+
if len(config.Core.Events) == 0 && len(config.Uncore.Events) == 0 {
52+
return nil, fmt.Errorf("there is no events in config file %q", configFile)
53+
}
54+
5155
onlineCPUs := sysinfo.GetOnlineCPUs(topology)
5256

5357
cpuToSocket := make(map[int]int)

perf/manager_libpfm_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ import (
2626
"github.com/google/cadvisor/stats"
2727
)
2828

29+
func TestEmptyConfigPassed(t *testing.T) {
30+
manager, err := NewManager("testing/perf-no-events.json", []info.Node{})
31+
32+
assert.NotNil(t, err)
33+
assert.Nil(t, manager)
34+
}
35+
2936
func TestNoConfigFilePassed(t *testing.T) {
3037
manager, err := NewManager("", []info.Node{})
3138

perf/testing/perf-no-events.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"core": {
3+
"events": [],
4+
"custom_events": []
5+
},
6+
"uncore": {
7+
"events": [],
8+
"custom_events": []
9+
}
10+
}
11+

0 commit comments

Comments
 (0)