Hi! On 2022-07-07T23:18:03+0100, Andrew Stubbs wrote: > On 07/07/2022 12:54, Tobias Burnus wrote: >> On 07.07.22 12:34, Andrew Stubbs wrote: >>> Implement the -foffload-memory=pinned option such that libgomp is >>> instructed to enable fully-pinned memory at start-up. The option is >>> intended to provide a performance boost to certain offload programs >>> without >>> modifying the code. >> ... >>> gcc/ChangeLog: >>> >>> * omp-builtins.def (BUILT_IN_GOMP_ENABLE_PINNED_MODE): New. >>> * omp-low.cc (omp_enable_pinned_mode): New function. >>> (execute_lower_omp): Call omp_enable_pinned_mode. >>> >>> libgomp/ChangeLog: >>> >>> * config/linux/allocator.c (always_pinned_mode): New variable. >>> (GOMP_enable_pinned_mode): New function. >>> (linux_memspace_alloc): Disable pinning when always_pinned_mode set. >>> (linux_memspace_calloc): Likewise. >>> (linux_memspace_free): Likewise. >>> (linux_memspace_realloc): Likewise. >>> * libgomp.map: Add GOMP_enable_pinned_mode. >>> * testsuite/libgomp.c/alloc-pinned-7.c: New test. >>> ... >> ... >>> --- a/gcc/omp-low.cc >>> +++ b/gcc/omp-low.cc >>> @@ -14620,6 +14620,68 @@ lower_omp (gimple_seq *body, omp_context *ctx) >>> input_location = saved_location; >>> } >>> +/* Emit a constructor function to enable -foffload-memory=pinned >>> + at runtime. Libgomp handles the OS mode setting, but we need to >>> trigger >>> + it by calling GOMP_enable_pinned mode before the program proper >>> runs. */ >>> + >>> +static void >>> +omp_enable_pinned_mode () >> >> Is there a reason not to use the mechanism of OpenMP's 'requires' >> directive for this? I agree. (But I'm not working on that, for avoidance of doubt.) >> (Okay, I have to admit that the final patch was only committed on >> Monday. But still ...) > > Possibly, I had most of this done before then. I'll have a look next > time I visit this patch. Until then, let's at least document/verify 'GOMP_enable_pinned_mode'; I've pushed to devel/omp/gcc-12 commit 9657d906869e098340c23118c2eb8592d9e77ac5 "Prototype 'GOMP_enable_pinned_mode'", see attached. Grüße Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955