]> rtime.felk.cvut.cz Git - linux-conf-perf.git/blobdiff - conf.py
Allow importing lcp_django from other python scripts
[linux-conf-perf.git] / conf.py
diff --git a/conf.py b/conf.py
index c3835073b5e66f746e688af6faedb8f118362e94..13d5cd76564d118e8708ee7e70816c9e1a98b8bb 100644 (file)
--- a/conf.py
+++ b/conf.py
@@ -1,4 +1,8 @@
 import os
+import sys
+import re
+import importlib.machinery
+import multiprocessing
 
 ## Global configs
 # kernel_arch
@@ -9,50 +13,39 @@ kernel_arch = 'x86'
 # kernle_env
 # Enviroment variables for Linux
 kernel_env = {'SRCARCH': kernel_arch, 'ARCH': kernel_arch, 'KERNELVERSION': kernel_arch}
-# linux_make_args
-# These are arguments passed to make when linux is build.
-linux_make_args = ['-j8']
 # build_command
 # Command executed for kernel build in linux folder.
-build_command = ['make'] + linux_make_args
-
-# novaboot_args
-# These are arguments passed to Novaboot,
-# but only if you don't remove it from boot_command.
-novaboot_args = ['--qemu=qemu-system-x86_64']
-# nbscript
-# This variable is path to Novaboot script.
-nbscript = 'scripts/nbscript'
+build_command = ['make', '-j', str(multiprocessing.cpu_count())]
+
 # boot_command
 # Command executed for booting. Output of this command is saved to output folder.
-boot_command = ['scripts/novaboot/novaboot', nbscript] + novaboot_args
+boot_command = ['echo', 'bootit']
+# boot_timeout
+# Set timeout of boot process if no output is generated for selected seconds
+boot_timeout = 120
+
+# parse_command
+# Command to parse double value from boot output
+parse_command = ['echo', '0']
+
+# measurement_identifier
+# Identifier of measurement can consist of measure tool name and version
+measure_identifier = 'cyclictest-v0.92'
 
 # picosat_args
-# Arguments passed to PicoSAT.
-picosat_args = ['--all']
+# Additional arguments passed to PicoSAT.
+picosat_args = []
 
 # db_database
 # Database in PostgreSQL to be used for this tools
-db_database = 'lcp'
-# db_user
-# Define PostgreSQL user
-db_user = 'cynerd'
-# db_password
-# Define PostrgreSQL user password
-db_password = 'cynerd'
-# db_host
-# Address of PostgreSQL database server
-db_host = 'localhost'
-# db_port
-# Port of PotgreSQL database server
-db_port = 5432
-
-# git_describe_cmd
-# Command used for getting tools version and status from git
-git_describe_cmd = ['git', 'describe', '--always', '--tags', '--dirty']
-# git_commit_cmd
-# Command used for getting commit hash from git
-git_commit_cmd = ['git', 'rev-parse', '--verify', 'HEAD']
+db_database = 'linux-conf-perf'
+
+# multithread
+# Define if measurement and kernel build should be executed in parallel.
+multithread = False
+# multithread_buffer
+# Defines maximal number of buffered configurations before generating is suspended.
+multithread_buffer = 32
 
 ## Programs output show/hide
 # These options hides output of launched programs from terminal.
@@ -63,9 +56,9 @@ picosat_output = False
 kernel_config_output = True
 kernel_make_output = True
 boot_output = True
+parse_output = False
 
 ## Configs for debugging
-step_by_step = False # Executes only single step and exits.
 single_loop = False # Executes only one loop and exits.
 only_config = False # Executes only to configuration phase. Building and booting phases are skipped.
 ignore_misconfig = False # Ignore if configuration wasn't applied correctly.
@@ -76,38 +69,48 @@ dot_confmk = '.conf.mk'
 dot_config = 'dot_config'
 
 linux_sources = 'linux/'
-linux_kconfig_head = linux_sources + 'Kconfig'
-linux_dot_config = linux_sources + '.config'
-linux_image = linux_sources + 'arch/' + kernel_arch + '/boot/bzImage'
-
-buildroot_def_config = 'buildroot_recipe/buildroot.def.config'
-buildroot_inittab_directive = 'buildroot_recipe/inittab_directive'
-buildroot_initscript = 'scripts/buildroot_recipe/linux-conf-perf'
-buildroot_initram = 'buildroot/output/images/rootfs.cpio.gz'
+linux_build_folder = 'linux/'
+linux_image = linux_build_folder + 'arch/' + kernel_arch + '/boot/bzImage'
 
 build_folder = 'jobfiles/'
 jobfolder_linux_image = build_folder + 'linuxImage'
-phase_file = build_folder + 'phase'
 symbol_map_file = build_folder + 'symbol_map' # Also defined in parse_kconfig
 rules_file = build_folder + 'rules' # Also defined in parse_kconfig
 variable_count_file = build_folder + 'variable_count' # Also defined in parse_kconfig
-config_map_file = build_folder + 'config_map'
-config_solved_file = build_folder + 'config_solved'
-required_file = build_folder + 'required'
-dot_config_fragment_file = build_folder + 'dot_config_fragment'
+fixed_file = build_folder + 'fixed'
+measure_file = build_folder + 'measure'
+dot_measure_file = build_folder + 'dot_measure'
 dot_config_back_file = build_folder + 'dot_config_back'
-solution_file = build_folder + 'solution'
-iteration_file = build_folder + 'iteration'
-output_confs = build_folder + 'output_confs'
+single_generated_file = build_folder + 'single_generated'
+measurechecked_file = build_folder + 'measurechecked'
+
+buildroot_config_cyclictest = '/dev/null'
 
-output_folder = 'output/'
 result_folder = 'result/'
 log_folder = 'log/'
 
 ## Programs paths
 parse_kconfig = 'scripts/parse_kconfig/parse'
-write_config = 'scripts/write_config/write'
+write_config = 'scripts/write_config/write_config'
 picosat = 'scripts/picosat-959/picosat'
+allconfig = 'scripts/allconfig/allconfig'
 
-
+#######################################
 absroot = os.path.dirname(os.path.realpath(__file__))
+
+#######################################
+# Override configuration for specified target
+try:
+       target = open(os.path.join(absroot, '.target'), 'r').readline().rstrip()
+       conffile = os.path.join(absroot, 'targets', target, 'conf.py')
+       try:
+               ovconf = importlib.machinery.SourceFileLoader("module.name", conffile).load_module()
+               for name in dir(ovconf):
+                       if not re.match('__*__', name):
+                               vars()[name] = vars(ovconf)[name]
+       except:
+               print("E: Invalid target specifier. Write valid target to .target file.")
+               sys.exit(-99)
+except:
+       print("E: No target specifier. Write target to .target file.")
+       sys.exit(-99)