----- Original Message -----
Hello Dave,
On s390 (kernel 4.2.0-rc2) the "RSS" field in "ps" is wrong.
The reason is that in rss_page_types_init() enumerator_value("MM_ANONPAGES",
&anonpages) returns zero for "anonpages" and therefore we add MM_FILEPAGES
twice instead of adding MM_ANONPAGES.
Example: Process that allocated 500 MB:
ps 2152
PID PPID CPU TASK ST %MEM VSZ RSS COMM
2152 1061 4 7aff0000 IN 0.0 514024 2236 eat_mem
crash> print/x ((struct task_struct *) 0x7aff0000)->mm->rss_stat
$1 = {
count = {{
counter = 0x113
}, {
counter = 0x1f414
}, {
counter = 0x0
}}
}
Any idea why enumerator_value() is not working?
Michael
Hmmm, I don't know why -- it still works for me on a 4.2-rc4 based kernel.
It's an anonymous enum declared like so:
enum {
MM_FILEPAGES,
MM_ANONPAGES,
MM_SWAPENTS,
NR_MM_COUNTERS
};
And on the most recent kernel I've got available (4.2.0-0.rc4.git1.1.fc23.x86_64),
they are found OK:
crash> MM_FILEPAGES
enum (unknown) = 0
crash> MM_ANONPAGES
enum (unknown) = 1
crash> MM_SWAPENTS
enum (unknown) = 2
crash> NR_MM_COUNTERS
enum (unknown) = 3
crash> sys | grep RELEASE
RELEASE: 4.2.0-0.rc4.git1.1.fc23.x86_64
crash>
And I verified that the enumerator_value() function returns successfully, and that
it returns the correct values. If enumerator_value() returns successfully, they get
stored in the task_table:
crash> help -t | grep -e filepages -e anonpages
filepages: 0
anonpages: 1
crash>
When you you do a "help -t" do you see both of the above showing "0"?
Dave