Commit 2b684a8a authored by thomasanderson's avatar thomasanderson Committed by Commit bot

Linux: Increase storage size of vmstat data

The linux kernel stores and prints the data associated with /proc/vmstat
as unsigned longs, so increase Chrome's storage of these fields
accordingly.
https://github.com/torvalds/linux/blob/e4fba88d00d21f50239eac7d653027bfaf844296/include/linux/vmstat.h#L25

Review-Url: https://codereview.chromium.org/2188043003
Cr-Commit-Position: refs/heads/master@{#408774}
parent e3cd5640
......@@ -296,9 +296,9 @@ struct BASE_EXPORT SystemMemoryInfoKB {
int dirty;
// vmstats data.
int pswpin;
int pswpout;
int pgmajfault;
unsigned long pswpin;
unsigned long pswpout;
unsigned long pgmajfault;
#endif // defined(OS_ANDROID) || defined(OS_LINUX)
#if defined(OS_CHROMEOS)
......
......@@ -687,12 +687,16 @@ bool ParseProcVmstat(const std::string& vmstat_data,
if (tokens.size() != 2)
continue;
uint64_t val;
if (!StringToUint64(tokens[1], &val))
continue;
if (tokens[0] == "pswpin") {
StringToInt(tokens[1], &meminfo->pswpin);
meminfo->pswpin = val;
} else if (tokens[0] == "pswpout") {
StringToInt(tokens[1], &meminfo->pswpout);
meminfo->pswpout = val;
} else if (tokens[0] == "pgmajfault") {
StringToInt(tokens[1], &meminfo->pgmajfault);
meminfo->pgmajfault = val;
}
}
......
......@@ -286,13 +286,13 @@ TEST_F(SystemMetricsTest, ParseVmstat) {
"pgrefill_high 0\n"
"pgrefill_movable 0\n";
EXPECT_TRUE(ParseProcVmstat(valid_input1, &meminfo));
EXPECT_EQ(meminfo.pswpin, 179);
EXPECT_EQ(meminfo.pswpout, 406);
EXPECT_EQ(meminfo.pgmajfault, 487192);
EXPECT_EQ(179LU, meminfo.pswpin);
EXPECT_EQ(406LU, meminfo.pswpout);
EXPECT_EQ(487192LU, meminfo.pgmajfault);
EXPECT_TRUE(ParseProcVmstat(valid_input2, &meminfo));
EXPECT_EQ(meminfo.pswpin, 12);
EXPECT_EQ(meminfo.pswpout, 901);
EXPECT_EQ(meminfo.pgmajfault, 2023);
EXPECT_EQ(12LU, meminfo.pswpin);
EXPECT_EQ(901LU, meminfo.pswpout);
EXPECT_EQ(2023LU, meminfo.pgmajfault);
}
#endif // defined(OS_LINUX) || defined(OS_ANDROID)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment