/linux/include/linux/ |
H A D | page-flags.h | 3 * Macros for manipulating and testing page->flags 18 * Various page->flags bits: 20 * PG_reserved is set for special pages. The "struct page" of such a page 25 * - Pages reserved or allocated early during boot (before the page allocator 27 * initial vmemmap, initial page tables, crashkernel, elfcorehdr, and much 29 * be given to the page allocator. 32 * - The zero page(s) 44 * Consequently, PG_reserved for a page mapped into user space can indicate 45 * the zero page, the vDSO, MMIO pages or device memory. 48 * specific data (which is normally at page->private). It can be used by [all …]
|
H A D | balloon_compaction.h | 7 * Balloon page migration makes use of the general "movable_ops page migration" 10 * page->private is used to reference the responsible balloon device. 12 * is derived from the page type (PageOffline()) combined with the 15 * As the page isolation scanning step a compaction thread does is a lockless 16 * procedure (from a page standpoint), it might bring some racy situations while 17 * performing balloon page compaction. In order to sort out these racy scenarios 18 * and safely perform balloon's page compaction and migration we must, always, 21 * i. Setting the PG_movable_ops flag and page->private with the following 23 * +-page_lock(page); 26 * ii. isolation or dequeueing procedure must remove the page from balloon [all …]
|
H A D | bootmem_info.h | 9 * Types for free bootmem stored in the low bits of page->private. 21 void register_page_bootmem_memmap(unsigned long section_nr, struct page *map, 24 void get_page_bootmem(unsigned long info, struct page *page, 26 void put_page_bootmem(struct page *page); 28 static inline enum bootmem_type bootmem_type(const struct page *page) in bootmem_type() argument 30 return (unsigned long)page->private & 0xf; in bootmem_type() 33 static inline unsigned long bootmem_info(const struct page *page) in bootmem_info() argument 35 return (unsigned long)page->private >> 4; in bootmem_info() 43 static inline void free_bootmem_page(struct page *page) in free_bootmem_page() argument 45 enum bootmem_type type = bootmem_type(page); in free_bootmem_page() [all …]
|
/linux/mm/ |
H A D | balloon_compaction.c | 15 struct page *page) in balloon_page_enqueue_one() argument 18 * Block others from accessing the 'page' when we get around to in balloon_page_enqueue_one() 20 * holding a reference to the 'page' at this point. If we are not, then in balloon_page_enqueue_one() 23 BUG_ON(!trylock_page(page)); in balloon_page_enqueue_one() 24 balloon_page_insert(b_dev_info, page); in balloon_page_enqueue_one() 25 unlock_page(page); in balloon_page_enqueue_one() 27 inc_node_page_state(page, NR_BALLOON_PAGES); in balloon_page_enqueue_one() 31 * balloon_page_list_enqueue() - inserts a list of pages into the balloon page 33 * @b_dev_info: balloon device descriptor where we will insert a new page to 44 struct page *page, *tmp; in balloon_page_list_enqueue() local [all …]
|
H A D | page_isolation.c | 7 #include <linux/page-isolation.h> 28 * Returns a page without holding a reference. If the caller wants to 29 * dereference that page (e.g., dumping), it has to make sure that it 33 static struct page *has_unmovable_pages(unsigned long start_pfn, unsigned long end_pfn, in has_unmovable_pages() 36 struct page *page = pfn_to_page(start_pfn); in has_unmovable_pages() local 37 struct zone *zone = page_zone(page); in has_unmovable_pages() 43 if (is_migrate_cma_page(page)) { in has_unmovable_pages() 52 return page; in has_unmovable_pages() 56 page = pfn_to_page(pfn); in has_unmovable_pages() 64 if (PageReserved(page)) in has_unmovable_pages() [all …]
|
H A D | page_frag_cache.c | 2 /* Page fragment allocator 4 * Page Fragment: 6 * 0 or higher order page. Multiple fragments within that page are 7 * individually refcounted, in the page's reference counter. 9 * The page_frag functions provide a simple allocation framework for page 23 static unsigned long encoded_page_create(struct page *page, unsigned int order, in encoded_page_create() argument 29 return (unsigned long)page_address(page) | in encoded_page_create() 44 static struct page *encoded_page_decode_page(unsigned long encoded_page) in encoded_page_decode_page() 49 static struct page *__page_frag_cache_refill(struct page_frag_cache *nc, in __page_frag_cache_refill() 53 struct page *page = NULL; in __page_frag_cache_refill() local [all …]
|
H A D | folio-compat.c | 13 void unlock_page(struct page *page) in unlock_page() argument 15 return folio_unlock(page_folio(page)); in unlock_page() 19 void end_page_writeback(struct page *page) in end_page_writeback() argument 21 return folio_end_writeback(page_folio(page)); in end_page_writeback() 25 void wait_on_page_writeback(struct page *page) in wait_on_page_writeback() argument 27 return folio_wait_writeback(page_folio(page)); in wait_on_page_writeback() 31 void mark_page_accessed(struct page *page) in mark_page_accessed() argument 33 folio_mark_accessed(page_folio(page)); in mark_page_accessed() 37 void set_page_writeback(struct page *page) in set_page_writeback() argument 39 folio_start_writeback(page_folio(page)); in set_page_writeback() [all …]
|
/linux/include/net/page_pool/ |
H A D | helpers.h | 11 * The page_pool allocator is optimized for recycling page or page fragment used 15 * which allocate memory with or without page splitting depending on the 19 * always smaller than half a page, it can use one of the more specific API 22 * 1. page_pool_alloc_pages(): allocate memory without page splitting when 23 * driver knows that the memory it need is always bigger than half of the page 24 * allocated from page pool. There is no cache line dirtying for 'struct page' 25 * when a page is recycled back to the page pool. 27 * 2. page_pool_alloc_frag(): allocate memory with page splitting when driver 29 * page allocated from page pool. Page splitting enables memory saving and thus 31 * implement page splitting, mainly some cache line dirtying/bouncing for [all …]
|
/linux/tools/perf/pmu-events/arch/x86/elkhartlake/ |
H A D | virtual-memory.json | 3 …"BriefDescription": "Counts the number of page walks due to loads that miss the PDE (Page Director… 11 … second level hits due to a demand load that did not start a page walk. Account for all page sizes… 19 …"BriefDescription": "Counts the number of page walks completed due to load DTLB misses to any page… 23 …page walks completed due to loads (including SW prefetches) whose address translations missed in a… 28 …"BriefDescription": "Counts the number of page walks completed due to load DTLB misses to a 1G pag… 32 …page walks completed due to loads (including SW prefetches) whose address translations missed in a… 37 …"BriefDescription": "Counts the number of page walks completed due to load DTLB misses to a 2M or … 41 …page walks completed due to loads (including SW prefetches) whose address translations missed in a… 46 …"BriefDescription": "Counts the number of page walks completed due to load DTLB misses to a 4K pag… 50 …page walks completed due to loads (including SW prefetches) whose address translations missed in a… [all …]
|
/linux/tools/perf/pmu-events/arch/x86/snowridgex/ |
H A D | virtual-memory.json | 3 …"BriefDescription": "Counts the number of page walks due to loads that miss the PDE (Page Director… 11 … second level hits due to a demand load that did not start a page walk. Account for all page sizes… 19 …"BriefDescription": "Counts the number of page walks completed due to load DTLB misses to any page… 23 …page walks completed due to loads (including SW prefetches) whose address translations missed in a… 28 …"BriefDescription": "Counts the number of page walks completed due to load DTLB misses to a 1G pag… 32 …page walks completed due to loads (including SW prefetches) whose address translations missed in a… 37 …"BriefDescription": "Counts the number of page walks completed due to load DTLB misses to a 2M or … 41 …page walks completed due to loads (including SW prefetches) whose address translations missed in a… 46 …"BriefDescription": "Counts the number of page walks completed due to load DTLB misses to a 4K pag… 50 …page walks completed due to loads (including SW prefetches) whose address translations missed in a… [all …]
|
/linux/tools/perf/pmu-events/arch/x86/arrowlake/ |
H A D | virtual-memory.json | 3 …"BriefDescription": "Counts the number of page walks initiated by a demand load that missed the fi… 12 …second level hits due to a demand load that did not start a page walk. Accounts for all page sizes… 31 …second level hits due to a demand load that did not start a page walk. Accounts for all page sizes… 40 … "BriefDescription": "Cycles when at least one PMH is busy with a page walk for a demand load.", 45 …ublicDescription": "Counts cycles when at least one PMH (Page Miss Handler) is busy with a page wa… 51 …"BriefDescription": "Load miss in all TLB levels causes a page walk that completes. (All page size… 55 …s completed page walks (all page sizes) caused by demand data loads. This implies it missed in th… 61 "BriefDescription": "Counts the number of page walks completed due to load DTLB misses.", 70 "BriefDescription": "Page walks completed due to a demand data load to a 1G page.", 74 …leted page walks (1G sizes) caused by demand data loads. This implies address translations missed… [all …]
|
/linux/tools/perf/pmu-events/arch/x86/meteorlake/ |
H A D | virtual-memory.json | 3 …second level hits due to a demand load that did not start a page walk. Accounts for all page sizes… 22 … "BriefDescription": "Cycles when at least one PMH is busy with a page walk for a demand load.", 27 …ublicDescription": "Counts cycles when at least one PMH (Page Miss Handler) is busy with a page wa… 33 "BriefDescription": "Counts the number of page walks completed due to load DTLB misses.", 42 …"BriefDescription": "Load miss in all TLB levels causes a page walk that completes. (All page size… 46 …s completed page walks (all page sizes) caused by demand data loads. This implies it missed in th… 52 "BriefDescription": "Page walks completed due to a demand data load to a 1G page.", 56 …leted page walks (1G sizes) caused by demand data loads. This implies address translations missed… 62 …"BriefDescription": "Counts the number of page walks completed due to load DTLB misses to a 2M or … 66 …page walks completed due to loads (including SW prefetches) whose address translations missed in a… [all …]
|
/linux/tools/mm/ |
H A D | show_page_info.py | 16 This is a drgn script to show the page state. 20 def format_page_data(page): argument 22 Format raw page data into a readable hex dump with "RAW:" prefix. 24 :param page: drgn.Object instance representing the page. 28 address = page.value_() 29 size = prog.type("struct page").size 52 def get_memcg_info(page): argument 53 """Retrieve memory cgroup information for a page.""" 58 memcg_data = page.memcg_data.read_() 77 def show_page_state(page, addr, mm, pid, task): argument [all …]
|
/linux/tools/perf/pmu-events/arch/x86/skylake/ |
H A D | virtual-memory.json | 3 "BriefDescription": "Load misses in all DTLB levels that cause page walks", 7 …"PublicDescription": "Counts demand data loads that caused a page walk of any page size (4K/2M/4M/… 21 …efDescription": "Cycles when at least one PMH is busy with a page walk for a load. EPT page walk d… 26 …ublicDescription": "Counts cycles when at least one PMH (Page Miss Handler) is busy with a page wa… 31 …"BriefDescription": "Load miss in all TLB levels causes a page walk that completes. (All page size… 35 …s completed page walks (all page sizes) caused by demand data loads. This implies it missed in th… 40 "BriefDescription": "Page walk completed due to a demand data load to a 1G page", 44 …leted page walks (1G sizes) caused by demand data loads. This implies address translations missed… 49 "BriefDescription": "Page walk completed due to a demand data load to a 2M/4M page", 53 …eted page walks (2M/4M sizes) caused by demand data loads. This implies address translations miss… [all …]
|
/linux/tools/perf/pmu-events/arch/x86/skylakex/ |
H A D | virtual-memory.json | 3 "BriefDescription": "Load misses in all DTLB levels that cause page walks", 7 …"PublicDescription": "Counts demand data loads that caused a page walk of any page size (4K/2M/4M/… 21 …efDescription": "Cycles when at least one PMH is busy with a page walk for a load. EPT page walk d… 26 …ublicDescription": "Counts cycles when at least one PMH (Page Miss Handler) is busy with a page wa… 31 …"BriefDescription": "Load miss in all TLB levels causes a page walk that completes. (All page size… 35 …s completed page walks (all page sizes) caused by demand data loads. This implies it missed in th… 40 "BriefDescription": "Page walk completed due to a demand data load to a 1G page", 44 …leted page walks (1G sizes) caused by demand data loads. This implies address translations missed… 49 "BriefDescription": "Page walk completed due to a demand data load to a 2M/4M page", 53 …eted page walks (2M/4M sizes) caused by demand data loads. This implies address translations miss… [all …]
|
/linux/tools/perf/pmu-events/arch/x86/cascadelakex/ |
H A D | virtual-memory.json | 3 "BriefDescription": "Load misses in all DTLB levels that cause page walks", 7 …"PublicDescription": "Counts demand data loads that caused a page walk of any page size (4K/2M/4M/… 21 …efDescription": "Cycles when at least one PMH is busy with a page walk for a load. EPT page walk d… 26 …ublicDescription": "Counts cycles when at least one PMH (Page Miss Handler) is busy with a page wa… 31 …"BriefDescription": "Load miss in all TLB levels causes a page walk that completes. (All page size… 35 …s completed page walks (all page sizes) caused by demand data loads. This implies it missed in th… 40 "BriefDescription": "Page walk completed due to a demand data load to a 1G page", 44 …leted page walks (1G sizes) caused by demand data loads. This implies address translations missed… 49 "BriefDescription": "Page walk completed due to a demand data load to a 2M/4M page", 53 …eted page walks (2M/4M sizes) caused by demand data loads. This implies address translations miss… [all …]
|
/linux/tools/perf/pmu-events/arch/x86/tigerlake/ |
H A D | virtual-memory.json | 12 … "BriefDescription": "Cycles when at least one PMH is busy with a page walk for a demand load.", 17 …ublicDescription": "Counts cycles when at least one PMH (Page Miss Handler) is busy with a page wa… 22 …"BriefDescription": "Load miss in all TLB levels causes a page walk that completes. (All page size… 26 …s completed page walks (all page sizes) caused by demand data loads. This implies it missed in th… 31 "BriefDescription": "Page walks completed due to a demand data load to a 1G page.", 35 …leted page walks (1G sizes) caused by demand data loads. This implies address translations missed… 40 "BriefDescription": "Page walks completed due to a demand data load to a 2M/4M page.", 44 …eted page walks (2M/4M sizes) caused by demand data loads. This implies address translations miss… 49 "BriefDescription": "Page walks completed due to a demand data load to a 4K page.", 53 …leted page walks (4K sizes) caused by demand data loads. This implies address translations missed… [all …]
|
/linux/tools/perf/pmu-events/arch/x86/lunarlake/ |
H A D | virtual-memory.json | 3 …"BriefDescription": "Counts the number of page walks initiated by a demand load that missed the fi… 21 …second level hits due to a demand load that did not start a page walk. Accounts for all page sizes… 40 … "BriefDescription": "Cycles when at least one PMH is busy with a page walk for a demand load.", 45 …ublicDescription": "Counts cycles when at least one PMH (Page Miss Handler) is busy with a page wa… 51 …"BriefDescription": "Counts the number of page walks completed due to load DTLB misses to any page… 55 …page walks completed due to loads (including SW prefetches) whose address translations missed in a… 61 …"BriefDescription": "Load miss in all TLB levels causes a page walk that completes. (All page size… 65 …s completed page walks (all page sizes) caused by demand data loads. This implies it missed in th… 71 "BriefDescription": "Page walks completed due to a demand data load to a 1G page.", 75 …leted page walks (1G sizes) caused by demand data loads. This implies address translations missed… [all …]
|
/linux/tools/perf/pmu-events/arch/x86/alderlake/ |
H A D | virtual-memory.json | 13 … "BriefDescription": "Cycles when at least one PMH is busy with a page walk for a demand load.", 18 …ublicDescription": "Counts cycles when at least one PMH (Page Miss Handler) is busy with a page wa… 24 …"BriefDescription": "Counts the number of page walks completed due to load DTLB misses to any page… 28 …page walks completed due to loads (including SW prefetches) whose address translations missed in a… 34 …"BriefDescription": "Load miss in all TLB levels causes a page walk that completes. (All page size… 38 …s completed page walks (all page sizes) caused by demand data loads. This implies it missed in th… 44 "BriefDescription": "Page walks completed due to a demand data load to a 1G page.", 48 …leted page walks (1G sizes) caused by demand data loads. This implies address translations missed… 54 "BriefDescription": "Page walks completed due to a demand data load to a 2M/4M page.", 58 …eted page walks (2M/4M sizes) caused by demand data loads. This implies address translations miss… [all …]
|
/linux/Documentation/trace/ |
H A D | ring-buffer-design.rst | 40 - A page outside the ring buffer used solely (for the most part) 44 - a pointer to the page that the reader will use next 47 - a pointer to the page that will be written to next 50 - a pointer to the page with the last finished non-nested write. 110 At initialization a reader page is allocated for the reader that is not 114 to the same page. 116 The reader page is initialized to have its next pointer pointing to 117 the head page, and its previous pointer pointing to a page before 118 the head page. 120 The reader has its own page to use. At start up time, this page is [all …]
|
/linux/Documentation/mm/ |
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 52 Page migration allows the preservation of the relative location of pages 58 Page migration occurs in several steps. First a high level [all …]
|
/linux/include/trace/events/ |
H A D | page_ref.h | 15 TP_PROTO(struct page *page, int v), 17 TP_ARGS(page, v), 30 __entry->pfn = page_to_pfn(page); 31 __entry->flags = page->flags; 32 __entry->count = page_ref_count(page); 33 __entry->mapcount = atomic_read(&page->_mapcount); 34 __entry->mapping = page->mapping; 35 __entry->mt = get_pageblock_migratetype(page); 49 TP_PROTO(struct page *page, int v), 51 TP_ARGS(page, v) [all …]
|
/linux/tools/perf/pmu-events/arch/x86/goldmontplus/ |
H A D | virtual-memory.json | 3 "BriefDescription": "Page walk completed due to a demand load to a 1GB page", 7 …page walks completed due to demand data loads (including SW prefetches) whose address translations… 12 "BriefDescription": "Page walk completed due to a demand load to a 2M or 4M page", 16 …page walks completed due to demand data loads (including SW prefetches) whose address translations… 21 "BriefDescription": "Page walk completed due to a demand load to a 4K page", 25 …page walks completed due to demand data loads (including SW prefetches) whose address translations… 30 "BriefDescription": "Page walks outstanding due to a demand load every cycle.", 34 …cycle for each page walk occurring due to a load (demand data loads or SW prefetches). Includes cy… 39 "BriefDescription": "Page walk completed due to a demand data store to a 1GB page", 43 …page walks completed due to demand data stores whose address translations missed in the TLB and we… [all …]
|
/linux/tools/perf/pmu-events/arch/x86/sapphirerapids/ |
H A D | virtual-memory.json | 12 … "BriefDescription": "Cycles when at least one PMH is busy with a page walk for a demand load.", 17 …ublicDescription": "Counts cycles when at least one PMH (Page Miss Handler) is busy with a page wa… 22 …"BriefDescription": "Load miss in all TLB levels causes a page walk that completes. (All page size… 26 …s completed page walks (all page sizes) caused by demand data loads. This implies it missed in th… 31 "BriefDescription": "Page walks completed due to a demand data load to a 1G page.", 35 …leted page walks (1G sizes) caused by demand data loads. This implies address translations missed… 40 "BriefDescription": "Page walks completed due to a demand data load to a 2M/4M page.", 44 …eted page walks (2M/4M sizes) caused by demand data loads. This implies address translations miss… 49 "BriefDescription": "Page walks completed due to a demand data load to a 4K page.", 53 …leted page walks (4K sizes) caused by demand data loads. This implies address translations missed… [all …]
|
/linux/tools/perf/pmu-events/arch/x86/icelake/ |
H A D | virtual-memory.json | 12 … "BriefDescription": "Cycles when at least one PMH is busy with a page walk for a demand load.", 17 …ublicDescription": "Counts cycles when at least one PMH (Page Miss Handler) is busy with a page wa… 22 …"BriefDescription": "Load miss in all TLB levels causes a page walk that completes. (All page size… 26 …s completed page walks (all page sizes) caused by demand data loads. This implies it missed in th… 31 "BriefDescription": "Page walks completed due to a demand data load to a 1G page.", 35 …leted page walks (1G sizes) caused by demand data loads. This implies address translations missed… 40 "BriefDescription": "Page walks completed due to a demand data load to a 2M/4M page.", 44 …eted page walks (2M/4M sizes) caused by demand data loads. This implies address translations miss… 49 "BriefDescription": "Page walks completed due to a demand data load to a 4K page.", 53 …leted page walks (4K sizes) caused by demand data loads. This implies address translations missed… [all …]
|