runtime: start ARM atomic kernel helper traceback in caller
runtime: start ARM atomic kernel helper traceback in caller

Like the VDSO, we cannot directly traceback from the Linux kernel ARM
atomic/barrier helpers. However, unlike the VDSO, this functions are
extremely simple. Neither of the functions we use, kuser_cmpxchg and
kuser_memory_barrier, touch SP or LR.

We can use this to our advantage to read LR and simply start tracebacks
in the caller.

Fixes #49182

Change-Id: I890edbeb7c128938000fe7baf6f913c02a956edd
Reviewed-on: https://go-review.googlesource.com/c/go/+/362977
Trust: Michael Pratt <e7f1edc6d5aa9f6c8c377425db8f1a5816cbbb88@google.com>
Run-TryBot: Michael Pratt <e7f1edc6d5aa9f6c8c377425db8f1a5816cbbb88@google.com>
TryBot-Result: Go Bot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>
Reviewed-by: Cherry Mui <d62e63aa42ce272d7b6a5055d97e942b33a34679@google.com>

golang/go,CAFxX/go,cloudflare/go,CAFxX/go,CAFxX/go,nawawi/go,CAFxX/go,cloudflare/go,nawawi/go,nawawi/go,CAFxX/go,nawawi/go,cloudflare/go,cloudflare/go,cloudflare/go,golang/go,cloudflare/go,nawawi/go,nawawi/go,golang/go,golang/go,cloudflare/go,golang/go,cloudflare/go,golang/go,nawawi/go,nawawi/go,golang/go,CAFxX/go,golang/go,CAFxX/go,CAFxX/go