summaryrefslogtreecommitdiff
path: root/src/vm
AgeCommit message (Collapse)AuthorFilesLines
2019-10-15[Tizen] Add coreclr_preload_assembly to CoreCLR host APItizen_5.5.m2_releasesubmit/tizen_5.5_mobile_hotfix/20201026.185106submit/tizen_5.5/20191031.000006submit/tizen/20191014.221258accepted/tizen/unified/20191015.012049accepted/tizen/5.5/unified/mobile/hotfix/20201027.061818accepted/tizen/5.5/unified/20191031.004944Konstantin Baladurin3-46/+99
2019-10-11[Tizen] Implement ASan wrapper for Linux AMD64Vyacheslav Cherkashin3-0/+157
Change-Id: I48446ce7c8771a4c75149512bb7d8a8cb3fae8e5 Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
2019-10-11[Tizen] Implement ASan wrapper for Linux ARM32Vyacheslav Cherkashin6-0/+278
This commit implements wrappers that allow interception transitions from managed to external unmanaged code (CIL -> native) and back (native -> CIL). This allows enable/disable ASan during transitions. Due to this, we sanitize only external code, which allows us to achieve acceptable performance. Change-Id: I53ecdc14d28f7210cd9e7f5bd4db0c8ef5ed81fc Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
2019-10-07Remove VolatileLoad from code already under lockFadi Hanna1-1/+1
2019-10-07Use VolaiteLoad to read counterFadi Hanna1-2/+2
2019-10-07Fix read ordering bug between buckets pointer and counterFadi Hanna1-1/+4
2019-10-07Prevent freeing of the profiler on process shutdown.David Mason1-11/+6
2019-10-07Revert "bail if profiler is terminated"David Mason1-24/+15
This reverts commit a5339ba00e94b8cd0c85b67fa66944eabc4ec7ad.
2019-10-07bail if profiler is terminatedDavid Mason1-15/+24
2019-10-07Build error fix on FEATURE_PREJIT=trueSwift Kim2-2/+2
This fix is to update usages of SetupGcCoverage() under FEATURE_PREJIT aligned to the signature change in #25261.
2019-10-04[Linux/x86] Use ebp from current context during unwinding (#26789)Konstantin Baladurin2-12/+11
pCurrentContextPointers in REGDISPLAY can contain NULLs so we need to use ebp value from pCurrentContext. This patch contains following changes: - GetRegdisplayFP returns ebp from pCurrentContext - GetRegdisplayFP is used instead of *GetEbpLocation() - Set##reg##Location also updates register value in pCurrentContext
2019-09-26[Tizen] Disable IBC Logger as a defaultDongHeon Jung1-1/+1
- Profile information is collected by ibc logger. Hower it is not used and saved into profile file. - The patch disables IBC logger which is enabled by default. - It disables IBC logger only with ibclogger.h file. IBCLOGGER_ENABLED definition is only used in ibclogger files.
2019-09-26Fix a build error when IBCLOGGER_ENABLED is not defined (#25691)Dong-Heon Jung1-13/+31
- Even if DACCESS_COMPILE or CROSSGEN_COMPILE is defined, coreclr can be built without IBCLOGGER_ENABLED definition.
2019-09-24Fix EECodeManager::GetAmbientSP on x86/LinuxIgor Kulaychuk1-1/+2
2019-09-12Fix watson bucketing/broken triage dumps (#26670)Mike McLaughlin1-0/+5
Fix watson bucketing/broken triage dumps The DAC EnumMemoryRegions needs to include some missing code version manager memory.
2019-08-29Emit RVA Instead of File Offset by Default in Native Image PerfMap Files ↵Brian Robbins3-5/+31
(#26423)
2019-08-19Use function-local StackingAllocator for EnC added methods (#26256)Juan Hoyos1-2/+6
As adding EnC methods happens on the Debugger Thread, there's no managed Thread object from which to obtain the cached StackingAllocator. Instead, just use a function-local StackingAllocator.
2019-08-19Account for quoted values in provider filter string (#26159) (#26195)John Salem1-3/+19
* Account for quoted values in provider filter string
2019-08-16Clean up diagnosticserver socket on unexpected shutdown (#25976) (#26190)Sung Yoon Whang2-0/+33
* Clean up diagnosticserver socket/pipe on shutdown * Refactor dbg transport pipe cleanup to be registered as signal handler from the vm side * cleanup dead code * Remove more dead code and fix windows builds * Moving some ifdefs around
2019-07-26fix gc config - need to read from both runtime config and env var (#25890)Maoni Stephens1-5/+9
need to read hardlimit configs from env vars as well as runtimeconfig.json
2019-07-19Fixing Buffer::BlockCopy, JIT_MemCpy, and JIT_MemSet to just call the ↵Tanner Gooding3-300/+90
appropriate CRT functions for x64 Windows, as is already done for all other platforms/targets (#25763) * Fixing Buffer::BlockCopy to just call the CRT memmove for x64 Windows, as is already done for all other platforms/targets * Fixing up the x64 CrtHelpers.asm to just forward to the CRT implementations for JIT_MemSet and JIT_MemCpy * Keep unix using memcpy and clarify that Windows uses memmove for full framework compat.
2019-07-19Fix typo: `_TARGET_X86` -> `_TARGET_X86_` (#25788)Andy Hanson1-1/+1
This typo was in #24989 so would be a new regression in 3.0. In an x86 build, it causes us to not get the cache size correct, leading us to use a smaller default cache size and do more GCs. Tested with GCPerfSim and this PR reduces TotalNumberGCs by 33% using an x86 build.
2019-07-16Merge branch 'release/3.0' into merge/master-to-release/3.0William Godbe2-0/+16
2019-07-16Add missing Arm64 specific diagnostic code (#25695)Steve MacLean1-0/+15
* Arm64 ICorDebugRegisterSet float support * Arm64 ICorDebugRegisterSet2 implementation * Add arm64 VLT_REG_FP case * Arm64 add funceval GetRegister SetRegister support
2019-07-12Frkaya/gccfix07102019 (#25624)Sinan Kaya3-3/+3
* Remove duplicate definition * Fix conversion error * 1ui64 doesn't exist on GCC
2019-07-11PerfMap should output file offset instead of RVAs (#25638)Andrew Au2-8/+9
2019-07-11Fix GS cookie check on ARM in functions with stackalloc (#25628)Jan Vorlicek6-3/+22
* Fix GS cookie check on ARM in functions with stackalloc The GC cookie check was failing during GC stack walking on ARM for frames of functions using stackalloc and pinvoke. The InlinedCallFrame stores only the SP after the stackalloc adjustment and unwinder needs R9 that contains SP before the stackalloc to be able to unwind the frame to get caller SP. The caller SP is used as a base for getting the GS cookie address. We were incorrectly setting the R9 in the CONTEXT to the same value as SP and so the unwinding was getting an incorrect caller SP. The fix is to store R9 in the InlinedCallFrame for ARM.
2019-07-11System.GC.HeapHardLimit and .HeapHardLimitPercent in runtimeconfig.json (#25574)Andy Hanson3-0/+22
* System.GC.HeapHardLimit and .HeapHardLimitPercent in runtimeconfig.json This adds two new configuration options, "System.GC.HeapHardLimit" and "System.GC.HeapHardLimitPercent" to runtimeconfig.json. These behave the same as COMPlus_GCHeapHardLimit and COMPlus_GCHeapHardLimitPercent. * Add cast * Dummy change to trigger tests rerun
2019-07-11Fix handling of NullReferenceException in VSD on ARM (#25627)Jan Vorlicek6-40/+67
* Fix handling of NullReferenceException in VSD on ARM There was a problem with handling NullReferenceExceptionHandling stemming from virtual dispatch stub on ARM Linux. While the primary exception was handled correctly, if the exception was rethrown or another exception was thrown from the catch handler, it was reported as unhandled even though there was a proper handler. The issue was caused by exception unwinding that was unable to unwind past the frame of the virtual dispatch stub in this case. Such stub is generated at runtime and there is no unwind info for it. The fix is to explicitly check for the stub frame and skip it during first and second pass of exception handling.
2019-07-09Let EventPipe threads sleep when no events are available (#25601)David Mason9-16/+100
Don't spin forever in EventListener when listening for EventPipe data
2019-07-08Return HardLimitBytes from GCMemoryInfo.TotalAvailableMemoryBytes (#25437)Andy Hanson2-5/+5
* Add property HardLimitBytes to GCMemoryInfo This adds a new property HardLimitBytes. Unlike TotalAvailableMemoryBytes, this will reflect an explicitly set COMPLUS_GCHeapHardLimit. It will also reflect the fraction of a container's size that we use, where TotalAvailableMemoryBytes is the total container size. Normally, though, it is equal to TotalAvailableMemoryBytes. Fix #38821 * Remove HardLimitBytes; have TotalAvailableMemoryBytes take on its behavior * Fix typos * Separate total_physical_mem and heap_hard_limit so we can compute highMemoryLoadThresholdBytes and memoryLoadBytes * Do more work in gc.cpp instead of Gc.cs * Consistently end names in "Bytes"
2019-07-05many core (#25350)Maoni Stephens1-16/+78
2019-07-04Fix instantiation stub maker for case where no register is used by function ↵Fadi Hanna1-20/+29
parameters (#25558) * Fix instantiation stub maker for case where no register is used by function parameters
2019-07-03Fix getting rundown events during EventPipe::Shutdown (#25450)José Rivero2-32/+36
2019-07-03arm64singlestepper (#25512)Steve MacLean7-15/+841
Add single step emulation for arm64 Linux Add a copy and rework armsinglestepper to arm64singlestepper Add arm64 emulation of all armv8 user space instructions which read or write PC. - ADR, ADRP - Branch instructions: B, BL, B.cond, BR, BLR, RET - LDR (literal) * Add FEATURE_EMULATE_SINGLESTEP * Enable for ARM64 linux * Debugging fixes Fix IsSSFlagEnabled bug Fix opcode type Fix code buffer asserts Fix CBZ typo Fix BitExtract Fix m_targetPc Minimize written instructions Fix comments Fix Bypass address truncation Fix false assert Add additional logging Use %lx to log addresses Remove stray LOG Remove stray assert
2019-07-03Prevent EventPipe rundown from blocking on write (#25523)John Salem3-51/+32
* Write all rundown events to the buffer manager to prevent the write from blocking while holding the CodeManager lock * * Incorporate PR feedback * changed to one suspend rather than suspend->resume->suspend * added some comments * update comments
2019-07-03Add check to prevent attaching a profiler when one is already present (#25520)David Mason3-85/+148
* Don't load multiple profilers * add comment * Move check to LoadProfiler, and eliminate race condition between attach profiler and startup profiled
2019-07-03Fix GCStress modes that do code instrumentation to work with code versioning ↵Koundinya Veluri10-48/+182
(#25261) - SOS changes are in https://github.com/dotnet/diagnostics/pull/369 - Fixes https://github.com/dotnet/coreclr/issues/17646
2019-07-03Cleanup IL linker heuristic usage (#25547)Jan Kotas2-1/+10
Prep-work for using mainstream IL linker
2019-07-02Add a new CompilationDiagnostic ETW Keyword (#25544)Brian Robbins1-1/+4
2019-07-02Merge ReadyToRunInfo::GenericMethodIterator in to ↵David Mason4-126/+122
ReadyToRunInfo::MethodIterator (#25518)
2019-07-02Ensure YIELD_WHILE() in EventPipeBufferManager::SuspendWriteEvent() always ↵Andrew Au2-6/+7
terminates (#25491)
2019-07-02Add RundownRequested switch to EventPipe IPC protocol (#25495)Sung Yoon Whang7-18/+140
* Add RundownRequested switch to EventPipe IPC protocol * Fix linux build * make the rundownRequested field a bool * some renaming * Make a new command that has an option for disabling rundown instead of breaking change * code review feedback
2019-07-01Delete dead code (#25513)Jan Kotas2-10/+0
2019-06-29Fix GCStress issue on x86 and Arm (#25445)Brian Sullivan6-60/+112
* Fix GCStress issue on x86 and Arm32 When we write one of the new gc stress instruction, such as INTERRUPT_INSTR_PROTECT_FIRST_RET we might be writing it in the epilog region on x86 or ARM as a direct call can be the last instruction before an epilog. (This isn't allowed on x64) This fix expands the set of instructions we are allowed by IsMarkerInstr() toinclude these newly added gc stress instructions. added comment to GetGcMarkerExceptionCode Fix DAC build * Code review feedback * Additional code review chnages
2019-06-28Use regular static variable for EEConfig storage (#25479)Jan Kotas3-32/+9
Fixes #25475
2019-06-27Fix SIGSEGV in GC when dealing with large double[] on ARM32 (#25403)Vladimir Sadov1-22/+31
* Fix for #25252 * revert to special casing 8-alignement for double[] in GC helpers for x86
2019-06-26EventPipe events should only be sent to sessions that are listening to the ↵Andrew Au6-38/+61
event (#25401)
2019-06-26Merge branch 'release/3.0' into merge/master-to-release/3.0William Godbe2-0/+16
2019-06-26Delegate inspection API in the DBI (#25362)Juan Hoyos2-0/+11
* Add ICorDebugDelegateObjectValue interfaces * Expose appropriate HR (CORDBG_E_UNSUPPORTED_DELEGATE) * Partially DACize DelegateObject * Add DacDbi method for delegate inspection