Lines Matching full:self

47     def __init__(self, size=None, nr_accesses=None, age=None):
48 self.size = size
49 self.nr_accesses = nr_accesses
50 self.age = age
52 if self.size is None:
53 self.size = [0, 2**64 - 1]
54 if self.nr_accesses is None:
55 self.nr_accesses = [0, 2**32 - 1]
56 if self.age is None:
57 self.age = [0, 2**32 - 1]
59 def sysfs_dir(self):
60 return os.path.join(self.scheme.sysfs_dir(), 'access_pattern')
62 def stage(self):
64 os.path.join(self.sysfs_dir(), 'sz', 'min'), self.size[0])
68 os.path.join(self.sysfs_dir(), 'sz', 'max'), self.size[1])
71 err = write_file(os.path.join(self.sysfs_dir(), 'nr_accesses', 'min'),
72 self.nr_accesses[0])
75 err = write_file(os.path.join(self.sysfs_dir(), 'nr_accesses', 'max'),
76 self.nr_accesses[1])
80 os.path.join(self.sysfs_dir(), 'age', 'min'), self.age[0])
84 os.path.join(self.sysfs_dir(), 'age', 'max'), self.age[1])
101 def __init__(self, metric, target_value=10000, current_value=0, nid=0):
102 self.metric = metric
103 self.target_value = target_value
104 self.current_value = current_value
105 self.nid = nid
107 def sysfs_dir(self):
108 return os.path.join(self.quota.sysfs_dir(), 'goals', '%d' % self.idx)
110 def stage(self):
111 err = write_file(os.path.join(self.sysfs_dir(), 'target_metric'),
112 self.metric)
115 err = write_file(os.path.join(self.sysfs_dir(), 'target_value'),
116 self.target_value)
119 err = write_file(os.path.join(self.sysfs_dir(), 'current_value'),
120 self.current_value)
123 err = write_file(os.path.join(self.sysfs_dir(), 'nid'), self.nid)
139 def __init__(self, sz=0, ms=0, goals=None, reset_interval_ms=0,
142 self.sz = sz
143 self.ms = ms
144 self.reset_interval_ms = reset_interval_ms
145 self.weight_sz_permil = weight_sz_permil
146 self.weight_nr_accesses_permil = weight_nr_accesses_permil
147 self.weight_age_permil = weight_age_permil
148 self.goals = goals if goals is not None else []
149 for idx, goal in enumerate(self.goals):
151 goal.quota = self
153 def sysfs_dir(self):
154 return os.path.join(self.scheme.sysfs_dir(), 'quotas')
156 def stage(self):
157 err = write_file(os.path.join(self.sysfs_dir(), 'bytes'), self.sz)
160 err = write_file(os.path.join(self.sysfs_dir(), 'ms'), self.ms)
163 err = write_file(os.path.join(self.sysfs_dir(), 'reset_interval_ms'),
164 self.reset_interval_ms)
169 self.sysfs_dir(), 'weights', 'sz_permil'), self.weight_sz_permil)
173 self.sysfs_dir(), 'weights', 'nr_accesses_permil'),
174 self.weight_nr_accesses_permil)
178 self.sysfs_dir(), 'weights', 'age_permil'), self.weight_age_permil)
182 nr_goals_file = os.path.join(self.sysfs_dir(), 'goals', 'nr_goals')
186 if int(content) != len(self.goals):
187 err = write_file(nr_goals_file, len(self.goals))
190 for goal in self.goals:
204 def __init__(self, metric='none', interval=0, high=0, mid=0, low=0):
205 self.metric = metric
206 self.interval = interval
207 self.high = high
208 self.mid = mid
209 self.low = low
211 def sysfs_dir(self):
212 return os.path.join(self.scheme.sysfs_dir(), 'watermarks')
214 def stage(self):
215 err = write_file(os.path.join(self.sysfs_dir(), 'metric'), self.metric)
218 err = write_file(os.path.join(self.sysfs_dir(), 'interval_us'),
219 self.interval)
222 err = write_file(os.path.join(self.sysfs_dir(), 'high'), self.high)
225 err = write_file(os.path.join(self.sysfs_dir(), 'mid'), self.mid)
228 err = write_file(os.path.join(self.sysfs_dir(), 'low'), self.low)
245 def __init__(self, type_='anon', matching=False, allow=False,
248 self.type_ = type_
249 self.matching = matching
250 self.allow = allow
251 self.memcg_path = memcg_path,
252 self.addr_start = addr_start
253 self.addr_end = addr_end
254 self.target_idx = target_idx
255 self.min_ = min_
256 self.max_ = max_
258 def sysfs_dir(self):
259 return os.path.join(self.filters.sysfs_dir(), '%d' % self.idx)
261 def stage(self):
262 err = write_file(os.path.join(self.sysfs_dir(), 'type'), self.type_)
265 err = write_file(os.path.join(self.sysfs_dir(), 'matching'),
266 self.matching)
269 err = write_file(os.path.join(self.sysfs_dir(), 'allow'), self.allow)
272 err = write_file(os.path.join(self.sysfs_dir(), 'memcg_path'),
273 self.memcg_path)
276 err = write_file(os.path.join(self.sysfs_dir(), 'addr_start'),
277 self.addr_start)
280 err = write_file(os.path.join(self.sysfs_dir(), 'addr_end'),
281 self.addr_end)
284 err = write_file(os.path.join(self.sysfs_dir(), 'damon_target_idx'),
285 self.target_idx)
288 err = write_file(os.path.join(self.sysfs_dir(), 'min'), self.min_)
291 err = write_file(os.path.join(self.sysfs_dir(), 'max'), self.max_)
301 def __init__(self, name, filters=[]):
302 self.name = name
303 self.filters = filters
304 for idx, filter_ in enumerate(self.filters):
306 filter_.filters = self
308 def sysfs_dir(self):
309 return os.path.join(self.scheme.sysfs_dir(), self.name)
311 def stage(self):
312 err = write_file(os.path.join(self.sysfs_dir(), 'nr_filters'),
313 len(self.filters))
316 for filter_ in self.filters:
328 def __init__(self, id=0, weight=0):
329 self.id = id
330 self.weight = weight
332 def sysfs_dir(self):
333 return os.path.join(self.dests.sysfs_dir(), '%d' % self.idx)
335 def stage(self):
336 err = write_file(os.path.join(self.sysfs_dir(), 'id'), self.id)
339 err = write_file(os.path.join(self.sysfs_dir(), 'weight'), self.weight)
348 def __init__(self, dests=[]):
349 self.dests = dests
350 for idx, dest in enumerate(self.dests):
352 dest.dests = self
354 def sysfs_dir(self):
355 return os.path.join(self.scheme.sysfs_dir(), 'dests')
357 def stage(self):
358 err = write_file(os.path.join(self.sysfs_dir(), 'nr_dests'),
359 len(self.dests))
362 for dest in self.dests:
375 def __init__(self, nr_tried, sz_tried, nr_applied, sz_applied, qt_exceeds):
376 self.nr_tried = nr_tried
377 self.sz_tried = sz_tried
378 self.nr_applied = nr_applied
379 self.sz_applied = sz_applied
380 self.qt_exceeds = qt_exceeds
383 def __init__(self, start, end, nr_accesses, age):
384 self.start = start
385 self.end = end
386 self.nr_accesses = nr_accesses
387 self.age = age
406 def __init__(self, action='stat', access_pattern=DamosAccessPattern(),
410 self.action = action
411 self.access_pattern = access_pattern
412 self.access_pattern.scheme = self
413 self.quota = quota
414 self.quota.scheme = self
415 self.watermarks = watermarks
416 self.watermarks.scheme = self
418 self.core_filters = DamosFilters(name='core_filters',
420 self.core_filters.scheme = self
421 self.ops_filters = DamosFilters(name='ops_filters',
423 self.ops_filters.scheme = self
424 self.filters = DamosFilters(name='filters', filters=filters)
425 self.filters.scheme = self
427 self.target_nid = target_nid
428 self.dests = dests
429 self.dests.scheme = self
431 self.apply_interval_us = apply_interval_us
433 def sysfs_dir(self):
435 self.context.sysfs_dir(), 'schemes', '%d' % self.idx)
437 def stage(self):
438 err = write_file(os.path.join(self.sysfs_dir(), 'action'), self.action)
441 err = self.access_pattern.stage()
444 err = write_file(os.path.join(self.sysfs_dir(), 'apply_interval_us'),
445 '%d' % self.apply_interval_us)
449 err = self.quota.stage()
453 err = self.watermarks.stage()
457 err = self.core_filters.stage()
460 err = self.ops_filters.stage()
463 err = self.filters.stage()
467 err = write_file(os.path.join(self.sysfs_dir(), 'target_nid'), '%d' %
468 self.target_nid)
472 err = self.dests.stage()
482 def __init__(self, pid):
483 self.pid = pid
485 def sysfs_dir(self):
487 self.context.sysfs_dir(), 'targets', '%d' % self.idx)
489 def stage(self):
491 os.path.join(self.sysfs_dir(), 'regions', 'nr_regions'), '0')
495 os.path.join(self.sysfs_dir(), 'pid_target'), self.pid)
504 def __init__(self, access_bp=0, aggrs=0, min_sample_us=0, max_sample_us=0):
505 self.access_bp = access_bp
506 self.aggrs = aggrs
507 self.min_sample_us = min_sample_us
508 self.max_sample_us = max_sample_us
510 def sysfs_dir(self):
511 return os.path.join(self.attrs.interval_sysfs_dir(), 'intervals_goal')
513 def stage(self):
515 os.path.join(self.sysfs_dir(), 'access_bp'), self.access_bp)
518 err = write_file(os.path.join(self.sysfs_dir(), 'aggrs'), self.aggrs)
521 err = write_file(os.path.join(self.sysfs_dir(), 'min_sample_us'),
522 self.min_sample_us)
525 err = write_file(os.path.join(self.sysfs_dir(), 'max_sample_us'),
526 self.max_sample_us)
540 def __init__(self, sample_us=5000, aggr_us=100000,
543 self.sample_us = sample_us
544 self.aggr_us = aggr_us
545 self.intervals_goal = intervals_goal
546 self.intervals_goal.attrs = self
547 self.update_us = update_us
548 self.min_nr_regions = min_nr_regions
549 self.max_nr_regions = max_nr_regions
551 def interval_sysfs_dir(self):
552 return os.path.join(self.context.sysfs_dir(), 'monitoring_attrs',
555 def nr_regions_range_sysfs_dir(self):
556 return os.path.join(self.context.sysfs_dir(), 'monitoring_attrs',
559 def stage(self):
560 err = write_file(os.path.join(self.interval_sysfs_dir(), 'sample_us'),
561 self.sample_us)
564 err = write_file(os.path.join(self.interval_sysfs_dir(), 'aggr_us'),
565 self.aggr_us)
568 err = self.intervals_goal.stage()
571 err = write_file(os.path.join(self.interval_sysfs_dir(), 'update_us'),
572 self.update_us)
577 os.path.join(self.nr_regions_range_sysfs_dir(), 'min'),
578 self.min_nr_regions)
583 os.path.join(self.nr_regions_range_sysfs_dir(), 'max'),
584 self.max_nr_regions)
596 def __init__(self, ops='paddr', monitoring_attrs=DamonAttrs(), targets=[],
598 self.ops = ops
599 self.monitoring_attrs = monitoring_attrs
600 self.monitoring_attrs.context = self
602 self.targets = targets
603 for idx, target in enumerate(self.targets):
605 target.context = self
607 self.schemes = schemes
608 for idx, scheme in enumerate(self.schemes):
610 scheme.context = self
612 def sysfs_dir(self):
613 return os.path.join(self.kdamond.sysfs_dir(), 'contexts',
614 '%d' % self.idx)
616 def stage(self):
618 os.path.join(self.sysfs_dir(), 'operations'), self.ops)
621 err = self.monitoring_attrs.stage()
626 self.sysfs_dir(), 'targets', 'nr_targets')
630 if int(content) != len(self.targets):
631 err = write_file(nr_targets_file, '%d' % len(self.targets))
634 for target in self.targets:
640 self.sysfs_dir(), 'schemes', 'nr_schemes')
644 if int(content) != len(self.schemes):
645 err = write_file(nr_schemes_file, '%d' % len(self.schemes))
648 for scheme in self.schemes:
661 def __init__(self, contexts=[]):
662 self.contexts = contexts
663 for idx, context in enumerate(self.contexts):
665 context.kdamond = self
667 def sysfs_dir(self):
668 return os.path.join(self.kdamonds.sysfs_dir(), '%d' % self.idx)
670 def start(self):
671 nr_contexts_file = os.path.join(self.sysfs_dir(),
676 if int(content) != len(self.contexts):
677 err = write_file(nr_contexts_file, '%d' % len(self.contexts))
681 for context in self.contexts:
685 err = write_file(os.path.join(self.sysfs_dir(), 'state'), 'on')
688 self.pid, err = read_file(os.path.join(self.sysfs_dir(), 'pid'))
691 def stop(self):
692 err = write_file(os.path.join(self.sysfs_dir(), 'state'), 'off')
695 def update_schemes_tried_regions(self):
696 err = write_file(os.path.join(self.sysfs_dir(), 'state'),
700 for context in self.contexts:
725 def update_schemes_tried_bytes(self):
726 err = write_file(os.path.join(self.sysfs_dir(), 'state'),
730 for context in self.contexts:
738 def update_schemes_stats(self):
739 err = write_file(os.path.join(self.sysfs_dir(), 'state'),
743 for context in self.contexts:
755 def update_schemes_effective_quotas(self):
756 err = write_file(os.path.join(self.sysfs_dir(), 'state'),
760 for context in self.contexts:
771 def commit(self):
772 nr_contexts_file = os.path.join(self.sysfs_dir(),
777 if int(content) != len(self.contexts):
778 err = write_file(nr_contexts_file, '%d' % len(self.contexts))
782 for context in self.contexts:
786 err = write_file(os.path.join(self.sysfs_dir(), 'state'), 'commit')
790 def commit_schemes_quota_goals(self):
791 for context in self.contexts:
799 return write_file(os.path.join(self.sysfs_dir(), 'state'),
805 def __init__(self, kdamonds=[]):
806 self.kdamonds = kdamonds
807 for idx, kdamond in enumerate(self.kdamonds):
809 kdamond.kdamonds = self
811 def sysfs_dir(self):
814 def start(self):
815 err = write_file(os.path.join(self.sysfs_dir(), 'nr_kdamonds'),
816 '%s' % len(self.kdamonds))
819 for kdamond in self.kdamonds:
825 def stop(self):
826 for kdamond in self.kdamonds: