You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2018/05/11 07:55:01 UTC
[1/3] mesos git commit: Explicitly marked functions `override` in
cgroup subsystems.
Repository: mesos
Updated Branches:
refs/heads/master 77279f025 -> fc25a22cb
Explicitly marked functions `override` in cgroup subsystems.
This patch adds `override` keywords to functions overriding `virtual`
base class functions. This explicitness helps in a subsequent patch in
refactoring the `Subsystem` base class interface.
Review: https://reviews.apache.org/r/66634/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/d8c71050
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/d8c71050
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/d8c71050
Branch: refs/heads/master
Commit: d8c710504f278a6463488553106d27b6bc5fc808
Parents: 77279f0
Author: Benjamin Bannier <be...@mesosphere.io>
Authored: Fri May 11 00:54:20 2018 -0700
Committer: Gilbert Song <so...@gmail.com>
Committed: Fri May 11 00:54:20 2018 -0700
----------------------------------------------------------------------
.../isolators/cgroups/subsystems/blkio.hpp | 8 +++---
.../mesos/isolators/cgroups/subsystems/cpu.hpp | 12 ++++-----
.../isolators/cgroups/subsystems/cpuacct.hpp | 8 +++---
.../isolators/cgroups/subsystems/cpuset.hpp | 4 +--
.../isolators/cgroups/subsystems/devices.hpp | 16 +++++------
.../isolators/cgroups/subsystems/hugetlb.hpp | 4 +--
.../isolators/cgroups/subsystems/memory.hpp | 28 ++++++++++----------
.../isolators/cgroups/subsystems/net_cls.hpp | 24 ++++++++---------
.../isolators/cgroups/subsystems/net_prio.hpp | 4 +--
.../isolators/cgroups/subsystems/perf_event.hpp | 22 +++++++--------
.../mesos/isolators/cgroups/subsystems/pids.hpp | 4 +--
11 files changed, 67 insertions(+), 67 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/d8c71050/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.hpp
index ebddf4e..7d6bb9b 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.hpp
@@ -42,16 +42,16 @@ public:
const Flags& flags,
const std::string& hierarchy);
- virtual ~BlkioSubsystem() {}
+ ~BlkioSubsystem() override = default;
- virtual std::string name() const
+ std::string name() const override
{
return CGROUP_SUBSYSTEM_BLKIO_NAME;
};
- virtual process::Future<ResourceStatistics> usage(
+ process::Future<ResourceStatistics> usage(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
private:
BlkioSubsystem(const Flags& flags, const std::string& hierarchy);
http://git-wip-us.apache.org/repos/asf/mesos/blob/d8c71050/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.hpp
index 282a761..01d14ab 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.hpp
@@ -42,21 +42,21 @@ public:
const Flags& flags,
const std::string& hierarchy);
- virtual ~CpuSubsystem() {}
+ ~CpuSubsystem() override = default;
- virtual std::string name() const
+ std::string name() const override
{
return CGROUP_SUBSYSTEM_CPU_NAME;
};
- virtual process::Future<Nothing> update(
+ process::Future<Nothing> update(
const ContainerID& containerId,
const std::string& cgroup,
- const Resources& resources);
+ const Resources& resources) override;
- virtual process::Future<ResourceStatistics> usage(
+ process::Future<ResourceStatistics> usage(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
private:
CpuSubsystem(const Flags& flags, const std::string& hierarchy);
http://git-wip-us.apache.org/repos/asf/mesos/blob/d8c71050/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.hpp
index e4977da..60d348c 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.hpp
@@ -42,16 +42,16 @@ public:
const Flags& flags,
const std::string& hierarchy);
- virtual ~CpuacctSubsystem() {}
+ ~CpuacctSubsystem() override = default;
- virtual std::string name() const
+ std::string name() const override
{
return CGROUP_SUBSYSTEM_CPUACCT_NAME;
}
- virtual process::Future<ResourceStatistics> usage(
+ process::Future<ResourceStatistics> usage(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
private:
CpuacctSubsystem(const Flags& flags, const std::string& hierarchy);
http://git-wip-us.apache.org/repos/asf/mesos/blob/d8c71050/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.hpp
index b5d712a..1360d0f 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.hpp
@@ -42,9 +42,9 @@ public:
const Flags& flags,
const std::string& hierarchy);
- virtual ~CpusetSubsystem() {}
+ ~CpusetSubsystem() override = default;
- virtual std::string name() const
+ std::string name() const override
{
return CGROUP_SUBSYSTEM_CPUSET_NAME;
};
http://git-wip-us.apache.org/repos/asf/mesos/blob/d8c71050/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.hpp
index 4ab224e..4f48ca0 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.hpp
@@ -46,24 +46,24 @@ public:
const Flags& flags,
const std::string& hierarchy);
- virtual ~DevicesSubsystem() {}
+ ~DevicesSubsystem() override = default;
- virtual std::string name() const
+ std::string name() const override
{
return CGROUP_SUBSYSTEM_DEVICES_NAME;
}
- virtual process::Future<Nothing> prepare(
+ process::Future<Nothing> prepare(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
- virtual process::Future<Nothing> recover(
+ process::Future<Nothing> recover(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
- virtual process::Future<Nothing> cleanup(
+ process::Future<Nothing> cleanup(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
private:
DevicesSubsystem(
http://git-wip-us.apache.org/repos/asf/mesos/blob/d8c71050/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.hpp
index 2740713..98d50a6 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.hpp
@@ -42,9 +42,9 @@ public:
const Flags& flags,
const std::string& hierarchy);
- virtual ~HugetlbSubsystem() {}
+ ~HugetlbSubsystem() override = default;
- virtual std::string name() const
+ std::string name() const override
{
return CGROUP_SUBSYSTEM_HUGETLB_NAME;
};
http://git-wip-us.apache.org/repos/asf/mesos/blob/d8c71050/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.hpp
index d79fda3..654ccb9 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.hpp
@@ -48,37 +48,37 @@ public:
const Flags& flags,
const std::string& hierarchy);
- virtual ~MemorySubsystem() {}
+ ~MemorySubsystem() override = default;
- virtual std::string name() const
+ std::string name() const override
{
return CGROUP_SUBSYSTEM_MEMORY_NAME;
}
- virtual process::Future<Nothing> prepare(
+ process::Future<Nothing> prepare(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
- virtual process::Future<Nothing> recover(
+ process::Future<Nothing> recover(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
- virtual process::Future<mesos::slave::ContainerLimitation> watch(
+ process::Future<mesos::slave::ContainerLimitation> watch(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
- virtual process::Future<Nothing> update(
+ process::Future<Nothing> update(
const ContainerID& containerId,
const std::string& cgroup,
- const Resources& resources);
+ const Resources& resources) override;
- virtual process::Future<ResourceStatistics> usage(
+ process::Future<ResourceStatistics> usage(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
- virtual process::Future<Nothing> cleanup(
+ process::Future<Nothing> cleanup(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
private:
struct Info
http://git-wip-us.apache.org/repos/asf/mesos/blob/d8c71050/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.hpp
index bcaa161..be36659 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.hpp
@@ -137,33 +137,33 @@ public:
const Flags& flags,
const std::string& hierarchy);
- virtual ~NetClsSubsystem() {}
+ ~NetClsSubsystem() override = default;
- virtual std::string name() const
+ std::string name() const override
{
return CGROUP_SUBSYSTEM_NET_CLS_NAME;
}
- virtual process::Future<Nothing> recover(
+ process::Future<Nothing> recover(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
- virtual process::Future<Nothing> prepare(
+ process::Future<Nothing> prepare(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
- virtual process::Future<Nothing> isolate(
+ process::Future<Nothing> isolate(
const ContainerID& containerId,
const std::string& cgroup,
- pid_t pid);
+ pid_t pid) override;
- virtual process::Future<ContainerStatus> status(
+ process::Future<ContainerStatus> status(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
- virtual process::Future<Nothing> cleanup(
+ process::Future<Nothing> cleanup(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
private:
NetClsSubsystem(
http://git-wip-us.apache.org/repos/asf/mesos/blob/d8c71050/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.hpp
index 002c689..e6bb83f 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.hpp
@@ -42,9 +42,9 @@ public:
const Flags& flags,
const std::string& hierarchy);
- virtual ~NetPrioSubsystem() {}
+ ~NetPrioSubsystem() override = default;
- virtual std::string name() const
+ std::string name() const override
{
return CGROUP_SUBSYSTEM_NET_PRIO_NAME;
};
http://git-wip-us.apache.org/repos/asf/mesos/blob/d8c71050/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.hpp
index 14c0e79..a55cdef 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.hpp
@@ -48,31 +48,31 @@ public:
const Flags& flags,
const std::string& hierarchy);
- virtual ~PerfEventSubsystem() {}
+ ~PerfEventSubsystem() override = default;
- virtual std::string name() const
+ std::string name() const override
{
return CGROUP_SUBSYSTEM_PERF_EVENT_NAME;
}
- virtual process::Future<Nothing> prepare(
+ process::Future<Nothing> prepare(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
- virtual process::Future<Nothing> recover(
+ process::Future<Nothing> recover(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
- virtual process::Future<ResourceStatistics> usage(
+ process::Future<ResourceStatistics> usage(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
- virtual process::Future<Nothing> cleanup(
+ process::Future<Nothing> cleanup(
const ContainerID& containerId,
- const std::string& cgroup);
+ const std::string& cgroup) override;
protected:
- virtual void initialize();
+ void initialize() override;
private:
PerfEventSubsystem(
http://git-wip-us.apache.org/repos/asf/mesos/blob/d8c71050/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.hpp
index cb6c919..e0f344d 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.hpp
@@ -42,9 +42,9 @@ public:
const Flags& flags,
const std::string& hierarchy);
- virtual ~PidsSubsystem() {}
+ ~PidsSubsystem() override = default;
- virtual std::string name() const
+ std::string name() const override
{
return CGROUP_SUBSYSTEM_PIDS_NAME;
};
[3/3] mesos git commit: Introduced wrapper for access to cgroups
system access.
Posted by gi...@apache.org.
Introduced wrapper for access to cgroups system access.
Different cgroups subsystems are modelled as actors. In this patch we
introduce wrapper classes which `dispatch` to the processes. This
removes e.g., races from mixing naked and `dispatch`'ed method calls.
Review: https://reviews.apache.org/r/66635/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/fc25a22c
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/fc25a22c
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/fc25a22c
Branch: refs/heads/master
Commit: fc25a22cbb18d8a044473cc2dc6a0bb6c8d2dbf2
Parents: 1168de4
Author: Benjamin Bannier <be...@mesosphere.io>
Authored: Fri May 11 00:54:32 2018 -0700
Committer: Gilbert Song <so...@gmail.com>
Committed: Fri May 11 00:54:32 2018 -0700
----------------------------------------------------------------------
.../mesos/isolators/cgroups/cgroups.cpp | 46 ++-----
.../mesos/isolators/cgroups/cgroups.hpp | 9 +-
.../mesos/isolators/cgroups/subsystem.cpp | 126 ++++++++++++++++++-
.../mesos/isolators/cgroups/subsystem.hpp | 79 ++++++++++--
4 files changed, 207 insertions(+), 53 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/fc25a22c/src/slave/containerizer/mesos/isolators/cgroups/cgroups.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/cgroups.cpp b/src/slave/containerizer/mesos/isolators/cgroups/cgroups.cpp
index a03e0ad..6d663a5 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/cgroups.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/cgroups.cpp
@@ -57,7 +57,7 @@ namespace slave {
CgroupsIsolatorProcess::CgroupsIsolatorProcess(
const Flags& _flags,
const hashmap<string, string>& _hierarchies,
- const multihashmap<string, Owned<SubsystemProcess>>& _subsystems)
+ const multihashmap<string, Owned<Subsystem>>& _subsystems)
: ProcessBase(process::ID::generate("cgroups-isolator")),
flags(_flags),
hierarchies(_hierarchies),
@@ -73,7 +73,7 @@ Try<Isolator*> CgroupsIsolatorProcess::create(const Flags& flags)
hashmap<string, string> hierarchies;
// Hierarchy path -> subsystem object.
- multihashmap<string, Owned<SubsystemProcess>> subsystems;
+ multihashmap<string, Owned<Subsystem>> subsystems;
// Multimap: isolator name -> subsystem name.
multihashmap<string, string> isolatorMap = {
@@ -124,8 +124,8 @@ Try<Isolator*> CgroupsIsolatorProcess::create(const Flags& flags)
}
// Create and load the subsystem.
- Try<Owned<SubsystemProcess>> subsystem =
- SubsystemProcess::create(flags, subsystemName, hierarchy.get());
+ Try<Owned<Subsystem>> subsystem =
+ Subsystem::create(flags, subsystemName, hierarchy.get());
if (subsystem.isError()) {
return Error(
@@ -157,23 +157,6 @@ bool CgroupsIsolatorProcess::supportsStandalone()
}
-void CgroupsIsolatorProcess::initialize()
-{
- foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
- spawn(subsystem.get());
- }
-}
-
-
-void CgroupsIsolatorProcess::finalize()
-{
- foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
- terminate(subsystem.get());
- wait(subsystem.get());
- }
-}
-
-
Future<Nothing> CgroupsIsolatorProcess::recover(
const list<ContainerState>& states,
const hashset<ContainerID>& orphans)
@@ -338,8 +321,7 @@ Future<Nothing> CgroupsIsolatorProcess::___recover(
continue;
}
- foreach (
- const Owned<SubsystemProcess>& subsystem, subsystems.get(hierarchy)) {
+ foreach (const Owned<Subsystem>& subsystem, subsystems.get(hierarchy)) {
recoveredSubsystems.insert(subsystem->name());
recovers.push_back(subsystem->recover(containerId, cgroup));
}
@@ -439,8 +421,7 @@ Future<Option<ContainerLaunchInfo>> CgroupsIsolatorProcess::prepare(
"'" + path + "': " + create.error());
}
- foreach (
- const Owned<SubsystemProcess>& subsystem, subsystems.get(hierarchy)) {
+ foreach (const Owned<Subsystem>& subsystem, subsystems.get(hierarchy)) {
infos[containerId]->subsystems.insert(subsystem->name());
prepares.push_back(subsystem->prepare(
containerId,
@@ -578,7 +559,7 @@ Future<Nothing> CgroupsIsolatorProcess::isolate(
}
list<Future<Nothing>> isolates;
- foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
+ foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
isolates.push_back(subsystem->isolate(
containerId,
infos[containerId]->cgroup,
@@ -629,7 +610,7 @@ Future<ContainerLimitation> CgroupsIsolatorProcess::watch(
return Failure("Unknown container");
}
- foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
+ foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
if (infos[containerId]->subsystems.contains(subsystem->name())) {
subsystem->watch(containerId, infos[containerId]->cgroup)
.onAny(defer(
@@ -671,7 +652,7 @@ Future<Nothing> CgroupsIsolatorProcess::update(
}
list<Future<Nothing>> updates;
- foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
+ foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
if (infos[containerId]->subsystems.contains(subsystem->name())) {
updates.push_back(subsystem->update(
containerId,
@@ -722,7 +703,7 @@ Future<ResourceStatistics> CgroupsIsolatorProcess::usage(
}
list<Future<ResourceStatistics>> usages;
- foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
+ foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
if (infos[containerId]->subsystems.contains(subsystem->name())) {
usages.push_back(subsystem->usage(
containerId,
@@ -765,7 +746,7 @@ Future<ContainerStatus> CgroupsIsolatorProcess::status(
}
list<Future<ContainerStatus>> statuses;
- foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
+ foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
if (infos[containerId]->subsystems.contains(subsystem->name())) {
statuses.push_back(subsystem->status(
containerId,
@@ -808,7 +789,7 @@ Future<Nothing> CgroupsIsolatorProcess::cleanup(
}
list<Future<Nothing>> cleanups;
- foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
+ foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
if (infos[containerId]->subsystems.contains(subsystem->name())) {
cleanups.push_back(subsystem->cleanup(
containerId,
@@ -850,8 +831,7 @@ Future<Nothing> CgroupsIsolatorProcess::_cleanup(
// TODO(haosdent): Use foreachkey once MESOS-5037 is resolved.
foreach (const string& hierarchy, subsystems.keys()) {
- foreach (
- const Owned<SubsystemProcess>& subsystem, subsystems.get(hierarchy)) {
+ foreach (const Owned<Subsystem>& subsystem, subsystems.get(hierarchy)) {
if (infos[containerId]->subsystems.contains(subsystem->name())) {
destroys.push_back(cgroups::destroy(
hierarchy,
http://git-wip-us.apache.org/repos/asf/mesos/blob/fc25a22c/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp b/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp
index 9dcd5da..f47b16e 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp
@@ -81,11 +81,6 @@ public:
virtual process::Future<Nothing> cleanup(
const ContainerID& containerId);
-protected:
- virtual void initialize();
-
- virtual void finalize();
-
private:
struct Info
{
@@ -107,7 +102,7 @@ private:
CgroupsIsolatorProcess(
const Flags& _flags,
const hashmap<std::string, std::string>& _hierarchies,
- const multihashmap<std::string, process::Owned<SubsystemProcess>>&
+ const multihashmap<std::string, process::Owned<Subsystem>>&
_subsystems);
process::Future<Nothing> _recover(
@@ -162,7 +157,7 @@ private:
// /cgroup/memory -> memory
// As we see, subsystem 'cpu' and 'cpuacct' are co-mounted at
// '/cgroup/cpu,cpuacct'.
- multihashmap<std::string, process::Owned<SubsystemProcess>> subsystems;
+ multihashmap<std::string, process::Owned<Subsystem>> subsystems;
// Store cgroups associated information for containers.
hashmap<ContainerID, process::Owned<Info>> infos;
http://git-wip-us.apache.org/repos/asf/mesos/blob/fc25a22c/src/slave/containerizer/mesos/isolators/cgroups/subsystem.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystem.cpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystem.cpp
index 1ba6ec4..dc6c7aa 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystem.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystem.cpp
@@ -14,6 +14,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+#include <utility>
+
#include <stout/error.hpp>
#include <stout/hashmap.hpp>
@@ -43,7 +45,27 @@ namespace mesos {
namespace internal {
namespace slave {
-Try<Owned<SubsystemProcess>> SubsystemProcess::create(
+Subsystem::Subsystem(Owned<SubsystemProcess> _process)
+ : process(std::move(_process))
+{
+ process::spawn(process.get());
+}
+
+
+Subsystem::~Subsystem()
+{
+ process::terminate(process.get());
+ process::wait(process.get());
+}
+
+
+string Subsystem::name() const
+{
+ return process->name();
+}
+
+
+Try<Owned<Subsystem>> Subsystem::create(
const Flags& flags,
const string& name,
const string& hierarchy)
@@ -76,7 +98,107 @@ Try<Owned<SubsystemProcess>> SubsystemProcess::create(
subsystemProcess.error());
}
- return subsystemProcess.get();
+ return Owned<Subsystem>(new Subsystem(subsystemProcess.get()));
+}
+
+
+Future<Nothing> Subsystem::recover(
+ const ContainerID& containerId,
+ const string& cgroup)
+{
+ return process::dispatch(
+ process.get(),
+ &SubsystemProcess::recover,
+ containerId,
+ cgroup);
+}
+
+
+Future<Nothing> Subsystem::prepare(
+ const ContainerID& containerId,
+ const string& cgroup)
+{
+ return process::dispatch(
+ process.get(),
+ &SubsystemProcess::prepare,
+ containerId,
+ cgroup);
+}
+
+
+Future<Nothing> Subsystem::isolate(
+ const ContainerID& containerId,
+ const string& cgroup,
+ pid_t pid)
+{
+ return process::dispatch(
+ process.get(),
+ &SubsystemProcess::isolate,
+ containerId,
+ cgroup,
+ pid);
+}
+
+
+Future<mesos::slave::ContainerLimitation> Subsystem::watch(
+ const ContainerID& containerId,
+ const string& cgroup)
+{
+ return process::dispatch(
+ process.get(),
+ &SubsystemProcess::watch,
+ containerId,
+ cgroup);
+}
+
+
+Future<Nothing> Subsystem::update(
+ const ContainerID& containerId,
+ const string& cgroup,
+ const Resources& resources)
+{
+ return process::dispatch(
+ process.get(),
+ &SubsystemProcess::update,
+ containerId,
+ cgroup,
+ resources);
+}
+
+
+Future<ResourceStatistics> Subsystem::usage(
+ const ContainerID& containerId,
+ const string& cgroup)
+{
+ return process::dispatch(
+ process.get(),
+ &SubsystemProcess::usage,
+ containerId,
+ cgroup);
+}
+
+
+Future<ContainerStatus> Subsystem::status(
+ const ContainerID& containerId,
+ const string& cgroup)
+{
+ return process::dispatch(
+ process.get(),
+ &SubsystemProcess::status,
+ containerId,
+ cgroup);
+}
+
+
+Future<Nothing> Subsystem::cleanup(
+ const ContainerID& containerId,
+ const string& cgroup)
+{
+ return process::dispatch(
+ process.get(),
+ &SubsystemProcess::cleanup,
+ containerId,
+ cgroup);
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/fc25a22c/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp
index c99a00c..5ae8253 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp
@@ -36,10 +36,12 @@ namespace mesos {
namespace internal {
namespace slave {
+class SubsystemProcess;
+
/**
* An abstraction for cgroups subsystem.
*/
-class SubsystemProcess : public process::Process<SubsystemProcess>
+class Subsystem
{
public:
/**
@@ -51,19 +53,26 @@ public:
* @param hierarchy The hierarchy path of cgroups subsystem.
* @return A specific `Subsystem` object or an error if `create` fails.
*/
- static Try<process::Owned<SubsystemProcess>> create(
+ static Try<process::Owned<Subsystem>> create(
const Flags& flags,
const std::string& name,
const std::string& hierarchy);
- virtual ~SubsystemProcess() {}
+ // We have unique ownership of the wrapped process and
+ // enforce that objects of this class cannot be copied.
+ //
+ // TODO(bbannier): Remove this once MESOS-5122 is resolved.
+ Subsystem(const Subsystem&) = delete;
+ Subsystem& operator=(const Subsystem&) = delete;
+
+ ~Subsystem();
/**
* The cgroups subsystem name of this `Subsystem` object.
*
* @return The cgroups subsystem name.
*/
- virtual std::string name() const = 0;
+ std::string name() const;
/**
* Recover the cgroups subsystem for the associated container.
@@ -72,7 +81,7 @@ public:
* @param cgroup The target cgroup.
* @return Nothing or an error if `recover` fails.
*/
- virtual process::Future<Nothing> recover(
+ process::Future<Nothing> recover(
const ContainerID& containerId,
const std::string& cgroup);
@@ -83,7 +92,7 @@ public:
* @param cgroup The target cgroup.
* @return Nothing or an error if `prepare` fails.
*/
- virtual process::Future<Nothing> prepare(
+ process::Future<Nothing> prepare(
const ContainerID& containerId,
const std::string& cgroup);
@@ -95,7 +104,7 @@ public:
* @param pid The process id of container.
* @return Nothing or an error if `isolate` fails.
*/
- virtual process::Future<Nothing> isolate(
+ process::Future<Nothing> isolate(
const ContainerID& containerId,
const std::string& cgroup,
pid_t pid);
@@ -108,7 +117,7 @@ public:
* @return The resource limitation that impacts the container or an
* error if `watch` fails.
*/
- virtual process::Future<mesos::slave::ContainerLimitation> watch(
+ process::Future<mesos::slave::ContainerLimitation> watch(
const ContainerID& containerId,
const std::string& cgroup);
@@ -121,7 +130,7 @@ public:
* @param resources The resources need to update.
* @return Nothing or an error if `update` fails.
*/
- virtual process::Future<Nothing> update(
+ process::Future<Nothing> update(
const ContainerID& containerId,
const std::string& cgroup,
const Resources& resources);
@@ -135,7 +144,7 @@ public:
* @return The resource usage statistics or an error if gather statistics
* fails.
*/
- virtual process::Future<ResourceStatistics> usage(
+ process::Future<ResourceStatistics> usage(
const ContainerID& containerId,
const std::string& cgroup);
@@ -147,7 +156,7 @@ public:
* @param cgroup The target cgroup.
* @return The container status or an error if get fails.
*/
- virtual process::Future<ContainerStatus> status(
+ process::Future<ContainerStatus> status(
const ContainerID& containerId,
const std::string& cgroup);
@@ -163,6 +172,54 @@ public:
* @param cgroup The target cgroup.
* @return Nothing or an error if `cleanup` fails.
*/
+ process::Future<Nothing> cleanup(
+ const ContainerID& containerId,
+ const std::string& cgroup);
+
+private:
+ explicit Subsystem(process::Owned<SubsystemProcess> process);
+
+ process::Owned<SubsystemProcess> process;
+};
+
+
+class SubsystemProcess : public process::Process<SubsystemProcess>
+{
+public:
+ virtual ~SubsystemProcess() {}
+
+ virtual std::string name() const = 0;
+
+ virtual process::Future<Nothing> recover(
+ const ContainerID& containerId,
+ const std::string& cgroup);
+
+ virtual process::Future<Nothing> prepare(
+ const ContainerID& containerId,
+ const std::string& cgroup);
+
+ virtual process::Future<Nothing> isolate(
+ const ContainerID& containerId,
+ const std::string& cgroup,
+ pid_t pid);
+
+ virtual process::Future<mesos::slave::ContainerLimitation> watch(
+ const ContainerID& containerId,
+ const std::string& cgroup);
+
+ virtual process::Future<Nothing> update(
+ const ContainerID& containerId,
+ const std::string& cgroup,
+ const Resources& resources);
+
+ virtual process::Future<ResourceStatistics> usage(
+ const ContainerID& containerId,
+ const std::string& cgroup);
+
+ virtual process::Future<ContainerStatus> status(
+ const ContainerID& containerId,
+ const std::string& cgroup);
+
virtual process::Future<Nothing> cleanup(
const ContainerID& containerId,
const std::string& cgroup);
[2/3] mesos git commit: Renamed cgroups subsystem processes.
Posted by gi...@apache.org.
Renamed cgroups subsystem processes.
The different cgroups subsystems are modelled as actors implemented as
libprocess `Process`es. This patch renames the classes to clearly
reflect their `Process` nature.
In a subsequent patch we will introduce a wrapper class to access
subsystems.
Review: https://reviews.apache.org/r/66987/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/1168de48
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/1168de48
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/1168de48
Branch: refs/heads/master
Commit: 1168de48a1133f33767ea4ad5cec8e48f49cf07e
Parents: d8c7105
Author: Benjamin Bannier <be...@mesosphere.io>
Authored: Fri May 11 00:54:25 2018 -0700
Committer: Gilbert Song <so...@gmail.com>
Committed: Fri May 11 00:54:25 2018 -0700
----------------------------------------------------------------------
.../mesos/isolators/cgroups/cgroups.cpp | 33 ++++++------
.../mesos/isolators/cgroups/cgroups.hpp | 5 +-
.../mesos/isolators/cgroups/subsystem.cpp | 54 ++++++++++----------
.../mesos/isolators/cgroups/subsystem.hpp | 8 +--
.../isolators/cgroups/subsystems/blkio.cpp | 10 ++--
.../isolators/cgroups/subsystems/blkio.hpp | 8 +--
.../mesos/isolators/cgroups/subsystems/cpu.cpp | 12 ++---
.../mesos/isolators/cgroups/subsystems/cpu.hpp | 8 +--
.../isolators/cgroups/subsystems/cpuacct.cpp | 10 ++--
.../isolators/cgroups/subsystems/cpuacct.hpp | 8 +--
.../isolators/cgroups/subsystems/cpuset.cpp | 8 +--
.../isolators/cgroups/subsystems/cpuset.hpp | 8 +--
.../isolators/cgroups/subsystems/devices.cpp | 16 +++---
.../isolators/cgroups/subsystems/devices.hpp | 8 +--
.../isolators/cgroups/subsystems/hugetlb.cpp | 8 +--
.../isolators/cgroups/subsystems/hugetlb.hpp | 8 +--
.../isolators/cgroups/subsystems/memory.cpp | 36 ++++++-------
.../isolators/cgroups/subsystems/memory.hpp | 8 +--
.../isolators/cgroups/subsystems/net_cls.cpp | 22 ++++----
.../isolators/cgroups/subsystems/net_cls.hpp | 8 +--
.../isolators/cgroups/subsystems/net_prio.cpp | 8 +--
.../isolators/cgroups/subsystems/net_prio.hpp | 8 +--
.../isolators/cgroups/subsystems/perf_event.cpp | 31 +++++------
.../isolators/cgroups/subsystems/perf_event.hpp | 8 +--
.../mesos/isolators/cgroups/subsystems/pids.cpp | 8 +--
.../mesos/isolators/cgroups/subsystems/pids.hpp | 8 +--
26 files changed, 182 insertions(+), 175 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/cgroups.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/cgroups.cpp b/src/slave/containerizer/mesos/isolators/cgroups/cgroups.cpp
index 4431ce1..a03e0ad 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/cgroups.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/cgroups.cpp
@@ -57,7 +57,7 @@ namespace slave {
CgroupsIsolatorProcess::CgroupsIsolatorProcess(
const Flags& _flags,
const hashmap<string, string>& _hierarchies,
- const multihashmap<string, Owned<Subsystem>>& _subsystems)
+ const multihashmap<string, Owned<SubsystemProcess>>& _subsystems)
: ProcessBase(process::ID::generate("cgroups-isolator")),
flags(_flags),
hierarchies(_hierarchies),
@@ -73,7 +73,7 @@ Try<Isolator*> CgroupsIsolatorProcess::create(const Flags& flags)
hashmap<string, string> hierarchies;
// Hierarchy path -> subsystem object.
- multihashmap<string, Owned<Subsystem>> subsystems;
+ multihashmap<string, Owned<SubsystemProcess>> subsystems;
// Multimap: isolator name -> subsystem name.
multihashmap<string, string> isolatorMap = {
@@ -124,8 +124,8 @@ Try<Isolator*> CgroupsIsolatorProcess::create(const Flags& flags)
}
// Create and load the subsystem.
- Try<Owned<Subsystem>> subsystem =
- Subsystem::create(flags, subsystemName, hierarchy.get());
+ Try<Owned<SubsystemProcess>> subsystem =
+ SubsystemProcess::create(flags, subsystemName, hierarchy.get());
if (subsystem.isError()) {
return Error(
@@ -159,7 +159,7 @@ bool CgroupsIsolatorProcess::supportsStandalone()
void CgroupsIsolatorProcess::initialize()
{
- foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
+ foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
spawn(subsystem.get());
}
}
@@ -167,7 +167,7 @@ void CgroupsIsolatorProcess::initialize()
void CgroupsIsolatorProcess::finalize()
{
- foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
+ foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
terminate(subsystem.get());
wait(subsystem.get());
}
@@ -338,7 +338,8 @@ Future<Nothing> CgroupsIsolatorProcess::___recover(
continue;
}
- foreach (const Owned<Subsystem>& subsystem, subsystems.get(hierarchy)) {
+ foreach (
+ const Owned<SubsystemProcess>& subsystem, subsystems.get(hierarchy)) {
recoveredSubsystems.insert(subsystem->name());
recovers.push_back(subsystem->recover(containerId, cgroup));
}
@@ -438,7 +439,8 @@ Future<Option<ContainerLaunchInfo>> CgroupsIsolatorProcess::prepare(
"'" + path + "': " + create.error());
}
- foreach (const Owned<Subsystem>& subsystem, subsystems.get(hierarchy)) {
+ foreach (
+ const Owned<SubsystemProcess>& subsystem, subsystems.get(hierarchy)) {
infos[containerId]->subsystems.insert(subsystem->name());
prepares.push_back(subsystem->prepare(
containerId,
@@ -576,7 +578,7 @@ Future<Nothing> CgroupsIsolatorProcess::isolate(
}
list<Future<Nothing>> isolates;
- foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
+ foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
isolates.push_back(subsystem->isolate(
containerId,
infos[containerId]->cgroup,
@@ -627,7 +629,7 @@ Future<ContainerLimitation> CgroupsIsolatorProcess::watch(
return Failure("Unknown container");
}
- foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
+ foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
if (infos[containerId]->subsystems.contains(subsystem->name())) {
subsystem->watch(containerId, infos[containerId]->cgroup)
.onAny(defer(
@@ -669,7 +671,7 @@ Future<Nothing> CgroupsIsolatorProcess::update(
}
list<Future<Nothing>> updates;
- foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
+ foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
if (infos[containerId]->subsystems.contains(subsystem->name())) {
updates.push_back(subsystem->update(
containerId,
@@ -720,7 +722,7 @@ Future<ResourceStatistics> CgroupsIsolatorProcess::usage(
}
list<Future<ResourceStatistics>> usages;
- foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
+ foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
if (infos[containerId]->subsystems.contains(subsystem->name())) {
usages.push_back(subsystem->usage(
containerId,
@@ -763,7 +765,7 @@ Future<ContainerStatus> CgroupsIsolatorProcess::status(
}
list<Future<ContainerStatus>> statuses;
- foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
+ foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
if (infos[containerId]->subsystems.contains(subsystem->name())) {
statuses.push_back(subsystem->status(
containerId,
@@ -806,7 +808,7 @@ Future<Nothing> CgroupsIsolatorProcess::cleanup(
}
list<Future<Nothing>> cleanups;
- foreachvalue (const Owned<Subsystem>& subsystem, subsystems) {
+ foreachvalue (const Owned<SubsystemProcess>& subsystem, subsystems) {
if (infos[containerId]->subsystems.contains(subsystem->name())) {
cleanups.push_back(subsystem->cleanup(
containerId,
@@ -848,7 +850,8 @@ Future<Nothing> CgroupsIsolatorProcess::_cleanup(
// TODO(haosdent): Use foreachkey once MESOS-5037 is resolved.
foreach (const string& hierarchy, subsystems.keys()) {
- foreach (const Owned<Subsystem>& subsystem, subsystems.get(hierarchy)) {
+ foreach (
+ const Owned<SubsystemProcess>& subsystem, subsystems.get(hierarchy)) {
if (infos[containerId]->subsystems.contains(subsystem->name())) {
destroys.push_back(cgroups::destroy(
hierarchy,
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp b/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp
index 5763c98..9dcd5da 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp
@@ -107,7 +107,8 @@ private:
CgroupsIsolatorProcess(
const Flags& _flags,
const hashmap<std::string, std::string>& _hierarchies,
- const multihashmap<std::string, process::Owned<Subsystem>>& _subsystems);
+ const multihashmap<std::string, process::Owned<SubsystemProcess>>&
+ _subsystems);
process::Future<Nothing> _recover(
const hashset<ContainerID>& orphans,
@@ -161,7 +162,7 @@ private:
// /cgroup/memory -> memory
// As we see, subsystem 'cpu' and 'cpuacct' are co-mounted at
// '/cgroup/cpu,cpuacct'.
- multihashmap<std::string, process::Owned<Subsystem>> subsystems;
+ multihashmap<std::string, process::Owned<SubsystemProcess>> subsystems;
// Store cgroups associated information for containers.
hashmap<ContainerID, process::Owned<Info>> infos;
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystem.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystem.cpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystem.cpp
index 9afa02b..1ba6ec4 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystem.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystem.cpp
@@ -43,49 +43,51 @@ namespace mesos {
namespace internal {
namespace slave {
-Try<Owned<Subsystem>> Subsystem::create(
+Try<Owned<SubsystemProcess>> SubsystemProcess::create(
const Flags& flags,
const string& name,
const string& hierarchy)
{
- hashmap<string, Try<Owned<Subsystem>>(*)(const Flags&, const string&)>
+ hashmap<string, Try<Owned<SubsystemProcess>>(*)(const Flags&, const string&)>
creators = {
- {CGROUP_SUBSYSTEM_BLKIO_NAME, &BlkioSubsystem::create},
- {CGROUP_SUBSYSTEM_CPU_NAME, &CpuSubsystem::create},
- {CGROUP_SUBSYSTEM_CPUACCT_NAME, &CpuacctSubsystem::create},
- {CGROUP_SUBSYSTEM_CPUSET_NAME, &CpusetSubsystem::create},
- {CGROUP_SUBSYSTEM_DEVICES_NAME, &DevicesSubsystem::create},
- {CGROUP_SUBSYSTEM_HUGETLB_NAME, &HugetlbSubsystem::create},
- {CGROUP_SUBSYSTEM_MEMORY_NAME, &MemorySubsystem::create},
- {CGROUP_SUBSYSTEM_NET_CLS_NAME, &NetClsSubsystem::create},
- {CGROUP_SUBSYSTEM_NET_PRIO_NAME, &NetPrioSubsystem::create},
- {CGROUP_SUBSYSTEM_PERF_EVENT_NAME, &PerfEventSubsystem::create},
- {CGROUP_SUBSYSTEM_PIDS_NAME, &PidsSubsystem::create},
+ {CGROUP_SUBSYSTEM_BLKIO_NAME, &BlkioSubsystemProcess::create},
+ {CGROUP_SUBSYSTEM_CPU_NAME, &CpuSubsystemProcess::create},
+ {CGROUP_SUBSYSTEM_CPUACCT_NAME, &CpuacctSubsystemProcess::create},
+ {CGROUP_SUBSYSTEM_CPUSET_NAME, &CpusetSubsystemProcess::create},
+ {CGROUP_SUBSYSTEM_DEVICES_NAME, &DevicesSubsystemProcess::create},
+ {CGROUP_SUBSYSTEM_HUGETLB_NAME, &HugetlbSubsystemProcess::create},
+ {CGROUP_SUBSYSTEM_MEMORY_NAME, &MemorySubsystemProcess::create},
+ {CGROUP_SUBSYSTEM_NET_CLS_NAME, &NetClsSubsystemProcess::create},
+ {CGROUP_SUBSYSTEM_NET_PRIO_NAME, &NetPrioSubsystemProcess::create},
+ {CGROUP_SUBSYSTEM_PERF_EVENT_NAME, &PerfEventSubsystemProcess::create},
+ {CGROUP_SUBSYSTEM_PIDS_NAME, &PidsSubsystemProcess::create},
};
if (!creators.contains(name)) {
return Error("Unknown subsystem '" + name + "'");
}
- Try<Owned<Subsystem>> subsystem = creators[name](flags, hierarchy);
- if (subsystem.isError()) {
+ Try<Owned<SubsystemProcess>> subsystemProcess =
+ creators[name](flags, hierarchy);
+
+ if (subsystemProcess.isError()) {
return Error(
"Failed to create subsystem '" + name + "': " +
- subsystem.error());
+ subsystemProcess.error());
}
- return subsystem.get();
+ return subsystemProcess.get();
}
-Subsystem::Subsystem(
+SubsystemProcess::SubsystemProcess(
const Flags& _flags,
const string& _hierarchy)
: flags(_flags),
hierarchy(_hierarchy) {}
-Future<Nothing> Subsystem::recover(
+Future<Nothing> SubsystemProcess::recover(
const ContainerID& containerId,
const string& cgroup)
{
@@ -93,7 +95,7 @@ Future<Nothing> Subsystem::recover(
}
-Future<Nothing> Subsystem::prepare(
+Future<Nothing> SubsystemProcess::prepare(
const ContainerID& containerId,
const string& cgroup)
{
@@ -101,7 +103,7 @@ Future<Nothing> Subsystem::prepare(
}
-Future<Nothing> Subsystem::isolate(
+Future<Nothing> SubsystemProcess::isolate(
const ContainerID& containerId,
const string& cgroup,
pid_t pid)
@@ -110,7 +112,7 @@ Future<Nothing> Subsystem::isolate(
}
-Future<ContainerLimitation> Subsystem::watch(
+Future<ContainerLimitation> SubsystemProcess::watch(
const ContainerID& containerId,
const string& cgroup)
{
@@ -118,7 +120,7 @@ Future<ContainerLimitation> Subsystem::watch(
}
-Future<Nothing> Subsystem::update(
+Future<Nothing> SubsystemProcess::update(
const ContainerID& containerId,
const string& cgroup,
const Resources& resources)
@@ -127,7 +129,7 @@ Future<Nothing> Subsystem::update(
}
-Future<ResourceStatistics> Subsystem::usage(
+Future<ResourceStatistics> SubsystemProcess::usage(
const ContainerID& containerId,
const string& cgroup)
{
@@ -135,7 +137,7 @@ Future<ResourceStatistics> Subsystem::usage(
}
-Future<ContainerStatus> Subsystem::status(
+Future<ContainerStatus> SubsystemProcess::status(
const ContainerID& containerId,
const string& cgroup)
{
@@ -143,7 +145,7 @@ Future<ContainerStatus> Subsystem::status(
}
-Future<Nothing> Subsystem::cleanup(
+Future<Nothing> SubsystemProcess::cleanup(
const ContainerID& containerId,
const string& cgroup)
{
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp
index 65c1e47..c99a00c 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp
@@ -39,7 +39,7 @@ namespace slave {
/**
* An abstraction for cgroups subsystem.
*/
-class Subsystem : public process::Process<Subsystem>
+class SubsystemProcess : public process::Process<SubsystemProcess>
{
public:
/**
@@ -51,12 +51,12 @@ public:
* @param hierarchy The hierarchy path of cgroups subsystem.
* @return A specific `Subsystem` object or an error if `create` fails.
*/
- static Try<process::Owned<Subsystem>> create(
+ static Try<process::Owned<SubsystemProcess>> create(
const Flags& flags,
const std::string& name,
const std::string& hierarchy);
- virtual ~Subsystem() {}
+ virtual ~SubsystemProcess() {}
/**
* The cgroups subsystem name of this `Subsystem` object.
@@ -168,7 +168,7 @@ public:
const std::string& cgroup);
protected:
- Subsystem(const Flags& _flags, const std::string& _hierarchy);
+ SubsystemProcess(const Flags& _flags, const std::string& _hierarchy);
/**
* `Flags` used to launch the agent.
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.cpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.cpp
index cba21ed..fbf1fed 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.cpp
@@ -47,19 +47,19 @@ namespace mesos {
namespace internal {
namespace slave {
-Try<Owned<Subsystem>> BlkioSubsystem::create(
+Try<Owned<SubsystemProcess>> BlkioSubsystemProcess::create(
const Flags& flags,
const string& hierarchy)
{
- return Owned<Subsystem>(new BlkioSubsystem(flags, hierarchy));
+ return Owned<SubsystemProcess>(new BlkioSubsystemProcess(flags, hierarchy));
}
-BlkioSubsystem::BlkioSubsystem(
+BlkioSubsystemProcess::BlkioSubsystemProcess(
const Flags& _flags,
const string& _hierarchy)
: ProcessBase(process::ID::generate("cgroups-blkio-subsystem")),
- Subsystem(_flags, _hierarchy) {}
+ SubsystemProcess(_flags, _hierarchy) {}
static void setValue(
@@ -92,7 +92,7 @@ static void setValue(
}
-Future<ResourceStatistics> BlkioSubsystem::usage(
+Future<ResourceStatistics> BlkioSubsystemProcess::usage(
const ContainerID& containerId,
const string& cgroup)
{
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.hpp
index 7d6bb9b..31ef618 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/blkio.hpp
@@ -35,14 +35,14 @@ namespace slave {
/**
* Represent cgroups blkio subsystem.
*/
-class BlkioSubsystem : public Subsystem
+class BlkioSubsystemProcess : public SubsystemProcess
{
public:
- static Try<process::Owned<Subsystem>> create(
+ static Try<process::Owned<SubsystemProcess>> create(
const Flags& flags,
const std::string& hierarchy);
- ~BlkioSubsystem() override = default;
+ ~BlkioSubsystemProcess() override = default;
std::string name() const override
{
@@ -54,7 +54,7 @@ public:
const std::string& cgroup) override;
private:
- BlkioSubsystem(const Flags& flags, const std::string& hierarchy);
+ BlkioSubsystemProcess(const Flags& flags, const std::string& hierarchy);
};
} // namespace slave {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.cpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.cpp
index 75fab0f..321671f 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.cpp
@@ -33,7 +33,7 @@ namespace mesos {
namespace internal {
namespace slave {
-Try<Owned<Subsystem>> CpuSubsystem::create(
+Try<Owned<SubsystemProcess>> CpuSubsystemProcess::create(
const Flags& flags,
const string& hierarchy)
{
@@ -54,18 +54,18 @@ Try<Owned<Subsystem>> CpuSubsystem::create(
}
}
- return Owned<Subsystem>(new CpuSubsystem(flags, hierarchy));
+ return Owned<SubsystemProcess>(new CpuSubsystemProcess(flags, hierarchy));
}
-CpuSubsystem::CpuSubsystem(
+CpuSubsystemProcess::CpuSubsystemProcess(
const Flags& _flags,
const string& _hierarchy)
: ProcessBase(process::ID::generate("cgroups-cpu-subsystem")),
- Subsystem(_flags, _hierarchy) {}
+ SubsystemProcess(_flags, _hierarchy) {}
-Future<Nothing> CpuSubsystem::update(
+Future<Nothing> CpuSubsystemProcess::update(
const ContainerID& containerId,
const string& cgroup,
const Resources& resources)
@@ -128,7 +128,7 @@ Future<Nothing> CpuSubsystem::update(
}
-Future<ResourceStatistics> CpuSubsystem::usage(
+Future<ResourceStatistics> CpuSubsystemProcess::usage(
const ContainerID& containerId,
const string& cgroup)
{
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.hpp
index 01d14ab..02e7163 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpu.hpp
@@ -35,14 +35,14 @@ namespace slave {
/**
* Represent cgroups cpu subsystem.
*/
-class CpuSubsystem : public Subsystem
+class CpuSubsystemProcess : public SubsystemProcess
{
public:
- static Try<process::Owned<Subsystem>> create(
+ static Try<process::Owned<SubsystemProcess>> create(
const Flags& flags,
const std::string& hierarchy);
- ~CpuSubsystem() override = default;
+ ~CpuSubsystemProcess() override = default;
std::string name() const override
{
@@ -59,7 +59,7 @@ public:
const std::string& cgroup) override;
private:
- CpuSubsystem(const Flags& flags, const std::string& hierarchy);
+ CpuSubsystemProcess(const Flags& flags, const std::string& hierarchy);
};
} // namespace slave {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.cpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.cpp
index 3be419a..e0ee2f3 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.cpp
@@ -31,22 +31,22 @@ namespace mesos {
namespace internal {
namespace slave {
-Try<Owned<Subsystem>> CpuacctSubsystem::create(
+Try<Owned<SubsystemProcess>> CpuacctSubsystemProcess::create(
const Flags& flags,
const string& hierarchy)
{
- return Owned<Subsystem>(new CpuacctSubsystem(flags, hierarchy));
+ return Owned<SubsystemProcess>(new CpuacctSubsystemProcess(flags, hierarchy));
}
-CpuacctSubsystem::CpuacctSubsystem(
+CpuacctSubsystemProcess::CpuacctSubsystemProcess(
const Flags& _flags,
const string& _hierarchy)
: ProcessBase(process::ID::generate("cgroups-cpuacct-subsystem")),
- Subsystem(_flags, _hierarchy) {}
+ SubsystemProcess(_flags, _hierarchy) {}
-Future<ResourceStatistics> CpuacctSubsystem::usage(
+Future<ResourceStatistics> CpuacctSubsystemProcess::usage(
const ContainerID& containerId,
const string& cgroup)
{
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.hpp
index 60d348c..33842b5 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuacct.hpp
@@ -35,14 +35,14 @@ namespace slave {
/**
* Represent cgroups cpuacct subsystem.
*/
-class CpuacctSubsystem : public Subsystem
+class CpuacctSubsystemProcess : public SubsystemProcess
{
public:
- static Try<process::Owned<Subsystem>> create(
+ static Try<process::Owned<SubsystemProcess>> create(
const Flags& flags,
const std::string& hierarchy);
- ~CpuacctSubsystem() override = default;
+ ~CpuacctSubsystemProcess() override = default;
std::string name() const override
{
@@ -54,7 +54,7 @@ public:
const std::string& cgroup) override;
private:
- CpuacctSubsystem(const Flags& flags, const std::string& hierarchy);
+ CpuacctSubsystemProcess(const Flags& flags, const std::string& hierarchy);
};
} // namespace slave {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.cpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.cpp
index 328ebc6..06a9ae6 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.cpp
@@ -26,19 +26,19 @@ namespace mesos {
namespace internal {
namespace slave {
-Try<Owned<Subsystem>> CpusetSubsystem::create(
+Try<Owned<SubsystemProcess>> CpusetSubsystemProcess::create(
const Flags& flags,
const string& hierarchy)
{
- return Owned<Subsystem>(new CpusetSubsystem(flags, hierarchy));
+ return Owned<SubsystemProcess>(new CpusetSubsystemProcess(flags, hierarchy));
}
-CpusetSubsystem::CpusetSubsystem(
+CpusetSubsystemProcess::CpusetSubsystemProcess(
const Flags& _flags,
const string& _hierarchy)
: ProcessBase(process::ID::generate("cgroups-cpuset-subsystem")),
- Subsystem(_flags, _hierarchy) {}
+ SubsystemProcess(_flags, _hierarchy) {}
} // namespace slave {
} // namespace internal {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.hpp
index 1360d0f..0bf4a1f 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/cpuset.hpp
@@ -35,14 +35,14 @@ namespace slave {
/**
* Represent cgroups cpuset subsystem.
*/
-class CpusetSubsystem : public Subsystem
+class CpusetSubsystemProcess : public SubsystemProcess
{
public:
- static Try<process::Owned<Subsystem>> create(
+ static Try<process::Owned<SubsystemProcess>> create(
const Flags& flags,
const std::string& hierarchy);
- ~CpusetSubsystem() override = default;
+ ~CpusetSubsystemProcess() override = default;
std::string name() const override
{
@@ -50,7 +50,7 @@ public:
};
private:
- CpusetSubsystem(const Flags& flags, const std::string& hierarchy);
+ CpusetSubsystemProcess(const Flags& flags, const std::string& hierarchy);
};
} // namespace slave {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.cpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.cpp
index 4c43191..5d44b14 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.cpp
@@ -69,7 +69,7 @@ static const char* DEFAULT_WHITELIST_ENTRIES[] = {
};
-Try<Owned<Subsystem>> DevicesSubsystem::create(
+Try<Owned<SubsystemProcess>> DevicesSubsystemProcess::create(
const Flags& flags,
const string& hierarchy)
{
@@ -137,21 +137,21 @@ Try<Owned<Subsystem>> DevicesSubsystem::create(
}
}
- return Owned<Subsystem>(
- new DevicesSubsystem(flags, hierarchy, whitelistDeviceEntries));
+ return Owned<SubsystemProcess>(
+ new DevicesSubsystemProcess(flags, hierarchy, whitelistDeviceEntries));
}
-DevicesSubsystem::DevicesSubsystem(
+DevicesSubsystemProcess::DevicesSubsystemProcess(
const Flags& _flags,
const string& _hierarchy,
const vector<cgroups::devices::Entry>& _whitelistDeviceEntries)
: ProcessBase(process::ID::generate("cgroups-devices-subsystem")),
- Subsystem(_flags, _hierarchy),
+ SubsystemProcess(_flags, _hierarchy),
whitelistDeviceEntries(_whitelistDeviceEntries) {}
-Future<Nothing> DevicesSubsystem::recover(
+Future<Nothing> DevicesSubsystemProcess::recover(
const ContainerID& containerId,
const string& cgroup)
{
@@ -167,7 +167,7 @@ Future<Nothing> DevicesSubsystem::recover(
}
-Future<Nothing> DevicesSubsystem::prepare(
+Future<Nothing> DevicesSubsystemProcess::prepare(
const ContainerID& containerId,
const string& cgroup)
{
@@ -219,7 +219,7 @@ Future<Nothing> DevicesSubsystem::prepare(
}
-Future<Nothing> DevicesSubsystem::cleanup(
+Future<Nothing> DevicesSubsystemProcess::cleanup(
const ContainerID& containerId,
const string& cgroup)
{
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.hpp
index 4f48ca0..c62deec 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/devices.hpp
@@ -39,14 +39,14 @@ namespace slave {
/**
* Represent cgroups devices subsystem.
*/
-class DevicesSubsystem: public Subsystem
+class DevicesSubsystemProcess: public SubsystemProcess
{
public:
- static Try<process::Owned<Subsystem>> create(
+ static Try<process::Owned<SubsystemProcess>> create(
const Flags& flags,
const std::string& hierarchy);
- ~DevicesSubsystem() override = default;
+ ~DevicesSubsystemProcess() override = default;
std::string name() const override
{
@@ -66,7 +66,7 @@ public:
const std::string& cgroup) override;
private:
- DevicesSubsystem(
+ DevicesSubsystemProcess(
const Flags& flags,
const std::string& hierarchy,
const std::vector<cgroups::devices::Entry>& whitelistDeviceEntries);
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.cpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.cpp
index 0af4d2e..c29aaa5 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.cpp
@@ -26,19 +26,19 @@ namespace mesos {
namespace internal {
namespace slave {
-Try<Owned<Subsystem>> HugetlbSubsystem::create(
+Try<Owned<SubsystemProcess>> HugetlbSubsystemProcess::create(
const Flags& flags,
const string& hierarchy)
{
- return Owned<Subsystem>(new HugetlbSubsystem(flags, hierarchy));
+ return Owned<SubsystemProcess>(new HugetlbSubsystemProcess(flags, hierarchy));
}
-HugetlbSubsystem::HugetlbSubsystem(
+HugetlbSubsystemProcess::HugetlbSubsystemProcess(
const Flags& _flags,
const string& _hierarchy)
: ProcessBase(process::ID::generate("cgroups-hugetlb-subsystem")),
- Subsystem(_flags, _hierarchy) {}
+ SubsystemProcess(_flags, _hierarchy) {}
} // namespace slave {
} // namespace internal {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.hpp
index 98d50a6..c71a5c2 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/hugetlb.hpp
@@ -35,14 +35,14 @@ namespace slave {
/**
* Represent cgroups hugetlb subsystem.
*/
-class HugetlbSubsystem : public Subsystem
+class HugetlbSubsystemProcess : public SubsystemProcess
{
public:
- static Try<process::Owned<Subsystem>> create(
+ static Try<process::Owned<SubsystemProcess>> create(
const Flags& flags,
const std::string& hierarchy);
- ~HugetlbSubsystem() override = default;
+ ~HugetlbSubsystemProcess() override = default;
std::string name() const override
{
@@ -50,7 +50,7 @@ public:
};
private:
- HugetlbSubsystem(const Flags& flags, const std::string& hierarchy);
+ HugetlbSubsystemProcess(const Flags& flags, const std::string& hierarchy);
};
} // namespace slave {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.cpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.cpp
index 50348d6..33dd6d9 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.cpp
@@ -58,7 +58,7 @@ static const vector<Level> levels()
}
-Try<Owned<Subsystem>> MemorySubsystem::create(
+Try<Owned<SubsystemProcess>> MemorySubsystemProcess::create(
const Flags& flags,
const string& hierarchy)
{
@@ -104,18 +104,18 @@ Try<Owned<Subsystem>> MemorySubsystem::create(
}
}
- return Owned<Subsystem>(new MemorySubsystem(flags, hierarchy));
+ return Owned<SubsystemProcess>(new MemorySubsystemProcess(flags, hierarchy));
}
-MemorySubsystem::MemorySubsystem(
+MemorySubsystemProcess::MemorySubsystemProcess(
const Flags& _flags,
const string& _hierarchy)
: ProcessBase(process::ID::generate("cgroups-memory-subsystem")),
- Subsystem(_flags, _hierarchy) {}
+ SubsystemProcess(_flags, _hierarchy) {}
-Future<Nothing> MemorySubsystem::recover(
+Future<Nothing> MemorySubsystemProcess::recover(
const ContainerID& containerId,
const string& cgroup)
{
@@ -132,7 +132,7 @@ Future<Nothing> MemorySubsystem::recover(
}
-Future<Nothing> MemorySubsystem::prepare(
+Future<Nothing> MemorySubsystemProcess::prepare(
const ContainerID& containerId,
const string& cgroup)
{
@@ -149,7 +149,7 @@ Future<Nothing> MemorySubsystem::prepare(
}
-Future<ContainerLimitation> MemorySubsystem::watch(
+Future<ContainerLimitation> MemorySubsystemProcess::watch(
const ContainerID& containerId,
const string& cgroup)
{
@@ -163,7 +163,7 @@ Future<ContainerLimitation> MemorySubsystem::watch(
}
-Future<Nothing> MemorySubsystem::update(
+Future<Nothing> MemorySubsystemProcess::update(
const ContainerID& containerId,
const string& cgroup,
const Resources& resources)
@@ -300,7 +300,7 @@ Future<Nothing> MemorySubsystem::update(
}
-Future<ResourceStatistics> MemorySubsystem::usage(
+Future<ResourceStatistics> MemorySubsystemProcess::usage(
const ContainerID& containerId,
const string& cgroup)
{
@@ -389,8 +389,8 @@ Future<ResourceStatistics> MemorySubsystem::usage(
}
return await(values)
- .then(defer(PID<MemorySubsystem>(this),
- &MemorySubsystem::_usage,
+ .then(defer(PID<MemorySubsystemProcess>(this),
+ &MemorySubsystemProcess::_usage,
containerId,
result,
levels,
@@ -398,7 +398,7 @@ Future<ResourceStatistics> MemorySubsystem::usage(
}
-Future<ResourceStatistics> MemorySubsystem::_usage(
+Future<ResourceStatistics> MemorySubsystemProcess::_usage(
const ContainerID& containerId,
ResourceStatistics result,
const list<Level>& levels,
@@ -437,7 +437,7 @@ Future<ResourceStatistics> MemorySubsystem::_usage(
}
-Future<Nothing> MemorySubsystem::cleanup(
+Future<Nothing> MemorySubsystemProcess::cleanup(
const ContainerID& containerId,
const string& cgroup)
{
@@ -458,7 +458,7 @@ Future<Nothing> MemorySubsystem::cleanup(
}
-void MemorySubsystem::oomListen(
+void MemorySubsystemProcess::oomListen(
const ContainerID& containerId,
const string& cgroup)
{
@@ -480,15 +480,15 @@ void MemorySubsystem::oomListen(
<< containerId;
info->oomNotifier.onReady(
- defer(PID<MemorySubsystem>(this),
- &MemorySubsystem::oomWaited,
+ defer(PID<MemorySubsystemProcess>(this),
+ &MemorySubsystemProcess::oomWaited,
containerId,
cgroup,
lambda::_1));
}
-void MemorySubsystem::oomWaited(
+void MemorySubsystemProcess::oomWaited(
const ContainerID& containerId,
const string& cgroup,
const Future<Nothing>& future)
@@ -572,7 +572,7 @@ void MemorySubsystem::oomWaited(
}
-void MemorySubsystem::pressureListen(
+void MemorySubsystemProcess::pressureListen(
const ContainerID& containerId,
const string& cgroup)
{
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.hpp
index 654ccb9..1d49cef 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/memory.hpp
@@ -41,14 +41,14 @@ namespace slave {
/**
* Represent cgroups memory subsystem.
*/
-class MemorySubsystem : public Subsystem
+class MemorySubsystemProcess : public SubsystemProcess
{
public:
- static Try<process::Owned<Subsystem>> create(
+ static Try<process::Owned<SubsystemProcess>> create(
const Flags& flags,
const std::string& hierarchy);
- ~MemorySubsystem() override = default;
+ ~MemorySubsystemProcess() override = default;
std::string name() const override
{
@@ -93,7 +93,7 @@ private:
process::Promise<mesos::slave::ContainerLimitation> limitation;
};
- MemorySubsystem(const Flags& flags, const std::string& hierarchy);
+ MemorySubsystemProcess(const Flags& flags, const std::string& hierarchy);
process::Future<ResourceStatistics> _usage(
const ContainerID& containerId,
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.cpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.cpp
index f778a41..ec2ce67 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.cpp
@@ -221,7 +221,7 @@ Try<bool> NetClsHandleManager::isUsed(const NetClsHandle& handle)
}
-Try<Owned<Subsystem>> NetClsSubsystem::create(
+Try<Owned<SubsystemProcess>> NetClsSubsystemProcess::create(
const Flags& flags,
const string& hierarchy)
{
@@ -289,18 +289,18 @@ Try<Owned<Subsystem>> NetClsSubsystem::create(
}
}
- return Owned<Subsystem>(
- new NetClsSubsystem(flags, hierarchy, primaries, secondaries));
+ return Owned<SubsystemProcess>(
+ new NetClsSubsystemProcess(flags, hierarchy, primaries, secondaries));
}
-NetClsSubsystem::NetClsSubsystem(
+NetClsSubsystemProcess::NetClsSubsystemProcess(
const Flags& _flags,
const string& _hierarchy,
const IntervalSet<uint32_t>& primaries,
const IntervalSet<uint32_t>& secondaries)
: ProcessBase(process::ID::generate("cgroups-net-cls-subsystem")),
- Subsystem(_flags, _hierarchy)
+ SubsystemProcess(_flags, _hierarchy)
{
if (!primaries.empty()) {
handleManager = NetClsHandleManager(primaries, secondaries);
@@ -308,7 +308,7 @@ NetClsSubsystem::NetClsSubsystem(
}
-Future<Nothing> NetClsSubsystem::recover(
+Future<Nothing> NetClsSubsystemProcess::recover(
const ContainerID& containerId,
const string& cgroup)
{
@@ -334,7 +334,7 @@ Future<Nothing> NetClsSubsystem::recover(
}
-Future<Nothing> NetClsSubsystem::prepare(
+Future<Nothing> NetClsSubsystemProcess::prepare(
const ContainerID& containerId,
const string& cgroup)
{
@@ -361,7 +361,7 @@ Future<Nothing> NetClsSubsystem::prepare(
}
-Future<Nothing> NetClsSubsystem::isolate(
+Future<Nothing> NetClsSubsystemProcess::isolate(
const ContainerID& containerId,
const string& cgroup,
pid_t pid)
@@ -393,7 +393,7 @@ Future<Nothing> NetClsSubsystem::isolate(
}
-Future<ContainerStatus> NetClsSubsystem::status(
+Future<ContainerStatus> NetClsSubsystemProcess::status(
const ContainerID& containerId,
const string& cgroup)
{
@@ -421,7 +421,7 @@ Future<ContainerStatus> NetClsSubsystem::status(
}
-Future<Nothing> NetClsSubsystem::cleanup(
+Future<Nothing> NetClsSubsystemProcess::cleanup(
const ContainerID& containerId,
const string& cgroup)
{
@@ -447,7 +447,7 @@ Future<Nothing> NetClsSubsystem::cleanup(
}
-Result<NetClsHandle> NetClsSubsystem::recoverHandle(
+Result<NetClsHandle> NetClsSubsystemProcess::recoverHandle(
const string& hierarchy,
const string& cgroup)
{
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.hpp
index be36659..0653107 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_cls.hpp
@@ -130,14 +130,14 @@ private:
/**
* Represent cgroups net_cls subsystem.
*/
-class NetClsSubsystem : public Subsystem
+class NetClsSubsystemProcess : public SubsystemProcess
{
public:
- static Try<process::Owned<Subsystem>> create(
+ static Try<process::Owned<SubsystemProcess>> create(
const Flags& flags,
const std::string& hierarchy);
- ~NetClsSubsystem() override = default;
+ ~NetClsSubsystemProcess() override = default;
std::string name() const override
{
@@ -166,7 +166,7 @@ public:
const std::string& cgroup) override;
private:
- NetClsSubsystem(
+ NetClsSubsystemProcess(
const Flags& flags,
const std::string& hierarchy,
const IntervalSet<uint32_t>& primaries,
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.cpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.cpp
index 060556b..932acfd 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.cpp
@@ -26,19 +26,19 @@ namespace mesos {
namespace internal {
namespace slave {
-Try<Owned<Subsystem>> NetPrioSubsystem::create(
+Try<Owned<SubsystemProcess>> NetPrioSubsystemProcess::create(
const Flags& flags,
const string& hierarchy)
{
- return Owned<Subsystem>(new NetPrioSubsystem(flags, hierarchy));
+ return Owned<SubsystemProcess>(new NetPrioSubsystemProcess(flags, hierarchy));
}
-NetPrioSubsystem::NetPrioSubsystem(
+NetPrioSubsystemProcess::NetPrioSubsystemProcess(
const Flags& _flags,
const string& _hierarchy)
: ProcessBase(process::ID::generate("cgroups-net-prio-subsystem")),
- Subsystem(_flags, _hierarchy) {}
+ SubsystemProcess(_flags, _hierarchy) {}
} // namespace slave {
} // namespace internal {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.hpp
index e6bb83f..cf9da45 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/net_prio.hpp
@@ -35,14 +35,14 @@ namespace slave {
/**
* Represent cgroups net_prio subsystem.
*/
-class NetPrioSubsystem : public Subsystem
+class NetPrioSubsystemProcess : public SubsystemProcess
{
public:
- static Try<process::Owned<Subsystem>> create(
+ static Try<process::Owned<SubsystemProcess>> create(
const Flags& flags,
const std::string& hierarchy);
- ~NetPrioSubsystem() override = default;
+ ~NetPrioSubsystemProcess() override = default;
std::string name() const override
{
@@ -50,7 +50,7 @@ public:
};
private:
- NetPrioSubsystem(const Flags& flags, const std::string& hierarchy);
+ NetPrioSubsystemProcess(const Flags& flags, const std::string& hierarchy);
};
} // namespace slave {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.cpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.cpp
index d394d79..06eca0c 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.cpp
@@ -40,7 +40,7 @@ namespace mesos {
namespace internal {
namespace slave {
-Try<Owned<Subsystem>> PerfEventSubsystem::create(
+Try<Owned<SubsystemProcess>> PerfEventSubsystemProcess::create(
const Flags& flags,
const string& hierarchy)
{
@@ -73,27 +73,28 @@ Try<Owned<Subsystem>> PerfEventSubsystem::create(
<< "every '" << flags.perf_interval << "' "
<< "for events: " << stringify(events);
- return Owned<Subsystem>(new PerfEventSubsystem(flags, hierarchy, events));
+ return Owned<SubsystemProcess>(
+ new PerfEventSubsystemProcess(flags, hierarchy, events));
}
-PerfEventSubsystem::PerfEventSubsystem(
+PerfEventSubsystemProcess::PerfEventSubsystemProcess(
const Flags& _flags,
const string& _hierarchy,
const set<string>& _events)
: ProcessBase(process::ID::generate("cgroups-perf-event-subsystem")),
- Subsystem(_flags, _hierarchy),
+ SubsystemProcess(_flags, _hierarchy),
events(_events) {}
-void PerfEventSubsystem::initialize()
+void PerfEventSubsystemProcess::initialize()
{
// Start sampling.
sample();
}
-Future<Nothing> PerfEventSubsystem::recover(
+Future<Nothing> PerfEventSubsystemProcess::recover(
const ContainerID& containerId,
const string& cgroup)
{
@@ -107,7 +108,7 @@ Future<Nothing> PerfEventSubsystem::recover(
}
-Future<Nothing> PerfEventSubsystem::prepare(
+Future<Nothing> PerfEventSubsystemProcess::prepare(
const ContainerID& containerId,
const string& cgroup)
{
@@ -121,7 +122,7 @@ Future<Nothing> PerfEventSubsystem::prepare(
}
-Future<ResourceStatistics> PerfEventSubsystem::usage(
+Future<ResourceStatistics> PerfEventSubsystemProcess::usage(
const ContainerID& containerId,
const string& cgroup)
{
@@ -138,7 +139,7 @@ Future<ResourceStatistics> PerfEventSubsystem::usage(
}
-Future<Nothing> PerfEventSubsystem::cleanup(
+Future<Nothing> PerfEventSubsystemProcess::cleanup(
const ContainerID& containerId,
const string& cgroup)
{
@@ -155,7 +156,7 @@ Future<Nothing> PerfEventSubsystem::cleanup(
}
-void PerfEventSubsystem::sample()
+void PerfEventSubsystemProcess::sample()
{
// Collect a perf sample for all cgroups that are not being
// destroyed. Since destroyal is asynchronous, 'perf stat' may
@@ -181,14 +182,14 @@ void PerfEventSubsystem::sample()
return future;
})
- .onAny(defer(PID<PerfEventSubsystem>(this),
- &PerfEventSubsystem::_sample,
+ .onAny(defer(PID<PerfEventSubsystemProcess>(this),
+ &PerfEventSubsystemProcess::_sample,
Clock::now() + flags.perf_interval,
lambda::_1));
}
-void PerfEventSubsystem::_sample(
+void PerfEventSubsystemProcess::_sample(
const Time& next,
const Future<hashmap<string, PerfStatistics>>& statistics)
{
@@ -210,8 +211,8 @@ void PerfEventSubsystem::_sample(
// Schedule sample for the next time.
delay(next - Clock::now(),
- PID<PerfEventSubsystem>(this),
- &PerfEventSubsystem::sample);
+ PID<PerfEventSubsystemProcess>(this),
+ &PerfEventSubsystemProcess::sample);
}
} // namespace slave {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.hpp
index a55cdef..2c865ac 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/perf_event.hpp
@@ -41,14 +41,14 @@ namespace slave {
/**
* Represent cgroups perf_event subsystem.
*/
-class PerfEventSubsystem: public Subsystem
+class PerfEventSubsystemProcess: public SubsystemProcess
{
public:
- static Try<process::Owned<Subsystem>> create(
+ static Try<process::Owned<SubsystemProcess>> create(
const Flags& flags,
const std::string& hierarchy);
- ~PerfEventSubsystem() override = default;
+ ~PerfEventSubsystemProcess() override = default;
std::string name() const override
{
@@ -75,7 +75,7 @@ protected:
void initialize() override;
private:
- PerfEventSubsystem(
+ PerfEventSubsystemProcess(
const Flags& flags,
const std::string& hierarchy,
const std::set<std::string>& events);
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.cpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.cpp
index 42fea60..2e6d1e7 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.cpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.cpp
@@ -26,19 +26,19 @@ namespace mesos {
namespace internal {
namespace slave {
-Try<Owned<Subsystem>> PidsSubsystem::create(
+Try<Owned<SubsystemProcess>> PidsSubsystemProcess::create(
const Flags& flags,
const string& hierarchy)
{
- return Owned<Subsystem>(new PidsSubsystem(flags, hierarchy));
+ return Owned<SubsystemProcess>(new PidsSubsystemProcess(flags, hierarchy));
}
-PidsSubsystem::PidsSubsystem(
+PidsSubsystemProcess::PidsSubsystemProcess(
const Flags& _flags,
const string& _hierarchy)
: ProcessBase(process::ID::generate("cgroups-pids-subsystem")),
- Subsystem(_flags, _hierarchy) {}
+ SubsystemProcess(_flags, _hierarchy) {}
} // namespace slave {
} // namespace internal {
http://git-wip-us.apache.org/repos/asf/mesos/blob/1168de48/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.hpp
index e0f344d..6583a03 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystems/pids.hpp
@@ -35,14 +35,14 @@ namespace slave {
/**
* Represent cgroups pids subsystem.
*/
-class PidsSubsystem : public Subsystem
+class PidsSubsystemProcess : public SubsystemProcess
{
public:
- static Try<process::Owned<Subsystem>> create(
+ static Try<process::Owned<SubsystemProcess>> create(
const Flags& flags,
const std::string& hierarchy);
- ~PidsSubsystem() override = default;
+ ~PidsSubsystemProcess() override = default;
std::string name() const override
{
@@ -50,7 +50,7 @@ public:
};
private:
- PidsSubsystem(const Flags& flags, const std::string& hierarchy);
+ PidsSubsystemProcess(const Flags& flags, const std::string& hierarchy);
};
} // namespace slave {