/linux/Documentation/admin-guide/mm/ |
H A 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/fs/bcachefs/ |
H A 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/Documentation/filesystems/ext4/ |
H A 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/Documentation/devicetree/bindings/soc/intel/ |
H A 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 <matthew.gerlach@linux.intel.com> 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/net/rxrpc/ |
H A 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/Documentation/devicetree/bindings/net/ |
H A 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 <andrew@lunn.ch> 11 - Michael Walle <michael@walle.cc> 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/drivers/gpu/drm/i915/gem/ |
H A 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/arch/mips/include/asm/fw/arc/ |
H A 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/arch/sparc/vdso/ |
H A 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/kernel/module/ |
H A 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 …]
|
H A D | stats.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 28 * The current module debugging statistics supported help keep track of module 29 * loading failures to enable improvements either for kernel module auto-loading 33 * to a type of module loading failure which is known to incur a certain amount 34 * of memory allocation loss. In the worst case loading a module will fail after 35 * a 3 step memory allocation process: 37 * a) memory allocated with kernel_read_file_from_fd() 40 * the decompressed module to a new local buffer which represents 41 * a copy of the decompressed module passed from userspace. The buffer 44 * place where we would keep the module if it were to be processed [all …]
|
/linux/drivers/md/persistent-data/ |
H A 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/rust/kernel/block/ |
H A 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/fs/gfs2/ |
H A 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/security/selinux/ss/ |
H A 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/include/linux/ |
H A 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 …]
|
H A 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 …]
|
H A 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/Documentation/core-api/ |
H A 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/fs/afs/ |
H A 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/Documentation/mm/ |
H A D | highmem.rst | 5 By: Peter Zijlstra <a.p.zijlstra@chello.nl> 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 …]
|
/linux/Documentation/livepatch/ |
H A D | livepatch.rst | 15 There are many situations where users are reluctant to reboot a system. It may 18 users want to also have a stable and secure system. Livepatching gives users 20 functions without a system reboot. 30 - The kernel probes are the most generic. The code can be redirected by 31 putting a breakpoint instruction instead of any instruction. 33 - The function tracer calls the code from a predefined location that is 35 compiler using the '-pg' gcc option. 37 - Livepatching typically needs to redirect the code at the very beginning 44 a base. A Kprobe is registered as a ftrace handler when the function entry 46 a live patch is called with the help of a custom ftrace handler. But there are [all …]
|
/linux/arch/arm/boot/dts/nxp/imx/ |
H A D | imx27-eukrea-mbimxsd27-baseboard.dts | 1 // SPDX-License-Identifier: GPL-2.0-or-later 6 #include "imx27-eukrea-cpuimx27.dtsi" 10 compatible = "eukrea,mbimxsd27-baseboard", "eukrea,cpuimx27", "fsl,imx27"; 12 display0: CMO-QVGA { 13 model = "CMO-QVGA"; 14 bits-per-pixel = <16>; 17 display-timings { 18 native-mode = <&timing0>; 20 clock-frequency = <6500000>; 23 hback-porch = <20>; [all …]
|
/linux/Documentation/security/ |
H A D | ipe.rst | 1 .. SPDX-License-Identifier: GPL-2.0 3 Integrity Policy Enforcement (IPE) - Kernel Documentation 10 :doc:`IPE admin guide </admin-guide/LSM/ipe>`. 13 --------------------- 16 of a locked-down system. This system would be born-secure, and have 20 policy. A mandatory access control system would be present, and 21 as a result, xattrs would have to be protected. This lead to a selection 27 2. DM-Verity 29 Both options were carefully considered, however the choice to use DM-Verity 40 there must be some form of selector to determine whether a read should [all …]
|
/linux/fs/xfs/libxfs/ |
H A D | xfs_trans_resv.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc. 30 * A buffer has a format structure overhead in the log in addition 32 * space in a transaction for a buffer. Round the space required up 33 * to a multiple of 128 bytes so that we don't change the historical 47 * will be changed in a transaction. size is used to tell how many 59 * Per-extent log reservation for the btree changes involved in freeing or 64 * num trees * ((2 blocks/level * max depth) - 1) 66 * Keep in mind that max depth is calculated separately for each type of tree. 75 blocks = num_ops * 2 * (2 * mp->m_alloc_maxlevels - 1); in xfs_allocfree_block_count() [all …]
|