diff --git a/tuned/plugins/plugin_disk.py b/tuned/plugins/plugin_disk.py index eb3d813..9c2ef03 100644 --- a/tuned/plugins/plugin_disk.py +++ b/tuned/plugins/plugin_disk.py @@ -21,7 +21,9 @@ class DiskPlugin(tuned.plugins.Plugin): self.spindown = ["0", "250", "230", "210", "190", "170", "150", "130", "110", "90", "70", "60"] self.levels = len(self.power) self._elevator_set = False + self._old_elevator = "" + tuned.utils.storage.Storage.get_instance().data["disk"] = {} self._load_monitor = tuned.monitors.get_repository().create("disk", devices) @classmethod @@ -50,6 +52,17 @@ class DiskPlugin(tuned.plugins.Plugin): if len(self._options["elevator"]) == 0: return False + try: + f = open(os.path.join("/sys/block/", dev, "queue/scheduler"), "w") + self._old_elevator = f.read() + f.close() + except (OSError,IOError) as e: + log.error("Getting elevator of %s error: %s" % (dev, e)) + + storage = tuned.utils.storage.Storage.get_instance() + storage.data["disk"] = {dev : self._old_elevator} + storage.save() + log.debug("Applying elevator: %s < %s" % (dev, self._options["elevator"])) try: f = open(os.path.join("/sys/block/", dev, "queue/scheduler"), "w") diff --git a/tuned/utils/storage.py b/tuned/utils/storage.py index 3d0d86d..346e8cb 100644 --- a/tuned/utils/storage.py +++ b/tuned/utils/storage.py @@ -40,6 +40,7 @@ class Storage(tuned.patterns.Singleton): def save(self): try: + log.debug("Storing %s" % (str(self._data))) with open(DEFAULT_STORAGE_FILE, "w") as f: pickle.dump(self._data, f) except (OSError,IOError) as e: