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 { ...@@ -296,9 +296,9 @@ struct BASE_EXPORT SystemMemoryInfoKB {
int dirty; int dirty;
// vmstats data. // vmstats data.
int pswpin; unsigned long pswpin;
int pswpout; unsigned long pswpout;
int pgmajfault; unsigned long pgmajfault;
#endif // defined(OS_ANDROID) || defined(OS_LINUX) #endif // defined(OS_ANDROID) || defined(OS_LINUX)
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
......
...@@ -687,12 +687,16 @@ bool ParseProcVmstat(const std::string& vmstat_data, ...@@ -687,12 +687,16 @@ bool ParseProcVmstat(const std::string& vmstat_data,
if (tokens.size() != 2) if (tokens.size() != 2)
continue; continue;
uint64_t val;
if (!StringToUint64(tokens[1], &val))
continue;
if (tokens[0] == "pswpin") { if (tokens[0] == "pswpin") {
StringToInt(tokens[1], &meminfo->pswpin); meminfo->pswpin = val;
} else if (tokens[0] == "pswpout") { } else if (tokens[0] == "pswpout") {
StringToInt(tokens[1], &meminfo->pswpout); meminfo->pswpout = val;
} else if (tokens[0] == "pgmajfault") { } else if (tokens[0] == "pgmajfault") {
StringToInt(tokens[1], &meminfo->pgmajfault); meminfo->pgmajfault = val;
} }
} }
......
...@@ -286,13 +286,13 @@ TEST_F(SystemMetricsTest, ParseVmstat) { ...@@ -286,13 +286,13 @@ TEST_F(SystemMetricsTest, ParseVmstat) {
"pgrefill_high 0\n" "pgrefill_high 0\n"
"pgrefill_movable 0\n"; "pgrefill_movable 0\n";
EXPECT_TRUE(ParseProcVmstat(valid_input1, &meminfo)); EXPECT_TRUE(ParseProcVmstat(valid_input1, &meminfo));
EXPECT_EQ(meminfo.pswpin, 179); EXPECT_EQ(179LU, meminfo.pswpin);
EXPECT_EQ(meminfo.pswpout, 406); EXPECT_EQ(406LU, meminfo.pswpout);
EXPECT_EQ(meminfo.pgmajfault, 487192); EXPECT_EQ(487192LU, meminfo.pgmajfault);
EXPECT_TRUE(ParseProcVmstat(valid_input2, &meminfo)); EXPECT_TRUE(ParseProcVmstat(valid_input2, &meminfo));
EXPECT_EQ(meminfo.pswpin, 12); EXPECT_EQ(12LU, meminfo.pswpin);
EXPECT_EQ(meminfo.pswpout, 901); EXPECT_EQ(901LU, meminfo.pswpout);
EXPECT_EQ(meminfo.pgmajfault, 2023); EXPECT_EQ(2023LU, meminfo.pgmajfault);
} }
#endif // defined(OS_LINUX) || defined(OS_ANDROID) #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