-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Convert AssemblyNative::Load to QCall #1929
Conversation
This is a PR to fix an issue in #1603 |
src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs
Outdated
Show resolved
Hide resolved
src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs
Outdated
Show resolved
Hide resolved
src/coreclr/src/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs
Outdated
Show resolved
Hide resolved
I have done some related cleanup in #1936. Hope it won't conflict with your change too much. |
@jkotas Fixed all. Thank you. |
Tests are failing with:
|
- FCall uses libunwind to find Method description. - Get rid of the libunwind overhead in AssemblyNative::Load by converting to QCall
Several tests fails on Libraries Test Run checked CoreCLR Windows_NT x86 Release with:
I do not see any obvious problem in the delta that would be causing this. If you are not able to figure out what's wrong, let me know and I will help you debug it. One thing you can try is to move the GC_PROTECT to be inside |
@jkotas Could you please help to debug? |
I am not able to reproduce the crash locally, and the dump does not have enough clues about what went wrong. I will keep looking... |
This is a bug in exception handling on Windows x86. The problem is in the Windows x86 path here: https://github.com/dotnet/coreclr/pull/24199/files#diff-5eb922d9071dbbd2c84a9fa5f4468ea0R1880 We are missing a check like this: https://github.com/dotnet/coreclr/pull/24199/files#diff-d5e4cb27da3539140a16dc576906b925R1857 It results into unwinding too many Frames that sometime leads to asserts about corrupted Frame chain and crashes. |
cc @janvorli |
I'll fix that. |
@clamp03 Thank you! |
@clamp03 Yes, it is fine to convert any FCalls with
Where do you see it called in BindToMethodInfo? I would not expect it to be called under BindToMethodInfo. This method does not take StackCrawlMark argument. |
Thanks. Below is a backtrace when arm_find_proc_info is called.
|
I think this should be just deleted. Submitted WIP PR #2348 |
by converting to QCall