opentelemetry-dotnet-instrumentation icon indicating copy to clipboard operation
opentelemetry-dotnet-instrumentation copied to clipboard

Add arm64 architecture to the shared store

Open pjanotti opened this issue 2 years ago • 5 comments
trafficstars

The list at dotnet/runtime has other values but because of Apple M1 boxes, we may want to provide arm64 by default.

Adding all arch to the shared store doesn't seem scalable, ideally, we would have a way to automatically select the proper |arch|/|tfm| pair upon installing on the box. However, as mentioned, arm64 may be popular enough to justify its addition even without the general mechanism.

Temporary Workaround: rename $DOTNET_SHARED_STORE/x64/ to $DOTNET_SHARED_STORE/arm64/. The assemblies under the folder are IL only so source instrumentations are expected to work without issues. The native component is not supported on arm64 yet and given that the default rule engine will fail startup if it is enabled it needs to be disabled removing or setting the environment variable CORECLR_ENABLE_PROFILING to 0.

[EDIT 01: Update workaround since it is not going to work with the default rule engine checks.]

pjanotti avatar Feb 09 '23 03:02 pjanotti

One possibility is to create symbolic links to a single architecture since we use the same IL-only components.

pjanotti avatar Feb 09 '23 03:02 pjanotti

Today, even I was exploring about symbolic link. If we get this working we could reduce our package size by and solve issues for all architecture.

rajkumar-rangaraj avatar Feb 09 '23 05:02 rajkumar-rangaraj

I am not sure if it will be good idea to support only managed code on arm64. It should be done together with #1865

Kielek avatar Feb 09 '23 05:02 Kielek

I am not sure if it will be good idea to support only managed code on arm64. It should be done together with #1865

I think it is OK. Better than nothing. Especially that we even document that it is possible to work without .NET Profiler here

pellared avatar Feb 09 '23 12:02 pellared

Removing from 1.0.0-rc milestone. I think that we can add this support after 1.0.0 release, both for sourcecode and bytecode instrumenation. I would like to avoid only partial support.

Kielek avatar Apr 26 '23 09:04 Kielek