cregit-Linux how code gets into the kernel

Release 4.10 arch/ia64/include/asm/pgalloc.h

#ifndef _ASM_IA64_PGALLOC_H

#define _ASM_IA64_PGALLOC_H

/*
 * This file contains the functions and defines necessary to allocate
 * page tables.
 *
 * This hopefully works with any (fixed) ia-64 page-size, as defined
 * in <asm/page.h> (currently 8192).
 *
 * Copyright (C) 1998-2001 Hewlett-Packard Co
 *      David Mosberger-Tang <davidm@hpl.hp.com>
 * Copyright (C) 2000, Goutham Rao <goutham.rao@intel.com>
 */


#include <linux/compiler.h>
#include <linux/mm.h>
#include <linux/page-flags.h>
#include <linux/threads.h>
#include <linux/quicklist.h>

#include <asm/mmu_context.h>


static inline pgd_t *pgd_alloc(struct mm_struct *mm) { return quicklist_alloc(0, GFP_KERNEL, NULL); }

Contributors

PersonTokensPropCommitsCommitProp
robin holtrobin holt1565.22%150.00%
christoph lameterchristoph lameter834.78%150.00%
Total23100.00%2100.00%


static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd) { quicklist_free(0, NULL, pgd); }

Contributors

PersonTokensPropCommitsCommitProp
robin holtrobin holt1560.00%133.33%
benjamin herrenschmidtbenjamin herrenschmidt520.00%133.33%
christoph lameterchristoph lameter520.00%133.33%
Total25100.00%3100.00%

#if CONFIG_PGTABLE_LEVELS == 4
static inline void pgd_populate(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud) { pgd_val(*pgd_entry) = __pa(pud); }

Contributors

PersonTokensPropCommitsCommitProp
robin holtrobin holt31100.00%1100.00%
Total31100.00%1100.00%


static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr) { return quicklist_alloc(0, GFP_KERNEL, NULL); }

Contributors

PersonTokensPropCommitsCommitProp
robin holtrobin holt1970.37%150.00%
christoph lameterchristoph lameter829.63%150.00%
Total27100.00%2100.00%


static inline void pud_free(struct mm_struct *mm, pud_t *pud) { quicklist_free(0, NULL, pud); }

Contributors

PersonTokensPropCommitsCommitProp
robin holtrobin holt1560.00%133.33%
benjamin herrenschmidtbenjamin herrenschmidt520.00%133.33%
christoph lameterchristoph lameter520.00%133.33%
Total25100.00%3100.00%

#define __pud_free_tlb(tlb, pud, address) pud_free((tlb)->mm, pud) #endif /* CONFIG_PGTABLE_LEVELS == 4 */
static inline void pud_populate(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd) { pud_val(*pud_entry) = __pa(pmd); }

Contributors

PersonTokensPropCommitsCommitProp
linus torvaldslinus torvalds1445.16%125.00%
pre-gitpre-git1238.71%250.00%
nick pigginnick piggin516.13%125.00%
Total31100.00%4100.00%


static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr) { return quicklist_alloc(0, GFP_KERNEL, NULL); }

Contributors

PersonTokensPropCommitsCommitProp
pre-gitpre-git1348.15%250.00%
christoph lameterchristoph lameter829.63%125.00%
linus torvaldslinus torvalds622.22%125.00%
Total27100.00%4100.00%


static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) { quicklist_free(0, NULL, pmd); }

Contributors

PersonTokensPropCommitsCommitProp
pre-gitpre-git728.00%228.57%
linus torvaldslinus torvalds520.00%114.29%
christoph lameterchristoph lameter520.00%114.29%
benjamin herrenschmidtbenjamin herrenschmidt520.00%114.29%
robin holtrobin holt28.00%114.29%
yanmin zhangyanmin zhang14.00%114.29%
Total25100.00%7100.00%

#define __pmd_free_tlb(tlb, pmd, address) pmd_free((tlb)->mm, pmd)
static inline void pmd_populate(struct mm_struct *mm, pmd_t * pmd_entry, pgtable_t pte) { pmd_val(*pmd_entry) = page_to_phys(pte); }

Contributors

