Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

Reserve fast dictionary slots for Tier1 code #22619

Merged
merged 1 commit into from
Feb 15, 2019
Merged

Conversation

jkotas
Copy link
Member

@jkotas jkotas commented Feb 15, 2019

Disable use of fast dictionary slots for R2R images when tiered JITing is enabled.

Fixes #22400

Disable use of fast dictionary slots for R2R images when tiered JITing is enabled.

Fixes #22400
@jkotas
Copy link
Member Author

jkotas commented Feb 15, 2019

cc @kouvel @AndyAyersMS @fadimounir

@stephentoub
Copy link
Member

Thanks, Jan.

Fixes #22400

There were several outcomes there from Andy's investigation. Do we have issues for the remaining ones, e.g. making the number of dictionary slots for generic methods dynamic?

@jkotas
Copy link
Member Author

jkotas commented Feb 15, 2019

making the number of dictionary slots for generic methods dynamic?

Opened https://github.com/dotnet/coreclr/issues/22624

@jkotas
Copy link
Member Author

jkotas commented Feb 15, 2019

System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithIPAddress(addressFamily: InterNetwork) [FAIL]
  System.Net.NetworkInformation.PingException : An exception occurred during a Ping request.
  ---- System.ComponentModel.Win32Exception : The operation completed successfully.
  Stack Trace:
     D:\j\workspace\windows-TGrou---74aa877a\src\System.Net.Ping\tests\FunctionalTests\PingTest.cs(749,0): at System.Net.NetworkInformation.Tests.PingTest.SendPingAsync(Func`2 sendPing, Action`1 pingResultValidator)
     D:\j\workspace\windows-TGrou---74aa877a\src\System.Net.Ping\tests\FunctionalTests\PingTest.cs(131,0): at System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithIPAddress(AddressFamily addressFamily)
     --- End of stack trace from previous location where exception was thrown ---
     ----- Inner Stack Trace -----
     F:\vsagent\13\s\src\System.Net.Ping\src\System\Net\NetworkInformation\Ping.Windows.cs(96,0): at System.Net.NetworkInformation.Ping.DoSendPingCore(IPAddress address, Byte[] buffer, Int32 timeout, PingOptions options, Boolean isAsync)
     F:\vsagent\13\s\src\System.Net.Ping\src\System\Net\NetworkInformation\Ping.Windows.cs(42,0): at System.Net.NetworkInformation.Ping.SendPingAsyncCore(IPAddress address, Byte[] buffer, Int32 timeout, PingOptions options)
     F:\vsagent\13\s\src\System.Net.Ping\src\System\Net\NetworkInformation\Ping.cs(331,0): at System.Net.NetworkInformation.Ping.SendPingAsync(IPAddress address, Int32 timeout, Byte[] buffer, PingOptions options)

@jkotas
Copy link
Member Author

jkotas commented Feb 15, 2019

Opened https://github.com/dotnet/corefx/issues/35351 on the CoreFX failure

@jkotas jkotas merged commit bae641f into dotnet:master Feb 15, 2019
@AndyAyersMS
Copy link
Member

Test case over in #22400 now shows:

Prejitted ? Tiered ? Time (ms) Notes
No No 1034
No Yes 1091 small bit of tiering overhead
Yes No 2032 large bit of R2R overhead
Yes Yes 1543 1106 R2R no longer using fast slots

@jkotas jkotas deleted the issue-22400 branch February 17, 2019 05:49
@sergiy-k
Copy link

@AndyAyersMS, the first three rows show exactly the same Time as you shown in https://github.com/dotnet/coreclr/issues/22400. Is it because this change had no effect on those configurations or you just did not re-ran them? I'm in particular interested in row 3.

@AndyAyersMS
Copy link
Member

Jan's change only impacted the last row.

Row 3 is slower than the others because the R2R jit-generated code doesn't check for the fast slot case inline -- it always calls the helper.

@sergiy-k
Copy link

Thank you!

picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
Disable use of fast dictionary slots for R2R images when tiered JITing is enabled.

Fixes dotnet/coreclr#22400

Commit migrated from dotnet/coreclr@bae641f
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants