1. 10 8月, 2022 23 次提交
  2. 09 8月, 2022 17 次提交
    • P
      Mark phase prefetching. (#73375) · 45709118
      Peter Sollich 提交于
      This adds prefetching to the mark phase.
      
      The idea is that once we have established that an object is in one of the generations we want to collect, we prefetch its memory before we determine whether we have marked it already. This is because the mark bit is in the object itself, and thus requires accessing the object's memory.
      
      As the prefetching will take some time to take effect, we park the object in a queue (see type mark_queue_t below). We then retrieve an older object from the queue, and test whether it has been marked. This should be faster, because we have issued a prefetch for this older object's memory a while back.
      
      In quite a few places we now need to drain the queue to ensure correctness - see calls to drain_mark_queue().
      45709118
    • P
      [PERF] Fix "x$PERF_PREREQS_INSTALLED was unexpected at this time" Error for... · b8554bee
      Parker Bibus 提交于
      [PERF] Fix "x$PERF_PREREQS_INSTALLED was unexpected at this time" Error for Microbenchmarks (#73584)
      
      * Try double brackets.
      
      * Only use the bash check if running on non-windows machine, added command for running on windows machines.
      
      * Undoing changes to if statement brackets (double to single now) as the double bracket is not necessary.
      
      * Use the correct, previously removed command.
      b8554bee
    • D
      Disable useless warnings (#73598) · 8020c89b
      David Wrighton 提交于
      * Disable useless warnings
      - Detect use of dynamic modules in PGO data processing and skip them instead of generating useless, non-actionable warnings
      - Infrastructure currently used only for dynamic modules, but could be extended in the future to provide a means to ignore assemblies based on the set of assemblies specified on the commandline.
      
      Fixes #68000
      
      * Update src/coreclr/tools/dotnet-pgo/Program.cs
      Co-authored-by: NMichał Petryka <35800402+MichalPetryka@users.noreply.github.com>
      Co-authored-by: NMichał Petryka <35800402+MichalPetryka@users.noreply.github.com>
      8020c89b
    • F
      [Mono] Enable X86Base.Pause test only when LLVM is enabled (#73318) · 3fcbcc2a
      Fan Yang 提交于
      * Enable test only when LLVM is enabled
      
      * Add back SIMD intrinsics support for X86Base.Pause
      
      * Disable test for llvm
      3fcbcc2a
    • J
      JIT: Fix liveness for dependently promoted TYP_LONGs on x86 (#73562) · acc4f230
      Jakob Botsch Nielsen 提交于
      We were only handling uses of promoted locals when varTypeIsStruct(lcl)
      was true. For TYP_LONG promoted locals on x86 it is not.
      
      Fix #73559
      acc4f230
    • A
      [wasm-ep] Remove old sample and JS-based diagnostics (#73586) · f1959180
      Aleksey Kliger (λgeek) 提交于
      * [wasm-ep] remove in-JS VFS tracing support
      
      use the websocket diagnostic server support instead
      
      * remove browser-mt-eventpipe sample
      
      use the browser-threading sample for working with threading
      use the browser-eventpipe sample for working with tracing
      
      * remove the EventPipeSessionOptions, too
      f1959180
    • K
      Set up `HttpClient` for `ClientWebSocket.ConnectAsync` (#73387) · 2cb6c192
      Katya Sokolova 提交于
      * Set up HttpClient for ClientWebSocket.ConnectAsync
      
      * more tests
      
      * Update src/libraries/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Managed.cs
      Co-authored-by: NMiha Zupan <mihazupan.zupan1@gmail.com>
      
      * Apply suggestions from code review
      Co-authored-by: NMiha Zupan <mihazupan.zupan1@gmail.com>
      
      * Refactoring websockets test inheritance
      Co-authored-by: NMiha Zupan <mihazupan.zupan1@gmail.com>
      2cb6c192
    • O
    • K
      Succeed rather than skip JSON tests (#73560) · c99545ca
      Krzysztof Wicher 提交于
      c99545ca
    • P
      More precise writebarrier for regions (#67389) · 063f7b76
      Peter Sollich 提交于
      This introduces a lookup table for regions where we can find the current generation, the planned generation and a couple flags efficiently, i.e. by simple indexing into table.
      
      The table has byte-sized elements where the low 2 bits represent the current generation and the high 2 bits represent the planned generation. The 4 bits in between are available for flags, 2 are used so far, one to show that a region was swept in the plan phase, and one to show that a region was demoted.
      
      The table is used in the mark phase, in the mark_through_cards_helper (which is also called in the relocate_phase), and in the write barriers (for now only the most frequently used ones, Array.Copy has its own way of setting cards that I haven't fixed).
      
      I have changed the write barrier to only set single bits for the case where a pointer to younger generation is stored into an object in an older generation. This costs an interlocked operation in the case the bit is not already set. In the test cases we looked at this is more than compensated by lower cost in card marking. For cases where the cost of the interlocked instruction is too high, an escape hatch has been provided the form of the COMPLUS_GCWriteBarrier setting which can be used to select another flavor of write barrier - either a more precise write barrier for regions, or an imprecise write barrier. Both set whole bytes and thus need no interlocked operations.
      
      The write barrier uses a global ephemeral range to decide quickly whether a stored pointer can be in an ephemeral generation at all. For now, this global ephemeral range is simply set to the address range of the whole heap, to avoid having to update the write barrier on the fly. A slightly more sophisticated approach that takes into account low gen 2 regions is present in the code, but disabled for now.
      063f7b76
    • V
      Avoid additional Pipes msbuild invocation and clean-up project (#73588) · ffd79485
      Viktor Hofer 提交于
      * Avoid additional Pipes invocation and clean-up project
      
      * Update System.IO.Pipes.AccessControl.csproj
      ffd79485
    • M
      Delete some .NET Nativisms (#73553) · f58a7902
      Michal Strehovský 提交于
      * Replace MissingInteropDataException with NotSupportedException
      * Replace MissingRuntimeArtifactException with MissingMetadataException (it was already used as a MME in some spots anyway). I'll try to get rid of MME later.
      * Change the messages to refer to static analysis as the fix, not RD.XML.
      f58a7902
    • I
      [wasm][debugger] Detect `new` keyword in derived members on GetProperties (#73230) · 3c389db9
      Ilona Tomkowicz 提交于
      * Fix of VHO for most test cases.
      
      * Cleanup.
      
      * New testcases with auto-props.
      
      * Adjusted ProtectionLvlTest to new changes.
      3c389db9
    • M
      Delete the "Generating compatible code" message (#73554) · 262f4c2a
      Michal Strehovský 提交于
      We no longer root all assemblies by default and we don't need to advertise the size switches to much. Also, we need to establish what switches we actually want to support (document on docs.microsoft.com) for real.
      262f4c2a
    • H
      Fix ASAN mismatches in DAC (#73549) · b8ffae56
      Hyungju Lee 提交于
      b8ffae56
    • A
    • D
      Refactor input bubble checks to work in non-composite scenarios (#73350) · 760babbd
      David Wrighton 提交于
      * Refactor input bubble checks to work in non-composite scenarios
      - Input bubble checks for making sure that the input bubble is valid are not currently processed for non-composite scenarios
      - Refactor them so that they are not n^2 in cost, and are handled for both composite and non-composite scenarios
      760babbd