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