From 5c3f51ee71b6311d3d46a196a115bafad65aef49 Mon Sep 17 00:00:00 2001 From: Huamin Chen Date: Wed, 21 Aug 2024 21:12:57 -0400 Subject: [PATCH] feat(bpf): use time window for bpf sampling to replace per call based sampling Signed-off-by: Huamin Chen --- bpf/kepler.bpf.h | 66 ++++++++++++------ pkg/bpf/exporter.go | 8 ++- pkg/bpf/kepler_bpfeb.go | 6 ++ pkg/bpf/kepler_bpfeb.o | Bin 15224 -> 16736 bytes pkg/bpf/kepler_bpfel.go | 6 ++ pkg/bpf/kepler_bpfel.o | Bin 15224 -> 16736 bytes pkg/bpftest/bpf_suite_test.go | 3 +- pkg/bpftest/test_bpfeb.go | 6 ++ pkg/bpftest/test_bpfeb.o | Bin 13848 -> 15440 bytes pkg/bpftest/test_bpfel.go | 6 ++ pkg/bpftest/test_bpfel.o | Bin 13848 -> 15440 bytes pkg/config/config.go | 29 +++++--- .../accelerator/device/sources/dcgm.go | 4 +- 13 files changed, 102 insertions(+), 32 deletions(-) diff --git a/bpf/kepler.bpf.h b/bpf/kepler.bpf.h index e21715750b..6309b4706e 100644 --- a/bpf/kepler.bpf.h +++ b/bpf/kepler.bpf.h @@ -167,11 +167,30 @@ SEC(".rodata.config") __attribute__((btf_decl_tag( "Hardware Events Enabled"))) static volatile const int HW = 1; -// The sampling rate should be disabled by default because its impact on the -// measurements is unknown. +// Global parameters for tracking periods (in milli seconds) SEC(".rodata.config") -__attribute__(( - btf_decl_tag("Sample Rate"))) static volatile const int SAMPLE_RATE = 0; +__attribute__((btf_decl_tag( + "Active Time"))) static volatile const int ACTIVE_TIME = 20; + +// Global parameters for non-tracking periods (in milli seconds) +SEC(".rodata.config") +__attribute__((btf_decl_tag("Idle Time"))) static volatile const int IDLE_TIME = 80; + +// BPF map to track whether we are in the tracking period or not +struct { + __uint(type, BPF_MAP_TYPE_ARRAY); + __type(key, u32); + __type(value, u32); + __uint(max_entries, 1); +} tracking_flag_map SEC(".maps"); + +// BPF map to store the timestamp when the tracking started +struct { + __uint(type, BPF_MAP_TYPE_PERCPU_ARRAY); + __type(key, u32); + __type(value, u64); + __uint(max_entries, 1); +} start_time_map SEC(".maps"); int counter_sched_switch = 0; @@ -317,24 +336,31 @@ static inline int do_kepler_sched_switch_trace( cpu_id = bpf_get_smp_processor_id(); - // Skip some samples to minimize overhead - if (SAMPLE_RATE > 0) { - if (counter_sched_switch > 0) { - // update hardware counters to be used when sample is taken - if (counter_sched_switch == 1) { - collect_metrics_and_reset_counters( - &buf, prev_pid, curr_ts, cpu_id); - // Add task on-cpu running start time - bpf_map_update_elem( - &pid_time_map, &next_pid, &curr_ts, - BPF_ANY); - // create new process metrics - register_new_process_if_not_exist(next_tgid); - } - counter_sched_switch--; + // Retrieve tracking flag and start time + u32 key = 0; + u32 *tracking_flag = bpf_map_lookup_elem(&tracking_flag_map, &key); + u64 *start_time = bpf_map_lookup_elem(&start_time_map, &key); + + if (tracking_flag && start_time) { + u64 elapsed_time = (curr_ts - *start_time) / 1000000ULL; + + // Update the tracking flag based on elapsed time + if (*tracking_flag && elapsed_time >= ACTIVE_TIME) { + // Stop tracking + *tracking_flag = 0; + // Reset start time + *start_time = curr_ts; + } else if (!*tracking_flag && elapsed_time >= IDLE_TIME) { + // Start tracking + *tracking_flag = 1; + // Reset start time + *start_time = curr_ts; + } + + // If we are not in the tracking period, return immediately + if (!*tracking_flag) { return 0; } - counter_sched_switch = SAMPLE_RATE; } collect_metrics_and_reset_counters(&buf, prev_pid, curr_ts, cpu_id); diff --git a/pkg/bpf/exporter.go b/pkg/bpf/exporter.go index 14643370c5..94c05a3231 100644 --- a/pkg/bpf/exporter.go +++ b/pkg/bpf/exporter.go @@ -91,7 +91,13 @@ func (e *exporter) attach() error { // Set program global variables err = specs.RewriteConstants(map[string]interface{}{ - "SAMPLE_RATE": int32(config.GetBPFSampleRate()), + "ACTIVE_TIME": int32(config.GetBPFActiveSampleWindowMS()), + }) + if err != nil { + return fmt.Errorf("error rewriting program constants: %v", err) + } + err = specs.RewriteConstants(map[string]interface{}{ + "IDLE_TIME": int32(config.GetBPFIdleSampleWindowMS()), }) if err != nil { return fmt.Errorf("error rewriting program constants: %v", err) diff --git a/pkg/bpf/kepler_bpfeb.go b/pkg/bpf/kepler_bpfeb.go index 1f82307638..0722685b95 100644 --- a/pkg/bpf/kepler_bpfeb.go +++ b/pkg/bpf/kepler_bpfeb.go @@ -84,6 +84,8 @@ type keplerMapSpecs struct { CpuInstructionsEventReader *ebpf.MapSpec `ebpf:"cpu_instructions_event_reader"` PidTimeMap *ebpf.MapSpec `ebpf:"pid_time_map"` Processes *ebpf.MapSpec `ebpf:"processes"` + StartTimeMap *ebpf.MapSpec `ebpf:"start_time_map"` + TrackingFlagMap *ebpf.MapSpec `ebpf:"tracking_flag_map"` } // keplerObjects contains all objects after they have been loaded into the kernel. @@ -113,6 +115,8 @@ type keplerMaps struct { CpuInstructionsEventReader *ebpf.Map `ebpf:"cpu_instructions_event_reader"` PidTimeMap *ebpf.Map `ebpf:"pid_time_map"` Processes *ebpf.Map `ebpf:"processes"` + StartTimeMap *ebpf.Map `ebpf:"start_time_map"` + TrackingFlagMap *ebpf.Map `ebpf:"tracking_flag_map"` } func (m *keplerMaps) Close() error { @@ -125,6 +129,8 @@ func (m *keplerMaps) Close() error { m.CpuInstructionsEventReader, m.PidTimeMap, m.Processes, + m.StartTimeMap, + m.TrackingFlagMap, ) } diff --git a/pkg/bpf/kepler_bpfeb.o b/pkg/bpf/kepler_bpfeb.o index be2eedd1dfdb270336320a50a2f9197fc7a5fc55..d3b6ada08947dee17fcd295057116e388a45fabe 100644 GIT binary patch literal 16736 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 literal 15224 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 literal 15224 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 D;7UwF diff --git a/pkg/bpftest/bpf_suite_test.go b/pkg/bpftest/bpf_suite_test.go index 74b911431f..3998f945ef 100644 --- a/pkg/bpftest/bpf_suite_test.go +++ b/pkg/bpftest/bpf_suite_test.go @@ -330,7 +330,8 @@ var _ = Describe("BPF Exporter", func() { err = specs.RewriteConstants(map[string]interface{}{ "TEST": int32(1), - "SAMPLE_RATE": int32(1000), + "ACTIVE_TIME": int32(1000), + "IDLE_TIME": int32(0), }) Expect(err).NotTo(HaveOccurred()) diff --git a/pkg/bpftest/test_bpfeb.go b/pkg/bpftest/test_bpfeb.go index db3880c877..0d0477340e 100644 --- a/pkg/bpftest/test_bpfeb.go +++ b/pkg/bpftest/test_bpfeb.go @@ -83,6 +83,8 @@ type testMapSpecs struct { CpuInstructionsEventReader *ebpf.MapSpec `ebpf:"cpu_instructions_event_reader"` PidTimeMap *ebpf.MapSpec `ebpf:"pid_time_map"` Processes *ebpf.MapSpec `ebpf:"processes"` + StartTimeMap *ebpf.MapSpec `ebpf:"start_time_map"` + TrackingFlagMap *ebpf.MapSpec `ebpf:"tracking_flag_map"` } // testObjects contains all objects after they have been loaded into the kernel. @@ -112,6 +114,8 @@ type testMaps struct { CpuInstructionsEventReader *ebpf.Map `ebpf:"cpu_instructions_event_reader"` PidTimeMap *ebpf.Map `ebpf:"pid_time_map"` Processes *ebpf.Map `ebpf:"processes"` + StartTimeMap *ebpf.Map `ebpf:"start_time_map"` + TrackingFlagMap *ebpf.Map `ebpf:"tracking_flag_map"` } func (m *testMaps) Close() error { @@ -124,6 +128,8 @@ func (m *testMaps) Close() error { m.CpuInstructionsEventReader, m.PidTimeMap, m.Processes, + m.StartTimeMap, + m.TrackingFlagMap, ) } diff --git a/pkg/bpftest/test_bpfeb.o b/pkg/bpftest/test_bpfeb.o index f190a3ab7bac5bef9e2497fb95beba4b46cd3b80..5bb5634c00ba05bf6c60aad2e63c7b070b36ca24 100644 GIT binary patch literal 15440 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

