83 jlong memory_and_swap_usage_in_bytes(julong upper_mem_bound, julong upper_swap_bound) override;
84 jlong memory_soft_limit_in_bytes(julong upper_bound) override;
85 jlong memory_throttle_limit_in_bytes() override;
86 jlong memory_max_usage_in_bytes() override;
87 jlong rss_usage_in_bytes() override;
88 jlong cache_usage_in_bytes() override;
89 jlong kernel_memory_usage_in_bytes();
90 jlong kernel_memory_limit_in_bytes(julong upper_bound);
91 jlong kernel_memory_max_usage_in_bytes();
92 void print_version_specific_info(outputStream* st, julong upper_mem_bound) override;
93 bool needs_hierarchy_adjustment() override {
94 return reader()->needs_hierarchy_adjustment();
95 }
96 bool is_read_only() override {
97 return reader()->is_read_only();
98 }
99 const char* subsystem_path() override { return reader()->subsystem_path(); }
100 const char* mount_point() override { return reader()->mount_point(); }
101 const char* cgroup_path() override { return reader()->cgroup_path(); }
102 private:
103 jlong read_mem_swappiness();
104 jlong read_mem_swap(julong upper_memsw_bound);
105
106 public:
107 CgroupV1MemoryController(const CgroupV1Controller& reader)
108 : _reader(reader) {
109 }
110
111 };
112
113 class CgroupV1CpuController final : public CgroupCpuController {
114
115 private:
116 CgroupV1Controller _reader;
117 CgroupV1Controller* reader() { return &_reader; }
118 public:
119 int cpu_quota() override;
120 int cpu_period() override;
121 int cpu_shares() override;
122 void set_subsystem_path(const char *cgroup_path) override {
|
83 jlong memory_and_swap_usage_in_bytes(julong upper_mem_bound, julong upper_swap_bound) override;
84 jlong memory_soft_limit_in_bytes(julong upper_bound) override;
85 jlong memory_throttle_limit_in_bytes() override;
86 jlong memory_max_usage_in_bytes() override;
87 jlong rss_usage_in_bytes() override;
88 jlong cache_usage_in_bytes() override;
89 jlong kernel_memory_usage_in_bytes();
90 jlong kernel_memory_limit_in_bytes(julong upper_bound);
91 jlong kernel_memory_max_usage_in_bytes();
92 void print_version_specific_info(outputStream* st, julong upper_mem_bound) override;
93 bool needs_hierarchy_adjustment() override {
94 return reader()->needs_hierarchy_adjustment();
95 }
96 bool is_read_only() override {
97 return reader()->is_read_only();
98 }
99 const char* subsystem_path() override { return reader()->subsystem_path(); }
100 const char* mount_point() override { return reader()->mount_point(); }
101 const char* cgroup_path() override { return reader()->cgroup_path(); }
102 private:
103 jlong uses_mem_hierarchy();
104 jlong read_mem_swappiness();
105 jlong read_mem_swap(julong upper_memsw_bound);
106
107 public:
108 CgroupV1MemoryController(const CgroupV1Controller& reader)
109 : _reader(reader) {
110 }
111
112 };
113
114 class CgroupV1CpuController final : public CgroupCpuController {
115
116 private:
117 CgroupV1Controller _reader;
118 CgroupV1Controller* reader() { return &_reader; }
119 public:
120 int cpu_quota() override;
121 int cpu_period() override;
122 int cpu_shares() override;
123 void set_subsystem_path(const char *cgroup_path) override {
|