/linux-6.14.4/Documentation/admin-guide/mm/ |
D | userfaultfd.rst | 8 Userfaults allow the implementation of on-demand paging from userland 12 For example userfaults allows a proper and more optimal implementation 18 Userspace creates a new userfaultfd, initializes it, and registers one or more 20 region(s) result in a message being delivered to the userfaultfd, notifying 26 1) ``read/POLLIN`` protocol to notify a userland thread of the faults 38 Vmas are not suitable for page- (or hugepage) granular fault tracking 43 passed using unix domain sockets to a manager process, so the same 44 manager process could handle the userfaults of a multitude of 48 is a corner case that would currently return ``-EBUSY``). 53 Creating a userfaultfd [all …]
|
/linux-6.14.4/fs/bcachefs/ |
D | extents_format.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 6 * In extent bkeys, the value is a list of pointers (bch_extent_ptr), optionally 15 * merely adjust ptr->offset to point to the start of the data that is currently 16 * live. The size field in struct bkey records the current (live) size of the 20 * Thus an extent that is not checksummed or compressed will consist only of a 25 * the data that is currently live: we have to read the entire extent that was 27 * currently live. 30 * to store the size of the originally allocated space - this is the 33 * pointer, we keep a second smaller offset field - "offset into the original 34 * extent of the currently live region". [all …]
|
/linux-6.14.4/fs/xfs/scrub/ |
D | dirtree.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * Copyright (c) 2023-2024 Oracle. All Rights Reserved. 10 * Each of these represents one parent pointer path step in a chain going 38 * scanned. These exist in-core, and hopefully there aren't more than a 84 * This is the inode that we're scanning. The live update hook can 85 * continue to be called after xchk_teardown drops sc->ip but before 86 * it calls buf_cleanup, so we keep a copy. 94 * as a stand-in until the orphanage can adopt the subdirectory. 110 * Hook into directory updates so that we can receive live updates 121 /* buffer for the live update functions to use for dirent names */ [all …]
|
D | iscan.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Copyright (c) 2021-2024 Oracle. All Rights Reserved. 28 * Live File Scan 31 * Live file scans walk every inode in a live filesystem. This is more or 32 * less like a regular iwalk, except that when we're advancing the scan cursor, 40 * construct a new metadata index of some kind. The scan races against other 41 * live updates, which means there must be a provision to update the new index 43 * can be used in live update hook code to stop the scan and protect this data 46 * To keep the new index up to date with other metadata updates being made to 47 * the live filesystem, it is assumed that the caller will add hooks as needed [all …]
|
/linux-6.14.4/Documentation/filesystems/ext4/ |
D | allocators.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 --------------------------------- 7 generally a desirably quality of a filesystem. On a spinning disk, 9 that the head actuator and disk must perform to access a data block, 13 effect of concentrating writes on a single erase block, which can speed 17 The first tool that ext4 uses to combat fragmentation is the multi-block 18 allocator. When a file is first created, the block allocator 23 files) then the file data gets written out in a single multi-block 24 extent. A second related trick that ext4 uses is delayed allocation. 25 Under this scheme, when a file needs more blocks to absorb file writes, [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/soc/intel/ |
D | intel,hps-copy-engine.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 4 --- 5 $id: http://devicetree.org/schemas/soc/intel/intel,hps-copy-engine.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 11 - Matthew Gerlach <[email protected]> 15 a bootable image from host memory to HPS DDR. Additionally, there is a 17 well as a keep-a-live indication to the host. 21 const: intel,hps-copy-engine 23 '#dma-cells': 30 - compatible [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/net/ |
D | maxlinear,gpy2xx.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Andrew Lunn <[email protected]> 11 - Michael Walle <[email protected]> 14 - $ref: ethernet-phy.yaml# 17 maxlinear,use-broken-interrupts: 19 Interrupts are broken on some GPY2xx PHYs in that they keep the 20 interrupt line asserted for a random amount of time even after the 24 can live with the consequences, this property can be used to enable [all …]
|
/linux-6.14.4/drivers/gpu/drm/i915/gem/ |
D | i915_gem_context_types.h | 2 * SPDX-License-Identifier: MIT 15 #include <linux/radix-tree.h> 34 * struct i915_gem_engines - A set of engines 59 * struct i915_gem_engines_iter - Iterator for an i915_gem_engines set 70 * enum i915_gem_engine_type - Describes the type of an i915_gem_proto_engine 76 /** @I915_GEM_ENGINE_TYPE_PHYSICAL: A single physical engine */ 79 /** @I915_GEM_ENGINE_TYPE_BALANCED: A load-balanced engine set */ 82 /** @I915_GEM_ENGINE_TYPE_PARALLEL: A parallel engine set */ 87 * struct i915_gem_proto_engine - prototype engine 89 * This struct describes an engine that a context may contain. Engines [all …]
|
/linux-6.14.4/arch/mips/include/asm/fw/arc/ |
D | types.h | 24 /* The pointer types. Note that we're using a 64-bit compiler but all 25 pointer in the ARC structures are only 32-bit, so we need some disgusting 26 workarounds. Keep your vomit bag handy. */ 49 /* The pointer types. We're 64-bit and the firmware is also 64-bit, so 50 live is sane ... */
|
/linux-6.14.4/arch/sparc/vdso/ |
D | vdso-layout.lds.S | 3 * its virtual address, and with only one read-only segment. 20 * User/kernel shared data is before the vDSO. This may be a little 22 * non-allocatable things that dangle past the end of the PT_LOAD 23 * segment. Page size is 8192 for both 64-bit and 32-bit vdso binaries 26 vvar_start = . -8192; 52 * Ideally this would live in a C file: kept in here for 53 * compatibility with x86-64. 66 .eh_frame : { KEEP (*(.eh_frame)) } :text 70 * Text is well-separated from actual data: there's plenty of 90 * PT_LOAD segment, and set the flags explicitly to make segments read-only.
|
/linux-6.14.4/fs/netfs/ |
D | fscache_cache.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* FS-Cache cache handling 22 * Allocate a cache cookie. 31 cache->name = kstrdup(name, GFP_KERNEL); in fscache_alloc_cache() 32 if (!cache->name) { in fscache_alloc_cache() 37 refcount_set(&cache->ref, 1); in fscache_alloc_cache() 38 INIT_LIST_HEAD(&cache->cache_link); in fscache_alloc_cache() 39 cache->debug_id = atomic_inc_return(&fscache_cache_debug_id); in fscache_alloc_cache() 50 success = __refcount_inc_not_zero(&cache->ref, &ref); in fscache_get_cache_maybe() 52 trace_fscache_cache(cache->debug_id, ref + 1, where); in fscache_get_cache_maybe() [all …]
|
/linux-6.14.4/net/rxrpc/ |
D | peer_event.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 19 #include "ar-internal.h" 26 * Find the peer associated with a local error. 37 srx->transport_type = local->srx.transport_type; in rxrpc_lookup_peer_local_rcu() 38 srx->transport_len = local->srx.transport_len; in rxrpc_lookup_peer_local_rcu() 39 srx->transport.family = local->srx.transport.family; in rxrpc_lookup_peer_local_rcu() 44 switch (srx->transport.family) { in rxrpc_lookup_peer_local_rcu() 46 srx->transport_len = sizeof(srx->transport.sin); in rxrpc_lookup_peer_local_rcu() 47 srx->transport.family = AF_INET; in rxrpc_lookup_peer_local_rcu() 48 srx->transport.sin.sin_port = serr->port; in rxrpc_lookup_peer_local_rcu() [all …]
|
/linux-6.14.4/kernel/module/ |
D | procfs.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 24 * Always include a trailing , so userspace can differentiate in print_unload_info() 25 * between this and the old multi-field proc format. in print_unload_info() 27 list_for_each_entry(use, &mod->source_list, source_list) { in print_unload_info() 29 seq_printf(m, "%s,", use->source->name); in print_unload_info() 32 if (mod->init && !mod->exit) { in print_unload_info() 38 seq_puts(m, "-"); in print_unload_info() 44 seq_puts(m, " - -"); in print_unload_info() 48 /* Called by the /proc file system to return a list of modules. */ 70 size += mod->mem[type].size; in module_total_size() [all …]
|
/linux-6.14.4/drivers/md/persistent-data/ |
D | dm-btree-internal.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 11 #include "dm-btree.h" 13 /*----------------------------------------------------------------*/ 16 * We'll need 2 accessor functions for n->csum and n->blocknr 17 * to support dm-btree-spine.c in that case. 26 * Every btree node begins with this structure. Make sure it's a multiple 27 * of 8-bytes in size, otherwise the 64bit keys will be mis-aligned. 32 __le64 blocknr; /* Block this node is supposed to live in. */ 47 * Locks a block using the btree node validator. 59 * Spines keep track of the rolling locks. There are 2 variants, read-only [all …]
|
/linux-6.14.4/rust/kernel/block/ |
D | mq.rs | 1 // SPDX-License-Identifier: GPL-2.0 4 //! blk-mq subsystem. 6 //! To implement a block device driver, a Rust module must do the following: 8 //! - Implement [`Operations`] for a type `T`. 9 //! - Create a [`TagSet<T>`]. 10 //! - Create a [`GenDisk<T>`], via the [`GenDiskBuilder`]. 11 //! - Add the disk to the system by calling [`GenDiskBuilder::build`] passing in 16 //! - The [`TagSet`] type that abstracts the C type `struct tag_set`. 17 //! - The [`GenDisk`] type that abstracts the C type `struct gendisk`. 18 //! - The [`Request`] type that abstracts the C type `struct request`. [all …]
|
/linux-6.14.4/include/linux/ |
D | cache.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 17 * SMP_CACHE_ALIGN - align a value to the L2 cacheline size 30 * ``__aligned_largest`` aligns a field to the value most optimal for the 43 * __read_mostly is used to keep rarely changing variables out of frequently 47 * best case multiple frequently read variables for a hot path will be next 49 * execute a critical path. We should be mindful and selective of its use. 50 * ie: if you're going to use it please supply a *good* justification in your 58 * __ro_after_init is used to mark things that are read-only after init (i.e. 59 * after mark_rodata_ro() has been called). These are effectively read-only, 60 * but may get written to during init, so can't live in .rodata (via "const"). [all …]
|
D | hil_mlc.h | 21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 30 * HP-HIL Technical Reference Manual. Hewlett Packard Product No. 45918A 43 /* The HIL has a complicated state engine. 65 /* HILSE_FUNC runs a callback function with given arguments. 66 * a positive return value causes the "ugly" branch to be taken. 70 /* HILSE_IN simply expects any non-errored packet to arrive 75 /* HILSE_EXPECT expects a particular packet to arrive 104 /* Methods for back-end drivers, e.g. hp_sdc_mlc */ 122 /* How many (possibly old/detached) devices the we try to keep track of */ 130 void *priv; /* Data specific to a particular type of MLC */ [all …]
|
D | kfence.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * Kernel Electric-Fence (KFENCE). Public interface for allocator and fault 4 * handler integration. For more info see Documentation/dev-tools/kfence.rst. 34 * is_kfence_address() - check if an address belongs to KFENCE pool 40 * KFENCE objects live in a separate page range and are not to be intermixed 46 * Note: This function may be used in fast-paths, and is performance critical. 48 * introducing another load and therefore need to keep KFENCE_POOL_SIZE a 55 * where __kfence_pool == NULL && addr < KFENCE_POOL_SIZE. Keep it in in is_kfence_address() 56 * the slow-path after the range-check! in is_kfence_address() 58 return unlikely((unsigned long)((char *)addr - __kfence_pool) < KFENCE_POOL_SIZE && __kfence_pool); in is_kfence_address() [all …]
|
/linux-6.14.4/fs/gfs2/ |
D | util.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. 45 * check_journal_clean - Make sure a journal is clean for a spectator mount 60 ip = GFS2_I(jd->jd_inode); in check_journal_clean() 61 error = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, LM_FLAG_NOEXP | in check_journal_clean() 67 return -EPERM; in check_journal_clean() 84 error = -EPERM; in check_journal_clean() 87 "mounter must not be a spectator.\n", in check_journal_clean() 88 jd->jd_jid); in check_journal_clean() [all …]
|
/linux-6.14.4/Documentation/core-api/ |
D | debug-objects.rst | 2 The object-lifetime debugging infrastructure 10 debugobjects is a generic infrastructure to track the life time of 15 - Activation of uninitialized objects 17 - Initialization of active objects 19 - Usage of freed/destroyed objects 22 can be compiled in with a minimal runtime impact and enabled on demand 23 with a kernel command line option. 28 A kernel subsystem needs to provide a data structure which describes the 33 information can be retrieved from a live system instead of hard core 39 - debug_object_init [all …]
|
/linux-6.14.4/security/selinux/ss/ |
D | sidtab.c | 1 // SPDX-License-Identifier: GPL-2.0 33 #define sid_to_index(sid) ((sid) - (SECINITSID_NUM + 1)) 39 memset(s->roots, 0, sizeof(s->roots)); in sidtab_init() 42 s->isids[i].set = 0; in sidtab_init() 44 s->frozen = false; in sidtab_init() 45 s->count = 0; in sidtab_init() 46 s->convert = NULL; in sidtab_init() 47 hash_init(s->context_to_sid); in sidtab_init() 49 spin_lock_init(&s->lock); in sidtab_init() 52 s->cache_free_slots = CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE; in sidtab_init() [all …]
|
/linux-6.14.4/drivers/net/ethernet/broadcom/bnxt/ |
D | bnxt_devlink.c | 1 /* Broadcom NetXtreme-C/E network driver. 27 if (test_bit(BNXT_STATE_FW_FATAL_COND, &bp->state) || in __bnxt_fw_recover() 28 test_bit(BNXT_STATE_FW_NON_FATAL_COND, &bp->state)) in __bnxt_fw_recover() 44 "flash update not supported from a VF"); in bnxt_dl_flash_update() 45 return -EPERM; in bnxt_dl_flash_update() 49 rc = bnxt_flash_package_from_fw_obj(bp->dev, params->fw, 0, extack); in bnxt_dl_flash_update() 62 if (~bp->fw_cap & BNXT_FW_CAP_HOT_RESET_IF) in bnxt_hwrm_remote_dev_reset_set() 63 return -EOPNOTSUPP; in bnxt_hwrm_remote_dev_reset_set() 69 req->fid = cpu_to_le16(0xffff); in bnxt_hwrm_remote_dev_reset_set() 70 req->enables = cpu_to_le32(FUNC_CFG_REQ_ENABLES_HOT_RESET_IF_SUPPORT); in bnxt_hwrm_remote_dev_reset_set() [all …]
|
/linux-6.14.4/fs/afs/ |
D | fs_probe.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 24 __refcount_inc(&estate->ref, &r); in afs_get_endpoint_state() 25 trace_afs_estate(estate->server_id, estate->probe_seq, r, where); in afs_get_endpoint_state() 34 trace_afs_estate(estate->server_id, estate->probe_seq, refcount_read(&estate->ref), in afs_endpoint_state_rcu() 36 afs_put_addrlist(estate->addresses, afs_alist_trace_put_estate); in afs_endpoint_state_rcu() 43 unsigned int server_id = estate->server_id, probe_seq = estate->probe_seq; in afs_put_endpoint_state() 47 dead = __refcount_dec_and_test(&estate->ref, &r); in afs_put_endpoint_state() 50 call_rcu(&estate->rcu, afs_endpoint_state_rcu); in afs_put_endpoint_state() 63 if (!net->live) in afs_schedule_fs_probe() 66 atj = server->probed_at; in afs_schedule_fs_probe() [all …]
|
/linux-6.14.4/arch/powerpc/kernel/trace/ |
D | ftrace_entry.S | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 9 #include <asm/asm-offsets.h> 11 #include <asm/ppc-opcode.h> 21 * We arrive here after a function A calls function B, and we are the trace 22 * function for B. When we enter r1 points to A's stack frame, B has not yet 23 * had a chance to allocate one yet. 25 * Additionally r2 may point either to the TOC for A, or B, depending on 26 * whether B did a TOC setup sequence before calling us. 30 * call site in A. 32 * Our job is to save the register state into a struct pt_regs (on the stack) [all …]
|
/linux-6.14.4/Documentation/mm/ |
D | highmem.rst | 5 By: Peter Zijlstra <a[email protected]> 14 impossible for the kernel to keep all of the available physical memory mapped 18 The part of (physical) memory not covered by a permanent mapping is what we 30 +--------+ 0xffffffff 32 +--------+ 0xc0000000 36 +--------+ 0x00000000 39 time, but because we need virtual address space for other things - including 40 temporary maps to access the rest of the physical memory - the actual direct 54 * kmap_local_page(), kmap_local_folio() - These functions are used to create 57 them. The only differences between them consist in the first taking a pointer [all …]
|