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