HPAGE_SIZE
#define HPAGE_MASK (~(HPAGE_SIZE - 1))
#define HPAGE_MASK (~(HPAGE_SIZE - 1))
#define HPAGE_MASK (~(HPAGE_SIZE - 1))
#define HPAGE_MASK (~(HPAGE_SIZE-1))
flush_tlb_range(vma, addr, addr + HPAGE_SIZE);
#define HPAGE_MASK (~(HPAGE_SIZE - 1))
write_csr_entrylo1(lo + (HPAGE_SIZE >> 1));
flush_tlb_range(vma, addr, addr + HPAGE_SIZE);
#define HPAGE_MASK (~(HPAGE_SIZE - 1))
write_c0_entrylo1(lo + (HPAGE_SIZE >> 7));
small_sequence = (HPAGE_SIZE >> 7) < 0x10000;
uasm_i_lui(p, tmp, HPAGE_SIZE >> (7 + 16));
UASM_i_ADDIU(p, pte, pte, HPAGE_SIZE >> 7);
#define HPAGE_MASK (~(HPAGE_SIZE - 1))
#define HPAGE_MASK (~(HPAGE_SIZE - 1))
#define HPAGE_MASK (~(HPAGE_SIZE - 1))
if (size == HPAGE_SIZE)
#define KEXEC_CRASH_MEM_ALIGN HPAGE_SIZE
#define HPAGE_MASK (~(HPAGE_SIZE - 1))
table->crstes[i].val = init.val | i * HPAGE_SIZE;
vlen = ALIGN(virt * ((npages * PAGE_SIZE) / HPAGE_SIZE), PAGE_SIZE);
#define DUMP_BUFF_LEN HPAGE_SIZE
if (!IS_ALIGNED(*gaddr, HPAGE_SIZE))
uvcb.gaddr += HPAGE_SIZE;
#define HPAGE_MASK (~(HPAGE_SIZE-1))
#define HPAGE_MASK (~(HPAGE_SIZE - 1UL))
mm_rss -= (mm->context.thp_pte_count * (HPAGE_SIZE / PAGE_SIZE));
size = HPAGE_SIZE;
if (size == HPAGE_SIZE)
if (size == HPAGE_SIZE)
end = vaddr + HPAGE_SIZE;
mm_rss -= saved_thp_pte_count * (HPAGE_SIZE / PAGE_SIZE);
#define HPAGE_MASK (~(HPAGE_SIZE - 1))
unsigned long size = (((unsigned long)__init_end + HPAGE_SIZE) & HPAGE_MASK) - start;
max_alignment = HPAGE_SIZE;
if (end != start + HPAGE_SIZE) {
if (end != start + HPAGE_SIZE) {
end = ALIGN(start + (pages << PAGE_SHIFT), HPAGE_SIZE);
default_hstate_idx = hstate_index(size_to_hstate(HPAGE_SIZE));
return size == HPAGE_SIZE;
const unsigned long size = 2 * HPAGE_SIZE;
len -= len % HPAGE_SIZE;
map_ptr_orig = mmap(NULL, len + HPAGE_SIZE, PROT_READ | PROT_WRITE,
map_ptr = map_ptr_orig + HPAGE_SIZE - (uintptr_t)map_ptr_orig % HPAGE_SIZE;
for (void *p = map_ptr; p < map_ptr + len; p += HPAGE_SIZE) {
munmap(map_ptr_orig, len + HPAGE_SIZE);
munmap(map_ptr_orig, len + HPAGE_SIZE);
if (size >= HPAGE_SIZE)
size = HPAGE_SIZE;
int *plain_ptr_unaligned = malloc(HPAGE_SIZE);
size = ALIGN_UP(size, HPAGE_SIZE * 2);
ptr = ALIGN_PTR_UP(ptr, HPAGE_SIZE);
ret = madvise(ptr, HPAGE_SIZE, MADV_HUGEPAGE);
ret = madvise(ptr, HPAGE_SIZE, MADV_WILLNEED);
memset(ptr, 0, HPAGE_SIZE);
hpagesz_kb = HPAGE_SIZE / 1024;
size = ALIGN_UP(size, HPAGE_SIZE * 2);
if (size >= HPAGE_SIZE)
size = HPAGE_SIZE;
if (madvise(p, HPAGE_SIZE - psize(), MADV_DONTNEED))
len -= len % HPAGE_SIZE;
ptr = mmap(NULL, len + HPAGE_SIZE, PROT_RW, mmap_flags, backing_fd, 0);
ptr += HPAGE_SIZE - (uintptr_t)ptr % HPAGE_SIZE;
for (p = ptr; p < ptr + len; p += HPAGE_SIZE) {
if (mmap(ptr, HPAGE_SIZE, PROT_READ | PROT_WRITE,
if (madvise(ptr, HPAGE_SIZE, MADV_HUGEPAGE))