[systemd-devel] systemctl show outputs incorrect MemoryCurrent value

Lennart Poettering lennart at poettering.net
Wed Jul 25 15:49:43 UTC 2018


On Mi, 25.07.18 17:06, Reindl Harald (h.reindl at thelounge.net) wrote:

> 
> 
> Am 25.07.2018 um 17:01 schrieb Lennart Poettering:
> > On Mi, 25.07.18 11:23, George Xie (georgexsh at gmail.com) wrote:
> > 
> >> thanks for your reply.
> >>
> >> odds enough, on both aforementioned boxes, MemoryAccounting is set
> >> to no:
> > 
> > On old systemd versions we'd fill in the account props if the kernel
> > had the data even if MemoryAccounting was not turned on. This has been
> > changed in more recent versions, where all accounting props will
> > report 2^64-1 unless accounting has been turned on for them.
> 
> why?
> 
> i mean why not just skip that output at all or at least ouput 0 instean
> an arbitary number?

The dbus property model doesn't know a concept of "unset". And if
something uses 0 memory then this is actually completely valid, it
just means "no memory currently used". We need to be able to
distinguish "no memory" from "i have no information about memory
use" and hence encode the former as 0 and the latter as 2^64-1 (aka
UINT64_MAX, aka (uint64_t) -1).

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list