<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>More Memory Management Functions</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="index.html" title="The Linux Kernel API" /><link rel="up" href="ch04.html" title="Chapter 4. Memory Management in Linux" /><link rel="prev" href="re150.html" title="copy_from_user" /><link rel="next" href="re151.html" title="read_cache_pages" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">More Memory Management Functions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="re150.html">Prev</a> </td><th width="60%" align="center">Chapter 4. Memory Management in Linux</th><td width="20%" align="right"> <a accesskey="n" href="re151.html">Next</a></td></tr></table><hr /></div><div class="sect1" title="More Memory Management Functions"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="id2640261"></a>More Memory Management Functions</h2></div></div></div><div class="toc"><dl><dt><span class="refentrytitle"><a href="re151.html"><span>read_cache_pages</span></a></span><span class="refpurpose"> — populate an address space with some pages & start reads against them </span></dt><dt><span class="refentrytitle"><a href="re152.html"><span>page_cache_sync_readahead</span></a></span><span class="refpurpose"> — generic file readahead </span></dt><dt><span class="refentrytitle"><a href="re153.html"><span>page_cache_async_readahead</span></a></span><span class="refpurpose"> — file readahead for marked pages </span></dt><dt><span class="refentrytitle"><a href="re154.html"><span>filemap_flush</span></a></span><span class="refpurpose"> — mostly a non-blocking flush </span></dt><dt><span class="refentrytitle"><a href="re155.html"><span>filemap_fdatawait_range</span></a></span><span class="refpurpose"> — wait for all under-writeback pages to complete in a given range </span></dt><dt><span class="refentrytitle"><a href="re156.html"><span>filemap_fdatawait</span></a></span><span class="refpurpose"> — wait for all under-writeback pages to complete </span></dt><dt><span class="refentrytitle"><a href="re157.html"><span>filemap_write_and_wait_range</span></a></span><span class="refpurpose"> — write out & wait on a file range </span></dt><dt><span class="refentrytitle"><a href="re158.html"><span>add_to_page_cache_locked</span></a></span><span class="refpurpose"> — add a locked page to the pagecache </span></dt><dt><span class="refentrytitle"><a href="re159.html"><span>add_page_wait_queue</span></a></span><span class="refpurpose"> — Add an arbitrary waiter to a page's wait queue </span></dt><dt><span class="refentrytitle"><a href="re160.html"><span>unlock_page</span></a></span><span class="refpurpose"> — unlock a locked page </span></dt><dt><span class="refentrytitle"><a href="re161.html"><span>end_page_writeback</span></a></span><span class="refpurpose"> — end writeback against a page </span></dt><dt><span class="refentrytitle"><a href="re162.html"><span>__lock_page</span></a></span><span class="refpurpose"> — get a lock on the page, assuming we need to sleep to get it </span></dt><dt><span class="refentrytitle"><a href="re163.html"><span>find_get_page</span></a></span><span class="refpurpose"> — find and get a page reference </span></dt><dt><span class="refentrytitle"><a href="re164.html"><span>find_lock_page</span></a></span><span class="refpurpose"> — locate, pin and lock a pagecache page </span></dt><dt><span class="refentrytitle"><a href="re165.html"><span>find_or_create_page</span></a></span><span class="refpurpose"> — locate or add a pagecache page </span></dt><dt><span class="refentrytitle"><a href="re166.html"><span>find_get_pages_contig</span></a></span><span class="refpurpose"> — gang contiguous pagecache lookup </span></dt><dt><span class="refentrytitle"><a href="re167.html"><span>find_get_pages_tag</span></a></span><span class="refpurpose"> — find and return pages that match <em class="parameter"><code>tag</code></em> </span></dt><dt><span class="refentrytitle"><a href="re168.html"><span>grab_cache_page_nowait</span></a></span><span class="refpurpose"> — returns locked page at given index in given cache </span></dt><dt><span class="refentrytitle"><a href="re169.html"><span>generic_file_aio_read</span></a></span><span class="refpurpose"> — generic filesystem read routine </span></dt><dt><span class="refentrytitle"><a href="re170.html"><span>filemap_fault</span></a></span><span class="refpurpose"> — read in file data for page fault handling </span></dt><dt><span class="refentrytitle"><a href="re171.html"><span>read_cache_page_async</span></a></span><span class="refpurpose"> — read into page cache, fill it if needed </span></dt><dt><span class="refentrytitle"><a href="re172.html"><span>read_cache_page_gfp</span></a></span><span class="refpurpose"> — read into page cache, using specified page allocation flags. </span></dt><dt><span class="refentrytitle"><a href="re173.html"><span>read_cache_page</span></a></span><span class="refpurpose"> — read into page cache, fill it if needed </span></dt><dt><span class="refentrytitle"><a href="re174.html"><span>__generic_file_aio_write</span></a></span><span class="refpurpose"> — write data to a file </span></dt><dt><span class="refentrytitle"><a href="re175.html"><span>generic_file_aio_write</span></a></span><span class="refpurpose"> — write data to a file </span></dt><dt><span class="refentrytitle"><a href="re176.html"><span>try_to_release_page</span></a></span><span class="refpurpose"> — release old fs-specific metadata on a page </span></dt><dt><span class="refentrytitle"><a href="re177.html"><span>zap_vma_ptes</span></a></span><span class="refpurpose"> — remove ptes mapping the vma </span></dt><dt><span class="refentrytitle"><a href="re178.html"><span>get_user_pages</span></a></span><span class="refpurpose"> — pin user pages in memory </span></dt><dt><span class="refentrytitle"><a href="re179.html"><span>vm_insert_page</span></a></span><span class="refpurpose"> — insert single page into user vma </span></dt><dt><span class="refentrytitle"><a href="re180.html"><span>vm_insert_pfn</span></a></span><span class="refpurpose"> — insert single pfn into user vma </span></dt><dt><span class="refentrytitle"><a href="re181.html"><span>remap_pfn_range</span></a></span><span class="refpurpose"> — remap kernel memory to userspace </span></dt><dt><span class="refentrytitle"><a href="re182.html"><span>unmap_mapping_range</span></a></span><span class="refpurpose"> — unmap the portion of all mmaps in the specified address_space corresponding to the specified page range in the underlying file. </span></dt><dt><span class="refentrytitle"><a href="re183.html"><span>follow_pfn</span></a></span><span class="refpurpose"> — look up PFN at a user virtual address </span></dt><dt><span class="refentrytitle"><a href="re184.html"><span>vm_unmap_aliases</span></a></span><span class="refpurpose"> — unmap outstanding lazy aliases in the vmap layer </span></dt><dt><span class="refentrytitle"><a href="re185.html"><span>vm_unmap_ram</span></a></span><span class="refpurpose"> — unmap linear kernel address space set up by vm_map_ram </span></dt><dt><span class="refentrytitle"><a href="re186.html"><span>vm_map_ram</span></a></span><span class="refpurpose"> — map pages linearly into kernel virtual address (vmalloc space) </span></dt><dt><span class="refentrytitle"><a href="re187.html"><span>vfree</span></a></span><span class="refpurpose"> — release memory allocated by <code class="function">vmalloc</code> </span></dt><dt><span class="refentrytitle"><a href="re188.html"><span>vunmap</span></a></span><span class="refpurpose"> — release virtual mapping obtained by <code class="function">vmap</code> </span></dt><dt><span class="refentrytitle"><a href="re189.html"><span>vmap</span></a></span><span class="refpurpose"> — map an array of pages into virtually contiguous space </span></dt><dt><span class="refentrytitle"><a href="re190.html"><span>vmalloc</span></a></span><span class="refpurpose"> — allocate virtually contiguous memory </span></dt><dt><span class="refentrytitle"><a href="re191.html"><span>vmalloc_user</span></a></span><span class="refpurpose"> — allocate zeroed virtually contiguous memory for userspace </span></dt><dt><span class="refentrytitle"><a href="re192.html"><span>vmalloc_node</span></a></span><span class="refpurpose"> — allocate memory on a specific node </span></dt><dt><span class="refentrytitle"><a href="re193.html"><span>vmalloc_32</span></a></span><span class="refpurpose"> — allocate virtually contiguous memory (32bit addressable) </span></dt><dt><span class="refentrytitle"><a href="re194.html"><span>vmalloc_32_user</span></a></span><span class="refpurpose"> — allocate zeroed virtually contiguous 32bit memory </span></dt><dt><span class="refentrytitle"><a href="re195.html"><span>remap_vmalloc_range</span></a></span><span class="refpurpose"> — map vmalloc pages to userspace </span></dt><dt><span class="refentrytitle"><a href="re196.html"><span>alloc_vm_area</span></a></span><span class="refpurpose"> — allocate a range of kernel address space </span></dt><dt><span class="refentrytitle"><a href="re197.html"><span>watermark_wait</span></a></span><span class="refpurpose"> — Wait for watermark to go above low </span></dt><dt><span class="refentrytitle"><a href="re198.html"><span>find_next_best_node</span></a></span><span class="refpurpose"> — find the next node that should appear in a given node's fallback list </span></dt><dt><span class="refentrytitle"><a href="re199.html"><span>free_bootmem_with_active_regions</span></a></span><span class="refpurpose"> — Call free_bootmem_node for each active range </span></dt><dt><span class="refentrytitle"><a href="re200.html"><span>sparse_memory_present_with_active_regions</span></a></span><span class="refpurpose"> — Call memory_present for each active range </span></dt><dt><span class="refentrytitle"><a href="re201.html"><span>get_pfn_range_for_nid</span></a></span><span class="refpurpose"> — Return the start and end page frames for a node </span></dt><dt><span class="refentrytitle"><a href="re202.html"><span>absent_pages_in_range</span></a></span><span class="refpurpose"> — Return number of page frames in holes within a range </span></dt><dt><span class="refentrytitle"><a href="re203.html"><span>add_active_range</span></a></span><span class="refpurpose"> — Register a range of PFNs backed by physical memory </span></dt><dt><span class="refentrytitle"><a href="re204.html"><span>remove_active_range</span></a></span><span class="refpurpose"> — Shrink an existing registered range of PFNs </span></dt><dt><span class="refentrytitle"><a href="re205.html"><span>remove_all_active_ranges</span></a></span><span class="refpurpose"> — Remove all currently registered regions </span></dt><dt><span class="refentrytitle"><a href="re206.html"><span>find_min_pfn_with_active_regions</span></a></span><span class="refpurpose"> — Find the minimum PFN registered </span></dt><dt><span class="refentrytitle"><a href="re207.html"><span>free_area_init_nodes</span></a></span><span class="refpurpose"> — Initialise all pg_data_t and zone data </span></dt><dt><span class="refentrytitle"><a href="re208.html"><span>set_dma_reserve</span></a></span><span class="refpurpose"> — set the specified number of pages reserved in the first zone </span></dt><dt><span class="refentrytitle"><a href="re209.html"><span>setup_per_zone_wmarks</span></a></span><span class="refpurpose"> — called when min_free_kbytes changes or when memory is hot-{added|removed} </span></dt><dt><span class="refentrytitle"><a href="re210.html"><span>get_pageblock_flags_group</span></a></span><span class="refpurpose"> — Return the requested group of flags for the pageblock_nr_pages block of pages </span></dt><dt><span class="refentrytitle"><a href="re211.html"><span>set_pageblock_flags_group</span></a></span><span class="refpurpose"> — Set the requested group of flags for a pageblock_nr_pages block of pages </span></dt><dt><span class="refentrytitle"><a href="re212.html"><span>mempool_create</span></a></span><span class="refpurpose"> — create a memory pool </span></dt><dt><span class="refentrytitle"><a href="re213.html"><span>mempool_resize</span></a></span><span class="refpurpose"> — resize an existing memory pool </span></dt><dt><span class="refentrytitle"><a href="re214.html"><span>mempool_destroy</span></a></span><span class="refpurpose"> — deallocate a memory pool </span></dt><dt><span class="refentrytitle"><a href="re215.html"><span>mempool_alloc</span></a></span><span class="refpurpose"> — allocate an element from a specific memory pool </span></dt><dt><span class="refentrytitle"><a href="re216.html"><span>mempool_free</span></a></span><span class="refpurpose"> — return an element to the pool. </span></dt><dt><span class="refentrytitle"><a href="re217.html"><span>dma_pool_create</span></a></span><span class="refpurpose"> — Creates a pool of consistent memory blocks, for dma. </span></dt><dt><span class="refentrytitle"><a href="re218.html"><span>dma_pool_destroy</span></a></span><span class="refpurpose"> — destroys a pool of dma memory blocks. </span></dt><dt><span class="refentrytitle"><a href="re219.html"><span>dma_pool_alloc</span></a></span><span class="refpurpose"> — get a block of consistent memory </span></dt><dt><span class="refentrytitle"><a href="re220.html"><span>dma_pool_free</span></a></span><span class="refpurpose"> — put block back into dma pool </span></dt><dt><span class="refentrytitle"><a href="re221.html"><span>dmam_pool_create</span></a></span><span class="refpurpose"> — Managed <code class="function">dma_pool_create</code> </span></dt><dt><span class="refentrytitle"><a href="re222.html"><span>dmam_pool_destroy</span></a></span><span class="refpurpose"> — Managed <code class="function">dma_pool_destroy</code> </span></dt><dt><span class="refentrytitle"><a href="re223.html"><span>balance_dirty_pages_ratelimited_nr</span></a></span><span class="refpurpose"> — balance dirty memory state </span></dt><dt><span class="refentrytitle"><a href="re224.html"><span>write_cache_pages</span></a></span><span class="refpurpose"> — walk the list of dirty pages of the given address space and write all of them. </span></dt><dt><span class="refentrytitle"><a href="re225.html"><span>generic_writepages</span></a></span><span class="refpurpose"> — walk the list of dirty pages of the given address space and <code class="function">writepage</code> all of them. </span></dt><dt><span class="refentrytitle"><a href="re226.html"><span>write_one_page</span></a></span><span class="refpurpose"> — write out a single page and optionally wait on I/O </span></dt><dt><span class="refentrytitle"><a href="re227.html"><span>truncate_inode_pages_range</span></a></span><span class="refpurpose"> — truncate range of pages specified by start & end byte offsets </span></dt><dt><span class="refentrytitle"><a href="re228.html"><span>truncate_inode_pages</span></a></span><span class="refpurpose"> — truncate *all* the pages from an offset </span></dt><dt><span class="refentrytitle"><a href="re229.html"><span>invalidate_mapping_pages</span></a></span><span class="refpurpose"> — Invalidate all the unlocked pages of one inode </span></dt><dt><span class="refentrytitle"><a href="re230.html"><span>invalidate_inode_pages2_range</span></a></span><span class="refpurpose"> — remove range of pages from an address_space </span></dt><dt><span class="refentrytitle"><a href="re231.html"><span>invalidate_inode_pages2</span></a></span><span class="refpurpose"> — remove all pages from an address_space </span></dt><dt><span class="refentrytitle"><a href="re232.html"><span>truncate_pagecache</span></a></span><span class="refpurpose"> — unmap and remove pagecache that has been truncated </span></dt><dt><span class="refentrytitle"><a href="re233.html"><span>vmtruncate</span></a></span><span class="refpurpose"> — unmap mappings <span class="quote">“<span class="quote">freed</span>”</span> by <code class="function">truncate</code> syscall </span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="re150.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch04.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="re151.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span>copy_from_user</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span>read_cache_pages</span></td></tr></table></div></body></html>