platform/upstream/coreclr.git
4 years agoArm64 Fix Rtl*Context (#25745)
Steve MacLean [Wed, 17 Jul 2019 17:28:11 +0000 (13:28 -0400)]
Arm64 Fix Rtl*Context (#25745)

Fix issues related to save restore of FPCR/FPSR/V0/V31

There were several bugs in the assembly causing FPCR/FPSR
to overwrite V0 on RtlCaptureContext.  Then restore from V0 on
RtlRestoreContext

4 years agoUpdate compiler version with nullable fixes
Stephen Toub [Wed, 17 Jul 2019 21:52:25 +0000 (17:52 -0400)]
Update compiler version with nullable fixes

4 years agoMake all event types nullable (#25752)
Stephen Toub [Wed, 17 Jul 2019 20:38:09 +0000 (16:38 -0400)]
Make all event types nullable (#25752)

Late-breaking design change: all events should be declared with nullable delegate types.

4 years agoRemove now unnecessary !s / TODO-NULLABLE comments (#25749)
Stephen Toub [Wed, 17 Jul 2019 17:01:37 +0000 (13:01 -0400)]
Remove now unnecessary !s / TODO-NULLABLE comments (#25749)

* Remove !s and TODO-NULLABLE comments for [DoesNotReturn]

* Remove !s and TODO-NULLABLE comments for [NotNullIfNotNull]

* Remove !s and TODO-NULLABLE comments for writes via Interlocked.CompareExchange

* Remove !s and TODO-NULLABLE comments for Debug.Assert on fields

* Update/add several TODO-NULLABLE comments

4 years agoFix nullability warnings from compiler update
Santiago Fernandez Madero [Wed, 17 Jul 2019 00:22:54 +0000 (17:22 -0700)]
Fix nullability warnings from compiler update

4 years agoTemporarily make a default interface method test incompatible for GCStress (#25747)
Koundinya Veluri [Wed, 17 Jul 2019 21:14:26 +0000 (14:14 -0700)]
Temporarily make a default interface method test incompatible for GCStress (#25747)

Related to https://github.com/dotnet/coreclr/issues/25690
Port of https://github.com/dotnet/coreclr/pull/25746

4 years agoMerge pull request #25734 from dotnet-maestro-bot/merge/master-to-release/3.0
William Godbe [Wed, 17 Jul 2019 01:55:52 +0000 (18:55 -0700)]
Merge pull request #25734 from dotnet-maestro-bot/merge/master-to-release/3.0

[automated] Merge branch 'master' => 'release/3.0'

4 years agoMerge branch 'release/3.0' into merge/master-to-release/3.0
William Godbe [Tue, 16 Jul 2019 22:18:18 +0000 (15:18 -0700)]
Merge branch 'release/3.0' into merge/master-to-release/3.0

4 years agoDisable debugger evaluation of ValueTask<T>.Result (#25727)
Stephen Toub [Tue, 16 Jul 2019 19:28:53 +0000 (15:28 -0400)]
Disable debugger evaluation of ValueTask<T>.Result (#25727)

If the debugger evaluates a `ValueTask<T>`'s `Result`, that counts as the "you should only consume a `ValueTask<T>`" once, and ends up breaking / hanging / throwing exceptions and other bad stuff while stepping through code in the debugger.

This commit addresses that in two ways:
1. Adds `[DebuggerBrowsable(Never)]` to `Result` to prevent it from showing up in debugger views.
2. Adds a NotifyOfCrossThreadDependency call to its ToString.  This prevents the debugger from using ToString to show an implicit representation of the instance, and it forces the developer explicitly trying to access ToString (e.g. in the watch window) to click a button acknowleding the impact.

(Post 3.0, we should consider removing the `ValueTask<T>.ToString()` override altogether.)

4 years agoUpdate dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimizati...
dotnet-maestro[bot] [Tue, 16 Jul 2019 15:08:09 +0000 (15:08 +0000)]
Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20190716.1 (#25721)

- optimization.IBC.CoreCLR - 99.99.99-master-20190716.1
- optimization.PGO.CoreCLR - 99.99.99-master-20190716.1

4 years agoUpdate the execution strategy doc (#25717)
Michal Strehovský [Tue, 16 Jul 2019 14:36:01 +0000 (16:36 +0200)]
Update the execution strategy doc (#25717)

Addressing post-merge feedback.

4 years agoAdd missing Arm64 specific diagnostic code (#25695)
Steve MacLean [Tue, 16 Jul 2019 14:06:52 +0000 (10:06 -0400)]
Add missing Arm64 specific diagnostic code (#25695)

* Arm64 ICorDebugRegisterSet float support
* Arm64 ICorDebugRegisterSet2 implementation
* Add arm64 VLT_REG_FP case
* Arm64 add funceval GetRegister SetRegister support

4 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190715.4 (#25710)
dotnet-maestro[bot] [Tue, 16 Jul 2019 13:24:01 +0000 (09:24 -0400)]
Update dependencies from https://github.com/dotnet/arcade build 20190715.4 (#25710)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19365.4
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19365.4
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19365.4
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19365.4

4 years agoAdd EventPipe/DiagnosticsIpc tests (#25457)
John Salem [Tue, 16 Jul 2019 00:28:57 +0000 (17:28 -0700)]
Add EventPipe/DiagnosticsIpc tests (#25457)

* Add Microsoft.Diagnostics.Tools.RuntimeClient to dependencies.props
* add EventPipe tests for provider coherence, buffer size resilience, and rundown event presence

4 years agoMerge pull request dotnet/corert#7397 from dotnet-bot/from-tfs
Michal Strehovský [Mon, 6 May 2019 11:16:10 +0000 (13:16 +0200)]
Merge pull request dotnet/corert#7397 from dotnet-bot/from-tfs

Merge changes from TFS

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
4 years ago[master] Update dependencies from dotnet/arcade (#25685)
dotnet-maestro[bot] [Mon, 15 Jul 2019 19:16:04 +0000 (12:16 -0700)]
[master] Update dependencies from dotnet/arcade (#25685)

* Update dependencies from https://github.com/dotnet/arcade build 20190713.1

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19363.1
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19363.1
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19363.1
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19363.1

* Update dependencies from https://github.com/dotnet/arcade build 20190714.1

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19364.1
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19364.1
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19364.1
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19364.1

4 years ago[master] Update dependencies from dnceng/internal/dotnet-optimization (#25688)
dotnet-maestro[bot] [Mon, 15 Jul 2019 19:15:34 +0000 (12:15 -0700)]
[master] Update dependencies from dnceng/internal/dotnet-optimization (#25688)

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20190714.1

- optimization.IBC.CoreCLR - 99.99.99-master-20190714.1
- optimization.PGO.CoreCLR - 99.99.99-master-20190714.1

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20190715.1

- optimization.IBC.CoreCLR - 99.99.99-master-20190715.1
- optimization.PGO.CoreCLR - 99.99.99-master-20190715.1

4 years agoAdd doc about code generation in CoreCLR (#25693)
Michal Strehovský [Mon, 15 Jul 2019 15:56:43 +0000 (17:56 +0200)]
Add doc about code generation in CoreCLR (#25693)

Something to serve as an entry point to the various code generation and execution technologies in CoreCLR - R2R, tiered compilation, how they fit in.

4 years ago[master] Update dependencies from dotnet/corefx (#25686)
dotnet-maestro[bot] [Mon, 15 Jul 2019 15:37:04 +0000 (08:37 -0700)]
[master] Update dependencies from dotnet/corefx (#25686)

- Microsoft.NETCore.Platforms - 3.0.0-preview8.19364.1
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview8.19364.1

4 years ago[master] Update dependencies from dotnet/core-setup (#25687)
dotnet-maestro[bot] [Mon, 15 Jul 2019 15:36:45 +0000 (08:36 -0700)]
[master] Update dependencies from dotnet/core-setup (#25687)

Microsoft.NETCore.App - 3.0.0-preview8-27914-06

4 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190712.5 (#25677)
dotnet-maestro[bot] [Sat, 13 Jul 2019 22:15:59 +0000 (15:15 -0700)]
Update dependencies from https://github.com/dotnet/arcade build 20190712.5 (#25677)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19362.5
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19362.5
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19362.5
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19362.5

4 years agoUpdate dependencies from https://github.com/dotnet/corefx build 20190712.11 (#25678)
dotnet-maestro[bot] [Sat, 13 Jul 2019 22:15:47 +0000 (15:15 -0700)]
Update dependencies from https://github.com/dotnet/corefx build 20190712.11 (#25678)

- Microsoft.NETCore.Platforms - 3.0.0-preview8.19362.11
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview8.19362.11

4 years agoUpdate dependencies from https://github.com/dotnet/core-setup build 20190712.15 ...
dotnet-maestro[bot] [Sat, 13 Jul 2019 22:15:37 +0000 (15:15 -0700)]
Update dependencies from https://github.com/dotnet/core-setup build 20190712.15 (#25679)

- Microsoft.NETCore.App - 3.0.0-preview8-27912-15

4 years agoFix use of uninitialized variables in managed decimal implementation (#25674)
Jan Kotas [Sat, 13 Jul 2019 22:15:17 +0000 (15:15 -0700)]
Fix use of uninitialized variables in managed decimal implementation (#25674)

4 years agoUpdate dependencies from https://github.com/dotnet/corefx build 20190711.13 (#25663)
dotnet-maestro[bot] [Sat, 13 Jul 2019 01:15:50 +0000 (18:15 -0700)]
Update dependencies from https://github.com/dotnet/corefx build 20190711.13 (#25663)

- Microsoft.NETCore.Platforms - 3.0.0-preview8.19361.13
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview8.19361.13

4 years agoHandle nullable attributes on platforms that lack them
Stephen Toub [Thu, 30 May 2019 05:05:11 +0000 (01:05 -0400)]
Handle nullable attributes on platforms that lack them

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
4 years agoFixes when accessing fgn_maxgen_percent (#25650)
Andy Hanson [Fri, 12 Jul 2019 23:20:52 +0000 (16:20 -0700)]
Fixes when accessing fgn_maxgen_percent (#25650)

* Fixes when accessing fgn_maxgen_percent

PR #25350 changed `fgn_maxgen_percent` to be a per-heap property when
`MULTIPLE_HEAPS` is set. A few uses need to be updated.

* In `full_gc_wait`, must re-read `fgn_maxgen_percent` before the
  second test of `maxgen_percent == 0`.
  (Otherwise the second test is statically unreachable.)
* In RegisterForFullGCNotification, must set `fgn_maxgen_percent` when
  `MULTIPLE_HEAPS` is not set
* In CancelFullGCNotification, must set `fgn_maxgen_percent` for each
  heap separately when `MULTIPLE_HEAPS` is set.

Fix dotnet/corefx#39374

* Avoid duplicate code when getting fgn_maxgen_percent twice in full_gc_wait

5 years agoFrkaya/gccfix07102019 (#25624)
Sinan Kaya [Fri, 12 Jul 2019 19:45:28 +0000 (15:45 -0400)]
Frkaya/gccfix07102019 (#25624)

* Remove duplicate definition

* Fix conversion error

* 1ui64 doesn't exist on GCC

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190711.7 (#25662)
dotnet-maestro[bot] [Fri, 12 Jul 2019 14:58:27 +0000 (07:58 -0700)]
Update dependencies from https://github.com/dotnet/arcade build 20190711.7 (#25662)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19361.7
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19361.7
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19361.7
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19361.7

5 years agoUpdate dependencies from https://github.com/dotnet/core-setup build 20190712.01 ...
dotnet-maestro[bot] [Fri, 12 Jul 2019 14:58:15 +0000 (07:58 -0700)]
Update dependencies from https://github.com/dotnet/core-setup build 20190712.01 (#25664)

- Microsoft.NETCore.App - 3.0.0-preview8-27912-01

5 years agoPerfMap should output file offset instead of RVAs (#25638)
Andrew Au [Thu, 11 Jul 2019 21:37:46 +0000 (14:37 -0700)]
PerfMap should output file offset instead of RVAs (#25638)

5 years agoFix GS cookie check on ARM in functions with stackalloc (#25628)
Jan Vorlicek [Thu, 11 Jul 2019 21:26:14 +0000 (23:26 +0200)]
Fix GS cookie check on ARM in functions with stackalloc (#25628)

* 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.

5 years ago[master] Update dependencies from dotnet/core-setup (#25613)
dotnet-maestro[bot] [Thu, 11 Jul 2019 20:57:15 +0000 (13:57 -0700)]
[master] Update dependencies from dotnet/core-setup (#25613)

* Update dependencies from https://github.com/dotnet/core-setup build 20190708.08

- Microsoft.NETCore.App - 3.0.0-preview8-27908-08

* Update dependencies from https://github.com/dotnet/core-setup build 20190710.01

- Microsoft.NETCore.App - 3.0.0-preview8-27910-01

* Update dependencies from https://github.com/dotnet/core-setup build 20190711.01

- Microsoft.NETCore.App - 3.0.0-preview8-27911-01

5 years ago[master] Update dependencies from dotnet/corefx (#25612)
dotnet-maestro[bot] [Thu, 11 Jul 2019 20:53:49 +0000 (13:53 -0700)]
[master] Update dependencies from dotnet/corefx (#25612)

* Update dependencies from https://github.com/dotnet/corefx build 20190708.6

- Microsoft.NETCore.Platforms - 3.0.0-preview8.19358.6
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview8.19358.6

* Update dependencies from https://github.com/dotnet/corefx build 20190710.1

- Microsoft.NETCore.Platforms - 3.0.0-preview8.19360.1
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview8.19360.1

* Update dependencies from https://github.com/dotnet/corefx build 20190710.10

- Microsoft.NETCore.Platforms - 3.0.0-preview8.19360.10
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview8.19360.10

5 years ago[master] Update dependencies from dotnet/arcade (#25611)
dotnet-maestro[bot] [Thu, 11 Jul 2019 20:18:18 +0000 (13:18 -0700)]
[master] Update dependencies from dotnet/arcade (#25611)

* Update dependencies from https://github.com/dotnet/arcade build 20190709.1

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19359.1
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19359.1
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19359.1
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19359.1

* Update dependencies from https://github.com/dotnet/arcade build 20190709.6

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19359.6
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19359.6
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19359.6
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19359.6

* Update dependencies from https://github.com/dotnet/arcade build 20190710.8

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19360.8
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19360.8
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19360.8
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19360.8

5 years agoSystem.GC.HeapHardLimit and .HeapHardLimitPercent in runtimeconfig.json (#25574)
Andy Hanson [Thu, 11 Jul 2019 20:14:34 +0000 (13:14 -0700)]
System.GC.HeapHardLimit and .HeapHardLimitPercent in runtimeconfig.json (#25574)

* 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

5 years ago[master] Update dependencies from dnceng/internal/dotnet-optimization (#25614)
dotnet-maestro[bot] [Thu, 11 Jul 2019 20:13:09 +0000 (20:13 +0000)]
[master] Update dependencies from dnceng/internal/dotnet-optimization (#25614)

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20190709.1

- optimization.IBC.CoreCLR - 99.99.99-master-20190709.1
- optimization.PGO.CoreCLR - 99.99.99-master-20190709.1

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20190710.1

- optimization.IBC.CoreCLR - 99.99.99-master-20190710.1
- optimization.PGO.CoreCLR - 99.99.99-master-20190710.1

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20190711.1

- optimization.IBC.CoreCLR - 99.99.99-master-20190711.1
- optimization.PGO.CoreCLR - 99.99.99-master-20190711.1

5 years agoFix handling of NullReferenceException in VSD on ARM (#25627)
Jan Vorlicek [Thu, 11 Jul 2019 18:11:12 +0000 (20:11 +0200)]
Fix handling of NullReferenceException in VSD on ARM (#25627)

* 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.

5 years agoFix build break in TimerQueue.Portable.cs
Jan Kotas [Thu, 11 Jul 2019 00:03:03 +0000 (17:03 -0700)]
Fix build break in TimerQueue.Portable.cs

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
5 years agoRemove stale nullable !s and pragmas (#25640)
Stephen Toub [Thu, 11 Jul 2019 17:05:51 +0000 (13:05 -0400)]
Remove stale nullable !s and pragmas (#25640)

Also update TODO-NULLABLE comments to be more specific where appropriate.

5 years agoArm64 debug issues (#25636)
Steve MacLean [Thu, 11 Jul 2019 16:50:01 +0000 (12:50 -0400)]
Arm64 debug issues (#25636)

* Fix arm64 dbgipcevents inconsistency

* Fix arm64 register names

5 years agorefresh GC reliability tests (#25622)
Vladimir Sadov [Thu, 11 Jul 2019 03:33:58 +0000 (20:33 -0700)]
refresh GC reliability tests (#25622)

* refresh GC reliability tests

* Update stress instructions (PR feedback)

5 years agoAdd AggressiveInlining to Single.GetHashCode (#25633)
Stephen Toub [Wed, 10 Jul 2019 23:12:38 +0000 (19:12 -0400)]
Add AggressiveInlining to Single.GetHashCode (#25633)

5 years agoLet EventPipe threads sleep when no events are available (#25601)
David Mason [Wed, 10 Jul 2019 05:33:24 +0000 (22:33 -0700)]
Let EventPipe threads sleep when no events are available (#25601)

 Don't spin forever in EventListener when listening for EventPipe data

5 years agoFix Timer argument exception parameter names (#25617)
Stephen Toub [Wed, 10 Jul 2019 00:18:11 +0000 (20:18 -0400)]
Fix Timer argument exception parameter names (#25617)

5 years agoFix regression in Timers with long timeouts (#25604)
Stephen Toub [Tue, 9 Jul 2019 13:26:38 +0000 (09:26 -0400)]
Fix regression in Timers with long timeouts (#25604)

* Fix regression in Timers with long timeouts

Early in .NET Core 3.0, we added an important optimization to significantly reduce lock contention and CPU overheads in situations where lots of timers were firing.  The optimization worked by splitting the set of timers into those expected to fire in the very near future and then everything else.  However, for really long timers (e.g. > 24 days), due to integer overflows we can accidentally put a long timer onto the short list and cause a timer that shouldn’t fire for days to instead fire in milliseconds.  This is not the first such bug we’ve had in Timer, and there is a fair amount of complicated casting (that we sometimes get wrong, obviously) in order to keep the tick count usage within the Int32 domain.  This PR addresses the problem (and hopefully others in the future) by switching over to using Int64.  We’re already paying to get 64-bit tick counts on both Windows and Unix, so this just removes truncation that was being performed, does a little more addition/comparison with 64-bit values instead of with 32-bit, and stores an Int64 instead of Int32 in each TimerQueueTimer.  On 64-bit, this has a 0 increase in memory consumption, as it simply ends up utilizing padding space that was previously in TimerQueueTimer.  On 32-bit, it increases memory allocation when creating a Timer by 4 bytes from 80 to 84 (still 3 allocations), but I believe it’s the right trade-off for reduced complexity and bug likelihood.

* Address PR feedback

5 years agoAdding DisplayUnits property to all the runtime counters (#25598)
Sung Yoon Whang [Mon, 8 Jul 2019 23:32:44 +0000 (16:32 -0700)]
Adding DisplayUnits property to all the runtime counters (#25598)

5 years agoReturn HardLimitBytes from GCMemoryInfo.TotalAvailableMemoryBytes (#25437)
Andy Hanson [Mon, 8 Jul 2019 23:12:06 +0000 (16:12 -0700)]
Return HardLimitBytes from GCMemoryInfo.TotalAvailableMemoryBytes (#25437)

* 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"

5 years agoAdd arm64 floatconversion.S (#25597)
Steve MacLean [Mon, 8 Jul 2019 21:36:31 +0000 (17:36 -0400)]
Add arm64 floatconversion.S (#25597)

* Add arm64 floatconversion.S

* Update comment

5 years agoUpdate dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimizati...
dotnet-maestro[bot] [Mon, 8 Jul 2019 15:40:07 +0000 (08:40 -0700)]
Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20190708.1 (#25594)

- optimization.IBC.CoreCLR - 99.99.99-master-20190708.1
- optimization.PGO.CoreCLR - 99.99.99-master-20190708.1

5 years agoUpdate dependencies from https://github.com/dotnet/core-setup build 20190707.09 ...
dotnet-maestro[bot] [Mon, 8 Jul 2019 15:39:23 +0000 (08:39 -0700)]
Update dependencies from https://github.com/dotnet/core-setup build 20190707.09 (#25593)

- Microsoft.NETCore.App - 3.0.0-preview8-27907-09

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190708.1 (#25591)
dotnet-maestro[bot] [Mon, 8 Jul 2019 14:32:42 +0000 (07:32 -0700)]
Update dependencies from https://github.com/dotnet/arcade build 20190708.1 (#25591)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19358.1
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19358.1
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19358.1
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19358.1

5 years agoFixes spelling
Matt Galbraith [Sun, 7 Jul 2019 15:09:02 +0000 (08:09 -0700)]
Fixes spelling

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190706.1 (#25582)
dotnet-maestro[bot] [Sun, 7 Jul 2019 15:07:03 +0000 (08:07 -0700)]
Update dependencies from https://github.com/dotnet/arcade build 20190706.1 (#25582)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19356.1
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19356.1
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19356.1
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19356.1

5 years agoUpdate dependencies from https://github.com/dotnet/corefx build 20190706.5 (#25583)
dotnet-maestro[bot] [Sun, 7 Jul 2019 15:06:52 +0000 (08:06 -0700)]
Update dependencies from https://github.com/dotnet/corefx build 20190706.5 (#25583)

- Microsoft.NETCore.Platforms - 3.0.0-preview8.19356.5
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview8.19356.5

5 years agoUpdate dependencies from https://github.com/dotnet/core-setup build 20190706.07 ...
dotnet-maestro[bot] [Sun, 7 Jul 2019 15:06:43 +0000 (08:06 -0700)]
Update dependencies from https://github.com/dotnet/core-setup build 20190706.07 (#25584)

- Microsoft.NETCore.App - 3.0.0-preview8-27906-07

5 years agoUpdate dependencies from https://github.com/dotnet/core-setup build 20190705.12 ...
dotnet-maestro[bot] [Sat, 6 Jul 2019 16:48:06 +0000 (09:48 -0700)]
Update dependencies from https://github.com/dotnet/core-setup build 20190705.12 (#25578)

- Microsoft.NETCore.App - 3.0.0-preview8-27905-12

5 years agoUpdate dependencies from https://github.com/dotnet/corefx build 20190705.7 (#25577)
dotnet-maestro[bot] [Sat, 6 Jul 2019 15:35:06 +0000 (08:35 -0700)]
Update dependencies from https://github.com/dotnet/corefx build 20190705.7 (#25577)

- Microsoft.NETCore.Platforms - 3.0.0-preview8.19355.7
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview8.19355.7

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190705.2 (#25576)
dotnet-maestro[bot] [Sat, 6 Jul 2019 15:24:45 +0000 (08:24 -0700)]
Update dependencies from https://github.com/dotnet/arcade build 20190705.2 (#25576)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19355.2
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19355.2
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19355.2
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19355.2

5 years agoUpdate dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimizati...
dotnet-maestro[bot] [Sat, 6 Jul 2019 15:24:35 +0000 (08:24 -0700)]
Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20190706.1 (#25579)

- optimization.IBC.CoreCLR - 99.99.99-master-20190706.1
- optimization.PGO.CoreCLR - 99.99.99-master-20190706.1

5 years agofix merge error (#25573)
Maoni Stephens [Sat, 6 Jul 2019 07:09:32 +0000 (00:09 -0700)]
fix merge error (#25573)

5 years ago[master] Update dependencies from dotnet/corefx (#25564)
dotnet-maestro[bot] [Fri, 5 Jul 2019 23:12:43 +0000 (16:12 -0700)]
[master] Update dependencies from dotnet/corefx (#25564)

- Microsoft.NETCore.Platforms - 3.0.0-preview8.19354.4
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview8.19354.4

* Disable failing test

5 years agoRe-enable Microsoft.VisualBasic tests (#25572)
Sergiy Kuryata [Fri, 5 Jul 2019 20:03:34 +0000 (13:03 -0700)]
Re-enable Microsoft.VisualBasic tests (#25572)

5 years agomany core (#25350)
Maoni Stephens [Fri, 5 Jul 2019 19:48:34 +0000 (12:48 -0700)]
many core (#25350)

5 years ago[master] Update dependencies from dnceng/internal/dotnet-optimization (#25566)
dotnet-maestro[bot] [Fri, 5 Jul 2019 16:17:42 +0000 (09:17 -0700)]
[master] Update dependencies from dnceng/internal/dotnet-optimization (#25566)

- optimization.IBC.CoreCLR - 99.99.99-master-20190705.1
- optimization.PGO.CoreCLR - 99.99.99-master-20190705.1

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190704.2 (#25569)
dotnet-maestro[bot] [Fri, 5 Jul 2019 16:15:37 +0000 (09:15 -0700)]
Update dependencies from https://github.com/dotnet/arcade build 20190704.2 (#25569)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19354.2
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19354.2
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19354.2
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19354.2

5 years agoUpdate dependencies from https://github.com/dotnet/core-setup build 20190704.08 ...
dotnet-maestro[bot] [Fri, 5 Jul 2019 16:15:26 +0000 (09:15 -0700)]
Update dependencies from https://github.com/dotnet/core-setup build 20190704.08 (#25570)

- Microsoft.NETCore.App - 3.0.0-preview8-27904-08

5 years agoFix instantiation stub maker for case where no register is used by function parameter...
Fadi Hanna [Fri, 5 Jul 2019 04:48:48 +0000 (21:48 -0700)]
Fix instantiation stub maker for case where no register is used by function parameters (#25558)

* Fix instantiation stub maker for case where no register is used by function parameters

5 years agoUpdate dependencies from https://github.com/dotnet/core-setup build 20190703.14 ...
dotnet-maestro[bot] [Thu, 4 Jul 2019 22:06:23 +0000 (15:06 -0700)]
Update dependencies from https://github.com/dotnet/core-setup build 20190703.14 (#25565)

- Microsoft.NETCore.App - 3.0.0-preview8-27903-14

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190703.19 (#25563)
dotnet-maestro[bot] [Thu, 4 Jul 2019 14:29:21 +0000 (07:29 -0700)]
Update dependencies from https://github.com/dotnet/arcade build 20190703.19 (#25563)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19353.19
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19353.19
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19353.19
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19353.19

5 years agoFix dotnet-dump/createdump launch failure (#25562)
Mike McLaughlin [Thu, 4 Jul 2019 14:07:51 +0000 (07:07 -0700)]
Fix dotnet-dump/createdump launch failure (#25562)

On CentOS or OpenSUSE dotnet-dump collect fails but a
valid coredump is generated. The "prctl()" call is failing
that gives the child createdump process permission to ptrace
to the runtime process. On CentOS/OpenSUSE the PR_SET_PTRACER
option isn't supported and not needed.

Issue: https://github.com/dotnet/diagnostics/issues/334

5 years agoRemove legacy resource value (PrivateBuild) in binaries. (#25560)
Aaron Robinson [Thu, 4 Jul 2019 04:38:04 +0000 (21:38 -0700)]
Remove legacy resource value (PrivateBuild) in binaries. (#25560)

* Remove legacy resource value (PrivateBuild) in binaries.

* Never set the private file flag on the binary

5 years agoFix getting rundown events during EventPipe::Shutdown (#25450)
José Rivero [Thu, 4 Jul 2019 03:05:22 +0000 (20:05 -0700)]
Fix getting rundown events during EventPipe::Shutdown (#25450)

5 years agoarm64singlestepper (#25512)
Steve MacLean [Thu, 4 Jul 2019 02:29:07 +0000 (22:29 -0400)]
arm64singlestepper (#25512)

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

5 years agoPrevent EventPipe rundown from blocking on write (#25523)
John Salem [Thu, 4 Jul 2019 00:52:53 +0000 (17:52 -0700)]
Prevent EventPipe rundown from blocking on write (#25523)

* 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

5 years agoAdd check to prevent attaching a profiler when one is already present (#25520)
David Mason [Thu, 4 Jul 2019 00:15:47 +0000 (17:15 -0700)]
Add check to prevent attaching a profiler when one is already present (#25520)

* Don't load multiple profilers

* add comment

* Move check to LoadProfiler, and eliminate race condition between attach profiler and startup profiled

5 years agoEnable coredumps on unix (#25551)
Jarret Shook [Wed, 3 Jul 2019 23:23:22 +0000 (16:23 -0700)]
Enable coredumps on unix (#25551)

* Enable coredumps on unix

* Remove morph change

5 years agoFix GCStress modes that do code instrumentation to work with code versioning (#25261)
Koundinya Veluri [Wed, 3 Jul 2019 23:22:31 +0000 (16:22 -0700)]
Fix GCStress modes that do code instrumentation to work with code versioning (#25261)

- SOS changes are in https://github.com/dotnet/diagnostics/pull/369
- Fixes https://github.com/dotnet/coreclr/issues/17646

5 years agoAdd test for eventcounter (#25555)
Sung Yoon Whang [Wed, 3 Jul 2019 22:50:46 +0000 (15:50 -0700)]
Add test for eventcounter (#25555)

5 years agoUpdate dependencies from https://github.com/dotnet/corefx build 20190702.11 (#25549)
dotnet-maestro[bot] [Wed, 3 Jul 2019 19:03:02 +0000 (12:03 -0700)]
Update dependencies from https://github.com/dotnet/corefx build 20190702.11 (#25549)

- Microsoft.NETCore.Platforms - 3.0.0-preview8.19352.11
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview8.19352.11

5 years ago[master] Update dependencies from dnceng/internal/dotnet-optimization (#25538)
dotnet-maestro[bot] [Wed, 3 Jul 2019 19:02:10 +0000 (12:02 -0700)]
[master] Update dependencies from dnceng/internal/dotnet-optimization (#25538)

- optimization.IBC.CoreCLR - 99.99.99-master-20190703.1
- optimization.PGO.CoreCLR - 99.99.99-master-20190703.1

5 years ago[master] Update dependencies from dotnet/core-setup (#25537)
dotnet-maestro[bot] [Wed, 3 Jul 2019 19:01:09 +0000 (12:01 -0700)]
[master] Update dependencies from dotnet/core-setup (#25537)

- Microsoft.NETCore.App - 3.0.0-preview8-27903-01

5 years agoCleanup IL linker heuristic usage (#25547)
Jan Kotas [Wed, 3 Jul 2019 15:59:25 +0000 (08:59 -0700)]
Cleanup IL linker heuristic usage (#25547)

Prep-work for using mainstream IL linker

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190702.7 (#25548)
dotnet-maestro[bot] [Wed, 3 Jul 2019 15:59:01 +0000 (08:59 -0700)]
Update dependencies from https://github.com/dotnet/arcade build 20190702.7 (#25548)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19352.7
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19352.7
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19352.7
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19352.7

5 years agoDelete some dead code (#25546)
Jan Kotas [Wed, 3 Jul 2019 07:34:50 +0000 (00:34 -0700)]
Delete some dead code (#25546)

5 years agoAdd a new CompilationDiagnostic ETW Keyword (#25544)
Brian Robbins [Wed, 3 Jul 2019 05:50:26 +0000 (22:50 -0700)]
Add a new CompilationDiagnostic ETW Keyword (#25544)

5 years agoMerge ReadyToRunInfo::GenericMethodIterator in to ReadyToRunInfo::MethodIterator...
David Mason [Wed, 3 Jul 2019 01:30:43 +0000 (18:30 -0700)]
Merge ReadyToRunInfo::GenericMethodIterator in to ReadyToRunInfo::MethodIterator (#25518)

5 years agoEnsure YIELD_WHILE() in EventPipeBufferManager::SuspendWriteEvent() always terminates...
Andrew Au [Tue, 2 Jul 2019 23:35:40 +0000 (16:35 -0700)]
Ensure YIELD_WHILE() in EventPipeBufferManager::SuspendWriteEvent() always terminates (#25491)

5 years agoMerge pull request #25540 from MattGal/update-more-docker-images
Matt Galbraith [Tue, 2 Jul 2019 22:13:35 +0000 (15:13 -0700)]
Merge pull request #25540 from MattGal/update-more-docker-images

Fix all remaining Python 2 Helix Docker images

5 years agoRemove test method exclusions addressed in https://github.com/dotnet/corefx/pull...
Egor Chesakov [Tue, 2 Jul 2019 18:24:57 +0000 (11:24 -0700)]
Remove test method exclusions addressed in https://github.com/dotnet/corefx/pull/38856 (#25389)

5 years agoThis should finish off updating all of CoreCLR's images to versions supporting python...
Matt Galbraith [Tue, 2 Jul 2019 17:12:01 +0000 (10:12 -0700)]
This should finish off updating all of CoreCLR's images to versions supporting python 3 from https://github.com/dotnet/dotnet-buildtools-prereqs-docker (also saves some time by preinstalling virtualenv stuff)

5 years agoUpdate dependencies from https://github.com/dotnet/corefx build 20190702.1 (#25536)
dotnet-maestro[bot] [Tue, 2 Jul 2019 14:48:22 +0000 (07:48 -0700)]
Update dependencies from https://github.com/dotnet/corefx build 20190702.1 (#25536)

- Microsoft.NETCore.Platforms - 3.0.0-preview8.19352.1
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview8.19352.1

5 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20190701.4 (#25535)
dotnet-maestro[bot] [Tue, 2 Jul 2019 14:48:09 +0000 (07:48 -0700)]
Update dependencies from https://github.com/dotnet/arcade build 20190701.4 (#25535)

- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19351.4
- Microsoft.DotNet.Build.Tasks.Feed - 2.2.0-beta.19351.4
- Microsoft.DotNet.Build.Tasks.Packaging - 1.0.0-beta.19351.4
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19351.4

5 years agoUse Array.MaxArrayLength in ArrayList (#25530)
Michal Strehovský [Tue, 2 Jul 2019 13:33:16 +0000 (15:33 +0200)]
Use Array.MaxArrayLength in ArrayList (#25530)

Now that `ArrayList` is in CoreLib, we don't need the copy.

5 years agoReduce allocations in GetLocale() (#25531)
Ilya [Tue, 2 Jul 2019 12:54:03 +0000 (17:54 +0500)]
Reduce allocations in GetLocale() (#25531)

5 years agoAdd RundownRequested switch to EventPipe IPC protocol (#25495)
Sung Yoon Whang [Tue, 2 Jul 2019 07:08:30 +0000 (00:08 -0700)]
Add RundownRequested switch to EventPipe IPC protocol (#25495)

* 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

5 years agoDecrease EventListener buffer size (#25526)
Sung Yoon Whang [Tue, 2 Jul 2019 06:19:07 +0000 (23:19 -0700)]
Decrease EventListener buffer size (#25526)

* Reduce the default EventPipe circularBufferSize to 10MB for EventListener sessions

* make it a static var instead of random # in the code

5 years agotest DisplayUnits/DisplayRateTimeScale properties (#25525)
Sung Yoon Whang [Tue, 2 Jul 2019 05:25:31 +0000 (22:25 -0700)]
test DisplayUnits/DisplayRateTimeScale properties (#25525)

5 years agoUse AssemblyLoadContext from shared partition (dotnet/corert#7570)
Michal Strehovský [Mon, 1 Jul 2019 05:15:28 +0000 (07:15 +0200)]
Use AssemblyLoadContext from shared partition (dotnet/corert#7570)

We were missing methods that got added for 3.0. The only LoadContext that works is the default one though.

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
5 years agoDelete dead code (#25513)
Jan Kotas [Tue, 2 Jul 2019 02:46:37 +0000 (19:46 -0700)]
Delete dead code (#25513)