Skip to content
Snippets Groups Projects
Select Git revision
  • 59fef3b1e96217c6e736372ff8cc95cbcca1b6aa
  • vme-testing default
  • ci-test
  • master
  • remoteproc
  • am625-sk-ov5640
  • pcal6534-upstreaming
  • lps22df-upstreaming
  • msc-upstreaming
  • imx8mp
  • iio/noa1305
  • vme-next
  • vme-next-4.14-rc4
  • v4.14-rc4
  • v4.14-rc3
  • v4.14-rc2
  • v4.14-rc1
  • v4.13
  • vme-next-4.13-rc7
  • v4.13-rc7
  • v4.13-rc6
  • v4.13-rc5
  • v4.13-rc4
  • v4.13-rc3
  • v4.13-rc2
  • v4.13-rc1
  • v4.12
  • v4.12-rc7
  • v4.12-rc6
  • v4.12-rc5
  • v4.12-rc4
  • v4.12-rc3
32 results

mthca_main.c

Blame
  • rmap.c 51.17 KiB
    /*
     * mm/rmap.c - physical to virtual reverse mappings
     *
     * Copyright 2001, Rik van Riel <riel@conectiva.com.br>
     * Released under the General Public License (GPL).
     *
     * Simple, low overhead reverse mapping scheme.
     * Please try to keep this thing as modular as possible.
     *
     * Provides methods for unmapping each kind of mapped page:
     * the anon methods track anonymous pages, and
     * the file methods track pages belonging to an inode.
     *
     * Original design by Rik van Riel <riel@conectiva.com.br> 2001
     * File methods by Dave McCracken <dmccr@us.ibm.com> 2003, 2004
     * Anonymous methods by Andrea Arcangeli <andrea@suse.de> 2004
     * Contributions by Hugh Dickins 2003, 2004
     */
    
    /*
     * Lock ordering in mm:
     *
     * inode->i_mutex	(while writing or truncating, not reading or faulting)
     *   mm->mmap_sem
     *     page->flags PG_locked (lock_page)
     *       hugetlbfs_i_mmap_rwsem_key (in huge_pmd_share)
     *         mapping->i_mmap_rwsem
     *           anon_vma->rwsem
     *             mm->page_table_lock or pte_lock
     *               zone_lru_lock (in mark_page_accessed, isolate_lru_page)
     *               swap_lock (in swap_duplicate, swap_info_get)
     *                 mmlist_lock (in mmput, drain_mmlist and others)
     *                 mapping->private_lock (in __set_page_dirty_buffers)
     *                   mem_cgroup_{begin,end}_page_stat (memcg->move_lock)
     *                     mapping->tree_lock (widely used)
     *                 inode->i_lock (in set_page_dirty's __mark_inode_dirty)
     *                 bdi.wb->list_lock (in set_page_dirty's __mark_inode_dirty)
     *                   sb_lock (within inode_lock in fs/fs-writeback.c)
     *                   mapping->tree_lock (widely used, in set_page_dirty,
     *                             in arch-dependent flush_dcache_mmap_lock,
     *                             within bdi.wb->list_lock in __sync_single_inode)
     *
     * anon_vma->rwsem,mapping->i_mutex      (memory_failure, collect_procs_anon)
     *   ->tasklist_lock
     *     pte map lock
     */
    
    #include <linux/mm.h>
    #include <linux/pagemap.h>
    #include <linux/swap.h>
    #include <linux/swapops.h>
    #include <linux/slab.h>
    #include <linux/init.h>
    #include <linux/ksm.h>
    #include <linux/rmap.h>
    #include <linux/rcupdate.h>
    #include <linux/export.h>
    #include <linux/memcontrol.h>
    #include <linux/mmu_notifier.h>
    #include <linux/migrate.h>
    #include <linux/hugetlb.h>
    #include <linux/backing-dev.h>
    #include <linux/page_idle.h>
    
    #include <asm/tlbflush.h>
    
    #include <trace/events/tlb.h>
    
    #include "internal.h"