cregit-Linux how code gets into the kernel

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

/* SPDX-License-Identifier: GPL-2.0 */
#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 Holt834.78%125.00%
Christoph Lameter834.78%125.00%
Linus Torvalds626.09%125.00%
Linus Torvalds (pre-git)14.35%125.00%
Total23100.00%4100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
Robin Holt832.00%120.00%
Linus Torvalds (pre-git)520.00%120.00%
Benjamin Herrenschmidt520.00%120.00%
Christoph Lameter520.00%120.00%
Linus Torvalds28.00%120.00%
Total25100.00%5100.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 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 Holt1970.37%150.00%
Christoph 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 Holt1560.00%133.33%
Christoph Lameter520.00%133.33%
Benjamin Herrenschmidt520.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
Robin Holt1651.61%120.00%
Linus Torvalds722.58%120.00%
Linus Torvalds (pre-git)722.58%240.00%
Yanmin Zhang13.23%120.00%
Total31100.00%5100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)1348.15%250.00%
Christoph Lameter829.63%125.00%
Linus 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
Linus Torvalds (pre-git)728.00%228.57%
Linus Torvalds520.00%114.29%
Benjamin Herrenschmidt520.00%114.29%
Christoph Lameter520.00%114.29%
Robin Holt28.00%114.29%
Yanmin 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 Mosberger-Tang1550.00%125.00%
Linus Torvalds930.00%125.00%
Linus Torvalds (pre-git)516.67%125.00%
Martin 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 Torvalds1651.61%133.33%
David Mosberger-Tang1445.16%133.33%
Linus Torvalds (pre-git)13.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 Schwidefsky2735.53%111.11%
Kirill A. Shutemov1722.37%111.11%
Linus Torvalds (pre-git)1013.16%222.22%
Christoph Lameter810.53%111.11%
Kirill Korotaev56.58%111.11%
Linus Torvalds56.58%111.11%
David Mosberger-Tang33.95%111.11%
Robin 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
Linus Torvalds (pre-git)1244.44%240.00%
Christoph Lameter829.63%120.00%
Linus Torvalds622.22%120.00%
David Mosberger-Tang13.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 Torvalds1034.48%120.00%
Martin Schwidefsky620.69%120.00%
Christoph Lameter517.24%120.00%
David Mosberger-Tang413.79%120.00%
Benjamin Herrenschmidt413.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 Mosberger-Tang1248.00%120.00%
Benjamin Herrenschmidt520.00%120.00%
Christoph Lameter520.00%120.00%
Linus Torvalds28.00%120.00%
Linus Torvalds (pre-git)14.00%120.00%
Total25100.00%5100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
Christoph 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 Holt11020.79%29.09%
Christoph Lameter8916.82%14.55%
Linus Torvalds (pre-git)7814.74%418.18%
Linus Torvalds7514.18%29.09%
David Mosberger-Tang6812.85%313.64%
Martin Schwidefsky417.75%14.55%
Benjamin Herrenschmidt336.24%29.09%
Kirill A. Shutemov234.35%29.09%
Kirill Korotaev50.95%14.55%
Yanmin Zhang20.38%14.55%
Manik Raina20.38%14.55%
Andrew Morton20.38%14.55%
Greg Kroah-Hartman10.19%14.55%
Total529100.00%22100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.