oeqa.buildperf: functionality to drop kernel caches

Add a new utility class for dropping Linux kernel caches.  It uses sudo
and tee to write to the drop_caches file. Checking if the user has the
permissions to drop caches (without a password) is done by trying to
writing an invalid value to the drop_caches file. This way, we will find
if writing (with tee) is possible but not really dropping caches, yet.

User can avoid giving the password by adding something like:
<user> ALL = NOPASSWD: /usr/bin/tee /proc/sys/vm/drop_caches
to the system sudoers file.

(From OE-Core rev: c9cb248429ced50c96d11ba5361c272d4c9b9323)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Markus Lehtonen
2016-04-26 13:18:13 +03:00
committed by Richard Purdie
parent 7d42ceae3a
commit cee685ca0d
3 changed files with 51 additions and 0 deletions

View File

@@ -22,6 +22,7 @@ import sys
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + '/lib')
import scriptpath
scriptpath.add_oe_lib_path()
from oeqa.buildperf import KernelDropCaches
from oeqa.utils.commands import runCmd
@@ -71,6 +72,9 @@ def main(argv=None):
if not pre_run_sanity_check():
return 1
# Check our capability to drop caches and ask pass if needed
KernelDropCaches.check()
return 0