linux-5.15/pglist_data
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#xbecd046]
#backlinks
*説明 [#m2f6e5b5]
-パス: [[linux-5.15/include/linux/mmzone.h]]
-FIXME: これは何?
--説明
**参考 [#lc260a8f]
*実装 [#pc68d0ab]
/*
* On NUMA machines, each NUMA node would have a pg_data...
* it's memory layout. On UMA machines there is a single...
* describes the whole memory.
*
* Memory statistics and page replacement data structure...
* per-zone basis.
*/
typedef struct pglist_data {
/*
* node_zones contains just the zones for THIS node. No...
* zones may be populated, but it is the full list. It ...
* this node's node_zonelists as well as other node's n...
*/
struct zone node_zones[MAX_NR_ZONES];
-
--[[linux-5.15/zone]]
/*
* node_zonelists contains references to all zones in a...
* Generally the first zones will be references to this...
* node_zones.
*/
struct zonelist node_zonelists[MAX_ZONELISTS];
-
--[[linux-5.15/zonelist]]
int nr_zones; /* number of populated zones in this node...
#ifdef CONFIG_FLATMEM /* means !SPARSEMEM */
struct page *node_mem_map;
#ifdef CONFIG_PAGE_EXTENSION
struct page_ext *node_page_ext;
#endif
#endif
-
--[[linux-5.15/page]]
--[[linux-5.15/page_ext]]
#if defined(CONFIG_MEMORY_HOTPLUG) || defined(CONFIG_DEF...
/*
* Must be held any time you expect node_start_pfn,
* node_present_pages, node_spanned_pages or nr_zones t...
* Also synchronizes pgdat->first_deferred_pfn during d...
* init.
*
* pgdat_resize_lock() and pgdat_resize_unlock() are pr...
* manipulate node_size_lock without checking for CONFI...
* or CONFIG_DEFERRED_STRUCT_PAGE_INIT.
*
* Nests above zone->lock and zone->span_seqlock
*/
spinlock_t node_size_lock;
#endif
-
--[[linux-5.15/spinlock_t]]
unsigned long node_start_pfn;
unsigned long node_present_pages; /* total number of ph...
unsigned long node_spanned_pages; /* total size of phys...
range, including holes */
int node_id;
wait_queue_head_t kswapd_wait;
wait_queue_head_t pfmemalloc_wait;
struct task_struct *kswapd; /* Protected by
mem_hotplug_begin/end() */
int kswapd_order;
enum zone_type kswapd_highest_zoneidx;
-
--[[linux-5.15/wait_queue_head_t]]
--[[linux-5.15/task_struct]]
--[[linux-5.15/zone_type]]
int kswapd_failures; /* Number of 'reclaimed == 0' run...
#ifdef CONFIG_COMPACTION
int kcompactd_max_order;
enum zone_type kcompactd_highest_zoneidx;
wait_queue_head_t kcompactd_wait;
struct task_struct *kcompactd;
bool proactive_compact_trigger;
#endif
/*
* This is a per-node reserve of pages that are not ava...
* to userspace allocations.
*/
unsigned long totalreserve_pages;
#ifdef CONFIG_NUMA
/*
* node reclaim becomes active if more unmapped pages e...
*/
unsigned long min_unmapped_pages;
unsigned long min_slab_pages;
#endif /* CONFIG_NUMA */
/* Write-intensive fields used by page reclaim */
ZONE_PADDING(_pad1_)
-
--[[linux-5.15/ZONE_PADDING()]]
#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
/*
* If memory initialisation on large machines is deferr...
* is the first PFN that needs to be initialised.
*/
unsigned long first_deferred_pfn;
#endif /* CONFIG_DEFERRED_STRUCT_PAGE_INIT */
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
struct deferred_split deferred_split_queue;
#endif
-
--[[linux-5.15/deferred_split]]
/* Fields commonly accessed by the page reclaim scanner...
/*
* NOTE: THIS IS UNUSED IF MEMCG IS ENABLED.
*
* Use mem_cgroup_lruvec() to look up lruvecs.
*/
struct lruvec __lruvec;
unsigned long flags;
ZONE_PADDING(_pad2_)
-
--[[linux-5.15/lruvec]]
/* Per-node vmstats */
struct per_cpu_nodestat __percpu *per_cpu_nodestats;
atomic_long_t vm_stat[NR_VM_NODE_STAT_ITEMS];
} pg_data_t;
-
--[[linux-5.15/per_cpu_nodestat]]
*コメント [#pc3ca19e]
終了行:
*参照元 [#xbecd046]
#backlinks
*説明 [#m2f6e5b5]
-パス: [[linux-5.15/include/linux/mmzone.h]]
-FIXME: これは何?
--説明
**参考 [#lc260a8f]
*実装 [#pc68d0ab]
/*
* On NUMA machines, each NUMA node would have a pg_data...
* it's memory layout. On UMA machines there is a single...
* describes the whole memory.
*
* Memory statistics and page replacement data structure...
* per-zone basis.
*/
typedef struct pglist_data {
/*
* node_zones contains just the zones for THIS node. No...
* zones may be populated, but it is the full list. It ...
* this node's node_zonelists as well as other node's n...
*/
struct zone node_zones[MAX_NR_ZONES];
-
--[[linux-5.15/zone]]
/*
* node_zonelists contains references to all zones in a...
* Generally the first zones will be references to this...
* node_zones.
*/
struct zonelist node_zonelists[MAX_ZONELISTS];
-
--[[linux-5.15/zonelist]]
int nr_zones; /* number of populated zones in this node...
#ifdef CONFIG_FLATMEM /* means !SPARSEMEM */
struct page *node_mem_map;
#ifdef CONFIG_PAGE_EXTENSION
struct page_ext *node_page_ext;
#endif
#endif
-
--[[linux-5.15/page]]
--[[linux-5.15/page_ext]]
#if defined(CONFIG_MEMORY_HOTPLUG) || defined(CONFIG_DEF...
/*
* Must be held any time you expect node_start_pfn,
* node_present_pages, node_spanned_pages or nr_zones t...
* Also synchronizes pgdat->first_deferred_pfn during d...
* init.
*
* pgdat_resize_lock() and pgdat_resize_unlock() are pr...
* manipulate node_size_lock without checking for CONFI...
* or CONFIG_DEFERRED_STRUCT_PAGE_INIT.
*
* Nests above zone->lock and zone->span_seqlock
*/
spinlock_t node_size_lock;
#endif
-
--[[linux-5.15/spinlock_t]]
unsigned long node_start_pfn;
unsigned long node_present_pages; /* total number of ph...
unsigned long node_spanned_pages; /* total size of phys...
range, including holes */
int node_id;
wait_queue_head_t kswapd_wait;
wait_queue_head_t pfmemalloc_wait;
struct task_struct *kswapd; /* Protected by
mem_hotplug_begin/end() */
int kswapd_order;
enum zone_type kswapd_highest_zoneidx;
-
--[[linux-5.15/wait_queue_head_t]]
--[[linux-5.15/task_struct]]
--[[linux-5.15/zone_type]]
int kswapd_failures; /* Number of 'reclaimed == 0' run...
#ifdef CONFIG_COMPACTION
int kcompactd_max_order;
enum zone_type kcompactd_highest_zoneidx;
wait_queue_head_t kcompactd_wait;
struct task_struct *kcompactd;
bool proactive_compact_trigger;
#endif
/*
* This is a per-node reserve of pages that are not ava...
* to userspace allocations.
*/
unsigned long totalreserve_pages;
#ifdef CONFIG_NUMA
/*
* node reclaim becomes active if more unmapped pages e...
*/
unsigned long min_unmapped_pages;
unsigned long min_slab_pages;
#endif /* CONFIG_NUMA */
/* Write-intensive fields used by page reclaim */
ZONE_PADDING(_pad1_)
-
--[[linux-5.15/ZONE_PADDING()]]
#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
/*
* If memory initialisation on large machines is deferr...
* is the first PFN that needs to be initialised.
*/
unsigned long first_deferred_pfn;
#endif /* CONFIG_DEFERRED_STRUCT_PAGE_INIT */
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
struct deferred_split deferred_split_queue;
#endif
-
--[[linux-5.15/deferred_split]]
/* Fields commonly accessed by the page reclaim scanner...
/*
* NOTE: THIS IS UNUSED IF MEMCG IS ENABLED.
*
* Use mem_cgroup_lruvec() to look up lruvecs.
*/
struct lruvec __lruvec;
unsigned long flags;
ZONE_PADDING(_pad2_)
-
--[[linux-5.15/lruvec]]
/* Per-node vmstats */
struct per_cpu_nodestat __percpu *per_cpu_nodestats;
atomic_long_t vm_stat[NR_VM_NODE_STAT_ITEMS];
} pg_data_t;
-
--[[linux-5.15/per_cpu_nodestat]]
*コメント [#pc3ca19e]
ページ名: