Lines Matching refs:zone

242   struct alloc_zone *zone;  member
357 alloc_anon (char *pref ATTRIBUTE_UNUSED, size_t size, struct alloc_zone *zone) in alloc_anon() argument
376 zone->bytes_mapped += size; in alloc_anon()
389 alloc_small_page (struct alloc_zone *zone) in alloc_small_page() argument
397 entry = zone->free_pages; in alloc_small_page()
401 zone->free_pages = entry->next; in alloc_small_page()
412 struct page_entry *e, *f = zone->free_pages; in alloc_small_page()
415 page = alloc_anon (NULL, G.pagesize * GGC_QUIRE_SIZE, zone); in alloc_small_page()
428 zone->free_pages = f; in alloc_small_page()
437 entry->context_depth = zone->context_depth; in alloc_small_page()
439 entry->zone = zone; in alloc_small_page()
440 zone->context_depth_allocations |= (unsigned long)1 << zone->context_depth; in alloc_small_page()
444 "Allocating %s page at %p, data %p-%p\n", entry->zone->name, in alloc_small_page()
456 alloc_large_page (size_t size, struct alloc_zone *zone) in alloc_large_page() argument
467 entry->context_depth = zone->context_depth; in alloc_large_page()
469 entry->zone = zone; in alloc_large_page()
470 zone->context_depth_allocations |= (unsigned long)1 << zone->context_depth; in alloc_large_page()
474 "Allocating %s large page at %p, data %p-%p\n", entry->zone->name, in alloc_large_page()
488 "Deallocating %s page at %p, data %p-%p\n", entry->zone->name, (PTR) entry, in free_page()
502 entry->next = entry->zone->free_pages; in free_page()
503 entry->zone->free_pages = entry; in free_page()
510 release_pages (struct alloc_zone *zone) in release_pages() argument
518 p = zone->free_pages; in release_pages()
537 zone->bytes_mapped -= len; in release_pages()
540 zone->free_pages = NULL; in release_pages()
547 free_chunk (struct alloc_chunk *chunk, size_t size, struct alloc_zone *zone) in free_chunk() argument
561 chunk->u.next_free = zone->free_chunks[bin]; in free_chunk()
562 zone->free_chunks[bin] = chunk; in free_chunk()
571 ggc_alloc_zone_1 (size_t size, struct alloc_zone *zone, short type) in ggc_alloc_zone_1() argument
588 entry = alloc_large_page (size, zone); in ggc_alloc_zone_1()
590 entry->next = entry->zone->pages; in ggc_alloc_zone_1()
591 entry->zone->pages = entry; in ggc_alloc_zone_1()
606 chunk = zone->free_chunks[bin]; in ggc_alloc_zone_1()
609 zone->free_chunks[bin] = chunk->u.next_free; in ggc_alloc_zone_1()
617 pp = &(zone->free_chunks[0]); in ggc_alloc_zone_1()
628 entry = alloc_small_page (zone); in ggc_alloc_zone_1()
629 entry->next = entry->zone->pages; in ggc_alloc_zone_1()
630 entry->zone->pages = entry; in ggc_alloc_zone_1()
660 free_chunk (lchunk, lsize, zone); in ggc_alloc_zone_1()
690 zone->allocated += size + CHUNK_OVERHEAD; in ggc_alloc_zone_1()
732 ggc_alloc_zone (size_t size, struct alloc_zone *zone) in ggc_alloc_zone() argument
734 return ggc_alloc_zone_1 (size, zone, -1); in ggc_alloc_zone()
889 struct alloc_zone *zone; in ggc_push_context() local
890 for (zone = G.zones; zone; zone = zone->next_zone) in ggc_push_context()
891 ++(zone->context_depth); in ggc_push_context()
901 ggc_pop_context_1 (struct alloc_zone *zone) in ggc_pop_context_1() argument
907 depth = --(zone->context_depth); in ggc_pop_context_1()
910 if (!((zone->context_depth_allocations | zone->context_depth_collections) & omask)) in ggc_pop_context_1()
913 zone->context_depth_allocations |= (zone->context_depth_allocations & omask) >> 1; in ggc_pop_context_1()
914 zone->context_depth_allocations &= omask - 1; in ggc_pop_context_1()
915 zone->context_depth_collections &= omask - 1; in ggc_pop_context_1()
920 for (p = zone->pages; p != NULL; p = p->next) in ggc_pop_context_1()
930 struct alloc_zone *zone; in ggc_pop_context() local
931 for (zone = G.zones; zone; zone = zone->next_zone) in ggc_pop_context()
932 ggc_pop_context_1 (zone); in ggc_pop_context()
945 sweep_pages (struct alloc_zone *zone) in sweep_pages() argument
953 memset (zone->free_chunks, 0, sizeof (zone->free_chunks)); in sweep_pages()
954 pp = &zone->pages; in sweep_pages()
955 for (p = zone->pages; p ; p = next) in sweep_pages()
996 if (chunk->mark || p->context_depth < zone->context_depth) in sweep_pages()
1005 free_chunk (last_free, last_free_size, zone); in sweep_pages()
1047 free_chunk (last_free, last_free_size, zone); in sweep_pages()
1052 zone->allocated = allocated; in sweep_pages()
1061 ggc_collect_1 (struct alloc_zone *zone, bool need_marking) in ggc_collect_1() argument
1063 if (!zone->dead) in ggc_collect_1()
1069 MAX (zone->allocated_last_gc, in ggc_collect_1()
1074 if (zone->allocated < allocated_last_gc + min_expand) in ggc_collect_1()
1080 zone->name, (unsigned long) zone->allocated / 1024); in ggc_collect_1()
1084 zone->allocated = 0; in ggc_collect_1()
1088 release_pages (zone); in ggc_collect_1()
1091 zone->context_depth_collections in ggc_collect_1()
1092 = ((unsigned long)1 << (zone->context_depth + 1)) - 1; in ggc_collect_1()
1095 sweep_pages (zone); in ggc_collect_1()
1096 zone->was_collected = true; in ggc_collect_1()
1097 zone->allocated_last_gc = zone->allocated; in ggc_collect_1()
1100 fprintf (stderr, "%luk}", (unsigned long) zone->allocated / 1024); in ggc_collect_1()
1108 calculate_average_page_survival (struct alloc_zone *zone) in calculate_average_page_survival() argument
1113 for (p = zone->pages; p; p = p->next) in calculate_average_page_survival()
1130 struct alloc_zone *zone; in check_cookies() local
1132 for (zone = G.zones; zone; zone = zone->next_zone) in check_cookies()
1134 for (p = zone->pages; p; p = p->next) in check_cookies()
1157 struct alloc_zone *zone; in ggc_collect() local
1178 struct alloc_zone *zone; in ggc_collect() local
1180 for (zone = main_zone.next_zone; zone; zone = zone->next_zone) in ggc_collect()
1183 zone->was_collected = false; in ggc_collect()
1184 marked |= ggc_collect_1 (zone, !marked); in ggc_collect()
1191 for (zone = G.zones; zone; zone = zone->next_zone) in ggc_collect()
1193 if (zone->was_collected) in ggc_collect()
1195 f = calculate_average_page_survival (zone); in ggc_collect()
1197 zone->name, f); in ggc_collect()
1208 for (zone = G.zones; zone; zone = zone->next_zone) in ggc_collect()
1210 if (zone->was_collected) in ggc_collect()
1212 for (p = zone->pages; p; p = p->next) in ggc_collect()
1221 if (chunk->mark || p->context_depth < zone->context_depth) in ggc_collect()
1238 for (zone = G.zones; zone && zone->next_zone; zone = zone->next_zone) in ggc_collect()
1240 if (zone->next_zone->dead) in ggc_collect()
1242 struct alloc_zone *dead_zone = zone->next_zone; in ggc_collect()
1251 zone->next_zone = zone->next_zone->next_zone; in ggc_collect()
1395 entry->zone = pch_zone; in ggc_pch_read()
1396 entry->next = entry->zone->pages; in ggc_pch_read()
1397 entry->zone->pages = entry; in ggc_pch_read()