Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5386e735 authored by Chris Metcalf's avatar Chris Metcalf
Browse files

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: default avatarChris Metcalf <cmetcalf@tilera.com>
parent 28d71741
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -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,
+2 −8
Original line number Diff line number Diff line
@@ -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 */
+10 −2
Original line number Diff line number Diff line
@@ -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).
 */

arch/tile/include/hv/pagesize.h

deleted100644 → 0
+0 −32
Original line number Diff line number Diff line
/*
 * 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 */