| /kernel/linux/linux-6.6/Documentation/admin-guide/device-mapper/ |
| 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 …]
|
| 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 …]
|
| 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 …]
|
| /kernel/linux/linux-5.10/Documentation/admin-guide/device-mapper/ |
| 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 …]
|
| 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 …]
|
| /kernel/linux/linux-6.6/fs/squashfs/ |
| 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 …]
|
| 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 45 * Locate cache slot in range [offset, index] for specified inode. If [all …]
|
| /kernel/linux/linux-5.10/fs/squashfs/ |
| 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 …]
|
| 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 44 * Locate cache slot in range [offset, index] for specified inode. If [all …]
|
| /kernel/linux/linux-6.6/fs/btrfs/ |
| 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 …]
|
| D | block-group.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 6 #include "free-space-cache.h" 60 /* Block group flags set at runtime */ 69 /* Does the block group need to be added to the free space tree? */ 71 /* Indicate that the block group is placed on a sequential zone */ 74 * Indicate that block group is in the list of new block groups of a 117 * The last committed used bytes of this block group, if the above @used 118 * is still the same as @commit_used, we don't need to update block 119 * group item of this block group. 123 * If the free space extent count exceeds this number, convert the block [all …]
|
| /kernel/linux/linux-5.10/fs/btrfs/ |
| D | block-group.c | 1 // SPDX-License-Identifier: GPL-2.0 5 #include "block-group.h" 6 #include "space-info.h" 7 #include "disk-io.h" 8 #include "free-space-cache.h" 9 #include "free-space-tree.h" 12 #include "ref-verify.h" 14 #include "tree-log.h" 15 #include "delalloc-space.h" 27 struct btrfs_balance_control *bctl = fs_info->balance_ctl; in get_restripe_target() [all …]
|
| D | block-group.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 6 #include "free-space-cache.h" 73 * If the free space extent count exceeds this number, convert the block 80 * block group back to extents. 101 /* Cache tracking stuff */ 108 /* Free space cache stuff */ 111 /* Block group cache stuff */ 114 /* For block groups in the same raid type */ 120 * List of struct btrfs_free_clusters for this block group. 125 /* For delayed block group creation or deletion of empty block groups */ [all …]
|
| D | backref.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 11 #include "disk-io.h" 84 * Now it only supports iteration of tree block in commit root. 103 btrfs_free_path(iter->path); in btrfs_backref_iter_free() 112 return iter->path->nodes[0]; in btrfs_backref_get_eb() 116 * For metadata with EXTENT_ITEM key (non-skinny) case, the first inline data 124 if (iter->cur_key.type == BTRFS_EXTENT_ITEM_KEY && in btrfs_backref_has_tree_block_info() 125 iter->cur_ptr - iter->item_ptr == sizeof(struct btrfs_extent_item)) in btrfs_backref_has_tree_block_info() 137 if (iter->cur_key.type == BTRFS_EXTENT_ITEM_KEY || in btrfs_backref_iter_is_inline_ref() 138 iter->cur_key.type == BTRFS_METADATA_ITEM_KEY) in btrfs_backref_iter_is_inline_ref() [all …]
|
| /kernel/linux/linux-6.6/Documentation/admin-guide/ |
| D | bcache.rst | 2 A block layer cache (bcache) 6 nice if you could use them as cache... Hence bcache. 11 This is the git repository of bcache-tools: 12 https://git.kernel.org/pub/scm/linux/kernel/git/colyli/bcache-tools.git/ 17 It's designed around the performance characteristics of SSDs - it only allocates 18 in erase block sized buckets, and it uses a hybrid btree/log to track cached 20 designed to avoid random writes at all costs; it fills up an erase block 25 great lengths to protect your data - it reliably handles unclean shutdown. (It 29 Writeback caching can use most of the cache for buffering writes - writing 36 average is above the cutoff it will skip all IO from that task - instead of [all …]
|
| /kernel/linux/linux-5.10/Documentation/admin-guide/ |
| D | bcache.rst | 2 A block layer cache (bcache) 6 nice if you could use them as cache... Hence bcache. 11 This is the git repository of bcache-tools: 12 https://git.kernel.org/pub/scm/linux/kernel/git/colyli/bcache-tools.git/ 17 It's designed around the performance characteristics of SSDs - it only allocates 18 in erase block sized buckets, and it uses a hybrid btree/log to track cached 20 designed to avoid random writes at all costs; it fills up an erase block 25 great lengths to protect your data - it reliably handles unclean shutdown. (It 29 Writeback caching can use most of the cache for buffering writes - writing 36 average is above the cutoff it will skip all IO from that task - instead of [all …]
|
| /kernel/linux/linux-6.6/include/linux/ |
| D | sysv_fs.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 16 /* Block numbers are 24 bit, sometimes stored in 32 bit. 17 On Coherent FS, they are always stored in PDP-11 manner: the least 21 /* 0 is non-existent */ 26 /* Xenix super-block data on disk */ 27 #define XENIX_NICINOD 100 /* number of inode cache entries */ 28 #define XENIX_NICFREE 100 /* number of free block list chunk entries */ 32 /* the start of the free block list: */ 34 sysv_zone_t s_free[XENIX_NICFREE]; /* first free block list chunk */ 35 /* the cache of free inodes: */ [all …]
|
| /kernel/linux/linux-5.10/include/linux/ |
| D | sysv_fs.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 16 /* Block numbers are 24 bit, sometimes stored in 32 bit. 17 On Coherent FS, they are always stored in PDP-11 manner: the least 21 /* 0 is non-existent */ 26 /* Xenix super-block data on disk */ 27 #define XENIX_NICINOD 100 /* number of inode cache entries */ 28 #define XENIX_NICFREE 100 /* number of free block list chunk entries */ 32 /* the start of the free block list: */ 34 sysv_zone_t s_free[XENIX_NICFREE]; /* first free block list chunk */ 35 /* the cache of free inodes: */ [all …]
|
| /kernel/linux/linux-5.10/arch/riscv/boot/dts/sifive/ |
| 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 …]
|
| /kernel/linux/linux-6.6/drivers/md/ |
| D | dm-cache-target.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 #include "dm-bio-prison-v2.h" 10 #include "dm-bio-record.h" 11 #include "dm-cache-metadata.h" 12 #include "dm-io-tracker.h" 13 #include "dm-cache-background-tracker.h" 15 #include <linux/dm-io.h> 16 #include <linux/dm-kcopyd.h> 25 #define DM_MSG_PREFIX "cache" 28 "A percentage of time allocated for copying to and/or from cache"); [all …]
|
| /kernel/linux/linux-5.10/drivers/md/ |
| D | dm-cache-target.c | 8 #include "dm-bio-prison-v2.h" 9 #include "dm-bio-record.h" 10 #include "dm-cache-metadata.h" 12 #include <linux/dm-io.h> 13 #include <linux/dm-kcopyd.h> 22 #define DM_MSG_PREFIX "cache" 25 "A percentage of time allocated for copying to and/or from cache"); 27 /*----------------------------------------------------------------*/ 32 * oblock: index of an origin block 33 * cblock: index of a cache block [all …]
|
| /kernel/linux/linux-6.6/arch/riscv/boot/dts/sifive/ |
| 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 …]
|
| 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 …]
|
| /kernel/linux/linux-6.6/Documentation/filesystems/ |
| D | squashfs.rst | 1 .. SPDX-License-Identifier: GPL-2.0 7 Squashfs is a compressed read-only filesystem for Linux. 11 minimise data overhead. Block sizes greater than 4K are supported up to a 12 maximum of 1Mbytes (default block size 128K). 14 Squashfs is intended for general read-only filesystem use, for archival 16 block device/memory systems (e.g. embedded systems) where low overhead is 19 Mailing list: squashfs-devel@lists.sourceforge.net 23 ---------------------- 35 Max block size 1 MiB 4 KiB 39 Tail-end packing (fragments) yes no [all …]
|
| /kernel/linux/linux-5.10/Documentation/filesystems/ |
| D | squashfs.rst | 1 .. SPDX-License-Identifier: GPL-2.0 7 Squashfs is a compressed read-only filesystem for Linux. 11 minimise data overhead. Block sizes greater than 4K are supported up to a 12 maximum of 1Mbytes (default block size 128K). 14 Squashfs is intended for general read-only filesystem use, for archival 16 block device/memory systems (e.g. embedded systems) where low overhead is 19 Mailing list: squashfs-devel@lists.sourceforge.net 23 ---------------------- 35 Max block size 1 MiB 4 KiB 39 Tail-end packing (fragments) yes no [all …]
|