Re: [PATCH -next] mm: make sure freeram is smaller than totalram

From: David Hildenbrand (Arm)

Date: Mon Apr 20 2026 - 15:08:27 EST


On 4/13/26 13:57, Yang Yingliang wrote:
> The memory stat is not done in real time, it have some gap with
> real value. In CPU-less NUMA node, the values of MemTotal and
> MemFree can be nearly equal, the gap may cause MemFree bigger
> than MemTotal, it leads MemUsed is negative which print as a large
> positive number.

How does this interact with CPU-less NUMA node? Some concurrent memory
hotunplug, or how could be possible get MemFree that is larger than
MemTotal?

>
> cat /sys/devices/system/node/node17/meminfo
> Node 17 MemTotal: 4194304 kB
> Node 17 MemFree: 4195552 kB
> Node 17 MemUsed: 18446744073709550368 kB
> Node 17 Active: 52 kB
> Node 17 Inactive: 320 kB
> Node 17 Active(anon): 0 kB
> Node 17 Inactive(anon): 0 kB
> Node 17 Active(file): 52 kB
> Node 17 Inactive(file): 320 kB
> Node 17 Unevictable: 0 kB
> Node 17 Mlocked: 0 kB
> Node 17 Dirty: 0 kB
> Node 17 Writeback: 0 kB
> Node 17 FilePages: 372 kB
> Node 17 Mapped: 320 kB
> Node 17 AnonPages: 0 kB
> Node 17 Shmem: 0 kB
> Node 17 KernelStack: 0 kB
> Node 17 PageTables: 0 kB
> Node 17 NFS_Unstable: 0 kB
> Node 17 Bounce: 0 kB
> Node 17 WritebackTmp: 0 kB
> Node 17 KReclaimable: 0 kB
> Node 17 Slab: 0 kB
> Node 17 SReclaimable: 0 kB
> Node 17 SUnreclaim: 0 kB
> Node 17 AnonHugePages: 79872 kB
> Node 17 ShmemHugePages: 0 kB
> Node 17 ShmemPmdMapped: 0 kB
> Node 17 FileHugePages: 0 kB
> Node 17 FilePmdMapped: 0 kB
> Node 17 HugePages_Total: 0
> Node 17 HugePages_Free: 0
> Node 17 HugePages_Surp: 0
>
> To avoid this exception by refreshing vm_stat, when MemFree
> is bigger than MemTotal.
>

--
Cheers,

David