Module: wine Branch: master Commit: 146cf041d96b4b0d9050e4e59c965e67c407e19e URL: http://source.winehq.org/git/wine.git/?a=commit;h=146cf041d96b4b0d9050e4e59c...
Author: Alex Henrie alexhenrie24@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@gmail.com Signed-off-by: Alexandre Julliard julliard@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