3cW}zV!wyb6xai=jgXbJv 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 JZu`IOe*v@C&$a*n diff --git a/pkg/bpftest/test_bpfel.go b/pkg/bpftest/test_bpfel.go index 7317a75a1b..13a613c4f6 100644 --- a/pkg/bpftest/test_bpfel.go +++ b/pkg/bpftest/test_bpfel.go @@ -83,6 +83,8 @@ type testMapSpecs struct { CpuInstructionsEventReader *ebpf.MapSpec `ebpf:"cpu_instructions_event_reader"` PidTimeMap *ebpf.MapSpec `ebpf:"pid_time_map"` Processes *ebpf.MapSpec `ebpf:"processes"` + StartTimeMap *ebpf.MapSpec `ebpf:"start_time_map"` + TrackingFlagMap *ebpf.MapSpec `ebpf:"tracking_flag_map"` } // testObjects contains all objects after they have been loaded into the kernel. @@ -112,6 +114,8 @@ type testMaps struct { CpuInstructionsEventReader *ebpf.Map `ebpf:"cpu_instructions_event_reader"` PidTimeMap *ebpf.Map `ebpf:"pid_time_map"` Processes *ebpf.Map `ebpf:"processes"` + StartTimeMap *ebpf.Map `ebpf:"start_time_map"` + TrackingFlagMap *ebpf.Map `ebpf:"tracking_flag_map"` } func (m *testMaps) Close() error { @@ -124,6 +128,8 @@ func (m *testMaps) Close() error { m.CpuInstructionsEventReader, m.PidTimeMap, m.Processes, + m.StartTimeMap, + m.TrackingFlagMap, ) } diff --git a/pkg/bpftest/test_bpfel.o b/pkg/bpftest/test_bpfel.o index 5c8972722c3cd9d16b12680db8a5487ce2871ca9..136671163d6c920375803bb942f951f92a08c8fa 100644 GIT binary patch literal 15440 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 diff --git a/pkg/config/config.go b/pkg/config/config.go index d02a7e4296..19ea0c5dd5 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -59,11 +59,12 @@ type KeplerConfig struct { MockACPIPowerPath string MaxLookupRetry int KubeConfig string - BPFSampleRate int EstimatorModel string EstimatorSelectFilter string CPUArchOverride string MachineSpecFilePath string + BPFActiveSampleWindowMS int + BPFIdleSampleWindowMS int } type MetricsConfig struct { CoreUsageMetric string @@ -154,10 +155,11 @@ func getKeplerConfig() KeplerConfig { MockACPIPowerPath: getConfig("MOCK_ACPI_POWER_PATH", ""), MaxLookupRetry: getIntConfig("MAX_LOOKUP_RETRY", defaultMaxLookupRetry), KubeConfig: getConfig("KUBE_CONFIG", defaultKubeConfig), - BPFSampleRate: getIntConfig("EXPERIMENTAL_BPF_SAMPLE_RATE", defaultBPFSampleRate), EstimatorModel: getConfig("ESTIMATOR_MODEL", defaultMetricValue), EstimatorSelectFilter: getConfig("ESTIMATOR_SELECT_FILTER", defaultMetricValue), // no filter CPUArchOverride: getConfig("CPU_ARCH_OVERRIDE", defaultCPUArchOverride), + BPFActiveSampleWindowMS: getIntConfig("EXPERIMENTAL_BPF_ACTIVE_SAMPLE_WINDOW_MS", 1000), + BPFIdleSampleWindowMS: getIntConfig("EXPERIMENTAL_BPF_IDLE_SAMPLE_WINDOW_MS", 0), } } @@ -261,7 +263,8 @@ func logBoolConfigs() { klog.V(5).Infof("EXPOSE_BPF_METRICS: %t", instance.Kepler.ExposeBPFMetrics) klog.V(5).Infof("EXPOSE_COMPONENT_POWER: %t", instance.Kepler.ExposeComponentPower) klog.V(5).Infof("EXPOSE_ESTIMATED_IDLE_POWER_METRICS: %t. This only impacts when the power is estimated using pre-prained models. Estimated idle power is meaningful only when Kepler is running on bare-metal or with a single virtual machine (VM) on the node.", instance.Kepler.ExposeIdlePowerMetrics) - klog.V(5).Infof("EXPERIMENTAL_BPF_SAMPLE_RATE: %d", instance.Kepler.BPFSampleRate) + klog.V(5).Infof("EXPERIMENTAL_BPF_ACTIVE_SAMPLE_WINDOW_MS: %d", instance.Kepler.BPFActiveSampleWindowMS) + klog.V(5).Infof("EXPERIMENTAL_BPF_IDLE_SAMPLE_WINDOW_MS: %d", instance.Kepler.BPFIdleSampleWindowMS) } } @@ -395,6 +398,21 @@ func SetGPUUsageMetric(metric string) { instance.Metrics.GPUUsageMetric = metric } +func GetBPFActiveSampleWindowMS() int { + ensureConfigInitialized() + return instance.Kepler.BPFActiveSampleWindowMS +} + +func GetBPFIdleSampleWindowMS() int { + ensureConfigInitialized() + return instance.Kepler.BPFIdleSampleWindowMS +} + +func GetDCGMHostEngineEndpoint() string { + ensureConfigInitialized() + return instance.DCGMHostEngineEndpoint +} + func (c *Config) getUnixName() (unix.Utsname, error) { var utsname unix.Utsname err := unix.Uname(&utsname) @@ -552,11 +570,6 @@ func ExposeIRQCounterMetrics() bool { return instance.Kepler.ExposeIRQCounterMetrics } -func GetBPFSampleRate() int { - ensureConfigInitialized() - return instance.Kepler.BPFSampleRate -} - func GetRedfishCredFilePath() string { ensureConfigInitialized() return instance.Redfish.CredFilePath diff --git a/pkg/sensors/accelerator/device/sources/dcgm.go b/pkg/sensors/accelerator/device/sources/dcgm.go index 9fbba5fdcb..bbeab92f8a 100644 --- a/pkg/sensors/accelerator/device/sources/dcgm.go +++ b/pkg/sensors/accelerator/device/sources/dcgm.go @@ -62,7 +62,7 @@ type GPUDcgm struct { } func init() { - if _, err := dcgm.Init(dcgm.Standalone, config.DCGMHostEngineEndpoint, isSocket); err != nil { + if _, err := dcgm.Init(dcgm.Standalone, config.GetDCGMHostEngineEndpoint(), isSocket); err != nil { klog.Errorf("Error initializing dcgm: %v", err) return } @@ -131,7 +131,7 @@ func (d *GPUDcgm) InitLib() (err error) { err = fmt.Errorf("could not init dcgm: %v", r) } }() - cleanup, err := dcgm.Init(dcgm.Standalone, config.DCGMHostEngineEndpoint, isSocket) + cleanup, err := dcgm.Init(dcgm.Standalone, config.GetDCGMHostEngineEndpoint(), isSocket) if err != nil { klog.Infof("There is no DCGM daemon running in the host: %s", err) // embedded mode is not recommended for production per https://github.com/NVIDIA/dcgm-exporter/issues/22#issuecomment-1321521995