| /linux/Documentation/admin-guide/device-mapper/ |
| H A D | cache.rst | 2 Cache title 8 dm-cache is a device mapper target written by Joe Thornber, Heinz 11 It aims to improve performance of a block device (eg, a spindle) by 15 This device-mapper solution allows us to insert this caching at 17 a thin-provisioning pool. Caching solutions that are integrated more 20 The target reuses the metadata library used in the thin-provisioning 23 The decision as to what data to migrate and when is left to a plug-in 32 Movement of the primary copy of a logical block from one 39 The origin device always contains a copy of the logical block, which 40 may be out of date or kept in sync with the copy on the cache device [all …]
|
| H A D | cache-policies.rst | 21 doesn't update states (eg, hit counts) for a block more than once 26 Overview of supplied cache replacement policies 30 --------------- 43 --------------------------- 47 The stochastic multi-queue (smq) policy addresses some of the problems 55 DM table that is using the cache target. Doing so will cause all of the 56 mq policy's hints to be dropped. Also, performance of the cache may 63 The mq policy used a lot of memory; 88 bytes per cache block on a 64 67 pointers. It avoids storing an explicit hit count for each block. It 68 has a 'hotspot' queue, rather than a pre-cache, which uses a quarter of [all …]
|
| H A D | writecache.rst | 6 doesn't cache reads because reads are supposed to be cached in page cache 14 1. type of the cache device - "p" or "s" 15 - p - persistent memory 16 - s - SSD 18 3. the cache device 19 4. block size (4096 is recommended; the maximum block size is the page 25 offset from the start of cache device in 512-byte sectors 45 applicable only to persistent memory - use the FUA flag 49 applicable only to persistent memory - don't use the FUA 53 - some underlying devices perform better with fua, some [all …]
|
| H A D | era.rst | 2 dm-era 8 dm-era is a target that behaves similar to the linear target. In 11 maintains the current era as a monotonically increasing 32-bit 15 partially invalidating the contents of a cache to restore cache 21 era <metadata dev> <origin dev> <block size> 26 block size block size of origin data device, granularity that is 36 ---------- 43 ------------------ 48 ------------------ 55 <metadata block size> <#used metadata blocks>/<#total metadata blocks> [all …]
|
| /linux/fs/squashfs/ |
| H A D | cache.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Squashfs - a compressed read only filesystem for Linux 8 * cache.c 15 * This file implements a generic cache implementation used for both caches, 16 * plus functions layered ontop of the generic cache implementation to 19 * To avoid out of memory and fragmentation issues with vmalloc the cache 22 * It should be noted that the cache is not used for file datablocks, these 23 * are decompressed and cached in the page-cache in the normal way. The 24 * cache is only used to temporarily cache fragment and metadata blocks 29 * have been packed with it, these because of locality-of-reference may be read [all …]
|
| H A D | file.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Squashfs - a compressed read only filesystem for Linux 14 * compressed fragment block (tail-end packed block). The compressed size 15 * of each datablock is stored in a block list contained within the 19 * larger), the code implements an index cache that caches the mapping from 20 * block index to datablock location on disk. 22 * The index cache allows Squashfs to handle large files (up to 1.75 TiB) while 23 * retaining a simple and space-efficient block list on disk. The cache 26 * The index cache is designed to be memory efficient, and by default uses 46 * Locate cache slot in range [offset, index] for specified inode. If [all …]
|
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 3 tristate "SquashFS 4.0 - Squashed file system support" 4 depends on BLOCK 7 Read-Only File System). Squashfs is a highly compressed read-only 11 Block sizes greater than 4K are supported up to a maximum of 1 Mbytes 12 (default block size 128K). SquashFS 4.0 supports 64 bit filesystems 16 Squashfs is intended for general read-only filesystem use, for 19 and tools are available from github.com/plougher/squashfs-tools. 35 intermediate buffer and then memcopied it into the page cache. 37 the page cache. [all …]
|
| /linux/fs/btrfs/ |
| H A D | block-group.c | 1 // SPDX-License-Identifier: GPL-2.0 7 #include "block-group.h" 8 #include "space-info.h" 9 #include "disk-io.h" 10 #include "free-space-cache.h" 11 #include "free-space-tree.h" 14 #include "ref-verify.h" 16 #include "tree-log.h" 17 #include "delalloc-space.h" 23 #include "extent-tree.h" [all …]
|
| H A D | zoned.c | 1 // SPDX-License-Identifier: GPL-2.0 12 #include "disk-io.h" 13 #include "block-group.h" 14 #include "dev-replace.h" 15 #include "space-info.h" 25 #define WP_MISSING_DEV ((u64)-1) 27 #define WP_CONVENTIONAL ((u64)-2) 32 * - primary superblock: 0B (zone 0) 33 * - first copy: 512G (zone starting at that offset) 34 * - second copy: 4T (zone starting at that offset) [all …]
|
| /linux/arch/riscv/boot/dts/sifive/ |
| H A D | fu540-c000.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 2 /* Copyright (c) 2018-2019 SiFive, Inc */ 4 /dts-v1/; 6 #include <dt-bindings/clock/sifive-fu540-prci.h> 9 #address-cells = <2>; 10 #size-cells = <2>; 11 compatible = "sifive,fu540-c000", "sifive,fu540"; 23 #address-cells = <1>; 24 #size-cells = <0>; 28 i-cache-block-size = <64>; [all …]
|
| H A D | fu740-c000.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 4 /dts-v1/; 6 #include <dt-bindings/clock/sifive-fu740-prci.h> 9 #address-cells = <2>; 10 #size-cells = <2>; 11 compatible = "sifive,fu740-c000", "sifive,fu740"; 23 #address-cells = <1>; 24 #size-cells = <0>; 28 i-cache-block-size = <64>; 29 i-cache-sets = <128>; [all …]
|
| /linux/drivers/md/ |
| H A D | dm-cache-policy.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 11 #include "dm-cache-block-types.h" 13 #include <linux/device-mapper.h> 15 /*----------------------------------------------------------------*/ 18 * The cache policy makes the important decisions about which blocks get to 19 * live on the faster cache device. 37 * The cache policy object. It is envisaged that this structure will be 47 * Find the location of a block. 49 * Must not block. 51 * Returns 0 if in cache (cblock will be set), -ENOENT if not, < 0 for [all …]
|
| /linux/Documentation/block/ |
| H A D | writeback_cache_control.rst | 2 Explicit volatile write back cache control 6 ------------ 10 operating system before data actually has hit the non-volatile storage. This 12 system needs to force data out to the non-volatile storage when it performs 15 The Linux block layer provides two simple mechanisms that let filesystems 17 a forced cache flush, and the Force Unit Access (FUA) flag for requests. 20 Explicit cache flushes 21 ---------------------- 24 the filesystem and will make sure the volatile cache of the storage device 26 guarantees that previously completed write requests are on non-volatile [all …]
|
| /linux/fs/ocfs2/ |
| H A D | uptodate.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 5 * Tracking the up-to-date-ness of a local buffer_head with respect to 11 * in a clustered environment - a buffer may be marked up to date on 15 * memory as possible - we never pin buffer_head structures in order 16 * to cache them. 23 * - buffer_jbd is used liberally - if a bh is in the journal on 25 * - the standard buffer_uptodate() macro is used to detect buffers 58 BUG_ON(!ci || !ci->ci_ops); in ocfs2_metadata_cache_owner() 60 return ci->ci_ops->co_owner(ci); in ocfs2_metadata_cache_owner() 65 BUG_ON(!ci || !ci->ci_ops); in ocfs2_metadata_cache_get_super() [all …]
|
| /linux/include/linux/ |
| H A D | dm-bufio.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Copyright (C) 2009-2011 Red Hat, Inc. 16 /*----------------------------------------------------------------*/ 27 * Create a buffered IO cache on a given device 37 * Release a buffered IO cache. 53 * - At most one thread can hold at most "reserved_buffers" simultaneously. 54 * - Each other threads can hold at most one buffer. 55 * - Threads which call only dm_bufio_get can hold unlimited number of 60 * Read a given block from disk. Returns pointer to data. Returns a 64 void *dm_bufio_read(struct dm_bufio_client *c, sector_t block, [all …]
|
| /linux/drivers/mtd/ |
| H A D | mtdblock.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Direct MTD block device access 5 * Copyright © 1999-2010 David Woodhouse <dwmw2@infradead.org> 6 * Copyright © 2000-2003 Nicolas Pitre <nico@fluxnic.net> 35 * Cache stuff... 38 * buffer cache can handle, we must implement read-modify-write on flash 39 * sectors for each block write requests. To avoid over-erasing flash sectors 40 * and to speed things up, we locally cache a whole flash sector while it is 52 * First, let's erase the flash block. in erase_write() 61 pos, len, mtd->name); in erase_write() [all …]
|
| /linux/drivers/base/regmap/ |
| H A D | regcache-rbtree.c | 1 // SPDX-License-Identifier: GPL-2.0 3 // Register cache access API - rbtree caching support 22 /* block of adjacent registers */ 23 void *block; member 26 /* base register handled by this block */ 28 /* number of registers available in the block */ 30 /* the actual rbtree node holding this block */ 44 *base = rbnode->base_reg; in regcache_rbtree_get_base_top_reg() 45 *top = rbnode->base_reg + ((rbnode->blklen - 1) * map->reg_stride); in regcache_rbtree_get_base_top_reg() 51 return regcache_get_val(map, rbnode->block, idx); in regcache_rbtree_get_register() [all …]
|
| /linux/Documentation/devicetree/bindings/cache/ |
| H A D | sifive,ccache0.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 4 --- 5 $id: http://devicetree.org/schemas/cache/sifive,ccache0.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 8 title: SiFive Composable Cache Controller 11 - Paul Walmsley <paul.walmsley@sifive.com> 14 The SiFive Composable Cache Controller is used to provide access to fast copies 15 of memory for masters in a Core Complex. The Composable Cache Controller also 16 acts as directory-based coherency manager. 24 - sifive,ccache0 [all …]
|
| H A D | starfive,jh8100-starlink-cache.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/cache/starfive,jh8100-starlink-cache.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: StarFive StarLink Cache Controller 10 - Joshua Yeong <joshua.yeong@starfivetech.com> 13 StarFive's StarLink Cache Controller manages the L3 cache shared between 14 clusters of CPU cores. The cache driver enables RISC-V non-standard cache 15 management as an alternative to instructions in the RISC-V Zicbom extension. 18 - $ref: /schemas/cache-controller.yaml# [all …]
|
| /linux/arch/riscv/boot/dts/microchip/ |
| H A D | mpfs.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 2 /* Copyright (c) 2020-2021 Microchip Technology Inc */ 4 /dts-v1/; 5 #include "dt-bindings/clock/microchip,mpfs-clock.h" 8 #address-cells = <2>; 9 #size-cells = <2>; 14 #address-cells = <1>; 15 #size-cells = <0>; 16 timebase-frequency = <1000000>; 21 i-cache-block-size = <64>; [all …]
|
| /linux/arch/powerpc/kernel/ |
| H A D | cacheinfo.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Processor cache information made available to userspace via sysfs; 26 /* per-cpu object for tracking: 27 * - a "cache" kobject for the top-level directory 28 * - a list of "index" objects representing the cpu's local cache hierarchy 31 struct kobject *kobj; /* bare (not embedded) kobject for cache 36 /* "index" object: each cpu's cache directory has an index 37 * subdirectory corresponding to a cache object associated with the 43 struct cache *cache; member 47 * cache type */ [all …]
|
| /linux/arch/sparc/include/uapi/asm/ |
| H A D | asi.h | 1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 32 /* VAC Cache flushing on sun4c and sun4 */ 37 /* SPARCstation-5: only 6 bits are decoded. */ 52 #define ASI_M_TXTC_TAG 0x0C /* Instruction Cache Tag; rw, ss */ 53 #define ASI_M_TXTC_DATA 0x0D /* Instruction Cache Data; rw, ss */ 54 #define ASI_M_DATAC_TAG 0x0E /* Data Cache Tag; rw, ss */ 55 #define ASI_M_DATAC_DATA 0x0F /* Data Cache Data; rw, ss */ 57 /* The following cache flushing ASIs work only with the 'sta' 63 #define ASI_M_FLUSH_PAGE 0x10 /* Flush I&D Cache Line (page); wo, ss */ 64 #define ASI_M_FLUSH_SEG 0x11 /* Flush I&D Cache Line (seg); wo, ss */ [all …]
|
| /linux/tools/lib/python/kdoc/ |
| H A D | kdoc_output.py | 2 # SPDX-License-Identifier: GPL-2.0 8 Classes to implement output filters to print kernel-doc documentation. 28 function_pointer = KernRe(r"([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)", cache=False) 31 type_constant = KernRe(r"\b``([^\`]+)``\b", cache=False) 32 type_constant2 = KernRe(r"\%([-_*\w]+)", cache=False) 33 type_func = KernRe(r"(\w+)\(\)", cache=False) 34 type_param_ref = KernRe(r"([\!~\*]?)\@(\w*((\.\w+)|(->\ 112 highlight_block(self, block) global() argument 663 output_highlight(self, block) global() argument [all...] |
| /linux/Documentation/driver-api/md/ |
| H A D | raid5-cache.rst | 2 RAID 4/5/6 cache 5 Raid 4/5/6 could include an extra disk for data cache besides normal RAID 6 disks. The role of RAID disks isn't changed with the cache disk. The cache disk 7 caches data to the RAID disks. The cache can be in write-through (supported 8 since 4.4) or write-back mode (supported since 4.10). mdadm (supported since 9 3.4) has a new option '--write-journal' to create array with cache. Please 10 refer to mdadm manual for details. By default (RAID array starts), the cache is 11 in write-through mode. A user can switch it to write-back mode by:: 13 echo "write-back" > /sys/block/md0/md/journal_mode 15 And switch it back to write-through mode by:: [all …]
|
| /linux/arch/sparc/lib/ |
| H A D | M7memset.S | 15 * Fast assembler language version of the following C-program for memset 16 * which represents the `standard' for the C-library. 25 * } while (--n != 0); 35 * Then store as many 4-byte chunks, followed by trailing bytes. 39 * store 8-bytes chunks to align the address on 64 byte boundary 42 * 64-byte cache line to zero which will also clear the 43 * other seven long words of the cache line. 47 * ST_CHUNK cache lines (64 bytes each) before the main 49 * In the main loop, continue pre-setting the first long 50 * word of each cache line ST_CHUNK lines in advance while [all …]
|