UNMAP_VMAS

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

 

NAME

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

SYNOPSIS

"SYNOPSIS"

int 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);  

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
 

DESCRIPTION

Returns the number of vma's which were covered by the unmapping.

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: 07:07:31 GMT, October 06, 2005