qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 0/2] Change default pointer authentication algorithm on aarch


From: Pierrick Bouvier
Subject: Re: [PATCH 0/2] Change default pointer authentication algorithm on aarch64 to impdef
Date: Mon, 16 Dec 2024 17:37:17 -0800
User-agent: Mozilla Thunderbird

On 12/16/24 11:50, Richard Henderson wrote:
On 12/16/24 13:26, Pierrick Bouvier wrote:
On 12/16/24 11:10, Richard Henderson wrote:
On 12/4/24 15:12, Pierrick Bouvier wrote:
qemu-system-aarch64 default pointer authentication (QARMA5) is expensive, we
spent up to 50% of the emulation time running it (when using TCG).

Switching to pauth-impdef=on is often given as a solution to speed up execution.
Thus we talked about making it the new default.

The first patch introduce a new property (pauth-qarma5) to allow to select
current default algorithm.
The second one change the default.

Pierrick Bouvier (2):
     target/arm: add new property to select pauth-qarma5
     target/arm: change default pauth algorithm to impdef

    docs/system/arm/cpu-features.rst |  7 +++++--
    docs/system/introduction.rst     |  2 +-
    target/arm/cpu.h                 |  1 +
    target/arm/arm-qmp-cmds.c        |  2 +-
    target/arm/cpu64.c               | 30 +++++++++++++++++++-----------
    tests/qtest/arm-cpu-features.c   | 15 +++++++++++----
    6 files changed, 38 insertions(+), 19 deletions(-)


I understand the motivation, but as-is this will break migration.

I think this will need to be versioned somehow, but the only thing that really 
gets
versioned are the boards, and I'm not sure how to link that to the instantiated 
cpu.


  From what I understood, and I may be wrong, the use case to migrate (tcg) vm 
with cpu max
between QEMU versions is *not* supported, as we can't guarantee which features 
are present
or not.
This doesn't affect only -cpu max, but anything using 
aarch64_add_pauth_properties():
neoverse-n1, neoverse-n2, cortex-a710.


I think this is still a change worth to do, because people can get a 100% speedup with this simple change, and it's a better default than the previous value. In more, in case of this migration scenario, QEMU will immediately abort upon accessing memory through a pointer.

I'm not sure about what would be the best way to make this change as smooth as possible for QEMU users.

Peter, Alex, do you have any suggestion on this topic?

Thanks,
Pierrick


r~


reply via email to

[Prev in Thread] Current Thread [Next in Thread]