Lines Matching refs:zone

51 static void ttm_mem_zone_kobj_release(struct ttm_mem_zone *zone)  in ttm_mem_zone_kobj_release()  argument
55 zone->name, (unsigned long long)zone->used_mem >> 10); in ttm_mem_zone_kobj_release()
56 free(zone, M_TTM_ZONE); in ttm_mem_zone_kobj_release()
61 static ssize_t ttm_mem_zone_show(struct ttm_mem_zone *zone;
67 mtx_lock(&zone->glob->lock);
69 val = zone->zone_mem;
71 val = zone->emer_mem;
73 val = zone->max_mem;
75 val = zone->swap_limit;
77 val = zone->used_mem;
78 mtx_unlock(&zone->glob->lock);
89 static ssize_t ttm_mem_zone_store(struct ttm_mem_zone *zone,
105 mtx_lock(&zone->glob->lock);
106 if (val64 > zone->zone_mem)
107 val64 = zone->zone_mem;
109 zone->emer_mem = val64;
110 if (zone->max_mem > val64)
111 zone->max_mem = val64;
113 zone->max_mem = val64;
114 if (zone->emer_mem < val64)
115 zone->emer_mem = val64;
117 zone->swap_limit = val64;
118 mtx_unlock(&zone->glob->lock);
120 ttm_check_swapping(zone->glob);
134 struct ttm_mem_zone *zone; in ttm_zones_above_swap_target() local
138 zone = glob->zones[i]; in ttm_zones_above_swap_target()
141 target = zone->swap_limit; in ttm_zones_above_swap_target()
143 target = zone->emer_mem; in ttm_zones_above_swap_target()
145 target = zone->max_mem; in ttm_zones_above_swap_target()
149 if (zone->used_mem > target) in ttm_zones_above_swap_target()
196 struct ttm_mem_zone *zone; in ttm_mem_init_kernel_zone() local
198 zone = malloc(sizeof(*zone), M_TTM_ZONE, M_WAITOK | M_ZERO); in ttm_mem_init_kernel_zone()
200 zone->name = "kernel"; in ttm_mem_init_kernel_zone()
201 zone->zone_mem = mem; in ttm_mem_init_kernel_zone()
202 zone->max_mem = mem >> 1; in ttm_mem_init_kernel_zone()
203 zone->emer_mem = (mem >> 1) + (mem >> 2); in ttm_mem_init_kernel_zone()
204 zone->swap_limit = zone->max_mem - (mem >> 3); in ttm_mem_init_kernel_zone()
205 zone->used_mem = 0; in ttm_mem_init_kernel_zone()
206 zone->glob = glob; in ttm_mem_init_kernel_zone()
207 glob->zone_kernel = zone; in ttm_mem_init_kernel_zone()
208 refcount_init(&zone->kobj_ref, 1); in ttm_mem_init_kernel_zone()
209 glob->zones[glob->num_zones++] = zone; in ttm_mem_init_kernel_zone()
216 struct ttm_mem_zone *zone; in ttm_mem_init_dma32_zone() local
218 zone = malloc(sizeof(*zone), M_TTM_ZONE, M_WAITOK | M_ZERO); in ttm_mem_init_dma32_zone()
225 free(zone, M_TTM_ZONE); in ttm_mem_init_dma32_zone()
236 zone->name = "dma32"; in ttm_mem_init_dma32_zone()
237 zone->zone_mem = mem; in ttm_mem_init_dma32_zone()
238 zone->max_mem = mem >> 1; in ttm_mem_init_dma32_zone()
239 zone->emer_mem = (mem >> 1) + (mem >> 2); in ttm_mem_init_dma32_zone()
240 zone->swap_limit = zone->max_mem - (mem >> 3); in ttm_mem_init_dma32_zone()
241 zone->used_mem = 0; in ttm_mem_init_dma32_zone()
242 zone->glob = glob; in ttm_mem_init_dma32_zone()
243 glob->zone_dma32 = zone; in ttm_mem_init_dma32_zone()
244 refcount_init(&zone->kobj_ref, 1); in ttm_mem_init_dma32_zone()
245 glob->zones[glob->num_zones++] = zone; in ttm_mem_init_dma32_zone()
254 struct ttm_mem_zone *zone; in ttm_mem_global_init() local
273 zone = glob->zones[i]; in ttm_mem_global_init()
275 zone->name, (unsigned long long)zone->max_mem >> 10); in ttm_mem_global_init()
288 struct ttm_mem_zone *zone; in ttm_mem_global_release() local
298 zone = glob->zones[i]; in ttm_mem_global_release()
299 if (refcount_release(&zone->kobj_ref)) in ttm_mem_global_release()
300 ttm_mem_zone_kobj_release(zone); in ttm_mem_global_release()
310 struct ttm_mem_zone *zone; in ttm_check_swapping() local
314 zone = glob->zones[i]; in ttm_check_swapping()
315 if (zone->used_mem > zone->swap_limit) { in ttm_check_swapping()
333 struct ttm_mem_zone *zone; in ttm_mem_global_free_zone() local
337 zone = glob->zones[i]; in ttm_mem_global_free_zone()
338 if (single_zone && zone != single_zone) in ttm_mem_global_free_zone()
340 zone->used_mem -= amount; in ttm_mem_global_free_zone()
358 struct ttm_mem_zone *zone; in ttm_mem_global_reserve() local
362 zone = glob->zones[i]; in ttm_mem_global_reserve()
363 if (single_zone && zone != single_zone) in ttm_mem_global_reserve()
367 zone->emer_mem : zone->max_mem; in ttm_mem_global_reserve()
369 if (zone->used_mem > limit) in ttm_mem_global_reserve()
375 zone = glob->zones[i]; in ttm_mem_global_reserve()
376 if (single_zone && zone != single_zone) in ttm_mem_global_reserve()
378 zone->used_mem += amount; in ttm_mem_global_reserve()
431 struct ttm_mem_zone *zone = NULL; in ttm_mem_global_alloc_page() local
439 zone = glob->zone_kernel; in ttm_mem_global_alloc_page()
440 return ttm_mem_global_alloc_zone(glob, zone, PAGE_SIZE, no_wait, in ttm_mem_global_alloc_page()
446 struct ttm_mem_zone *zone = NULL; in ttm_mem_global_free_page() local
449 zone = glob->zone_kernel; in ttm_mem_global_free_page()
450 ttm_mem_global_free_zone(glob, zone, PAGE_SIZE); in ttm_mem_global_free_page()