diff --git a/src/extensions/empty_private_settings.h b/src/extensions/empty_private_settings.h index ac1fc053..aca52d8d 100644 --- a/src/extensions/empty_private_settings.h +++ b/src/extensions/empty_private_settings.h @@ -46,10 +46,10 @@ static const unsigned char oracleMachineIPs[][4] = { #endif // Virtual memory settings for logging -#define LOG_BUFFER_PAGE_SIZE 300000000ULL -#define PMAP_LOG_PAGE_SIZE 30000000ULL +#define LOG_BUFFER_PAGE_SIZE (300000000ULL / 2) +#define PMAP_LOG_PAGE_SIZE (30000000ULL / 2) #define IMAP_LOG_PAGE_SIZE 10000ULL -#define VM_NUM_CACHE_PAGE 8 +#define VM_NUM_CACHE_PAGE 4 #if ENABLE_QUBIC_LOGGING_EVENT // DO NOT MODIFY THIS AREA UNLESS YOU ARE DEVELOPING LOGGING FEATURES diff --git a/src/platform/virtual_memory.h b/src/platform/virtual_memory.h index e44f5d69..3c5a37c0 100644 --- a/src/platform/virtual_memory.h +++ b/src/platform/virtual_memory.h @@ -9,6 +9,7 @@ #include "four_q.h" #include "kangaroo_twelve.h" +#include template inline constexpr const T& max(const T& left, const T& right) @@ -22,6 +23,10 @@ inline constexpr const T& min(const T& left, const T& right) return (left < right) ? left : right; } +// bounded retry: 100ms, 200ms, 400ms, 800ms, 1600ms (~3.1s max) +static constexpr int SWAPVM_IO_MAX_ATTEMPTS = 5; +static constexpr unsigned int SWAPVM_IO_INITIAL_DELAY_MS = 100; + // an util to use disk as RAM to reduce hardware requirement for qubic core node // this VirtualMemory doesn't (yet) support amend operation. That means data stay persisted once they are written // template variables meaning: @@ -722,18 +727,41 @@ class SwapVirtualMemory : private VirtualMemory