| /Linux-v6.6/Documentation/dev-tools/ |
| D | kasan.rst | 5 -------- 8 designed to find out-of-bounds and use-after-free bugs. 13 2. Software Tag-Based KASAN 14 3. Hardware Tag-Based KASAN 20 Software Tag-Based KASAN or SW_TAGS KASAN, enabled with CONFIG_KASAN_SW_TAGS, 23 using it for testing on memory-restricted devices with real workloads. 25 Hardware Tag-Based KASAN or HW_TAGS KASAN, enabled with CONFIG_KASAN_HW_TAGS, 26 is the mode intended to be used as an in-field memory bug detector or as a 34 The Generic and the Software Tag-Based modes are commonly referred to as the 35 software modes. The Software Tag-Based and the Hardware Tag-Based modes are [all …]
|
| D | kfence.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 Kernel Electric-Fence (KFENCE) 7 Kernel Electric-Fence (KFENCE) is a low-overhead sampling-based memory safety 8 error detector. KFENCE detects heap out-of-bounds access, use-after-free, and 9 invalid-free errors. 15 non-production test workloads. One way to quickly achieve a large enough total 19 ----- 26 ``kfence.sample_interval`` to non-zero value), configure the kernel with:: 46 causes CPU wake-ups when the system is completely idle. This may be undesirable 47 on power-constrained systems. The boot parameter ``kfence.deferrable=1`` [all …]
|
| /Linux-v6.6/drivers/net/ethernet/chelsio/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 26 This driver supports Chelsio gigabit and 10-gigabit 34 For customer support, please visit our customer support page at 37 Please send feedback to <linux-bugs@chelsio.com>. 55 This driver supports Chelsio T3-based gigabit and 10Gb Ethernet 61 For customer support, please visit our customer support page at 64 Please send feedback to <linux-bugs@chelsio.com>. 77 This driver supports Chelsio T4, T5 & T6 based gigabit, 10Gb Ethernet 78 adapter and T5/T6 based 40Gb and T6 based 25Gb, 50Gb and 100Gb 84 For customer support, please visit our customer support page at [all …]
|
| /Linux-v6.6/mm/kasan/ |
| D | hw_tags.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * This file contains core hardware tag-based KASAN code. 84 return -EINVAL; in early_kasan_flag() 91 return -EINVAL; in early_kasan_flag() 101 return -EINVAL; in early_kasan_mode() 110 return -EINVAL; in early_kasan_mode() 120 return -EINVAL; in early_kasan_flag_vmalloc() 127 return -EINVAL; in early_kasan_flag_vmalloc() 149 return -EINVAL; in early_kasan_flag_page_alloc_sample() 157 return -EINVAL; in early_kasan_flag_page_alloc_sample() [all …]
|
| D | kasan_test.c | 1 // SPDX-License-Identifier: GPL-2.0-only 29 #include <asm/page.h> 37 /* Fields set based on lines observed in the console. */ 63 return -1; in kasan_suite_init() 70 * Temporarily enable multi-shot mode. Otherwise, KASAN would only in kasan_suite_init() 94 * KUNIT_EXPECT_KASAN_FAIL() - check that the executed expression produces a 99 * For hardware tag-based KASAN, when a synchronous tag fault happens, tag 100 * checking is auto-disabled. When this happens, this test handler reenables 162 size_t size = 128 - KASAN_GRANULE_SIZE - 5; in kmalloc_oob_right() 176 * An aligned access into the first out-of-bounds granule that falls in kmalloc_oob_right() [all …]
|
| D | common.c | 1 // SPDX-License-Identifier: GPL-2.0 8 * Some code borrowed from https://github.com/xairy/kasan-prototype by 51 track->pid = current->pid; in kasan_set_track() 52 track->stack = kasan_save_stack(flags, true); in kasan_set_track() 58 current->kasan_depth++; in kasan_enable_current() 64 current->kasan_depth--; in kasan_disable_current() 92 void *base = (void *)((unsigned long)watermark & ~(THREAD_SIZE - 1)); in kasan_unpoison_task_stack_below() 94 kasan_unpoison(base, watermark - base, false); in kasan_unpoison_task_stack_below() 98 bool __kasan_unpoison_pages(struct page *page, unsigned int order, bool init) in __kasan_unpoison_pages() argument 103 if (unlikely(PageHighMem(page))) in __kasan_unpoison_pages() [all …]
|
| /Linux-v6.6/include/drm/ |
| D | drm_vma_manager.h | 84 * drm_vma_offset_exact_lookup_locked() - Look up node by exact address 86 * @start: Start address (page-based, not byte-based) 87 * @pages: Size of object (page-based) 103 return (node && node->vm_node.start == start) ? node : NULL; in drm_vma_offset_exact_lookup_locked() 107 * drm_vma_offset_lock_lookup() - Lock lookup for extended private use 120 * Note: You're in atomic-context while holding this lock! 124 read_lock(&mgr->vm_lock); in drm_vma_offset_lock_lookup() 128 * drm_vma_offset_unlock_lookup() - Unlock lookup for extended private use 131 * Release lookup-lock. See drm_vma_offset_lock_lookup() for more information. 135 read_unlock(&mgr->vm_lock); in drm_vma_offset_unlock_lookup() [all …]
|
| /Linux-v6.6/Documentation/mm/ |
| D | multigen_lru.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 Multi-Gen LRU 6 The multi-gen LRU is an alternative LRU implementation that optimizes 7 page reclaim and improves performance under memory pressure. Page 14 ---------- 20 * Simple self-correcting heuristics 23 implementations. In the multi-gen LRU, each generation represents a 25 (time-based) common frame of reference and therefore help make better 30 accessed bit. A rmap walk targets a single page and does not try to 31 profit from discovering a young PTE. A page table walk can sweep all [all …]
|
| /Linux-v6.6/Documentation/virt/hyperv/ |
| D | clocks.rst | 1 .. SPDX-License-Identifier: GPL-2.0 7 ----- 8 On arm64, Hyper-V virtualizes the ARMv8 architectural system counter 12 architectural system counter is functional in guest VMs on Hyper-V. 13 While Hyper-V also provides a synthetic system clock and four synthetic 14 per-CPU timers as described in the TLFS, they are not used by the 15 Linux kernel in a Hyper-V guest on arm64. However, older versions 16 of Hyper-V for arm64 only partially virtualize the ARMv8 19 Linux kernel versions on these older Hyper-V versions requires an 20 out-of-tree patch to use the Hyper-V synthetic clocks/timers instead. [all …]
|
| /Linux-v6.6/include/xen/arm/ |
| D | page.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 5 #include <asm/page.h> 9 #include <linux/dma-mapping.h> 22 /* Xen pseudo-physical address */ 33 * The pseudo-physical frame (pfn) used in all the helpers is always based 34 * on Xen page granularity (i.e 4KB). 36 * A Linux page may be split across multiple non-contiguous Xen page so we 37 * have to keep track with frame based on 4KB page granularity. 46 /* Pseudo-physical <-> Guest conversion */ 57 /* Pseudo-physical <-> BUS conversion */ [all …]
|
| /Linux-v6.6/drivers/gpu/drm/amd/amdkfd/ |
| D | Kconfig | 1 # SPDX-License-Identifier: MIT 16 bool "Enable HMM-based shared virtual memory manager" 23 memory manager supports two modes of operation. One based on 24 preemptions and one based on page faults. To enable page fault 25 based memory management on most GFXv9 GPUs, set the module 29 bool "HSA kernel driver support for peer-to-peer for AMD GPU devices" 32 Enable peer-to-peer (P2P) communication between AMD GPUs over 33 the PCIe bus. This can improve performance of multi-GPU compute
|
| /Linux-v6.6/include/linux/ |
| D | bvec.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 17 struct page; 20 * struct bio_vec - a contiguous range of physical memory addresses 21 * @bv_page: First page associated with the address range. 32 struct page *bv_page; 38 * bvec_set_page - initialize a bvec based off a struct page 40 * @page: page the bvec should point to 42 * @offset: offset into the page 44 static inline void bvec_set_page(struct bio_vec *bv, struct page *page, in bvec_set_page() argument 47 bv->bv_page = page; in bvec_set_page() [all …]
|
| /Linux-v6.6/Documentation/driver-api/ |
| D | mtdnand.rst | 10 The generic NAND driver supports almost all NAND and AG-AND based chips 31 -------------------------- 37 - [MTD Interface] 43 - [NAND Interface] 48 - [GENERIC] 53 - [DEFAULT] 65 ------------------------------- 71 - [INTERN] 77 - [REPLACEABLE] 86 - [BOARDSPECIFIC] [all …]
|
| /Linux-v6.6/Documentation/admin-guide/mm/ |
| D | numa_memory_policy.rst | 10 supported platforms with Non-Uniform Memory Access architectures since 2.4.?. 16 (``Documentation/admin-guide/cgroup-v1/cpusets.rst``) 19 programming interface that a NUMA-aware application can take advantage of. When 28 ------------------------ 35 that governs all page allocations that aren't controlled by 41 not to overload the initial boot node with boot-time 45 this is an optional, per-task policy. When defined for a 46 specific task, this policy controls all page allocations made 49 all page allocations that would have been controlled by the 61 In a multi-threaded task, task policies apply only to the thread [all …]
|
| /Linux-v6.6/mm/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 33 compress them into a dynamically allocated RAM-based memory pool. 55 If exclusive loads are enabled, when a page is loaded from zswap, 59 This avoids having two copies of the same page in memory 60 (compressed and uncompressed) after faulting in a page from zswap. 61 The cost is that if the page was never dirtied and needs to be 62 swapped out again, it will be re-compressed. 74 available at the following LWN page: 177 page. While this design limits storage density, it has simple and 187 page. It is a ZBUD derivative so the simplicity and determinism are [all …]
|
| D | gup_test.c | 10 static void put_back_pages(unsigned int cmd, struct page **pages, in put_back_pages() 39 static void verify_dma_pinned(unsigned int cmd, struct page **pages, in verify_dma_pinned() 53 "pages[%lu] is NOT dma-pinned\n", i)) { in verify_dma_pinned() 55 dump_page(&folio->page, "gup_test failure"); in verify_dma_pinned() 61 dump_page(&folio->page, "gup_test failure"); in verify_dma_pinned() 69 static void dump_pages_test(struct gup_test *gup, struct page **pages, in dump_pages_test() 76 * Zero out any user-supplied page index that is out of range. Remember: in dump_pages_test() 77 * .which_pages[] contains a 1-based set of page indices. in dump_pages_test() 80 if (gup->which_pages[i] > nr_pages) { in dump_pages_test() 82 i, gup->which_pages[i]); in dump_pages_test() [all …]
|
| /Linux-v6.6/Documentation/mm/damon/ |
| D | design.rst | 1 .. SPDX-License-Identifier: GPL-2.0 13 - Operations Set: Implements fundamental operations for DAMON that depends on 14 the given monitoring target address-space and available set of 16 - Core: Implements core logics including monitoring overhead/accurach control 17 and access-aware system operations on top of the operations set layer, and 18 - Modules: Implements kernel modules for various purposes that provides 23 --------------------------- 45 -------------------- 66 VMA-based Target Address Range Construction 67 ------------------------------------------- [all …]
|
| /Linux-v6.6/arch/arm64/include/asm/ |
| D | page.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Based on arch/arm/include/asm/page.h 5 * Copyright (C) 1995-2003 Russell King 11 #include <asm/page-def.h> 17 #include <asm/pgtable-types.h> 19 struct page; 25 void copy_user_highpage(struct page *to, struct page *from, 29 void copy_highpage(struct page *to, struct page *from); 36 void tag_clear_highpage(struct page *to); 39 #define clear_user_page(page, vaddr, pg) clear_page(page) argument [all …]
|
| /Linux-v6.6/drivers/net/can/ctucanfd/ |
| D | Kconfig | 2 tristate "CTU CAN-FD IP core" if COMPILE_TEST 4 This driver adds support for the CTU CAN FD open-source IP core. 5 More documentation and core sources at project page 8 is available (https://gitlab.fel.cvut.cz/canbus/zynq/zynq-can-sja1000-top). 9 Implementation on Intel FPGA-based PCI Express board is available 10 from project (https://gitlab.fel.cvut.cz/canbus/pcie-ctucanfd) and 11 on Intel SoC from project (https://gitlab.fel.cvut.cz/canbus/intel-soc-ctucanfd). 12 Guidepost CTU FEE CAN bus projects page https://canbus.pages.fel.cvut.cz/ . 15 tristate "CTU CAN-FD IP core PCI/PCIe driver" 19 This driver adds PCI/PCIe support for CTU CAN-FD IP core. [all …]
|
| /Linux-v6.6/drivers/clocksource/ |
| D | hyperv_timer.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * provided by the Hyper-V hypervisor to guest VMs, as described 6 * in the Hyper-V Top Level Functional Spec (TLFS). This driver 26 #include <asm/hyperv-tlfs.h> 35 * mechanism is used when running on older versions of Hyper-V 36 * that don't support Direct Mode. While Hyper-V provides 43 * However, for legacy versions of Hyper-V when Direct Mode 50 static int stimer0_irq = -1; 63 ce->event_handler(ce); in hv_stimer0_isr() 69 * per-cpu interrupts, which also implies Direct Mode. [all …]
|
| /Linux-v6.6/arch/x86/boot/compressed/ |
| D | pgtable_64.c | 1 // SPDX-License-Identifier: GPL-2.0 43 * This code is based on reserve_bios_regions(). in find_trampoline_placement() 50 * Only look for values in the legacy ROM for non-EFI system. in find_trampoline_placement() 52 signature = (char *)&boot_params->efi_info.efi_loader_signature; in find_trampoline_placement() 68 for (i = boot_params->e820_entries - 1; i >= 0; i--) { in find_trampoline_placement() 71 entry = &boot_params->e820_table[i]; in find_trampoline_placement() 74 if (bios_start <= entry->addr) in find_trampoline_placement() 77 /* Skip non-RAM entries. */ in find_trampoline_placement() 78 if (entry->type != E820_TYPE_RAM) in find_trampoline_placement() 82 if (bios_start > entry->addr + entry->size) in find_trampoline_placement() [all …]
|
| /Linux-v6.6/drivers/gpu/drm/ |
| D | drm_vma_manager.c | 1 // SPDX-License-Identifier: GPL-2.0 OR MIT 3 * Copyright (c) 2006-2009 VMware, Inc., Palo Alto, CA., USA 39 * The vma-manager is responsible to map arbitrary driver-dependent memory 40 * regions into the linear user address-space. It provides offsets to the 41 * caller which can then be used on the address_space of the drm-device. It 43 * confuse mm-core by inconsistent fake vm_pgoff fields. 45 * only be used to manage mappings into linear user-space VMs. 48 * optimized for alloc/free calls, not lookups. Hence, we use an rb-tree to 52 * Otherwise, mm-core will be unable to tear down memory mappings as the VM will 55 * This offset manager works on page-based addresses. That is, every argument [all …]
|
| /Linux-v6.6/arch/arm64/mm/ |
| D | copypage.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Based on arch/arm/mm/copypage.c 12 #include <asm/page.h> 17 void copy_highpage(struct page *to, struct page *from) in copy_highpage() 28 /* It's a new page, shouldn't have been tagged yet */ in copy_highpage() 36 void copy_user_highpage(struct page *to, struct page *from, in copy_user_highpage()
|
| /Linux-v6.6/arch/arm/include/asm/ |
| D | hugetlb.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 7 * Based on arch/x86/include/asm/hugetlb.h 14 #include <asm/page.h> 15 #include <asm/hugetlb-3level.h> 16 #include <asm-generic/hugetlb.h> 18 static inline void arch_clear_hugepage_flags(struct page *page) in arch_clear_hugepage_flags() argument 20 clear_bit(PG_dcache_clean, &page->flags); in arch_clear_hugepage_flags()
|
| /Linux-v6.6/drivers/mtd/nand/raw/ |
| D | nand_bbt.c | 1 // SPDX-License-Identifier: GPL-2.0-only 11 * depending on the options in the BBT descriptor(s). If no flash based BBT 16 * If a flash based BBT is specified then the function first tries to find the 18 * based BBT is created. If a mirrored BBT is selected then the mirror is 20 * version number, then the mirror BBT is used to build the memory based BBT. 26 * For manufacturer created BBTs like the one found on M-SYS DOC devices 52 * - bbts start at a page boundary, if autolocated on a block boundary 53 * - the space necessary for a bbt in FLASH does not exceed a block boundary 78 uint8_t entry = chip->bbt[block >> BBT_ENTRY_SHIFT]; in bbt_get_entry() 87 chip->bbt[block >> BBT_ENTRY_SHIFT] |= msk; in bbt_mark_entry() [all …]
|