/linux/drivers/md/dm-vdo/ |
H A D | recovery-journal.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 13 #include "admin-state.h" 19 #include "wait-queue.h" 24 * The recovery_journal provides a log of all block mapping and reference count changes which have 25 * not yet been stably written to the block map or slab journals. This log helps to reduce the 26 * write amplification of writes by providing amortization of slab journal and block map page 30 * The concurrency guarantees of this single-threaded model allow the code to omit more 31 * fine-grained locking for recovery journal structures. 33 * The journal consists of a set of on-disk blocks arranged as a circular log with monotonically 35 * journal. The 'head' is the oldest active block in the journal. The 'tail' is the end of the [all …]
|
H A D | encodings.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 20 * An in-memory representation of a version number for versioned structures on disk. 22 * A version number consists of two portions, a major version and a minor version. Any format 34 * A packed, machine-independent, on-disk representation of a version_number. Both fields are 35 * stored in little-endian byte order. 57 /* A packed, machine-independent, on-disk representation of a component header. */ 99 /* The block offset to be applied to bios */ 124 * DOC: Block map entries 126 * The entry for each logical block in the block map is encoded into five bytes, which saves space 127 * in both the on-disk and in-memory layouts. It consists of the 36 low-order bits of a [all …]
|
H A D | slab-depot.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 10 #include <linux/dm-kcopyd.h> 15 #include "admin-state.h" 17 #include "data-vio.h" 19 #include "physical-zone.h" 20 #include "priority-table.h" 21 #include "recovery-journal.h" 25 #include "wait-queue.h" 28 * A slab_depot is responsible for managing all of the slabs and block allocators of a VDO. It has 33 * slabs assigned to that zone. The concurrency guarantees of this single-threaded model allow the [all …]
|
H A D | constants.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 15 * The maximum number of contiguous PBNs which will go to a single bio submission queue, 20 /* The number of entries on a block map page */ 23 /* The origin of the flat portion of the block map */ 27 * The height of a block map tree. Assuming a root count of 60 and 812 entries per page, 32 /* The default number of bio submission queues. */ 35 /* The number of contiguous PBNs to be submitted to a single bio queue. */ 38 /* The number of trees in the arboreal block map */ 49 * maximum number of outstanding VIOs. This value was chosen to make it highly unlikely 54 /* The maximum number of logical zones */ [all …]
|
H A D | statistics.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 16 /* The total number of slabs from which blocks may be allocated */ 18 /* The total number of slabs from which blocks have ever been allocated */ 20 /* The number of times since loading that a slab has been re-opened */ 25 * Counters for tracking the number of items written (blocks, requests, etc.) 27 * allow the number of buffered, in-memory items and the number of in-flight, 32 /* The total number of items on which processing has started */ 34 /* The total number of items for which a write operation has been issued */ 36 /* The total number of items for which a write operation has completed */ 42 /* Number of times the on-disk journal was full */ [all …]
|
H A D | types.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 11 #include <linux/device-mapper.h> 16 #include "funnel-queue.h" 21 /* The size of a block. */ 30 /* The logical block number as used by the consumer. */ 39 /* A page number. */ 43 * The physical (well, less logical) block number at which the block is found on the underlying 51 /* A number of sectors. */ 54 /* A sequence number. */ 57 /* The offset of a block within a slab. */ [all …]
|
/linux/Documentation/filesystems/ext4/ |
H A D | directory.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 ----------------- 7 an arbitrary byte string (usually ASCII) to an inode number on the 9 that reference the same inode number--these are known as hard links, and 11 such, directory entries are found by reading the data block(s) 18 By default, each directory lists its entries in an “almost-linear” 22 data blocks and that each block contains a linear array of directory 23 entries. The end of each per-block array is signified by reaching the 24 end of the block; the last entry in the block has a record length that 25 takes it all the way to the end of the block. The end of the entire [all …]
|
H A D | journal.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 -------------- 10 “important” data writes on-disk as quickly as possible. Once the important 15 read-write-erases) before erasing the commit record. Should the system 45 consumes an entire block group, though mke2fs tries to put it in the 48 All fields in jbd2 are written to disk in big-endian order. This is the 61 .. list-table:: 63 :header-rows: 1 65 * - Superblock 66 - descriptor_block (data_blocks or revocation_block) [more data or [all …]
|
H A D | ifork.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 ------------------------------ 8 regular files and directories will use it for file block indexing 15 string is less than 60 bytes long. Otherwise, either extents or block 18 Direct/Indirect Block Addressing 21 In ext2/3, file block numbers were mapped to logical block numbers by 22 means of an (up to) three level 1-1 block map. To find the logical block 23 that stores a particular file block, the code would navigate through 25 magic number nor a checksum to provide any level of confidence that the 26 block isn't full of garbage. [all …]
|
/linux/include/uapi/linux/ |
H A D | nilfs2_api.h | 1 /* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */ 3 * nilfs2_api.h - NILFS2 user space API 5 * Copyright (C) 2005-2008 Nippon Telegraph and Telephone Corporation. 20 * struct nilfs_cpinfo - checkpoint information 23 * @ci_cno: checkpoint number 25 * @ci_nblk_inc: number of blocks incremented by this checkpoint 28 * @ci_next: next checkpoint number in snapshot list 53 return !!(cpinfo->ci_flags & (1UL << NILFS_CPINFO_##flag)); \ 61 * nilfs_suinfo - segment usage information 63 * @sui_nblocks: number of written blocks in segment [all …]
|
/linux/drivers/media/i2c/ccs/ |
H A D | ccs-data.h | 1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 3 * CCS static data in-memory data structure definitions 5 * Copyright 2019--2020 Intel Corporation 16 * struct ccs_data_block_version - CCS static data version 17 * @version_major: Major version number 18 * @version_minor: Minor version number 32 * struct ccs_reg - CCS register value 33 * @addr: The 16-bit address of the register 44 * struct ccs_if_rule - CCS static data if rule 56 * struct ccs_frame_format_desc - CCS frame format descriptor [all …]
|
/linux/Documentation/ABI/stable/ |
H A D | sysfs-block | 1 What: /sys/block/<disk>/alignment_offset 5 Storage devices may report a physical block size that is 6 bigger than the logical block size (for instance a drive 7 with 4KB physical sectors exposing 512-byte logical 13 What: /sys/block/<disk>/discard_alignment 19 the exported logical block size. The discard_alignment 24 What: /sys/block/<disk>/atomic_write_max_bytes 31 operation must not exceed this number of bytes. 35 power-of-two and atomic_write_unit_max_bytes may also be 37 This parameter - along with atomic_write_unit_min_bytes [all …]
|
/linux/Documentation/admin-guide/device-mapper/ |
H A D | cache.rst | 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 46 Sub-devices 47 ----------- [all …]
|
H A D | dm-zoned.rst | 2 dm-zoned 5 The dm-zoned device mapper target exposes a zoned block device (ZBC and 6 ZAC compliant devices) as a regular block device without any write 7 pattern constraints. In effect, it implements a drive-managed zoned 8 block device which hides from the user (a file system or an application 9 doing raw block device accesses) the sequential write constraints of 10 host-managed zoned block devices and can mitigate the potential 11 device-side performance degradation due to excessive random writes on 12 host-aware zoned block devices. 14 For a more detailed description of the zoned block device models and [all …]
|
/linux/fs/ext4/ |
H A D | ext4_extents.h | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (c) 2003-2006, Cluster File Systems, Inc, info@clusterfs.com 14 * becomes very small, so index split, in-depth growing and 21 * With EXTENTS_STATS defined, the number of blocks and extents 35 * These number will be displayed at umount time. 44 * For non-inode extent blocks, ext4_extent_tail 49 * This is the extent tail on-disk structure. 52 * covers all valid ext4 block sizes. Therefore, this tail structure can be 53 * crammed into the end of the block without having to rebalance the tree. 60 * This is the extent on-disk structure. [all …]
|
H A D | balloc.c | 1 // SPDX-License-Identifier: GPL-2.0 7 * Laboratoire MASI - Institut Blaise Pascal 10 * Enhanced block allocation by Stephen Tweedie (sct@redhat.com), 1993 11 * Big-endian to little-endian byte-swapping/bitmaps by 34 * Calculate block group number for a given block number 37 ext4_fsblk_t block) in ext4_get_group_number() argument 42 group = (block - in ext4_get_group_number() 43 le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block)) >> in ext4_get_group_number() 46 ext4_get_group_no_and_offset(sb, block, &group, NULL); in ext4_get_group_number() 51 * Calculate the block group number and offset into the block/cluster [all …]
|
/linux/fs/xfs/libxfs/ |
H A D | xfs_rtbitmap.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (c) 2000-2005 Silicon Graphics, Inc. 37 struct xfs_mount *mp = bp->b_mount; in xfs_rtbuf_verify() 38 struct xfs_rtbuf_blkinfo *hdr = bp->b_addr; in xfs_rtbuf_verify() 40 if (!xfs_verify_magic(bp, hdr->rt_magic)) in xfs_rtbuf_verify() 46 if (!uuid_equal(&hdr->rt_uuid, &mp->m_sb.sb_meta_uuid)) in xfs_rtbuf_verify() 48 if (hdr->rt_blkno != cpu_to_be64(xfs_buf_daddr(bp))) in xfs_rtbuf_verify() 57 struct xfs_mount *mp = bp->b_mount; in xfs_rtbuf_verify_read() 58 struct xfs_rtbuf_blkinfo *hdr = bp->b_addr; in xfs_rtbuf_verify_read() 64 if (!xfs_log_check_lsn(mp, be64_to_cpu(hdr->rt_lsn))) { in xfs_rtbuf_verify_read() [all …]
|
H A D | xfs_btree_staging.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 49 * xfs_btree_stage_afakeroot to set up the in-memory cursor as a staging 56 * Initialize a AG-rooted btree cursor with the given AG btree fake root. 63 ASSERT(!(cur->bc_flags & XFS_BTREE_STAGING)); in xfs_btree_stage_afakeroot() 64 ASSERT(cur->bc_ops->type != XFS_BTREE_TYPE_INODE); in xfs_btree_stage_afakeroot() 65 ASSERT(cur->bc_tp == NULL); in xfs_btree_stage_afakeroot() 67 cur->bc_ag.afake = afake; in xfs_btree_stage_afakeroot() 68 cur->bc_nlevels = afake->af_levels; in xfs_btree_stage_afakeroot() 69 cur->bc_flags |= XFS_BTREE_STAGING; in xfs_btree_stage_afakeroot() 73 * Transform an AG-rooted staging btree cursor back into a regular cursor by [all …]
|
H A D | xfs_btree_staging.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 9 /* Fake root for an AG-rooted btree. */ 11 /* AG block number of the new btree root. */ 17 /* Number of blocks used by the btree. */ 21 /* Cursor interactions with fake roots for AG-rooted btrees. */ 27 /* Fake root for an inode-rooted btree. */ 32 /* Number of blocks used by the btree. */ 38 /* Number of bytes available for this fork in the inode. */ 42 /* Cursor interactions with fake roots for inode-rooted btrees. */ 50 unsigned int idx, struct xfs_btree_block *block, [all …]
|
/linux/Documentation/scsi/ |
H A D | st.rst | 1 .. SPDX-License-Identifier: GPL-2.0 23 flexible method and applicable to single-user workstations. However, 28 parameters, like block size and density using the MTSETDRVBUFFER ioctl. 32 drive performs auto-detection of the tape format well (like some 33 QIC-drives). The result is that any tape can be read, writing can be 37 does not perform auto-detection well enough and there is a single 39 used only in variable block mode (I don't know if this is sensible 40 or not :-). 47 number (bits 5 and 6). The number of modes can be changed by changing 57 between formats in multi-tape operations (the explicitly overridden [all …]
|
/linux/Documentation/driver-api/nvdimm/ |
H A D | btt.rst | 2 BTT - Block Translation Table 11 storage as traditional block devices. The block drivers for persistent memory 14 using stored energy in capacitors to complete in-flight block writes, or perhaps 15 in firmware. We don't have this luxury with persistent memory - if a write is in 16 progress, and we experience a power failure, the block will contain a mix of old 19 The Block Translation Table (BTT) provides atomic sector update semantics for 21 being torn can continue to do so. The BTT manifests itself as a stacked block 23 the heart of it, is an indirection table that re-maps all the blocks on the 37 next arena). The following depicts the "On-disk" metadata layout:: 40 Backing Store +-------> Arena [all …]
|
/linux/Documentation/block/ |
H A D | stat.rst | 2 Block layer statistics in /sys/block/<dev>/stat 5 This file documents the contents of the /sys/block/<dev>/stat file. 7 The stat file provides several statistics about the state of block 29 read I/Os requests number of read I/Os processed 30 read merges requests number of read I/Os merged with in-queue I/O 31 read sectors sectors number of sectors read 33 write I/Os requests number of write I/Os processed 34 write merges requests number of write I/Os merged with in-queue I/O 35 write sectors sectors number of sectors written 37 in_flight requests number of I/Os currently in flight [all …]
|
/linux/fs/jfs/ |
H A D | jfs_dmap.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * Copyright (C) International Business Machines Corp., 2000-2002 10 #define BMAPVERSION 1 /* version number */ 14 #define L2LPERDMAP 8 /* l2 number of leaves per dmap tree */ 25 #define NOFREE ((s8) -1) /* no blocks free */ 26 #define MAXAG 128 /* max number of allocation groups */ 32 * maximum l2 number of disk blocks at the various dmapctl levels. 39 * maximum number of disk blocks at the various dmapctl levels. 62 * convert disk block number to the logical block number of the dmap 63 * describing the disk block. s is the log2(number of logical blocks per page) [all …]
|
/linux/include/linux/mtd/ |
H A D | bbm.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * NAND family Bad Block Management (BBM) header file 4 * - Bad Block Table (BBT) implementation 9 * Copyright © 2000-2005 15 /* The maximum number of NAND chips in an array */ 19 * struct nand_bbt_descr - bad block table descriptor 28 * @maxblocks: maximum number of blocks to search for a bbt. This number of 31 * @reserved_block_code: if non-0, this pattern denotes a reserved (rather than 32 * bad) block in the stored bbt 33 * @pattern: pattern to identify bad block table or factory marked good / [all …]
|
/linux/include/linux/ |
H A D | f2fs_fs.h | 1 // SPDX-License-Identifier: GPL-2.0 14 #define F2FS_SUPER_OFFSET 1024 /* byte-size offset */ 16 #define F2FS_MAX_LOG_SECTOR_SIZE PAGE_SHIFT /* Max is Block Size */ 17 #define F2FS_LOG_SECTORS_PER_BLOCK (PAGE_SHIFT - 9) /* log number for sector/blk */ 18 #define F2FS_BLKSIZE PAGE_SIZE /* support only block == page */ 24 #define NEW_ADDR ((block_t)-1) /* used as block_t addresses */ 25 #define COMPRESS_ADDR ((block_t)-2) /* used as compressed data flag */ 27 #define F2FS_BLKSIZE_MASK (F2FS_BLKSIZE - 1) 30 #define F2FS_BLK_END_BYTES(blk) (F2FS_BLK_TO_BYTES(blk + 1) - 1) 31 #define F2FS_BLK_ALIGN(x) (F2FS_BYTES_TO_BLK((x) + F2FS_BLKSIZE - 1)) [all …]
|