From 36370c4802e06725ac3704b2756ea25f3a917adf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= Date: Wed, 10 Jun 2015 13:53:36 +0200 Subject: [PATCH] functions: added 'cpulist2hex_invert' built-in function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It converts CPU list to hexadecimal CPU mask and inverts it. Example: [variables] cpus = ${f:cpulist2hex_invert:1-2} On machine with four CPUs it returns 00000009. Related: rhbz#1225135 Signed-off-by: Jaroslav Škarvada --- .../functions/function_cpulist2hex_invert.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 tuned/profiles/functions/function_cpulist2hex_invert.py diff --git a/tuned/profiles/functions/function_cpulist2hex_invert.py b/tuned/profiles/functions/function_cpulist2hex_invert.py new file mode 100644 index 0000000..57f029e --- /dev/null +++ b/tuned/profiles/functions/function_cpulist2hex_invert.py @@ -0,0 +1,20 @@ +import os +import tuned.logs +import base +from tuned.utils.commands import commands + +log = tuned.logs.get() + +class cpulist2hex_invert(base.Function): + """ + Converts CPU list to hexadecimal CPU mask and inverts it + """ + def __init__(self): + # arbitrary number of arguments + super(self.__class__, self).__init__("cpulist2hex_invert", 0) + + def execute(self, args): + if not super(self.__class__, self).execute(args): + return None + # current implementation inverts the CPU list and then converts it to hexmask + return self._cmd.cpulist2hex(",".join(str(v) for v in self._cmd.cpulist_invert(",,".join(args))))