| /linux/tools/memory-model/Documentation/ |
| H A D | glossary.txt | 1 This document contains brief definitions of LKMM-related terms. Like most 10 Address dependencies are quite common in RCU read-side critical 15 3 do_something(p->a); 18 In this case, because the address of "p->a" on line 3 is computed 19 from the value returned by the rcu_dereference() on line 2, the 21 "p->a". In rare cases, optimizing compilers can destroy address 28 using spin_lock(). With respect to a non-lock shared variable, 29 a special operation that includes a load and which orders that 40 See also "Happens-Befor [all...] |
| H A D | ordering.txt | 1 This document gives an overview of the categories of memory-ordering 2 operations provided by the Linux-kernel memory model (LKMM). 8 This section lists LKMM's three top-level categories of memory-ordering 11 1. Barriers (also known as "fences"). A barrier orders some or 38 b. Read-modify-write (RMW) ordering augmentation barriers. 56 -------------------- 58 The Linux-kernel primitives that provide full ordering include: 62 o Value-returning RMW atomic operations whose names do not end in 65 o RCU's grace-period primitives. 67 First, the smp_mb() full memory barrier orders all of the CPU's prior [all …]
|
| H A D | explanation.txt | 1 Explanation of the Linux-Kernel Memory Consistency Model 15 7. THE PROGRAM ORDER RELATION: po AND po-loc 18 10. THE READS-FROM RELATION: rf, rfi, and rfe 20 12. THE FROM-READS RELATION: fr, fri, and fre 22 14. PROPAGATION ORDER RELATION: cumul-fence 28 20. THE HAPPENS-BEFORE RELATION: hb 29 21. THE PROPAGATES-BEFORE RELATION: pb 30 22. RCU RELATIONS: rcu-link, rcu-gp, rcu-rscsi, rcu-order, rcu-fence, and rb 31 23. SRCU READ-SIDE CRITICAL SECTIONS 39 ------------ [all …]
|
| /linux/Documentation/userspace-api/media/v4l/ |
| H A D | field-order.rst | 1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 3 .. _field-order: 30 even) fields, the *spatial order*: The first line of the top field is 31 the first line of an interlaced frame, the first line of the bottom 32 field is the second line of that frame. 69 .. flat-table:: 70 :header-rows: 0 71 :stub-columns: 0 74 * - ``V4L2_FIELD_ANY`` 75 - 0 [all …]
|
| H A D | hist-v4l2.rst | 1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 4 .. _hist-v4l2: 21 1998-08-20: First version. 23 1998-08-27: The :c:func:`select()` function was introduced. 25 1998-09-10: New video standard interface. 27 1998-09-18: The ``VIDIOC_NONCAP`` ioctl was replaced by the otherwise 36 1998-09-28: Revamped video standard. Made video controls individually 39 1998-10-02: The ``id`` field was removed from 47 1998-11-08: Many minor changes. Most symbols have been renamed. Some 50 1998-11-12: The read/write direction of some ioctls was misdefined. [all …]
|
| /linux/arch/arm64/boot/dts/renesas/ |
| H A D | white-hawk-csi-dsi.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 * Device Tree Source for the White Hawk CSI/DSI sub-board 8 #include <dt-bindings/media/video-interfaces.h> 14 #address-cells = <1>; 15 #size-cells = <0>; 21 bus-type = <MEDIA_BUS_TYPE_CSI2_CPHY>; 22 clock-lanes = <0>; 23 data-lanes = <1 2 3>; 24 line-orders = <MEDIA_BUS_CSI2_CPHY_LINE_ORDER_ABC 27 remote-endpoint = <&max96712_out0>; [all …]
|
| /linux/arch/powerpc/mm/ |
| H A D | mmu_context.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 19 /* 32-bit keeps track of the current PGDIR in the thread struct */ in switch_mm_pgdir() 20 tsk->thread.pgdir = mm->pgd; in switch_mm_pgdir() 22 tsk->thread.sr0 = mm->context.sr0; in switch_mm_pgdir() 25 tsk->thread.pid = mm->context.id; in switch_mm_pgdir() 32 /* 64-bit Book3E keeps track of current PGD in the PACA */ in switch_mm_pgdir() 33 get_paca()->pgd = mm->pgd; in switch_mm_pgdir() 35 tsk->thread.pid = mm->context.id; in switch_mm_pgdir() 56 * This full barrier orders the store to the cpumask above vs in switch_mm_irqs_off() 68 * On the other side, the barrier is in mm/tlb-radix.c for in switch_mm_irqs_off() [all …]
|
| /linux/Documentation/admin-guide/mm/ |
| H A D | transhuge.rst | 26 requiring larger clear-page copy-page in page faults which is a 48 Modern kernels support "multi-size THP" (mTHP), which introduces the 50 but smaller than traditional PMD-size (as described above), in 51 increments of a power-of-2 number of pages. mTHP can back anonymous 53 PTE-mapped, but in many cases can still provide similar benefits to 56 prominent because the size of each page isn't as huge as the PMD-sized 66 collapses sequences of basic pages into PMD-sized huge pages. 91 possible to disable hugepages system-wide and to only have them inside 108 ------------------- 113 system wide. This can be achieved per-supported-THP-size with one of:: [all …]
|
| H A D | slab.rst | 12 to the kernel command line. That will enable full debugging for 17 slabs that have data in them. See "slabinfo -h" for more options when 21 gcc -o slabinfo tools/mm/slabinfo.c 24 be enabled on the command line. F.e. no tracking information will be 29 ------------------------------------------- 34 slab_debug=<Debug-Options> 37 slab_debug=<Debug-Options>,<slab name1>,<slab name2>,... 56 caused higher minimum slab orders 57 - Switch all debugging off (useful if the kernel is 73 slab_debug=P,kmalloc-*,dentry [all …]
|
| /linux/tools/testing/selftests/rcutorture/bin/ |
| H A D | kvm-check-branches.sh | 2 # SPDX-License-Identifier: GPL-2.0+ 5 # unconditionally does three-minute runs on each scenario in CFLIST, 9 # might grow some command-line arguments. 11 # Usage: kvm-check-branches.sh commit1 commit2..commit3 commit4 ... 14 # specification of commits is needed, please use "git rev-list" to 19 # This script creates a yyyy.mm.dd-hh.mm.ss-group entry in the "res" 21 # moves them under the yyyy.mm.dd-hh.mm.ss-group entry, each in its own 24 # reduces the disk space required by about two orders of magnitude for 39 curcommit="`git status | head -1 | awk '{ print $NF }'`" 44 ds="`date +%Y.%m.%d-%H.%M.%S`-group" [all …]
|
| /linux/fs/netfs/ |
| H A D | rolling_buffer.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 17 * netfs_folioq_alloc - Allocate a folio_queue struct 22 * Allocate, initialise and account the folio_queue struct and log a trace line 34 fq->debug_id = atomic_inc_return(&debug_ids); in netfs_folioq_alloc() 42 * netfs_folioq_free - Free a folio_queue struct 69 return -ENOMEM; in rolling_buffer_init() 71 roll->head = fq; in rolling_buffer_init() 72 roll->tail = fq; in rolling_buffer_init() 73 iov_iter_folio_queue(&roll->iter, direction, fq, 0, 0, 0); in rolling_buffer_init() 82 struct folio_queue *fq, *head = roll->head; in rolling_buffer_make_space() [all …]
|
| /linux/kernel/ |
| H A D | kexec_handover.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * kexec_handover.c - kexec handover metadata processing 20 #include <linux/page-isolation.h> 32 #define KHO_FDT_COMPATIBLE "kho-v1" 33 #define PROP_PRESERVED_MEMORY_MAP "preserved-memory-map" 39 * KHO uses page->private, which is an unsigned long, to store page metadata. 50 static_assert(sizeof(union kho_page_info) == sizeof(((struct page *)0)->private)); 69 * The serializing side uses two levels of xarrays to manage chunks of per-order 97 struct xarray orders; member 128 .orders = XARRAY_INIT(kho_out.ser.track.orders, 0), [all …]
|
| /linux/mm/ |
| H A D | memory.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 * demand-loading started 01.12.91 - seems it is high on the list of 10 * things wanted, and it should be easy to implement. - Linus 14 * Ok, demand-loading was easy, shared pages a little bit tricker. Shared 15 * pages started 02.12.91, seems to work. - Linus. 21 * Also corrected some "invalidate()"s - I wasn't doing enough of them. 27 * 19.12.91 - works, somewhat. Sometimes I get faults, don't know why. 29 * 20.12.91 - Ok, making the swap-device changeable like the root. 33 * 05.04.94 - Multi-page memory management added for v1.1. 36 * 16.07.99 - Support of BIGMEM added by Gerhard Wichert, Siemens AG [all …]
|
| H A D | page_alloc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 39 #include <linux/fault-inject.h> 63 /* Free Page Internal flags: for internal, non-pcp variants of free_pages(). */ 72 * reporting it and marking it "reported" - it only skips notifying 81 * page shuffling (relevant code - e.g., memory onlining - is expected to 84 * Note: No code should rely on this flag for correctness - it's purely 94 /* prevent >1 _updater_ of zone percpu pageset ->high and ->batch fields */ 107 /* UP spin_trylock always succeeds so disable IRQs to prevent re-entrancy. */ 129 * Generic helper to lookup and a per-cpu variable with an embedded spinlock. 137 spin_lock(&_ret->member); \ [all …]
|
| H A D | vmstat.c | 1 // SPDX-License-Identifier: GPL-2.0-only 11 * Copyright (C) 2008-2014 Christoph Lameter 45 atomic_long_set(&zone->vm_numa_event[item], 0); in zero_zone_numa_counters() 47 per_cpu_ptr(zone->per_cpu_zonestats, cpu)->vm_numa_event[item] in zero_zone_numa_counters() 124 ret[i] += this->event[i]; in sum_vm_events() 130 * The result is unavoidably approximate - it can change 153 count_vm_events(i, fold_state->event[i]); in vm_events_fold_cpu() 154 fold_state->event[i] = 0; in vm_events_fold_cpu() 181 pzstats = per_cpu_ptr(zone->per_cpu_zonestats, cpu); in fold_vm_zone_numa_events() 183 zone_numa_events[item] += xchg(&pzstats->vm_numa_event[item], 0); in fold_vm_zone_numa_events() [all …]
|
| /linux/drivers/net/ethernet/intel/i40e/ |
| H A D | i40e_txrx.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright(c) 2013 - 2018 Intel Corporation. */ 34 * the value of the rate limit is non-zero 41 * i40e_intrl_usec_to_reg - convert interrupt rate limit to register 97 (test_bit(I40E_HW_CAP_MULTI_TCP_UDP_RSS_PCTYPE, (pf)->hw.caps) ? \ 111 * i.e. RXBUFFER_256 --> 960 byte skb (size-1024 slab) 112 * i.e. RXBUFFER_512 --> 1216 byte skb (size-2048 slab) 127 * Note: For cache line sizes 256 or larger this value is going to end 140 pad_size = SKB_WITH_OVERHEAD(page_size) - rx_buf_len; in i40e_compute_pad() 154 * cache-line alignment. in i40e_skb_pad() [all …]
|
| /linux/arch/powerpc/lib/ |
| H A D | qspinlock.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 67 u64 delta = sched_clock() - seen; in recently_sleepy() 108 return (val >> _Q_TAIL_CPU_OFFSET) - 1; in decode_tail_cpu() 142 " bne- 1b \n" in trylock_clean_tail() 146 : "r" (&lock->val), "r"(tail), "r" (newval), in trylock_clean_tail() 174 " bne- 1b \n" in publish_tail_cpu() 176 : "r" (&lock->val), "r" (tail), "r"(_Q_TAIL_CPU_MASK) in publish_tail_cpu() 190 " bne- 1b \n" in set_mustq() 192 : "r" (&lock->val), "r" (_Q_MUST_Q_VAL) in set_mustq() 206 " bne- 1b \n" in clear_mustq() [all …]
|
| /linux/Documentation/arch/m68k/ |
| H A D | kernel-options.rst | 2 Command Line Options for Linux/m68k 9 Author: Roman.Hodek@informatik.uni-erlangen.de (Roman Hodek) 11 Update: jds@kom.auc.dk (Jes Sorensen) and faq@linux-m68k.org (Chris Lawrence) 16 Often I've been asked which command line options the Linux/m68k 29 The kernel knows three kinds of options on its command line: 41 command line options. 58 ---------- 76 /dev/ram: -> 0x0100 (initial ramdisk) 77 /dev/hda: -> 0x0300 (first IDE disk) 78 /dev/hdb: -> 0x0340 (second IDE disk) [all …]
|
| /linux/drivers/media/i2c/ |
| H A D | max9286.c | 1 // SPDX-License-Identifier: GPL-2.0+ 5 * Copyright (C) 2017-2019 Jacopo Mondi 6 * Copyright (C) 2017-2019 Kieran Bingham 7 * Copyright (C) 2017-2019 Laurent Pinchart 8 * Copyright (C) 2017-2019 Niklas Söderlund 20 #include <linux/i2c-mux.h> 26 #include <media/v4l2-async.h> 27 #include <media/v4l2-ctrls.h> 28 #include <media/v4l2-device.h> 29 #include <media/v4l2-fwnode.h> [all …]
|
| /linux/drivers/net/ethernet/intel/ice/ |
| H A D | ice_txrx.c | 1 // SPDX-License-Identifier: GPL-2.0 26 * ice_prgm_fdir_fltr - Program a Flow Director filter 46 return -ENOENT; in ice_prgm_fdir_fltr() 47 tx_ring = vsi->tx_rings[0]; in ice_prgm_fdir_fltr() 48 if (!tx_ring || !tx_ring->desc) in ice_prgm_fdir_fltr() 49 return -ENOENT; in ice_prgm_fdir_fltr() 50 dev = tx_ring->dev; in ice_prgm_fdir_fltr() 53 for (i = ICE_FDIR_CLEAN_DELAY; ICE_DESC_UNUSED(tx_ring) < 2; i--) { in ice_prgm_fdir_fltr() 55 return -EAGAIN; in ice_prgm_fdir_fltr() 63 return -EINVAL; in ice_prgm_fdir_fltr() [all …]
|
| /linux/tools/perf/util/ |
| H A D | sort.c | 1 // SPDX-License-Identifier: GPL-2.0 25 #include "mem-events.h" 26 #include "mem-info.h" 28 #include "annotate-data.h" 30 #include "time-utils.h" 33 #include "trace-event.h" 38 #include <event-parse.h> 68 * -t, --field-separator 94 return size - 1; in repsep_snprintf() 103 return -1; in cmp_null() [all …]
|
| /linux/lib/ |
| H A D | iov_iter.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 #include <linux/fault-inject-usercopy.h> 78 * fault_in_iov_iter_readable - fault in iov iterator for reading 88 * Always returns 0 for non-userspace iterators. 94 n -= fault_in_readable(i->ubu in fault_in_iov_iter_readable() [all...] |
| /linux/Documentation/ |
| H A D | memory-barriers.txt | 19 documentation at tools/memory-model/. Nevertheless, even this memory 37 Note also that it is possible that a barrier may be a no-op for an 48 - Device operations. 49 - Guarantees. 53 - Varieties of memory barrier. 54 - What may not be assumed about memory barriers? 55 - Address-dependency barriers (historical). 56 - Control dependencies. 57 - SMP barrier pairing. 58 - Examples of memory barrier sequences. [all …]
|
| /linux/drivers/tty/serial/8250/ |
| H A D | 8250_pci.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Probe module for 8250/16550-type PCI serial ports. 98 /* Unknown vendors/cards - this should not be in linux/pci_ids.h */ 104 * > 0 - number of ports 105 * = 0 - use board->num_ports 106 * < 0 - error 131 int line[]; member 156 "Please send the output of lspci -vv, this\n" in moan_device() 159 "modem board to <linux-serial@vger.kernel.org>.\n", in moan_device() 160 str, dev->vendor, dev->device, in moan_device() [all …]
|
| /linux/kernel/sched/ |
| H A D | core.c | 1 // SPDX-License-Identifier: GPL-2.0-only 7 * Copyright (C) 1991-2002 Linus Torvalds 8 * Copyright (C) 1998-2024 Ingo Molnar, Red Hat 75 # include <linux/irq-entry-common.h> 99 #include "../../io_uring/io-wq.h" 193 if (p->sched_class == &stop_sched_class) /* trumps deadline */ in __task_prio() 194 return -2; in __task_prio() 196 if (p->dl_server) in __task_prio() 197 return -1; /* deadline */ in __task_prio() 199 if (rt_or_dl_prio(p->prio)) in __task_prio() [all …]
|