cregit-Linux how code gets into the kernel

Release 4.11 arch/alpha/include/asm/pgalloc.h

#ifndef _ALPHA_PGALLOC_H

#define _ALPHA_PGALLOC_H

#include <linux/mm.h>
#include <linux/mmzone.h>

/*      
 * Allocate and free page tables. The xxx_kernel() versions are
 * used to allocate a kernel page table - this turns on ASN bits
 * if any.
 */


static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte) { pmd_set(pmd, (pte_t *)(page_to_pa(pte) + PAGE_OFFSET)); }

Contributors

PersonTokensPropCommitsCommitProp
Richard Henderson1643.24%116.67%
Linus Torvalds (pre-git)821.62%116.67%
Linus Torvalds616.22%116.67%
Al Viro38.11%116.67%
Ivan Kokshaysky38.11%116.67%
Martin Schwidefsky12.70%116.67%
Total37100.00%6100.00%

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

Contributors

PersonTokensPropCommitsCommitProp
Richard Henderson2592.59%133.33%
Linus Torvalds (pre-git)27.41%266.67%
Total27100.00%3100.00%


static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd) { pgd_set(pgd, pmd); }

Contributors

PersonTokensPropCommitsCommitProp
Richard Henderson1555.56%133.33%
Linus Torvalds (pre-git)1244.44%266.67%
Total27100.00%3100.00%

extern pgd_t *pgd_alloc(struct mm_struct *mm);
static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd) { free_page((unsigned long)pgd); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)1976.00%250.00%
Benjamin Herrenschmidt520.00%125.00%
Richard Henderson14.00%125.00%
Total25100.00%4100.00%


static inline pmd_t * pmd_alloc_one(struct mm_struct *mm, unsigned long address) { pmd_t *ret = (pmd_t *)__get_free_page(GFP_KERNEL|__GFP_ZERO); return ret; }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds2571.43%125.00%
Linus Torvalds (pre-git)822.86%125.00%
Christoph Lameter12.86%125.00%
Andrew Morton12.86%125.00%
Total35100.00%4100.00%


static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) { free_page((unsigned long)pmd); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)1976.00%250.00%
Benjamin Herrenschmidt520.00%125.00%
Richard Henderson14.00%125.00%
Total25100.00%4100.00%


static inline pte_t * pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) { pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_ZERO); return pte; }

Contributors

PersonTokensPropCommitsCommitProp
Ivan Kokshaysky2365.71%125.00%
Linus Torvalds (pre-git)822.86%125.00%
Linus Torvalds38.57%125.00%
Richard Henderson12.86%125.00%
Total35100.00%4100.00%


static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) { free_page((unsigned long)pte); }

Contributors

PersonTokensPropCommitsCommitProp
Richard Henderson1144.00%133.33%
Linus Torvalds936.00%133.33%
Benjamin Herrenschmidt520.00%133.33%
Total25100.00%3100.00%


static inline pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address) { pte_t *pte = pte_alloc_one_kernel(mm, address); struct page *page; if (!pte) return NULL; page = virt_to_page(pte); if (!pgtable_page_ctor(page)) { __free_page(page); return NULL; } return page; }

Contributors

PersonTokensPropCommitsCommitProp
Martin Schwidefsky2029.41%114.29%
Andrew Morton1522.06%114.29%
Kirill A. Shutemov1319.12%114.29%
Linus Torvalds710.29%114.29%
Richard Henderson710.29%114.29%
Linus Torvalds (pre-git)68.82%228.57%
Total68100.00%7100.00%


static inline void pte_free(struct mm_struct *mm, pgtable_t page) { pgtable_page_dtor(page); __free_page(page); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)1040.00%240.00%
Martin Schwidefsky624.00%120.00%
Richard Henderson520.00%120.00%
Benjamin Herrenschmidt416.00%120.00%
Total25100.00%5100.00%

#define check_pgt_cache() do { } while (0) #endif /* _ALPHA_PGALLOC_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)10428.26%318.75%
Richard Henderson9826.63%212.50%
Linus Torvalds5013.59%16.25%
Martin Schwidefsky349.24%16.25%
Ivan Kokshaysky308.15%318.75%
Benjamin Herrenschmidt195.16%16.25%
Andrew Morton164.35%212.50%
Kirill A. Shutemov133.53%16.25%
Al Viro30.82%16.25%
Christoph Lameter10.27%16.25%
Total368100.00%16100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.