From 96ae35912f2314cd84c1c2aaf310f7ff9e8f8f91 Mon Sep 17 00:00:00 2001 From: Abdelrahman Date: Sun, 24 Sep 2023 19:00:25 +0100 Subject: [PATCH] Wrap page fault count functions in os-agnostic function --- haversine_02/src/memtester/main.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/haversine_02/src/memtester/main.c b/haversine_02/src/memtester/main.c index 13d61c3..63e98a0 100644 --- a/haversine_02/src/memtester/main.c +++ b/haversine_02/src/memtester/main.c @@ -32,7 +32,7 @@ static u64 ReadOSTimer(void) { return Value.QuadPart; } -static u64 ReadOSPageFaultCount(void) { +static u64 ReadWindowsPageFaultCount(void) { PROCESS_MEMORY_COUNTERS_EX MemoryCounters = {0}; MemoryCounters.cb = sizeof(MemoryCounters); GetProcessMemoryInfo(GlobalMetrics.ProcessHandle, @@ -60,7 +60,7 @@ static void InitializeOSMetrics(void) { typedef struct rusage rusage_t; -u64 page_fault_count() { +u64 nix_page_fault_count() { rusage_t usage; getrusage(RUSAGE_SELF, &usage); @@ -70,6 +70,14 @@ u64 page_fault_count() { #endif // _WIN32 +u64 page_fault_count() { +#if _WIN32 + return ReadWindowsPageFaultCount(); +#else + return nix_page_fault_count(); +#endif +} + int main(int argc, char *argv[]) { if (argc < 2 || argc > 2) { printf("Usage: %s [NUMBER OF PAGES TO ALLOCATE]\n", argv[0]); @@ -104,21 +112,13 @@ int main(int argc, char *argv[]) { return EXIT_FAILURE; } -#if _WIN32 - u64 fault_start = ReadOSPageFaultCount(); -#else u64 fault_start = page_fault_count(); -#endif for (u64 i = 0; i < touch_size; ++i) { data[i] = (u8)i; } -#if _WIN32 - u64 fault_end = ReadOSPageFaultCount(); -#else u64 fault_end = page_fault_count(); -#endif u64 faults = fault_end - fault_start;