I'm going a bit out-of-order to report a build failure in a test:
Mark Brown broonie@kernel.org writes:
+// Recurse x20 times +.macro recurse id
I get an assembler error here:
gcc -nostdlib gcs-stress-thread.S -o /home/thiago.bauermann/src/linux/tools/testing/selftests/arm64/gcs/gcs-stress-thread gcs-stress-thread.S: Assembler messages: gcs-stress-thread.S:236: Error: unexpected end of file in macro `recurse' definition make[2]: *** [Makefile:24: /home/thiago.bauermann/src/linux/tools/testing/selftests/arm64/gcs/gcs-stress-thread] Error 1
This is with gas from Ubuntu 22.04, which ships binutils 2.38.
+function recurse\id
- stp x29, x30, [sp, #-16]!
- mov x29, sp
- cmp x20, 0
- beq 1f
- sub x20, x20, 1
- bl recurse\id
+1:
- ldp x29, x30, [sp], #16
- // Do a syscall immediately prior to returning to try to provoke
- // scheduling and migration at a point where coherency issues
- // might trigger.
- mov x8, #__NR_getpid
- svc #0
- ret
+endfunction +.endmacro
+// Generate and use two copies so we're changing the GCS contents +recurse 1 +recurse 2