runtime: allow physical page aligned stacks to be allocated
runtime: allow physical page aligned stacks to be allocated

Add a physPageAlignedStack boolean which if set, results in over allocation
by a physical page, the allocation being rounded to physical page alignment
and the unused memory surrounding the allocation being freed again.

OpenBSD/octeon has 16KB physical pages and requires stacks to be physical page
aligned in order for them to be remapped as MAP_STACK. This change allows Go
to work on this platform.

Based on a suggestion from mknyszek in issue #41008.

Updates #40995
Fixes #41008

Change-Id: Ia5d652292b515916db473043b41f6030094461d8
Reviewed-on: https://go-review.googlesource.com/c/go/+/266919
Trust: Joel Sing <4816dabf8db1bc6cac35b3a24cab2ff844b5b0c7@sing.id.au>
Reviewed-by: Austin Clements <7ea35d812706d9213868749011af1ed4fa2f6aa0@google.com>
Run-TryBot: Austin Clements <7ea35d812706d9213868749011af1ed4fa2f6aa0@google.com>
TryBot-Result: Go Bot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>

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