Alex Henrie : ntdll: Always fill PagefileUsage counter with a nonzero value on Linux.

Alexandre Julliard julliard at winehq.org
Wed May 17 15:58:30 CDT 2017


Module: wine
Branch: master
Commit: 146cf041d96b4b0d9050e4e59c965e67c407e19e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=146cf041d96b4b0d9050e4e59c965e67c407e19e

Author: Alex Henrie <alexhenrie24 at gmail.com>
Date:   Tue May 16 20:32:44 2017 -0600

ntdll: Always fill PagefileUsage counter with a nonzero value on Linux.

Signed-off-by: Alex Henrie <alexhenrie24 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/process.c    | 5 ++++-
 dlls/ntdll/tests/info.c | 2 ++
 server/process.c        | 5 ++++-
 server/protocol.def     | 4 ++--
 4 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
index 8d66030..f615ce2 100644
--- a/dlls/ntdll/process.c
+++ b/dlls/ntdll/process.c
@@ -152,9 +152,12 @@ static void fill_VM_COUNTERS(VM_COUNTERS* pvmi)
             pvmi->PeakWorkingSetSize = (ULONG64)value * 1024;
         else if (sscanf(line, "VmRSS: %lu", &value))
             pvmi->WorkingSetSize = (ULONG64)value * 1024;
+        else if (sscanf(line, "RssAnon: %lu", &value))
+            pvmi->PagefileUsage += (ULONG64)value * 1024;
         else if (sscanf(line, "VmSwap: %lu", &value))
-            pvmi->PeakPagefileUsage = pvmi->PagefileUsage = (ULONG64)value * 1024;
+            pvmi->PagefileUsage += (ULONG64)value * 1024;
     }
+    pvmi->PeakPagefileUsage = pvmi->PagefileUsage;
 
     fclose(f);
 }
diff --git a/dlls/ntdll/tests/info.c b/dlls/ntdll/tests/info.c
index 9fda2d5..f1de206 100644
--- a/dlls/ntdll/tests/info.c
+++ b/dlls/ntdll/tests/info.c
@@ -1096,6 +1096,7 @@ static void test_query_process_vm(void)
     /* Check if we have some return values */
     dump_vm_counters("VM counters for GetCurrentProcess", &pvi);
     ok( pvi.WorkingSetSize > 0, "Expected a WorkingSetSize > 0\n");
+    ok( pvi.PagefileUsage > 0, "Expected a PagefileUsage > 0\n");
 
     process = OpenProcess(PROCESS_VM_READ, FALSE, GetCurrentProcessId());
     status = pNtQueryInformationProcess(process, ProcessVmCounters, &pvi, sizeof(pvi), NULL);
@@ -1115,6 +1116,7 @@ static void test_query_process_vm(void)
     /* Check if we have some return values */
     dump_vm_counters("VM counters for GetCurrentProcessId", &pvi);
     ok( pvi.WorkingSetSize > 0, "Expected a WorkingSetSize > 0\n");
+    ok( pvi.PagefileUsage > 0, "Expected a PagefileUsage > 0\n");
 
     CloseHandle(process);
 }
diff --git a/server/process.c b/server/process.c
index 3e40c9e..5eabbbe 100644
--- a/server/process.c
+++ b/server/process.c
@@ -1397,9 +1397,12 @@ DECL_HANDLER(get_process_vm_counters)
                     reply->peak_working_set_size = (mem_size_t)value * 1024;
                 else if (sscanf( line, "VmRSS: %lu", &value ))
                     reply->working_set_size = (mem_size_t)value * 1024;
+                else if (sscanf( line, "RssAnon: %lu", &value ))
+                    reply->pagefile_usage += (mem_size_t)value * 1024;
                 else if (sscanf( line, "VmSwap: %lu", &value ))
-                    reply->peak_pagefile_usage = reply->pagefile_usage = (mem_size_t)value * 1024;
+                    reply->pagefile_usage += (mem_size_t)value * 1024;
             }
+            reply->peak_pagefile_usage = reply->pagefile_usage;
             fclose( f );
         }
         else set_error( STATUS_ACCESS_DENIED );
diff --git a/server/protocol.def b/server/protocol.def
index 0a9d258..6cafa70 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -853,8 +853,8 @@ struct rawinput_device
     mem_size_t virtual_size;                    /* virtual memory in bytes */
     mem_size_t peak_working_set_size;           /* peak real memory in bytes */
     mem_size_t working_set_size;                /* real memory in bytes */
-    mem_size_t pagefile_usage;                  /* swapped-out memory in bytes */
-    mem_size_t peak_pagefile_usage;             /* peak swapped-out memory in bytes */
+    mem_size_t pagefile_usage;                  /* commit charge in bytes */
+    mem_size_t peak_pagefile_usage;             /* peak commit charge in bytes */
 @END
 
 




More information about the wine-cvs mailing list