Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/sysinfo/stats.c

    r88cc71c0 raab5e46  
    145145        size_t pages = 0;
    146146
    147         /* Walk areas in the address space and count pages */
    148         as_area_t *area = as_area_first(as);
    149         while (area != NULL) {
    150                 if (mutex_trylock(&area->lock) != EOK)
    151                         continue;
    152 
    153                 pages += area->pages;
    154                 mutex_unlock(&area->lock);
    155                 area = as_area_next(area);
     147        /* Walk the B+ tree and count pages */
     148        list_foreach(as->as_area_btree.leaf_list, leaf_link, btree_node_t,
     149            node) {
     150                unsigned int i;
     151                for (i = 0; i < node->keys; i++) {
     152                        as_area_t *area = node->value[i];
     153
     154                        if (mutex_trylock(&area->lock) != EOK)
     155                                continue;
     156
     157                        pages += area->pages;
     158                        mutex_unlock(&area->lock);
     159                }
    156160        }
    157161
     
    182186        size_t pages = 0;
    183187
    184         /* Walk areas in the address space and count pages */
    185         as_area_t *area = as_area_first(as);
    186         while (area != NULL) {
    187                 if (mutex_trylock(&area->lock) != EOK)
    188                         continue;
    189 
    190                 pages += area->resident;
    191                 mutex_unlock(&area->lock);
    192                 area = as_area_next(area);
     188        /* Walk the B+ tree and count pages */
     189        list_foreach(as->as_area_btree.leaf_list, leaf_link, btree_node_t, node) {
     190                unsigned int i;
     191                for (i = 0; i < node->keys; i++) {
     192                        as_area_t *area = node->value[i];
     193
     194                        if (mutex_trylock(&area->lock) != EOK)
     195                                continue;
     196
     197                        pages += area->resident;
     198                        mutex_unlock(&area->lock);
     199                }
    193200        }
    194201
Note: See TracChangeset for help on using the changeset viewer.