| /linux/include/drm/ |
| H A 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/Documentation/mm/ |
| H A 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 …]
|
| H A D | page_migration.rst | 2 Page migration 5 Page migration allows moving the physical location of pages between 13 The main intent of page migration is to reduce the latency of memory accesses 17 Page migration allows a process to manually relocate the node on which its 23 Page migration functions are provided by the numactl package by Andi Kleen 26 which provides an interface similar to other NUMA functionality for page 29 proc(5) man page. 35 manual page migration support. Automatic page migration may be implemented 38 For example, A NUMA profiler may obtain a log showing frequent off-node 52 Page migration allows the preservation of the relative location of pages [all …]
|
| /linux/tools/perf/pmu-events/arch/common/common/ |
| H A D | software.json | 4 "EventName": "cpu-clock", 5 "BriefDescription": "Per-CPU high-resolution timer based event", 7 "ScaleUnit": "1e-6msec" 11 "EventName": "task-clock", 12 "BriefDescription": "Per-task high-resolution timer based event", 14 "ScaleUnit": "1e-6msec" 19 "BriefDescription": "Number of page faults [This event is an alias of page-faults]", 24 "EventName": "page-faults", 25 "BriefDescription": "Number of page faults [This event is an alias of faults]", 30 "EventName": "context-switches", [all …]
|
| /linux/Documentation/driver-api/ |
| H A 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/include/xen/arm/ |
| H A 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/mm/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 30 compress them into a dynamically allocated RAM-based memory pool. 69 available at the following LWN page: 143 int "Maximum number of physical pages per-zspage" 148 that a zmalloc page (zspage) can consist of. The optimal zspage 223 specifically-sized allocations with user-controlled contents 227 user-controlled allocations. This may very slightly increase 229 of extra pages since the bulk of user-controlled allocations 230 are relatively long-lived. 245 Try running: slabinfo -DA [all …]
|
| H A D | gup_test.c | 1 // SPDX-License-Identifier: GPL-2.0 13 struct page **longterm_pages; 17 static void put_back_pages(unsigned int cmd, struct page **pages, in put_back_pages() 46 static void verify_dma_pinned(unsigned int cmd, struct page **pages, in verify_dma_pinned() 60 "pages[%lu] is NOT dma-pinned\n", i)) { in verify_dma_pinned() 62 dump_page(&folio->page, "gup_test failure"); in verify_dma_pinned() 68 dump_page(&folio->page, "gup_test failure"); in verify_dma_pinned() 76 static void dump_pages_test(struct gup_test *gup, struct page **pages, in dump_pages_test() 83 * Zero out any user-supplied page index that is out of range. Remember: in dump_pages_test() 84 * .which_pages[] contains a 1-based set of page indices. in dump_pages_test() [all …]
|
| /linux/include/linux/ |
| H A 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. 29 struct page *bv_page; 35 * bvec_set_page - initialize a bvec based off a struct page 37 * @page: page the bvec should point to 39 * @offset: offset into the page 41 static inline void bvec_set_page(struct bio_vec *bv, struct page *page, in bvec_set_page() argument 44 bv->bv_page = page; in bvec_set_page() [all …]
|
| /linux/drivers/clocksource/ |
| H A 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 34 static int stimer0_irq = -1; 42 ce->event_handler(ce); in hv_stimer0_isr() 47 * per-cpu interrupts 98 * hv_stimer_init - Per-cpu initialization of the clockevent 108 ce->name = "Hyper-V clockevent"; in hv_stimer_init() 109 ce->features = CLOCK_EVT_FEAT_ONESHOT; in hv_stimer_init() 110 ce->cpumask = cpumask_of(cpu); in hv_stimer_init() [all …]
|
| /linux/arch/loongarch/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 227 bool "32-bit kernel" 229 Select this option if you want to build a 32-bit kernel. 232 bool "64-bit kernel" 234 Select this option if you want to build a 64-bit kernel. 241 prompt "32-bit kernel sub-type" 244 bool "32-bit kernel for LA32R" 246 Select this option if you want to build a 32-bit kernel for 250 bool "32-bit kernel for LA32S" 252 Select this option if you want to build a 32-bit kernel for [all …]
|
| /linux/drivers/net/can/ctucanfd/ |
| H A 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/arch/arm64/include/asm/ |
| H A 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 bool tag_clear_highpages(struct page *to, int numpages, bool clear_pages); 41 typedef struct page *pgtable_t; [all …]
|
| /linux/drivers/gpu/drm/ |
| H A 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 40 * The vma-manager is responsible to map arbitrary driver-dependent memory 41 * regions into the linear user address-space. It provides offsets to the 42 * caller which can then be used on the address_space of the drm-device. It 44 * confuse mm-core by inconsistent fake vm_pgoff fields. 46 * only be used to manage mappings into linear user-space VMs. 49 * optimized for alloc/free calls, not lookups. Hence, we use an rb-tree to 53 * Otherwise, mm-core will be unable to tear down memory mappings as the VM will 56 * This offset manager works on page-based addresses. That is, every argument [all …]
|
| /linux/Documentation/driver-api/cxl/allocation/ |
| H A D | reclaim.rst | 1 .. SPDX-License-Identifier: GPL-2.0 8 becomes pressured based on global and cgroup-local `watermark` settings. 21 next demotion node. The next demotion node is based on the :code:`HMAT` 25 -------------------------- 32 originally instantiated by another cgroup (such as common libraries - e.g. 40 are typically cold, the result is a cold page becomes promoted - only to 43 In Linux v6.XX, ZSwap tries to prefer the node of the page being compressed 44 as the allocation target for the compression page. This helps prevent
|
| H A D | page-allocator.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 The Page Allocator 7 The kernel page allocator services all general page allocation requests, such 8 as :code:`kmalloc`. CXL configuration steps affect the behavior of the page 9 allocator based on the selected `Memory Zone` and `NUMA node` the capacity is 12 This section mostly focuses on how these configurations affect the page 13 allocator (as of Linux v6.15) rather than the overall page allocator behavior. 22 with the CXL memory being non-local. Technically, however, it is possible 31 As of v6.15, the page allocator attempts to allocate from the highest 39 To simplify this, the page allocator will prefer :code:`ZONE_MOVABLE` over [all …]
|
| /linux/drivers/mtd/nand/raw/ |
| H A 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 …]
|
| /linux/drivers/gpu/drm/msm/ |
| H A D | msm_iommu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 7 #include <linux/adreno-smmu-priv.h> 8 #include <linux/io-pgtable.h> 12 #include <asm/dma-iommu.h> 29 struct page *prr_page; 42 unsigned long pgsize_bitmap; /* Bitmap of page sizes in use */ 46 /** @root_page_table: Stores the root page table pointer. */ 54 /* based on iommu_pgsize() in iommu.c: */ 64 /* Page sizes supported by the hardware and small enough for @size */ in calc_pgsize() 65 pgsizes = pagetable->pgsize_bitmap & GENMASK(__fls(size), 0); in calc_pgsize() [all …]
|
| /linux/Documentation/arch/x86/ |
| H A D | intel_txt.rst | 6 Technology (Intel(R) TXT), defines platform-level enhancements that 13 - Provides dynamic root of trust for measurement (DRTM) 14 - Data protection in case of improper shutdown 15 - Measurement and verification of launched environment 18 non-vPro systems. It is currently available on desktop systems 19 based on the Q35, X38, Q45, and Q43 Express chipsets (e.g. Dell 20 Optiplex 755, HP dc7800, etc.) and mobile systems based on the GM45, 30 - LinuxTAG 2008: 31 http://www.linuxtag.org/2008/en/conf/events/vp-donnerstag.html 33 - TRUST2008: [all …]
|
| /linux/drivers/staging/fbtft/ |
| H A D | fb_sh1106.c | 1 // SPDX-License-Identifier: GPL-2.0+ 4 * Based on the SSD1306 driver by Noralf Tronnes 20 /* Init sequence based on the Adafruit SSD1306 Arduino library */ 23 if (!par->info->var.xres || par->info->var.xres > WIDTH || in init_display() 24 !par->info->var.yres || par->info->var.yres > HEIGHT || in init_display() 25 par->info->var.yres % 8) { in init_display() 26 dev_err(par->info->device, "Invalid screen size\n"); in init_display() 27 return -EINVAL; in init_display() 30 if (par->info->var.rotate) { in init_display() 31 dev_err(par->info->device, "Display rotation not supported\n"); in init_display() [all …]
|
| /linux/arch/arm64/mm/ |
| H A 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() 43 * Don't assume the first page is head page since in copy_highpage() 44 * huge page copy may start from any subpage. in copy_highpage() 55 * Most of the time it's a new page that shouldn't have been in copy_highpage() 57 * same page without untagging it. Ignore the warning if the in copy_highpage() 58 * page is already tagged. in copy_highpage() 68 void copy_user_highpage(struct page *to, struct page *from, in copy_user_highpage()
|
| /linux/virt/kvm/ |
| H A D | pfncache.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Kernel-based Virtual Machine driver for Linux 5 * This module enables kernel and guest-mode vCPU access to guest physical 30 spin_lock(&kvm->gpc_lock); in gfn_to_pfn_cache_invalidate_start() 31 list_for_each_entry(gpc, &kvm->gpc_list, list) { in gfn_to_pfn_cache_invalidate_start() 32 read_lock_irq(&gpc->loc in gfn_to_pfn_cache_invalidate_start() [all...] |
| /linux/include/linux/mtd/ |
| H A D | bbm.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 4 * - Bad Block Table (BBT) implementation 9 * Copyright © 2000-2005 19 * struct nand_bbt_descr - bad block table descriptor 21 * @pages: the page(s) where we find the bbt, used with option BBT_ABSPAGE 24 * @offs: offset of the pattern in the oob area of the page 25 * @veroffs: offset of the bbt version counter in the oob are of the page 26 * @version: version read from the bbt page during scan 31 * @reserved_block_code: if non-0, this pattern denotes a reserved (rather than 63 /* The bbt is at the given page, else we must scan for the bbt */ [all …]
|
| /linux/mm/kasan/ |
| H A D | shadow.c | 1 // SPDX-License-Identifier: GPL-2.0 4 * generic and software tag-based KASAN modes. 9 * Some code borrowed from https://github.com/xairy/kasan-prototype by 48 * these, so that non-instrumented files can safely consider them as builtins. 132 * Perform shadow offset calculation based on untagged address, as in kasan_poison() 146 __memset(shadow_start, value, shadow_end - shadow_start); in kasan_poison() 168 * Perform shadow offset calculation based on untagged address, as in kasan_unpoison() 220 nr_shadow_pages = mem_data->nr_pages >> KASAN_SHADOW_SCALE_SHIFT; in kasan_mem_notifier() 221 start_kaddr = (unsigned long)pfn_to_kaddr(mem_data->start_pfn); in kasan_mem_notifier() 226 if (WARN_ON(mem_data->nr_pages % KASAN_GRANULE_SIZE) || in kasan_mem_notifier() [all …]
|
| /linux/arch/x86/mm/ |
| H A D | kaslr.c | 1 // SPDX-License-Identifier: GPL-2.0 10 * done on PGD & P4D/PUD page table levels to increase possible addresses. 14 * An additional low memory page is used to ensure each CPU can start with 18 * the available space for the regions based on different configuration 45 * earlier during boot). The list is ordered based on virtual addresses. This 67 * kernel. This starts out at (1<<MAX_PHYSMEM_BITS) - 1), but KASLR may reduce 75 return (region->size_tb << TB_SHIFT); in get_padding() 101 direct_map_physmem_end = ((1ULL << MAX_PHYSMEM_BITS) - 1); in kernel_randomize_memory() 105 kaslr_regions[0].size_tb = 1 << (MAX_PHYSMEM_BITS - TB_SHIFT); in kernel_randomize_memory() 117 * Adapt physical memory region size based on available memory, in kernel_randomize_memory() [all …]
|