Revert elevator if storage file is present
This commit is contained in:
parent
92c8c36350
commit
f7b880076d
1 changed files with 12 additions and 5 deletions
|
|
@ -23,7 +23,8 @@ class DiskPlugin(tuned.plugins.Plugin):
|
||||||
self._elevator_set = False
|
self._elevator_set = False
|
||||||
self._old_elevator = ""
|
self._old_elevator = ""
|
||||||
|
|
||||||
tuned.utils.storage.Storage.get_instance().data["disk"] = {}
|
if not tuned.utils.storage.Storage.get_instance().data.has_key("disk"):
|
||||||
|
tuned.utils.storage.Storage.get_instance().data["disk"] = {}
|
||||||
self._load_monitor = tuned.monitors.get_repository().create("disk", devices)
|
self._load_monitor = tuned.monitors.get_repository().create("disk", devices)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -49,11 +50,17 @@ class DiskPlugin(tuned.plugins.Plugin):
|
||||||
}
|
}
|
||||||
|
|
||||||
def _apply_elevator(self, dev):
|
def _apply_elevator(self, dev):
|
||||||
|
storage = tuned.utils.storage.Storage.get_instance()
|
||||||
|
if storage.data["disk"].has_key(dev):
|
||||||
|
self._old_elevator = storage.data["disk"][dev]
|
||||||
|
self._revert_elevator(dev)
|
||||||
|
del storage.data["disk"][dev]
|
||||||
|
|
||||||
if len(self._options["elevator"]) == 0:
|
if len(self._options["elevator"]) == 0:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
try:
|
try:
|
||||||
f = open(os.path.join("/sys/block/", dev, "queue/scheduler"), "w")
|
f = open(os.path.join("/sys/block/", dev, "queue/scheduler"), "r")
|
||||||
self._old_elevator = f.read()
|
self._old_elevator = f.read()
|
||||||
f.close()
|
f.close()
|
||||||
except (OSError,IOError) as e:
|
except (OSError,IOError) as e:
|
||||||
|
|
@ -73,13 +80,13 @@ class DiskPlugin(tuned.plugins.Plugin):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _revert_elevator(self, dev):
|
def _revert_elevator(self, dev):
|
||||||
if len(self._options["elevator"]) == 0:
|
if len(self._old_elevator) == 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
log.debug("Applying elevator: %s < cfs" % (dev))
|
log.debug("Applying elevator: %s < %s" % (dev, self._old_elevator))
|
||||||
try:
|
try:
|
||||||
f = open(os.path.join("/sys/block/", dev, "queue/scheduler"), "w")
|
f = open(os.path.join("/sys/block/", dev, "queue/scheduler"), "w")
|
||||||
f.write("cfs")
|
f.write(self._old_elevator)
|
||||||
f.close()
|
f.close()
|
||||||
except (OSError,IOError) as e:
|
except (OSError,IOError) as e:
|
||||||
log.error("Setting elevator on %s error: %s" % (dev, e))
|
log.error("Setting elevator on %s error: %s" % (dev, e))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue