[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 19/19] tests/tcg: take into account expected clashes pauth
From: |
Richard Henderson |
Subject: |
Re: [PATCH v2 19/19] tests/tcg: take into account expected clashes pauth-4 |
Date: |
Sun, 16 Feb 2020 01:30:14 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 |
On 2/13/20 2:51 PM, Alex Bennée wrote:
> Pointer authentication isn't perfect so measure the percentage of
> failed checks. As we want to vary the pointer that is authenticated we
> recurse down the stack.
>
You're no longer recursing.
> Signed-off-by: Alex Bennée <address@hidden>
> ---
> tests/tcg/aarch64/pauth-4.c | 54 +++++++++++++++++++++++++------------
> 1 file changed, 37 insertions(+), 17 deletions(-)
>
> diff --git a/tests/tcg/aarch64/pauth-4.c b/tests/tcg/aarch64/pauth-4.c
> index 1040e92aec3..24a639e36ca 100644
> --- a/tests/tcg/aarch64/pauth-4.c
> +++ b/tests/tcg/aarch64/pauth-4.c
> @@ -1,25 +1,45 @@
> #include <stdint.h>
> #include <assert.h>
> +#include <stdio.h>
> +#include <stdlib.h>
> +
> +#define TESTS 1000
>
> int main()
> {
> - uintptr_t x, y;
> + int i, count = 0;
> + float perc;
> + void *base = malloc(TESTS);
> +
> + for (i = 0; i < TESTS; i++) {
> + uintptr_t in, x, y;
> +
> + in = i + (uintptr_t) base;
There's no reason all of these couldn't be char* or void* instead of casting to
uintptr_t. Nothing else would have to change.
> +
> + asm("mov %0, %[in]\n\t"
> + "pacia %0, sp\n\t" /* sigill if pauth not supported */
> + "eor %0, %0, #4\n\t" /* corrupt single bit */
> + "mov %1, %0\n\t"
> + "autia %1, sp\n\t" /* validate corrupted pointer */
> + "xpaci %0\n\t" /* strip pac from corrupted pointer */
> + : /* out */ "=r"(x), "=r"(y)
> + : /* in */ [in] "r" (in)
It's weird to have some arguments named and some not. Why not just use %2,
since this is simple enough?
Otherwise,
Reviewed-by: Richard Henderson <address@hidden>
r~
- [PATCH v2 14/19] target/riscv: progressively load the instruction during decode, (continued)
- [PATCH v2 14/19] target/riscv: progressively load the instruction during decode, Alex Bennée, 2020/02/13
- [PATCH v2 18/19] tests/tcg: fix typo in configure.sh test for v8.3, Alex Bennée, 2020/02/13
- [PATCH v2 16/19] tests/tcg: give debug builds a little bit longer, Alex Bennée, 2020/02/13
- [PATCH v2 19/19] tests/tcg: take into account expected clashes pauth-4, Alex Bennée, 2020/02/13
- Re: [PATCH v2 00/19] testing and plugin updates, no-reply, 2020/02/13