On Tue, Aug 16, 2022 at 06:11:18PM +0800, Kefeng Wang wrote:
On 2022/8/16 17:16, Greg Kroah-Hartman wrote:I do not know, what tool relies on this file? Any userspace tool should
On Tue, Aug 16, 2022 at 04:44:26PM +0800, Kefeng Wang wrote:Hi Greg, do you mean to remove all /sys/devices/system/node/node*/meminfo,
From: Liu Shixin <liushixin2@xxxxxxxxxx>First off, this sysfs file is a huge violation of the normal sysfs
The page on pcplist could be used, but not counted into memory free or
avaliable, and pcp_free is only showed by show_mem(). Since commit
d8a759b57035 ("mm, page_alloc: double zone's batchsize"), there is a
significant decrease in the display of free memory, with a large number
of cpus and nodes, the number of pages in the percpu list can be very
large, so it is better to let user to know the pcp count.
Signed-off-by: Liu Shixin <liushixin2@xxxxxxxxxx>
Signed-off-by: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>
---
drivers/base/node.c | 14 +++++++++++++-
fs/proc/meminfo.c | 9 +++++++++
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/drivers/base/node.c b/drivers/base/node.c
index eb0f43784c2b..846864e45db6 100644
--- a/drivers/base/node.c
+++ b/drivers/base/node.c
@@ -375,6 +375,9 @@ static ssize_t node_read_meminfo(struct device *dev,
struct sysinfo i;
unsigned long sreclaimable, sunreclaimable;
unsigned long swapcached = 0;
+ unsigned long free_pcp = 0;
+ struct zone *zone;
+ int cpu;
si_meminfo_node(&i, nid);
sreclaimable = node_page_state_pages(pgdat, NR_SLAB_RECLAIMABLE_B);
@@ -382,9 +385,17 @@ static ssize_t node_read_meminfo(struct device *dev,
#ifdef CONFIG_SWAP
swapcached = node_page_state_pages(pgdat, NR_SWAPCACHE);
#endif
+ for_each_populated_zone(zone) {
+ if (zone_to_nid(zone) != nid)
+ continue;
+ for_each_online_cpu(cpu)
+ free_pcp += per_cpu_ptr(zone->per_cpu_pageset, cpu)->count;
+ }
+
len = sysfs_emit_at(buf, len,
"Node %d MemTotal: %8lu kB\n"
"Node %d MemFree: %8lu kB\n"
+ "Node %d PcpFree: %8lu kB\n"
rules, so I will not allow any new entries to be added. In fact, the
whole thing should just be removed and multiple files created in its
place.
but this will beak ABI, is it acceptable?
always be able to handle a sysfs file being removed, so you should
probably work with the tool authors to fix this up before removing it.
thanks,
gre gk-h
.