UNMAP_VMAS

Section: (9)
Updated: 09 October 2005
Index Return to Main Contents

 

NAME

unmap_vmas - unmap a range of memory covered by a list of vma's  

SYNOPSIS

"SYNOPSIS"

unsigned long unmap_vmas (struct mmu_gather ** tlbp, struct mm_struct * mm, struct vm_area_struct * vma, unsigned long start_addr, unsigned long end_addr, unsigned long * nr_accounted, struct zap_details * details);  

ARGUMENTS

tlbp
address of the caller's struct mmu_gather
mm
the controlling mm_struct
vma
the starting vma
start_addr
virtual address at which to start unmapping
end_addr
virtual address at which to end unmapping
nr_accounted
Place number of unmapped pages in vm-accountable vma's here
details
details of nonlinear truncation or shared cache invalidation
 

DESCRIPTION

Returns the end address of the unmapping (restart addr if interrupted).

Unmap all pages in the vma list. Called under page_table_lock.

We aim to not hold page_table_lock for too long (for scheduling latency reasons). So zap pages in ZAP_BLOCK_SIZE bytecounts. This means we need to return the ending mmu_gather to the caller.

Only addresses between `start' and `end' will be unmapped.

The VMA list must be sorted in ascending virtual address order.

unmap_vmas assumes that the caller will flush the whole unmapped address range after unmap_vmas returns. So the only responsibility here is to ensure that any thus-far unmapped pages are flushed before unmap_vmas drops the lock and schedules.


 

Index

NAME
SYNOPSIS
ARGUMENTS
DESCRIPTION

This document was created by man2html, using the manual pages.
Time: 00:02:56 GMT, October 09, 2005