PersonTokensPropCommitsCommitProp
david mosbergerdavid mosberger1550.00%125.00%
linus torvaldslinus torvalds930.00%125.00%
pre-gitpre-git516.67%125.00%
martin schwidefskymartin schwidefsky13.33%125.00%
Total30100.00%4100.00%

#define pmd_pgtable(pmd) pmd_page(pmd)
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t * pmd_entry, pte_t * pte) { pmd_val(*pmd_entry) = __pa(pte); }

Contributors

PersonTokensPropCommitsCommitProp
linus torvaldslinus torvalds1651.61%133.33%
david mosbergerdavid mosberger1445.16%133.33%
pre-gitpre-git13.23%133.33%
Total31100.00%3100.00%


static inline pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long addr) { struct page *page; void *pg; pg = quicklist_alloc(0, GFP_KERNEL, NULL); if (!pg) return NULL; page = virt_to_page(pg); if (!pgtable_page_ctor(page)) { quicklist_free(0, NULL, pg); return NULL; } return page; }

Contributors

PersonTokensPropCommitsCommitProp
martin schwidefskymartin schwidefsky2735.53%111.11%
kirill a. shutemovkirill a. shutemov1722.37%111.11%
pre-gitpre-git1013.16%222.22%
christoph lameterchristoph lameter810.53%111.11%
kirill korotaevkirill korotaev56.58%111.11%
linus torvaldslinus torvalds56.58%111.11%
david mosbergerdavid mosberger33.95%111.11%
robin holtrobin holt11.32%111.11%
Total76100.00%9100.00%


static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr) { return quicklist_alloc(0, GFP_KERNEL, NULL); }

Contributors

PersonTokensPropCommitsCommitProp
pre-gitpre-git1244.44%240.00%
christoph lameterchristoph lameter829.63%120.00%
linus torvaldslinus torvalds622.22%120.00%
david mosbergerdavid mosberger13.70%120.00%
Total27100.00%5100.00%


static inline void pte_free(struct mm_struct *mm, pgtable_t pte) { pgtable_page_dtor(pte); quicklist_free_page(0, NULL, pte); }

Contributors

PersonTokensPropCommitsCommitProp
linus torvaldslinus torvalds1034.48%120.00%
martin schwidefskymartin schwidefsky620.69%120.00%
christoph lameterchristoph lameter517.24%120.00%
benjamin herrenschmidtbenjamin herrenschmidt413.79%120.00%
david mosbergerdavid mosberger413.79%120.00%
Total29100.00%5100.00%


static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) { quicklist_free(0, NULL, pte); }

Contributors

PersonTokensPropCommitsCommitProp
david mosbergerdavid mosberger1248.00%120.00%
benjamin herrenschmidtbenjamin herrenschmidt520.00%120.00%
christoph lameterchristoph lameter520.00%120.00%
linus torvaldslinus torvalds28.00%120.00%
pre-gitpre-git14.00%120.00%
Total25100.00%5100.00%


static inline void check_pgt_cache(void) { quicklist_trim(0, NULL, 25, 16); }

Contributors

PersonTokensPropCommitsCommitProp
christoph lameterchristoph lameter20100.00%1100.00%
Total20100.00%1100.00%

#define __pte_free_tlb(tlb, pte, address) pte_free((tlb)->mm, pte) #endif /* _ASM_IA64_PGALLOC_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
robin holtrobin holt10820.45%29.09%
christoph lameterchristoph lameter8816.67%14.55%
pre-gitpre-git7814.77%418.18%
linus torvaldslinus torvalds7414.02%29.09%
david mosbergerdavid mosberger6812.88%313.64%
martin schwidefskymartin schwidefsky417.77%14.55%
benjamin herrenschmidtbenjamin herrenschmidt336.25%29.09%
kirill a. shutemovkirill a. shutemov234.36%29.09%
kirill korotaevkirill korotaev50.95%14.55%
nick pigginnick piggin50.95%14.55%
andrew mortonandrew morton20.38%14.55%
manik rainamanik raina20.38%14.55%
yanmin zhangyanmin zhang10.19%14.55%
Total528100.00%22100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.