Skip to content

Commit

Permalink
Templated class use references
Browse files Browse the repository at this point in the history
  • Loading branch information
jerboaa committed Jun 14, 2024
1 parent 5d7537f commit 2e2b4eb
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 23 deletions.
4 changes: 2 additions & 2 deletions src/hotspot/os/linux/cgroupSubsystem_linux.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,7 @@ int CgroupSubsystem::active_processor_count() {
// We use a cache with a timeout to avoid performing expensive
// computations in the event this function is called frequently.
// [See 8227006].
CachingCgroupController<CgroupCpuController*>* contrl = cpu_controller();
CachingCgroupController<CgroupCpuController>* contrl = cpu_controller();
CachedMetric* cpu_limit = contrl->metrics_cache();
if (!cpu_limit->should_check_metric()) {
int val = (int)cpu_limit->value();
Expand All @@ -511,7 +511,7 @@ int CgroupSubsystem::active_processor_count() {
* OSCONTAINER_ERROR for not supported
*/
jlong CgroupSubsystem::memory_limit_in_bytes() {
CachingCgroupController<CgroupMemoryController*>* contrl = memory_controller();
CachingCgroupController<CgroupMemoryController>* contrl = memory_controller();
CachedMetric* memory_limit = contrl->metrics_cache();
if (!memory_limit->should_check_metric()) {
return memory_limit->value();
Expand Down
10 changes: 5 additions & 5 deletions src/hotspot/os/linux/cgroupSubsystem_linux.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -182,17 +182,17 @@ class CachedMetric : public CHeapObj<mtInternal>{
template <class T>
class CachingCgroupController : public CHeapObj<mtInternal> {
private:
T _controller;
T* _controller;
CachedMetric* _metrics_cache;

public:
CachingCgroupController(T cont) {
CachingCgroupController(T* cont) {
_controller = cont;
_metrics_cache = new CachedMetric();
}

CachedMetric* metrics_cache() { return _metrics_cache; }
T controller() { return _controller; }
T* controller() { return _controller; }
};

// Pure virtual class representing version agnostic CPU controllers
Expand Down Expand Up @@ -231,8 +231,8 @@ class CgroupSubsystem: public CHeapObj<mtInternal> {
virtual char * cpu_cpuset_cpus() = 0;
virtual char * cpu_cpuset_memory_nodes() = 0;
virtual const char * container_type() = 0;
virtual CachingCgroupController<CgroupMemoryController*>* memory_controller() = 0;
virtual CachingCgroupController<CgroupCpuController*>* cpu_controller() = 0;
virtual CachingCgroupController<CgroupMemoryController>* memory_controller() = 0;
virtual CachingCgroupController<CgroupCpuController>* cpu_controller() = 0;

jlong memory_usage_in_bytes();
jlong memory_and_swap_limit_in_bytes();
Expand Down
20 changes: 10 additions & 10 deletions src/hotspot/os/linux/cgroupV1Subsystem_linux.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,14 +119,14 @@ class CgroupV1Subsystem: public CgroupSubsystem {
const char * container_type() {
return "cgroupv1";
}
CachingCgroupController<CgroupMemoryController*>* memory_controller() { return _memory; }
CachingCgroupController<CgroupCpuController*>* cpu_controller() { return _cpu; }
CachingCgroupController<CgroupMemoryController>* memory_controller() { return _memory; }
CachingCgroupController<CgroupCpuController>* cpu_controller() { return _cpu; }

private:
/* controllers */
CachingCgroupController<CgroupMemoryController*>* _memory = nullptr;
CachingCgroupController<CgroupMemoryController>* _memory = nullptr;
CgroupV1Controller* _cpuset = nullptr;
CachingCgroupController<CgroupCpuController*>* _cpu = nullptr;
CachingCgroupController<CgroupCpuController>* _cpu = nullptr;
CgroupV1Controller* _cpuacct = nullptr;
CgroupV1Controller* _pids = nullptr;

Expand All @@ -135,12 +135,12 @@ class CgroupV1Subsystem: public CgroupSubsystem {
CgroupV1CpuController* cpu,
CgroupV1Controller* cpuacct,
CgroupV1Controller* pids,
CgroupV1MemoryController* memory) {
_cpuset = cpuset;
_cpu = new CachingCgroupController<CgroupCpuController*>(cpu);
_cpuacct = cpuacct;
_pids = pids;
_memory = new CachingCgroupController<CgroupMemoryController*>(memory);
CgroupV1MemoryController* memory) :
_memory(new CachingCgroupController<CgroupMemoryController>(memory)),
_cpuset(cpuset),
_cpu(new CachingCgroupController<CgroupCpuController>(cpu)),
_cpuacct(cpuacct),
_pids(pids) {
}
};

Expand Down
12 changes: 6 additions & 6 deletions src/hotspot/os/linux/cgroupV2Subsystem_linux.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,16 +82,16 @@ class CgroupV2Subsystem: public CgroupSubsystem {
/* One unified controller */
CgroupV2Controller* _unified = nullptr;
/* Caching wrappers for cpu/memory metrics */
CachingCgroupController<CgroupMemoryController*>* _memory = nullptr;
CachingCgroupController<CgroupCpuController*>* _cpu = nullptr;
CachingCgroupController<CgroupMemoryController>* _memory = nullptr;
CachingCgroupController<CgroupCpuController>* _cpu = nullptr;

public:
CgroupV2Subsystem(CgroupV2MemoryController* memory,
CgroupV2CpuController* cpu,
CgroupV2Controller* unified) :
_unified(unified),
_memory(new CachingCgroupController<CgroupMemoryController*>(memory)),
_cpu(new CachingCgroupController<CgroupCpuController*>(cpu)) {
_memory(new CachingCgroupController<CgroupMemoryController>(memory)),
_cpu(new CachingCgroupController<CgroupCpuController>(cpu)) {
}

jlong read_memory_limit_in_bytes();
Expand All @@ -116,8 +116,8 @@ class CgroupV2Subsystem: public CgroupSubsystem {
const char * container_type() {
return "cgroupv2";
}
CachingCgroupController<CgroupMemoryController*>* memory_controller() { return _memory; }
CachingCgroupController<CgroupCpuController*>* cpu_controller() { return _cpu; }
CachingCgroupController<CgroupMemoryController>* memory_controller() { return _memory; }
CachingCgroupController<CgroupCpuController>* cpu_controller() { return _cpu; }
};

#endif // CGROUP_V2_SUBSYSTEM_LINUX_HPP

0 comments on commit 2e2b4eb

Please sign in to comment.