diff options
author | Steve MacLean <sdmaclea.qdt@qualcommdatacenter.com> | 2017-06-08 19:02:33 -0400 |
---|---|---|
committer | Maoni Stephens <Maoni0@users.noreply.github.com> | 2017-06-08 16:02:33 -0700 |
commit | 4af0f91b0f3b9a99b8cb9bc3551576494b058732 (patch) | |
tree | 54b855573e05e30f41086d7e9713741295ebbd63 /src/gc/softwarewritewatch.h | |
parent | 46201b3b92bcacfff7518bf98b3627879158c322 (diff) | |
download | coreclr-4af0f91b0f3b9a99b8cb9bc3551576494b058732.tar.gz coreclr-4af0f91b0f3b9a99b8cb9bc3551576494b058732.tar.bz2 coreclr-4af0f91b0f3b9a99b8cb9bc3551576494b058732.zip |
[Arm64/Unix] Fix SOFTWARE_WRITE_WATCH for 64K pages (#11413)
* Decouple Software Write Watch from page size
* Use WRITE_WATCH_UNIT_SIZE in revisit_written_page(s)
* GC add align_write_watch_lower_page
Diffstat (limited to 'src/gc/softwarewritewatch.h')
-rw-r--r-- | src/gc/softwarewritewatch.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gc/softwarewritewatch.h b/src/gc/softwarewritewatch.h index 0e6e6c8191..e59fd61d04 100644 --- a/src/gc/softwarewritewatch.h +++ b/src/gc/softwarewritewatch.h @@ -8,6 +8,8 @@ #include "gcinterface.h" #include "gc.h" +#define WRITE_WATCH_UNIT_SIZE 0x1000 + #ifdef FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP #ifndef DACCESS_COMPILE @@ -249,7 +251,7 @@ inline void *SoftwareWriteWatch::GetPageAddress(size_t tableByteIndex) void *pageAddress = reinterpret_cast<void *>(tableByteIndex << AddressToTableByteIndexShift); assert(pageAddress >= GetHeapStartAddress()); assert(pageAddress < GetHeapEndAddress()); - assert(ALIGN_DOWN(pageAddress, OS_PAGE_SIZE) == pageAddress); + assert(ALIGN_DOWN(pageAddress, WRITE_WATCH_UNIT_SIZE) == pageAddress); return pageAddress; } |