mirror of
https://github.com/hardkernel/linux.git
synced 2026-04-02 03:03:00 +09:00
PD#166821: mm: reduce cache line size If cacheline size is set to 128, then smallest kmalloc is 128, this will cause low memory usage for slab and waste lot of memory. For ARM64, cacheline size is hardware set to 64 bytes. Reduce to 64 bytes can improve usage for slab. And can help to save memory. Change-Id: Id7f39bec324345d3e21f2a4e954803179fb54004 Signed-off-by: tao zeng <tao.zeng@amlogic.com>
50 lines
1.4 KiB
C
50 lines
1.4 KiB
C
/*
|
|
* Copyright (C) 2012 ARM Ltd.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* 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. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
#ifndef __ASM_CACHE_H
|
|
#define __ASM_CACHE_H
|
|
|
|
#include <asm/cachetype.h>
|
|
|
|
#ifdef CONFIG_AMLOGIC_MEMORY_EXTEND
|
|
#define L1_CACHE_SHIFT 6
|
|
#else
|
|
#define L1_CACHE_SHIFT 7
|
|
#endif /* CONFIG_AMLOGIC_MEMORY_EXTEND */
|
|
#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
|
|
|
|
/*
|
|
* Memory returned by kmalloc() may be used for DMA, so we must make
|
|
* sure that all such allocations are cache aligned. Otherwise,
|
|
* unrelated code may cause parts of the buffer to be read into the
|
|
* cache before the transfer is done, causing old data to be seen by
|
|
* the CPU.
|
|
*/
|
|
#define ARCH_DMA_MINALIGN L1_CACHE_BYTES
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
#define __read_mostly __attribute__((__section__(".data..read_mostly")))
|
|
|
|
static inline int cache_line_size(void)
|
|
{
|
|
u32 cwg = cache_type_cwg();
|
|
return cwg ? 4 << cwg : L1_CACHE_BYTES;
|
|
}
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
#endif
|