DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
readout-affinity Namespace Reference

Functions

 parse_cpumask (mask)
 Parses CPU mask strings and lists.
 

Variables

str info = 'Alters CPU masks of running processes with different arguments, based on a configuration file.'
 
 parser = argparse.ArgumentParser(description=info)
 
 type
 
 str
 
 required
 
 True
 
 help
 
 args = parser.parse_args()
 
 pinfile = args.pinfile
 
 lcpu_count = len(os.sched_getaffinity(0))
 
 pcpu_count = psutil.cpu_count(logical=False)
 
 vmem = psutil.virtual_memory()
 
dict affinity_dict = {}
 Parse affinity json.
 
 affinity_json = json.load(f)
 
 aff_value = affinity_json[proc][proc_opts][aff_field]
 
dict proc_names = affinity_dict.keys()
 Apply CPU masks.
 
list procs = []
 
dict cmdline_dict = affinity_dict[proc.name()].keys()
 
str proc_cmdline = ' '.join(proc.cmdline())
 
str rss = 'Resident Set Size (RSS): ' + str('{:.2f}'.format(proc.memory_info().rss/1024/1024)) + ' [MB]'
 
str vms = 'Virtual Memory Size (VMS): ' + str('{:.2f}'.format(proc.memory_info().vms/1024/1024)) + ' [MB]'
 
 connections = proc.connections()
 
 children = proc.children(recursive=True)
 
 threads = proc.threads()
 
dict mask = affinity_dict[proc.name()][cmdl]['parent']
 
 cid = psutil.Process(child.id)
 
 tid = psutil.Process(thread.id)
 
dict thread_masks = affinity_dict[proc.name()][cmdl]['threads']
 
list mask_matches = [ m for m in [(th_mask['regex'].fullmatch(tid.name()),th_mask['cpu_list']) for th_mask in thread_masks.values()] if m[0] is not None]
 

Function Documentation

◆ parse_cpumask()

readout-affinity.parse_cpumask ( mask)

Parses CPU mask strings and lists.

Definition at line 30 of file readout-affinity.py.

30def parse_cpumask(mask):
31 cpu_mask = set()
32 if type(mask) == list:
33 cpu_mask = set(mask)
34 return list(cpu_mask)
35 elif type(mask) == str:
36 for region_str in mask.split(','):
37 try:
38 region = region_str.replace(" ", "").split('-')
39 if len(region) == 1:
40 cpu_mask.add(int(region[0]))
41 elif len(region) == 2:
42 cpu_from = int(region[0])
43 cpu_to = int(region[1])
44 for cpu in range(cpu_from, cpu_to+1):
45 cpu_mask.add(cpu)
46 else:
47 raise Exception('This is neither a single CPU or a range of CPUs:', mask)
48 except Exception as e:
49 raise Exception('Corrcupt CPU mask region! Mask string:', mask, 'Exception:', e)
50 else:
51 raise Exception('CPU mask needs to be string or list. Current:', mask)
52 return list(cpu_mask)
53

Variable Documentation

◆ aff_value

readout-affinity.aff_value = affinity_json[proc][proc_opts][aff_field]

Definition at line 69 of file readout-affinity.py.

◆ affinity_dict

dict readout-affinity.affinity_dict = {}

Parse affinity json.

Definition at line 56 of file readout-affinity.py.

◆ affinity_json

readout-affinity.affinity_json = json.load(f)

Definition at line 59 of file readout-affinity.py.

◆ args

readout-affinity.args = parser.parse_args()

Definition at line 14 of file readout-affinity.py.

◆ children

readout-affinity.children = proc.children(recursive=True)

Definition at line 109 of file readout-affinity.py.

◆ cid

readout-affinity.cid = psutil.Process(child.id)

Definition at line 123 of file readout-affinity.py.

◆ cmdline_dict

dict readout-affinity.cmdline_dict = affinity_dict[proc.name()].keys()

Definition at line 96 of file readout-affinity.py.

◆ connections

readout-affinity.connections = proc.connections()

Definition at line 107 of file readout-affinity.py.

◆ help

readout-affinity.help

Definition at line 12 of file readout-affinity.py.

◆ info

str readout-affinity.info = 'Alters CPU masks of running processes with different arguments, based on a configuration file.'

Definition at line 10 of file readout-affinity.py.

◆ lcpu_count

readout-affinity.lcpu_count = len(os.sched_getaffinity(0))

Definition at line 21 of file readout-affinity.py.

◆ mask

dict readout-affinity.mask = affinity_dict[proc.name()][cmdl]['parent']

Definition at line 115 of file readout-affinity.py.

◆ mask_matches

list readout-affinity.mask_matches = [ m for m in [(th_mask['regex'].fullmatch(tid.name()),th_mask['cpu_list']) for th_mask in thread_masks.values()] if m[0] is not None]

Definition at line 137 of file readout-affinity.py.

◆ parser

readout-affinity.parser = argparse.ArgumentParser(description=info)

Definition at line 11 of file readout-affinity.py.

◆ pcpu_count

readout-affinity.pcpu_count = psutil.cpu_count(logical=False)

Definition at line 22 of file readout-affinity.py.

◆ pinfile

readout-affinity.pinfile = args.pinfile

Definition at line 18 of file readout-affinity.py.

◆ proc_cmdline

str readout-affinity.proc_cmdline = ' '.join(proc.cmdline())

Definition at line 97 of file readout-affinity.py.

◆ proc_names

dict readout-affinity.proc_names = affinity_dict.keys()

Apply CPU masks.

Definition at line 88 of file readout-affinity.py.

◆ procs

list readout-affinity.procs = []

Definition at line 89 of file readout-affinity.py.

◆ required

readout-affinity.required

Definition at line 12 of file readout-affinity.py.

◆ rss

str readout-affinity.rss = 'Resident Set Size (RSS): ' + str('{:.2f}'.format(proc.memory_info().rss/1024/1024)) + ' [MB]'

Definition at line 104 of file readout-affinity.py.

◆ str

readout-affinity.str

Definition at line 12 of file readout-affinity.py.

◆ thread_masks

dict readout-affinity.thread_masks = affinity_dict[proc.name()][cmdl]['threads']

Definition at line 133 of file readout-affinity.py.

◆ threads

readout-affinity.threads = proc.threads()

Definition at line 111 of file readout-affinity.py.

◆ tid

readout-affinity.tid = psutil.Process(thread.id)

Definition at line 126 of file readout-affinity.py.

◆ True

readout-affinity.True

Definition at line 12 of file readout-affinity.py.

◆ type

readout-affinity.type

Definition at line 12 of file readout-affinity.py.

◆ vmem

readout-affinity.vmem = psutil.virtual_memory()

Definition at line 23 of file readout-affinity.py.

◆ vms

str readout-affinity.vms = 'Virtual Memory Size (VMS): ' + str('{:.2f}'.format(proc.memory_info().vms/1024/1024)) + ' [MB]'

Definition at line 105 of file readout-affinity.py.