Disable libpas JIT heap on Windows ARM64#234
Merged
Merged
Conversation
af63dbd enabled the libpas JIT heap on Windows, but on Windows ARM64 DFG worker threads intermittently hit a PAS_ASSERT inside jit_heap_try_allocate -> pas_segregated_heap_ensure_allocator_index. On ARM64 Windows, libpas's __builtin_trap() compiles to brk #1, which the OS reports as STATUS_ILLEGAL_INSTRUCTION rather than a breakpoint, so the crash surfaces as a flaky 'illegal instruction' failure. Windows x64 has not exhibited the same failure, so leave the libpas JIT heap enabled there and fall back to the legacy MetaAllocator path on Windows ARM64 only until the assertion is root-caused.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughThis PR updates the platform-specific preprocessor guard in ChangesExecutableMemoryHandle Platform Guard
🚥 Pre-merge checks | ✅ 3 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
Preview Builds
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upstream
af63dbd0b5d([libpas] Enable JIT-heap on Windows) flippedENABLE_LIBPAS_JIT_HEAPon for Windows. Since picking that up via #231, Windows ARM64 CI has been intermittently crashing withillegal instructionon DFG worker threads.The crash is a
PAS_ASSERTfiring insidejit_heap_try_allocate -> pas_segregated_heap_ensure_allocator_index. On Windows ARM64, libpas's__builtin_trap()compiles tobrk #1, which the OS reports asSTATUS_ILLEGAL_INSTRUCTIONrather than a breakpoint, so the assertion failure surfaces as a flaky illegal-instruction panic.Windows x64 has not exhibited this failure across the same range of CI builds, so this keeps the libpas JIT heap enabled there and falls back to the legacy
MetaAllocatorpath on Windows ARM64 only, until the assertion is root-caused.The rest of
af63dbd0b5d(thepas_mmap_capability->pas_page_flagsrefactor and the executable-protection plumbing inpas_page_malloc) is left intact; withENABLE_LIBPAS_JIT_HEAPoff on ARM64,jit_heap_configis unused there andpas_page_flag_executableis never set, so those code paths are inert.