FILE
hugetlbpage.c
File preview with syntax highlighting.
linux-6.19.14/arch/x86/mm/hugetlbpage.c
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * IA-32 Huge TLB Page Support for Kernel. 4 * 5 * Copyright (C) 2002, Rohit Seth <rohit.seth@intel.com> 6 */ 7 8#include <linux/init.h> 9#include <linux/fs.h> 10#include <linux/mm.h> 11#include <linux/sched/mm.h> 12#include <linux/hugetlb.h> 13#include <linux/pagemap.h> 14#include <linux/err.h> 15#include <linux/sysctl.h> 16#include <linux/compat.h> 17#include <asm/mman.h> 18#include <asm/tlb.h> 19#include <asm/tlbflush.h> 20#include <asm/elf.h> 21 22 23#ifdef CONFIG_X86_64 24bool __init arch_hugetlb_valid_size(unsigned long size) 25{ 26 if (size == PMD_SIZE) 27 return true; 28 else if (size == PUD_SIZE && boot_cpu_has(X86_FEATURE_GBPAGES)) 29 return true; 30 else 31 return false; 32} 33 34#ifdef CONFIG_CONTIG_ALLOC 35static __init int gigantic_pages_init(void) 36{ 37 /* With compaction or CMA we can allocate gigantic pages at runtime */ 38 if (boot_cpu_has(X86_FEATURE_GBPAGES)) 39 hugetlb_add_hstate(PUD_SHIFT - PAGE_SHIFT); 40 return 0; 41} 42arch_initcall(gigantic_pages_init); 43#endif 44#endif
~/
Read-only file preview.