예제 #1
0
    def __make_options(self, params):
        '''Return generic Litmus options.'''

        # Guess defaults using the properties of this computer
        if 'cpus' in params:
            cpus = min(map(int, params['cpus']))
        else:
            cpus = num_cpus()

        if 'clusters' in params:
            clusters = min(map(int, params['clusters']))
        else:
            # default to partitioned
            clusters = num_cpus()

        try:
            rm_config  = get_config_option("RELEASE_MASTER") and True
        except:
            rm_config  = False
        release_master = list(set([False, bool(rm_config)]))


        return [GenOption('tasks', int, range(cpus, 5*cpus, cpus),
                              'Number of tasks per experiment.'),
                GenOption('cpus', int, [cpus],
                          'Number of processors on target system.'),
                GenOption('clusters', int, [clusters],
                          'Number of clusters on target system.'),
                GenOption('release_master', [True,False], release_master,
                          'Redirect release interrupts to a single CPU.'),
                GenOption('duration', float, [30], 'Experiment duration.')]
예제 #2
0
    def __init__(self, output_dir):
        super(SchedTracer, self).__init__("Sched Trace", output_dir)

        if SchedTracer.enabled():
            for cpu in range(num_cpus()):
                # Executable will close the stdout/stderr files
                stdout_f = open('%s/st-%d.bin' % (self.output_dir, cpu), 'w')
                stderr_f = open('%s/st-%d-stderr.txt' % (self.output_dir, cpu), 'w')
                dev = '{0}{1}'.format(SchedTracer.DEVICE_STR, cpu)
                ftc = FTcat(conf.BINS['ftcat'], stdout_f, stderr_f, dev,
                            conf.SCHED_EVENTS, cpu=cpu)

                self.bins.append(ftc)
예제 #3
0
    def __init__(self, name, scheduler, working_dir, finished_dir,
                 proc_entries, executables, tracer_types):
        '''Run an experiment, optionally wrapped in tracing.'''

        self.name = name
        self.scheduler = scheduler
        self.working_dir  = working_dir
        self.finished_dir = finished_dir
        self.proc_entries = proc_entries
        self.executables  = executables
        self.exec_out = None
        self.exec_err = None

        self.task_batch = com.num_cpus()

        self.__make_dirs()
        self.__assign_executable_cwds()
        self.__setup_tracers(tracer_types)
예제 #4
0
    def __make_options(self, params):
        '''Return generic Litmus options.'''

        # Guess defaults using the properties of this computer
        if 'cpus' in params:
            cpus = min(map(int, params['cpus']))
        else:
            cpus = num_cpus()
        try:
            rm_config = get_config_option("RELEASE_MASTER") and True
        except:
            rm_config = False
        release_master = list(set([False, bool(rm_config)]))

        return [
            GenOption('tasks', int, range(cpus, 5 * cpus, cpus),
                      'Number of tasks per experiment.'),
            GenOption('cpus', int, [cpus],
                      'Number of processors on target system.'),
            GenOption('release_master', [True, False], release_master,
                      'Redirect release interrupts to a single CPU.'),
            GenOption('duration', float, [30], 'Experiment duration.')
        ]