Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Mar 07 17:29
    @directhex banned @CharlieIsHere
  • Oct 11 2018 17:23
    @directhex banned @deleteaccount1234567890
Filip Navara
@filipnavara
Ubuntu ARM64
the prebuilt binaries work only on the official Mono CI, don't they?
Egor Bogatov
@EgorBo
ah I guess the prebuilt stuff works only for x64
Filip Navara
@filipnavara
I was just about to look into how it is implemented
Egor Bogatov
@EgorBo
I've no idea :disappointed: but would love to have them on macOS too
Filip Navara
@filipnavara
me too
it's practically the reason why I have to use source builds on the perf machine
hmm
I am no expert, but the URL is referencing osx64... and obviously it's in the same script that I run on Linux.
even more surprisingly there is an actual build at the URL with a hash from the new repo
Filip Navara
@filipnavara
so the builds do exist
Filip Navara
@filipnavara
looks like I will have to resurrect the AOT support on the perf pipeline since LLVM JIT is not available but I finally managed to build the whole beast...
Filip Navara
@filipnavara
hmm, the LLVM JIT actually works
Filip Navara
@filipnavara
...or not
Filip Navara
@filipnavara
it's somehow broken in a way that after couple of methods that are successfully JITed it fails with SIGILL. it's pretty random at what point it fails. maybe some memory barrier / cache flush is missing for the emitted code.
Filip Navara
@filipnavara
adding mono_arch_flush_icache made it consistent at least. in verbose mode it runs Hello World. in non-verbose mode it consistently fails at the same place. likely I am just missing the cache flush at some other place than the main code gen
ok, not too consistent... still getting at least two or three different crashes (SIGILL, NRE) but at least it gets much further
Filip Navara
@filipnavara
cannot quite track down the missing place but it works sometimes:
ubuntu@ip-172-31-17-240:~/agent/_work/1/s/work/mono/netcore$ MONO_ENV_OPTIONS="--debug --llvm" COMPlus_DebugWriteToStdErr=1 ./dotnet --fx-version "5.0.0-alpha1.19527.2" sample/HelloWorld/bin/netcoreapp3.0/HelloWorld.dll
Hello World from Mono!
System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
HelloWorld, Version=42.42.42.42, Culture=neutral, PublicKeyToken=31bf3856ad364e35
.NET Core 5.0.0-alpha1.19527.2
I am convinced that it's just some missing instruction cache flush somewhere.
Filip Navara
@filipnavara
eh, the LLVM code itself does it in one of the allocators except 1) Mono overrides that one 2) It is broken even in LLVM due to incorrect code order :-/
I guess no one tests this
Zoltan Varga
@vargaz
we only used it on x86 which doesn't need icache flush.
Filip Navara
@filipnavara
yeah, that makes sense
I am just surprised to find bugs in the upstream LLVM code
so I don't think too many people tested it there
Filip Navara
@filipnavara
I replicated the LLVM code in allocator and it works.
I'll do few more tests and submit a PR if it does not break
Alexander Köplinger
@akoeplinger
we did switch over the Jenkins jobs to the new llvm repo afaik
but yeah, if we only reference the osx URL we should fix that so Linux uses prebuilt stuff too
Filip Navara
@filipnavara
There's possibly more than once place that downloads the prebuilt LLVM, not sure
Zoltan Varga
@vargaz
only the osx lane was switched i think.
still uses llvm/mono.
Filip Navara
@filipnavara
Hopefully I am done with writing the wall of text for today. :) I got something running at least...
Alexander Köplinger
@akoeplinger
Filip Navara
@filipnavara
👍🏻thanks!
Filip Navara
@filipnavara
@akoeplinger looks like all the builds failed. according to the logs it looks like the packages were built but then something went haywire and they didn't get uploaded.
Zoltan Varga
@vargaz
the debian build scripts havent been updated
Alexander Köplinger
@akoeplinger
the build worked, it's just that everything is in llvm/ now so the azure upload step had to be updated
the next build should work
Filip Navara
@filipnavara
any chance to merge #17827? I'd trigger my pipelines before going to sleep ;)
copygirl
@copygirl
Hello! I'm attempting to debug a netcoreapp3.0 using Mono Debug in VS Code and I have a slight feeling that Mono isn't finding assemblies that are stored in ~/.nuget/packages/. Running the application using dotnet works completely fine. I suppose I'm just using Mono 6.0.0 so it could've been resolved in a newer version? Or may I need to manually configure Mono in some way?
Alexander Köplinger
@akoeplinger
you shouldn't debug netcoreapp3.0 apps with Mono, there's a separate extension for vscode
@filipnavara merged
Filip Navara
@filipnavara
thanks!
copygirl
@copygirl
Issue persists with Mono 6.7.0.356. (For completion, here's the full exception I get when running my application: https://gist.github.com/copygirl/268701ab94553b20b40d75dad2305626)
Jay Krell
@jaykrell

The official story I believe is you have to branch, prior to running code that might have been written, since you last ran it on that thread/cpu.

You cannot overwrite code that another thread/cpu is in the midst of running, but you can overwrite code that another thread/cpu might shortly branch into.

On Windows the thing you do is call FlushInstructionCache, which then on x86 does nothing, but mere the act of calling it, has the required affect. Plus, of course, the writer is likely to have other branches, so FlushInstructionCache becomes redundant.

Calvin Buckley
@NattyNarwhal
aix box shutting down because host OS needs to patch