mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 11:06:41 -05:00
mm/show_mem: optimize si_meminfo_node by reducing redundant code
Refactors the si_meminfo_node() function by reducing redundant code and improving readability. Moved the calculation of managed_pages inside the existing loop that processes pgdat->node_zones, eliminating the need for a separate loop. Simplified the logic by removing unnecessary preprocessor conditionals. Ensured that both totalram, totalhigh, and other memory statistics are consistently set without duplication. This change results in cleaner and more efficient code without altering functionality. Link: https://lkml.kernel.org/r/20250325073803.852594-1-ye.liu@linux.dev Signed-off-by: Ye Liu <liuye@kylinos.cn> Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Reviewed-by: Harry Yoo <harry.yoo@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
@@ -94,26 +94,20 @@ void si_meminfo_node(struct sysinfo *val, int nid)
|
||||
unsigned long free_highpages = 0;
|
||||
pg_data_t *pgdat = NODE_DATA(nid);
|
||||
|
||||
for (zone_type = 0; zone_type < MAX_NR_ZONES; zone_type++)
|
||||
managed_pages += zone_managed_pages(&pgdat->node_zones[zone_type]);
|
||||
val->totalram = managed_pages;
|
||||
val->sharedram = node_page_state(pgdat, NR_SHMEM);
|
||||
val->freeram = sum_zone_node_page_state(nid, NR_FREE_PAGES);
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
for (zone_type = 0; zone_type < MAX_NR_ZONES; zone_type++) {
|
||||
struct zone *zone = &pgdat->node_zones[zone_type];
|
||||
|
||||
managed_pages += zone_managed_pages(zone);
|
||||
if (is_highmem(zone)) {
|
||||
managed_highpages += zone_managed_pages(zone);
|
||||
free_highpages += zone_page_state(zone, NR_FREE_PAGES);
|
||||
}
|
||||
}
|
||||
|
||||
val->totalram = managed_pages;
|
||||
val->sharedram = node_page_state(pgdat, NR_SHMEM);
|
||||
val->freeram = sum_zone_node_page_state(nid, NR_FREE_PAGES);
|
||||
val->totalhigh = managed_highpages;
|
||||
val->freehigh = free_highpages;
|
||||
#else
|
||||
val->totalhigh = managed_highpages;
|
||||
val->freehigh = free_highpages;
|
||||
#endif
|
||||
val->mem_unit = PAGE_SIZE;
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user