libmeminfo: Add support to reset workingset without procmeminfo objects

Bug: 114325007
Bug: 111694435
Test: libmeminfo_test 1

Change-Id: I816809cda13983e47294a956347a27085397cbcf
Signed-off-by: Sandeep Patil <sspatil@google.com>
diff --git a/libmeminfo/procmeminfo.cpp b/libmeminfo/procmeminfo.cpp
index 56b62e8..378f923 100644
--- a/libmeminfo/procmeminfo.cpp
+++ b/libmeminfo/procmeminfo.cpp
@@ -53,6 +53,16 @@
     to->shared_dirty += from.shared_dirty;
 }
 
+bool ProcMemInfo::ResetWorkingSet(pid_t pid) {
+    std::string clear_refs_path = ::android::base::StringPrintf("/proc/%d/clear_refs", pid);
+    if (!::android::base::WriteStringToFile("1\n", clear_refs_path)) {
+        PLOG(ERROR) << "Failed to write to " << clear_refs_path;
+        return false;
+    }
+
+    return true;
+}
+
 ProcMemInfo::ProcMemInfo(pid_t pid, bool get_wss, uint64_t pgflags, uint64_t pgflags_mask)
     : pid_(pid), get_wss_(get_wss), pgflags_(pgflags), pgflags_mask_(pgflags_mask) {
     if (!ReadMaps(get_wss_)) {
@@ -66,14 +76,16 @@
 
 const MemUsage& ProcMemInfo::Usage() {
     if (get_wss_) {
-        LOG(WARNING) << "Trying to read memory usage from working set object";
+        LOG(WARNING) << "Trying to read process memory usage for " << pid_
+                     << " using invalid object";
     }
     return usage_;
 }
 
 const MemUsage& ProcMemInfo::Wss() {
     if (!get_wss_) {
-        LOG(WARNING) << "Trying to read working set when there is none";
+        LOG(WARNING) << "Trying to read process working set for " << pid_
+                     << " using invalid object";
     }
 
     return wss_;
@@ -83,22 +95,6 @@
     return swap_offsets_;
 }
 
-bool ProcMemInfo::WssReset() {
-    if (!get_wss_) {
-        LOG(ERROR) << "Trying to reset working set from a memory usage counting object";
-        return false;
-    }
-
-    std::string clear_refs_path = ::android::base::StringPrintf("/proc/%d/clear_refs", pid_);
-    if (!::android::base::WriteStringToFile("1\n", clear_refs_path)) {
-        PLOG(ERROR) << "Failed to write to " << clear_refs_path;
-        return false;
-    }
-
-    wss_.clear();
-    return true;
-}
-
 bool ProcMemInfo::ReadMaps(bool get_wss) {
     // parse and read /proc/<pid>/maps
     std::string maps_file = ::android::base::StringPrintf("/proc/%d/maps", pid_);