From 9ec24d3bfef13a02b228d214b24003870c1275c5 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Tue, 17 Sep 2019 12:10:52 -0700 Subject: [PATCH] osd/scheduler: introduce mClockScheduler mClockScheduler schedules items based on op_scheduler_class with configured mclock parameters. Items which should be scheduled immediately (op_scheduler_class::immediate) are placed into a single queue as it's not clear that there's a reason to differentiate among them. A subsequent patch will add support for client provided mclock params and dmclock request state. Signed-off-by: Samuel Just --- src/common/options.cc | 65 +++++++++- src/dmclock | 2 +- src/osd/CMakeLists.txt | 1 + src/osd/scheduler/OpScheduler.cc | 3 + src/osd/scheduler/OpSchedulerItem.h | 36 ------ src/osd/scheduler/mClockScheduler.cc | 166 ++++++++++++++++++++++++++ src/osd/scheduler/mClockScheduler.h | 133 +++++++++++++++++++++ src/test/osd/CMakeLists.txt | 9 ++ src/test/osd/TestMClockClientQueue.cc | 16 +-- src/test/osd/TestMClockScheduler.cc | 156 ++++++++++++++++++++++++ 10 files changed, 535 insertions(+), 52 deletions(-) create mode 100644 src/osd/scheduler/mClockScheduler.cc create mode 100644 src/osd/scheduler/mClockScheduler.h create mode 100644 src/test/osd/TestMClockScheduler.cc diff --git a/src/common/options.cc b/src/common/options.cc index 77d04ed6231..6c1e7b77200 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -2802,10 +2802,13 @@ std::vector