forked from Minki/linux
arch/tile: kernel-related cleanups from removing static page size
User space code has been able to discover the static page size by including a special <hv/pagesize.h> file. In the current release, that file is now gone, and <asm/page.h> doesn't rely on it. The getpagesize() API is now the only way for userspace to get the page size. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
This commit is contained in:
parent
28d717411b
commit
5386e73589
@ -16,7 +16,7 @@
|
||||
/**
|
||||
* @file
|
||||
*
|
||||
* Support for invalidating bytes in the instruction
|
||||
* Support for invalidating bytes in the instruction cache.
|
||||
*/
|
||||
|
||||
#ifndef __ARCH_ICACHE_H__
|
||||
@ -30,11 +30,10 @@
|
||||
*
|
||||
* @param addr The start of memory to be invalidated.
|
||||
* @param size The number of bytes to be invalidated.
|
||||
* @param page_size The system's page size, typically the PAGE_SIZE constant
|
||||
* in sys/page.h. This value must be a power of two no larger
|
||||
* than the page containing the code to be invalidated. If the value
|
||||
* is smaller than the actual page size, this function will still
|
||||
* work, but may run slower than necessary.
|
||||
* @param page_size The system's page size, e.g. getpagesize() in userspace.
|
||||
* This value must be a power of two no larger than the page containing
|
||||
* the code to be invalidated. If the value is smaller than the actual page
|
||||
* size, this function will still work, but may run slower than necessary.
|
||||
*/
|
||||
static __inline void
|
||||
invalidate_icache(const void* addr, unsigned long size,
|
||||
|
@ -16,7 +16,8 @@
|
||||
#define _ASM_TILE_PAGE_H
|
||||
|
||||
#include <linux/const.h>
|
||||
#include <hv/pagesize.h>
|
||||
#include <hv/hypervisor.h>
|
||||
#include <arch/chip.h>
|
||||
|
||||
/* PAGE_SHIFT and HPAGE_SHIFT determine the page sizes. */
|
||||
#define PAGE_SHIFT HV_LOG2_PAGE_SIZE_SMALL
|
||||
@ -28,8 +29,6 @@
|
||||
#define PAGE_MASK (~(PAGE_SIZE - 1))
|
||||
#define HPAGE_MASK (~(HPAGE_SIZE - 1))
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/*
|
||||
* If the Kconfig doesn't specify, set a maximum zone order that
|
||||
* is enough so that we can create huge pages from small pages given
|
||||
@ -39,9 +38,6 @@
|
||||
#define CONFIG_FORCE_MAX_ZONEORDER (HPAGE_SHIFT - PAGE_SHIFT + 1)
|
||||
#endif
|
||||
|
||||
#include <hv/hypervisor.h>
|
||||
#include <arch/chip.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <linux/types.h>
|
||||
@ -337,6 +333,4 @@ extern pte_t *virt_to_pte(struct mm_struct *mm, unsigned long addr);
|
||||
|
||||
#include <asm-generic/memory_model.h>
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _ASM_TILE_PAGE_H */
|
||||
|
@ -22,8 +22,6 @@
|
||||
|
||||
#include <arch/chip.h>
|
||||
|
||||
#include <hv/pagesize.h>
|
||||
|
||||
/* Linux builds want unsigned long constants, but assembler wants numbers */
|
||||
#ifdef __ASSEMBLER__
|
||||
/** One, for assembler */
|
||||
@ -44,11 +42,21 @@
|
||||
*/
|
||||
#define HV_L1_SPAN (__HV_SIZE_ONE << HV_LOG2_L1_SPAN)
|
||||
|
||||
/** The log2 of the size of small pages, in bytes. This value should
|
||||
* be verified at runtime by calling hv_sysconf(HV_SYSCONF_PAGE_SIZE_SMALL).
|
||||
*/
|
||||
#define HV_LOG2_PAGE_SIZE_SMALL 16
|
||||
|
||||
/** The size of small pages, in bytes. This value should be verified
|
||||
* at runtime by calling hv_sysconf(HV_SYSCONF_PAGE_SIZE_SMALL).
|
||||
*/
|
||||
#define HV_PAGE_SIZE_SMALL (__HV_SIZE_ONE << HV_LOG2_PAGE_SIZE_SMALL)
|
||||
|
||||
/** The log2 of the size of large pages, in bytes. This value should be
|
||||
* verified at runtime by calling hv_sysconf(HV_SYSCONF_PAGE_SIZE_LARGE).
|
||||
*/
|
||||
#define HV_LOG2_PAGE_SIZE_LARGE 24
|
||||
|
||||
/** The size of large pages, in bytes. This value should be verified
|
||||
* at runtime by calling hv_sysconf(HV_SYSCONF_PAGE_SIZE_LARGE).
|
||||
*/
|
||||
|
@ -1,32 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010 Tilera Corporation. All Rights Reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation, version 2.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
|
||||
* NON INFRINGEMENT. See the GNU General Public License for
|
||||
* more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file pagesize.h
|
||||
*/
|
||||
|
||||
#ifndef _HV_PAGESIZE_H
|
||||
#define _HV_PAGESIZE_H
|
||||
|
||||
/** The log2 of the size of small pages, in bytes. This value should
|
||||
* be verified at runtime by calling hv_sysconf(HV_SYSCONF_PAGE_SIZE_SMALL).
|
||||
*/
|
||||
#define HV_LOG2_PAGE_SIZE_SMALL 16
|
||||
|
||||
/** The log2 of the size of large pages, in bytes. This value should be
|
||||
* verified at runtime by calling hv_sysconf(HV_SYSCONF_PAGE_SIZE_LARGE).
|
||||
*/
|
||||
#define HV_LOG2_PAGE_SIZE_LARGE 24
|
||||
|
||||
#endif /* _HV_PAGESIZE_H */
|
Loading…
Reference in New Issue
Block a user