Lines Matching refs:vm_area
213 struct vm_struct *vm_area; in alloc_thread_stack_node_from_cache() local
229 vm_area = this_cpu_xchg(cached_stacks[i], NULL); in alloc_thread_stack_node_from_cache()
230 if (vm_area) in alloc_thread_stack_node_from_cache()
231 return vm_area; in alloc_thread_stack_node_from_cache()
238 static bool try_release_thread_stack_to_cache(struct vm_struct *vm_area) in try_release_thread_stack_to_cache() argument
254 for (i = 0; i < vm_area->nr_pages; i++) { in try_release_thread_stack_to_cache()
255 struct page *page = vm_area->pages[i]; in try_release_thread_stack_to_cache()
264 if (this_cpu_try_cmpxchg(cached_stacks[i], &tmp, vm_area)) in try_release_thread_stack_to_cache()
274 struct vm_struct *vm_area = vm_stack->stack_vm_area; in thread_stack_free_rcu() local
279 vfree(vm_area->addr); in thread_stack_free_rcu()
296 struct vm_struct *vm_area = cached_vm_stack_areas[i]; in free_vm_stack_cache() local
298 if (!vm_area) in free_vm_stack_cache()
301 vfree(vm_area->addr); in free_vm_stack_cache()
308 static int memcg_charge_kernel_stack(struct vm_struct *vm_area) in memcg_charge_kernel_stack() argument
314 BUG_ON(vm_area->nr_pages != THREAD_SIZE / PAGE_SIZE); in memcg_charge_kernel_stack()
317 ret = memcg_kmem_charge_page(vm_area->pages[i], GFP_KERNEL, 0); in memcg_charge_kernel_stack()
325 memcg_kmem_uncharge_page(vm_area->pages[i], 0); in memcg_charge_kernel_stack()
331 struct vm_struct *vm_area; in alloc_thread_stack_node() local
334 vm_area = alloc_thread_stack_node_from_cache(tsk, node); in alloc_thread_stack_node()
335 if (vm_area) { in alloc_thread_stack_node()
336 if (memcg_charge_kernel_stack(vm_area)) { in alloc_thread_stack_node()
337 vfree(vm_area->addr); in alloc_thread_stack_node()
342 kasan_unpoison_range(vm_area->addr, THREAD_SIZE); in alloc_thread_stack_node()
344 stack = kasan_reset_tag(vm_area->addr); in alloc_thread_stack_node()
349 tsk->stack_vm_area = vm_area; in alloc_thread_stack_node()
360 vm_area = find_vm_area(stack); in alloc_thread_stack_node()
361 if (memcg_charge_kernel_stack(vm_area)) { in alloc_thread_stack_node()
370 tsk->stack_vm_area = vm_area; in alloc_thread_stack_node()
483 struct vm_struct *vm_area = task_stack_vm_area(tsk); in account_kernel_stack() local
487 mod_lruvec_page_state(vm_area->pages[i], NR_KERNEL_STACK_KB, in account_kernel_stack()
503 struct vm_struct *vm_area; in exit_task_stack_account() local
506 vm_area = task_stack_vm_area(tsk); in exit_task_stack_account()
508 memcg_kmem_uncharge_page(vm_area->pages[i], 0); in exit_task_stack_account()