Fix KSM build

This commit is contained in:
brainiac
2026-04-04 05:50:10 +00:00
parent 49d45d7686
commit 7aa669d041
2 changed files with 37 additions and 35 deletions
+36 -1
View File
@@ -25,7 +25,6 @@
#include <unistd.h> // For sysconf, sbrk #include <unistd.h> // For sysconf, sbrk
#endif #endif
#ifdef _WIN32 #ifdef _WIN32
// Windows-specific functionality // Windows-specific functionality
@@ -48,6 +47,38 @@ size_t PageAlignedAllocatorBase::getPageSize() const
return sysInfo.dwPageSize; // Page size in bytes return sysInfo.dwPageSize; // Page size in bytes
} }
namespace KSM {
// Windows-specific placeholder functions (no-op)
void CheckPageAlignment(void* ptr)
{
}
void* AllocatePageAligned(size_t size)
{
return memset(malloc(size), 0, size);
}
void MarkMemoryForKSM(void* start, size_t size)
{
}
void AlignHeapToPageBoundary()
{
}
void* MarkHeapStart()
{
return nullptr;
}
size_t MeasureHeapUsage(void* start)
{
return 0;
}
} // namespace KSM
#else #else
// Linux-specific functionality // Linux-specific functionality
@@ -69,6 +100,8 @@ size_t PageAlignedAllocatorBase::getPageSize() const
return static_cast<size_t>(sysconf(_SC_PAGESIZE)); return static_cast<size_t>(sysconf(_SC_PAGESIZE));
} }
namespace KSM {
void CheckPageAlignment(void* ptr) void CheckPageAlignment(void* ptr)
{ {
size_t page_size = sysconf(_SC_PAGESIZE); size_t page_size = sysconf(_SC_PAGESIZE);
@@ -154,4 +187,6 @@ size_t MeasureHeapUsage(void* start)
return static_cast<char*>(current_break) - static_cast<char*>(start); return static_cast<char*>(current_break) - static_cast<char*>(start);
} }
} // namespace KSM
#endif #endif
+1 -34
View File
@@ -64,38 +64,6 @@ bool operator!=(const PageAlignedAllocator<T>&, const PageAlignedAllocator<U>&)
// Kernel Samepage Merging (KSM) functionality // Kernel Samepage Merging (KSM) functionality
namespace KSM { namespace KSM {
#ifdef _WIN32
// Windows-specific placeholder functions (no-op)
inline void CheckPageAlignment(void* ptr)
{
}
inline void* AllocatePageAligned(size_t size)
{
return memset(malloc(size), 0, size);
}
inline void MarkMemoryForKSM(void* start, size_t size)
{
}
inline void AlignHeapToPageBoundary()
{
}
inline void* MarkHeapStart()
{
return nullptr;
}
inline size_t MeasureHeapUsage(void* start)
{
return 0;
}
#else
void CheckPageAlignment(void* ptr); void CheckPageAlignment(void* ptr);
void* AllocatePageAligned(size_t size); void* AllocatePageAligned(size_t size);
void MarkMemoryForKSM(void* start, size_t size); void MarkMemoryForKSM(void* start, size_t size);
@@ -103,5 +71,4 @@ void AlignHeapToPageBoundary();
void* MarkHeapStart(); void* MarkHeapStart();
size_t MeasureHeapUsage(void* start); size_t MeasureHeapUsage(void* start);
#endif } // namespace KSM
}