Uh oh!
There was an error while loading. Please reload this page.
statically linking GC PAL on linux - #76985
Conversation
The GC PAL will be used for both coreclr and standalone GC on linux
ghost
commented
Oct 13, 2022
Tagging subscribers to this area: @dotnet/gc Issue DetailsThe GC PAL will be used for both coreclr and standalone GC on linux. FIxes #72684. Have validated that it reduces the working set for unbounded memory limits by ~70mb for a vanilla webapi app.
|
Uh oh!
There was an error while loading. Please reload this page.
janvorli
commented
Oct 13, 2022
@mangod9 I would make the change for all OSes, not just Unix. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| goto CLEANUP15; | ||
| } | ||
| if (FALSE == NUMASupportInitialize()) |
There was a problem hiding this comment.
assume its fine to remove the Numa initialization from the pal, since its now being handled with the gc_unix pal.
Uh oh!
There was an error while loading. Please reload this page.
| #ifdef HOST_WINDOWS | ||
| //****************************************************************************** | ||
| // NumaNodeInfo |
There was a problem hiding this comment.
yeah guess there is more cleanup required here, will do as part of a separate PR.
There was a problem hiding this comment.
I see that you are keeping the VM version of the current PAL for Windows under ifdefs. Is there a problem with using the GC PAL on Windows?
There was a problem hiding this comment.
there shouldnt be an issue with moving windows too, just needs a some more wrangling. Also need to check with @Maoni0 that all numa stuff is handled appropriately in gcenv.windows
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
263a2f0 to
dccc8c6Comparemangod9
commented
Oct 19, 2022
/azp run runtime |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
EgorBo
commented
Oct 27, 2022
@mangod9 Could this decrease working set in TE benchmarks (only on Linux)? it's something from this range: ee41716...7b5ab35 |
mangod9
commented
Oct 27, 2022
yeah, that was one of the main reasons for the change. |
* statically linking GC PAL The GC PAL will be used for both coreclr and standalone GC on linux * fixing arm64 and nativeaot build breaks * macos build break and reducing renaming. * trying to remove numa support from PAL * one more rename to resolve MacOS break * delete pal numa code. * Adding missing madvise in GC PAL * added missing MADV_DONTDUMP calls. * CR feedback * undo (long long) cast in GetMemoryStatus * only invoke madvise on success.
* statically linking GC PAL The GC PAL will be used for both coreclr and standalone GC on linux * fixing arm64 and nativeaot build breaks * macos build break and reducing renaming. * trying to remove numa support from PAL * one more rename to resolve MacOS break * delete pal numa code. * Adding missing madvise in GC PAL * added missing MADV_DONTDUMP calls. * CR feedback * undo (long long) cast in GetMemoryStatus * only invoke madvise on success.
sebastienros
commented
Feb 13, 2023
jkotas
commented
Feb 13, 2023
Yes, the PAL did a bunch of extra useless work before this change. |


The GC PAL will be used for both coreclr and standalone GC on linux. FIxes#72684.
Have validated that it reduces the working set for unbounded memory limits by ~70mb for a vanilla webapi app.