Example #1
0
    def test_online_cpu_iteration(self):
        count = 0
        for cpu in cpus.for_each_online_cpu():
            self.assertTrue(type(cpu) is int)
            count += 1

        self.assertTrue(count > 0)
Example #2
0
 def check_free_pages(self) -> None:
     for order in range(array_size(self.gdb_obj["free_area"])):
         area = self.gdb_obj["free_area"][order]
         self._check_free_area(area, False, order)
     for cpu in for_each_online_cpu():
         pageset = get_percpu_var(self.gdb_obj["pageset"], cpu)
         self._check_free_area(pageset["pcp"], True, cpu)
Example #3
0
    def __fill_percpu_caches(self) -> None:
        cpu_cache = self.gdb_obj[KmemCache.percpu_name]

        for cpu in for_each_online_cpu():
            if KmemCache.percpu_cache:
                array = get_percpu_var(cpu_cache, cpu)
            else:
                array = cpu_cache[cpu].dereference()

            self.__fill_array_cache(array, AC_PERCPU, -1, cpu)
Example #4
0
    def get_events(cls) -> List[int]:
        nr = cls.nr_event_items
        events = [0] * nr

        for cpu in for_each_online_cpu():
            states = get_percpu_var(cls.symbols.vm_event_states, cpu)
            for item in range(0, nr):
                events[item] += int(states["event"][item])

        return events
Example #5
0
 def check_free_pages(self) -> None:
     for area in array_for_each(self.gdb_obj["free_area"]):
         self._check_free_area(area, False)
     for cpu in for_each_online_cpu():
         pageset = get_percpu_var(self.gdb_obj["pageset"], cpu)
         self._check_free_area(pageset["pcp"], True)
Example #6
0
 def add_vmstat_diffs(self, diffs: List[int]) -> None:
     for cpu in for_each_online_cpu():
         pageset = get_percpu_var(self.gdb_obj["pageset"], cpu)
         vmdiff = pageset["vm_stat_diff"]
         for item in range(0, VmStat.nr_stat_items):
             diffs[item] += int(vmdiff[item])