Skip to content

Commit

Permalink
Merge branch 'main' into BumpMaintenancePackagesDependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
carlossanlop authored Nov 5, 2024
2 parents 60304b7 + e94d94c commit ab18a6b
Show file tree
Hide file tree
Showing 183 changed files with 5,273 additions and 5,145 deletions.
86 changes: 43 additions & 43 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -19,49 +19,49 @@

# Mono Code Owners

/src/mono @marek-safar

/src/mono/llvm @lambdageek @steveisok

/src/mono/mono/arch @lambdageek @steveisok
/src/mono/mono/eglib @lambdageek @steveisok

/src/mono/mono/metadata @lambdageek @thaystg
/src/mono/mono/metadata/*-win* @lateralusX @lambdageek
/src/mono/mono/metadata/handle* @lambdageek @steveisok
/src/mono/mono/metadata/monitor* @brzvlad @steveisok
/src/mono/mono/metadata/sgen* @brzvlad @lambdageek
/src/mono/mono/metadata/thread* @lateralusX @lambdageek
/src/mono/mono/metadata/w32* @lateralusX @lambdageek

/src/mono/mono/eventpipe @lateralusX @lambdageek

/src/mono/mono/mini @lambdageek @steveisok
/src/mono/mono/mini/*cfgdump* @lambdageek
/src/mono/mono/mini/*exceptions* @BrzVlad
/src/mono/mono/mini/*llvm* @fanyang-mono @steveisok
/src/mono/mono/mini/*ppc* @lambdageek
/src/mono/mono/mini/*profiler* @BrzVlad @lambdageek
/src/mono/mono/mini/*riscv* @lambdageek @steveisok
/src/mono/mono/mini/*type-check* @lambdageek @steveisok
/src/mono/mono/mini/debugger-agent.c @thaystg @lambdageek
/src/mono/mono/mini/interp/* @BrzVlad @kotlarmilos
/src/mono/mono/mini/interp/*jiterp* @kg
/src/mono/mono/mini/*simd* @fanyang-mono

/src/mono/mono/profiler @BrzVlad @lambdageek
/src/mono/mono/sgen @BrzVlad @lambdageek

/src/mono/mono/utils @lambdageek @steveisok
/src/mono/mono/utils/*-win* @lateralusX @lambdageek
/src/mono/mono/utils/atomic* @lambdageek @steveisok
/src/mono/mono/utils/mono-hwcap* @lambdageek
/src/mono/mono/utils/mono-mem* @lambdageek @steveisok
/src/mono/mono/utils/mono-threads* @lambdageek

/src/mono/dlls @thaystg @lambdageek

/src/native/public/mono @marek-safar @lambdageek
/src/mono @steveisok @vitek-karas

/src/mono/llvm @steveisok @vitek-karas

/src/mono/mono/arch @steveisok @vitek-karas
/src/mono/mono/eglib @steveisok @vitek-karas

/src/mono/mono/metadata @thaystg @steveisok @vitek-karas
/src/mono/mono/metadata/*-win* @lateralusX @steveisok
/src/mono/mono/metadata/handle* @steveisok @vitek-karas
/src/mono/mono/metadata/monitor* @brzvlad @steveisok @vitek-karas
/src/mono/mono/metadata/sgen* @brzvlad @steveisok @vitek-karas
/src/mono/mono/metadata/thread* @lateralusX @steveisok @vitek-karas
/src/mono/mono/metadata/w32* @lateralusX @steveisok @vitek-karas

/src/mono/mono/eventpipe @lateralusX @steveisok @vitek-karas

/src/mono/mono/mini @steveisok @vitek-karas
/src/mono/mono/mini/*cfgdump* @steveisok @vitek-karas
/src/mono/mono/mini/*exceptions* @BrzVlad @steveisok @vitek-karas
/src/mono/mono/mini/*llvm* @steveisok @vitek-karas
/src/mono/mono/mini/*ppc* @steveisok @vitek-karas
/src/mono/mono/mini/*profiler* @BrzVlad @steveisok @vitek-karas
/src/mono/mono/mini/*riscv* @steveisok @vitek-karas
/src/mono/mono/mini/*type-check* @steveisok @vitek-karas
/src/mono/mono/mini/debugger-agent.c @thaystg @steveisok @vitek-karas
/src/mono/mono/mini/interp/* @BrzVlad @kotlarmilos @steveisok @vitek-karas
/src/mono/mono/mini/interp/*jiterp* @kg @steveisok @vitek-karas
/src/mono/mono/mini/*simd* @steveisok @vitek-karas

/src/mono/mono/profiler @BrzVlad @steveisok @vitek-karas
/src/mono/mono/sgen @BrzVlad @steveisok @vitek-karas

/src/mono/mono/utils @steveisok @vitek-karas
/src/mono/mono/utils/*-win* @lateralusX @steveisok @vitek-karas
/src/mono/mono/utils/atomic* @steveisok @vitek-karas
/src/mono/mono/utils/mono-hwcap* @steveisok @vitek-karas
/src/mono/mono/utils/mono-mem* @steveisok @vitek-karas
/src/mono/mono/utils/mono-threads* @steveisok @vitek-karas

/src/mono/dlls @thaystg @steveisok @vitek-karas

/src/native/public/mono @steveisok @vitek-karas
/src/native/external/libunwind @janvorli @AaronRobinsonMSFT @dotnet/dotnet-diag
/src/native/external/libunwind_extras @janvorli @AaronRobinsonMSFT @dotnet/dotnet-diag

Expand Down
11 changes: 6 additions & 5 deletions .github/policies/resourceManagement.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ configuration:
reply: Draft Pull Request was automatically closed for 30 days of inactivity. Please [let us know](https://github.com/dotnet/runtime/blob/main/docs/area-owners.md) if you'd like to reopen it.
eventResponderTasks:
- if:
- isOpen
- or:
- payloadType: Issues
- payloadType: Pull_Request
Expand Down Expand Up @@ -381,8 +382,8 @@ configuration:
then:
- mentionUsers:
mentionees:
- lambdageek
- steveisok
- vitek-karas
replyTemplate: >-
Tagging subscribers to this area: ${mentionees}
Expand All @@ -394,8 +395,8 @@ configuration:
then:
- mentionUsers:
mentionees:
- lambdageek
- steveisok
- vitek-karas
replyTemplate: >-
Tagging subscribers to this area: ${mentionees}
Expand All @@ -407,8 +408,8 @@ configuration:
then:
- mentionUsers:
mentionees:
- fanyang-mono
- steveisok
- vitek-karas
replyTemplate: >-
Tagging subscribers to this area: ${mentionees}
Expand All @@ -421,7 +422,7 @@ configuration:
- mentionUsers:
mentionees:
- steveisok
- lambdageek
- vitek-karas
replyTemplate: >-
Tagging subscribers to this area: ${mentionees}
Expand Down Expand Up @@ -700,7 +701,7 @@ configuration:
then:
- mentionUsers:
mentionees:
- directhex
- akoeplinger
- matouskozak
replyTemplate: >-
Tagging subscribers to this area: ${mentionees}
Expand Down
6 changes: 3 additions & 3 deletions docs/area-owners.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,9 +147,9 @@ Note: Editing this file doesn't update the mapping used by `@msftbot` for area-s
| area-TypeSystem-coreclr | @steveisok | @davidwrighton @MichalStrehovsky @janvorli @mangod9 | |
| area-UWP | @tommcdon | @dotnet/area-uwp | UWP-specific issues including Microsoft.NETCore.UniversalWindowsPlatform and Microsoft.Net.UWPCoreRuntimeSdk |
| area-VM-coreclr | @mangod9 | @mangod9 | |
| area-VM-meta-mono | @steveisok | @lambdageek | |
| area-VM-reflection-mono | @steveisok | @lambdageek | MonoVM-specific reflection and reflection-emit issues |
| area-VM-threading-mono | @mangod9 | @lambdageek | |
| area-VM-meta-mono | @steveisok | @vitek-karas | |
| area-VM-reflection-mono | @steveisok | @vitek-karas | MonoVM-specific reflection and reflection-emit issues |
| area-VM-threading-mono | @mangod9 | @steveisok | |
| area-Workloads | @lewing | @dotnet/net-sdk-workload-contributors | |

## Operating Systems
Expand Down
2 changes: 1 addition & 1 deletion docs/design/coreclr/botr/method-descriptor.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ The slot is either in MethodTable or in MethodDesc itself. The location of the s

The slot is stored in MethodTable for methods that require efficient lookup via slot index, e.g. virtual methods or methods on generic types. The MethodDesc contains the slot index to allow fast lookup of the entry point in this case.

Otherwise, the slot is part of the MethodDesc itself. This arrangement improves data locality and saves working set. Also, it is not even always possible to preallocate a slot in a MethodTable upfront for dynamically created MethodDescs, such as for methods added by Edit & Continue, instantiations of generic methods or [dynamic methods](https://github.com/dotnet/runtime/blob/main/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs).
Otherwise, the slot is part of the MethodDesc itself. This arrangement improves data locality and saves working set. Also, it is not even always possible to preallocate a slot in a MethodTable upfront for dynamically created MethodDescs, such as for methods added by Edit & Continue, instantiations of generic methods or [dynamic methods](https://github.com/dotnet/runtime/blob/main/src/libraries/System.Private.CoreLib/src/System/Reflection/Emit/DynamicMethod.cs).

MethodDesc Chunks
-----------------
Expand Down
8 changes: 8 additions & 0 deletions docs/design/datacontracts/CodeVersions.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,14 @@ NativeCodeVersionHandle ICodeVersions.GetNativeCodeVersionForIP(TargetCodePointe

NativeCodeVersionHandle GetSpecificNativeCodeVersion(MethodDescHandle md, TargetCodePointer startAddress)
{
// "Initial" stage of NativeCodeVersionIterator::Next() with a null m_ilCodeFilter
TargetCodePointer firstNativeCode = rts.GetNativeCode(md);
if (firstNativeCode == startAddress)
{
NativeCodeVersionHandle first = new NativeCodeVersionHandle(md.Address, TargetPointer.Null);
return first;
}
// ImplicitCodeVersion stage of NativeCodeVersionIterator::Next()
TargetPointer methodDescVersioningStateAddress = target.Contracts.RuntimeTypeSystem.GetMethodDescVersioningState(md);
if (methodDescVersioningStateAddress == TargetPointer.Null)
{
Expand Down
11 changes: 11 additions & 0 deletions docs/design/datacontracts/Loader.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ TargetPointer GetThunkHeap(ModuleHandle handle);
TargetPointer GetILBase(ModuleHandle handle);
ModuleLookupTables GetLookupTables(ModuleHandle handle);
TargetPointer GetModuleLookupMapElement(TargetPointer table, uint token, out TargetNUInt flags);
bool IsCollectible(ModuleHandle handle);
```

## Version 1
Expand All @@ -64,6 +65,7 @@ Data descriptors used:
| `ModuleLookupMap` | `SupportedFlagsMask` | Mask for flag bits on lookup map entries |
| `ModuleLookupMap` | `Count` | Number of TargetPointer sized entries in this section of the map |
| `ModuleLookupMap` | `Next` | Pointer to next ModuleLookupMap segment for this map
| `Assembly` | `IsCollectible` | Flag indicating if this is module may be collected

``` csharp
ModuleHandle GetModuleHandle(TargetPointer modulePointer)
Expand Down Expand Up @@ -151,3 +153,12 @@ TargetPointer GetModuleLookupMapElement(TargetPointer table, uint token, out Tar
return TargetPointer.Null;
}
```

```csharp
bool ILoader.IsCollectible(ModuleHandle handle)
{
TargetPointer assembly = _target.ReadPointer(handle.Address + /*Module::Assembly*/);
byte isCollectible = _target.Read<byte>(assembly + /* Assembly::IsCollectible*/);
return isCollectible != 0;
}
```
43 changes: 43 additions & 0 deletions docs/design/datacontracts/ReJIT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Contract ReJIT

This contract encapsulates support for [ReJIT](../features/code-versioning.md) in the runtime.

## APIs of contract

```csharp
bool IsEnabled();
```

## Version 1

Data descriptors used:
| Data Descriptor Name | Field | Meaning |
| --- | --- | --- |
| ProfControlBlock | GlobalEventMask | an `ICorProfiler` `COR_PRF_MONITOR` value |

Global variables used:
| Global Name | Type | Purpose |
| --- | --- | --- |
|ProfilerControlBlock | TargetPointer | pointer to the `ProfControlBlock` |

Contracts used:
| Contract Name |
| --- |

```csharp
// see src/coreclr/inc/corprof.idl
[Flags]
private enum COR_PRF_MONITOR
{
COR_PRF_ENABLE_REJIT = 0x00040000,
}

bool IsEnabled()
{
TargetPointer address = target.ReadGlobalPointer("ProfilerControlBlock");
ulong globalEventMask = target.Read<ulong>(address + /* ProfControlBlock::GlobalEventMask offset*/);
bool profEnabledReJIT = (GlobalEventMask & (ulong)COR_PRF_MONITOR.COR_PRF_ENABLE_REJIT) != 0;
bool clrConfigEnabledReJit = /* host process does not have environment variable DOTNET_ProfAPI_ReJitOnAttach set to 0 */;
return profEnabledReJIT || clrConfigEnabledReJIT;
}
```
Loading

0 comments on commit ab18a6b

Please sign in to comment.