aboutsummaryrefslogtreecommitdiff
path: root/LICENSE
diff options
context:
space:
mode:
authorDaniel Henrique Barboza <dbarboza@ventanamicro.com>2023-10-03 10:21:48 -0300
committerAlistair Francis <alistair.francis@wdc.com>2023-10-12 12:38:39 +1000
commit608bdebb6075b757e5505f6bbc60c45a54a1390b (patch)
tree087322facad588486be1b2db32bfdccd1768c5b0 /LICENSE
parent082e9e4a58ba80ec056220a2f762a1c6b9a3a96c (diff)
downloadqemu-608bdebb6075b757e5505f6bbc60c45a54a1390b.zip
qemu-608bdebb6075b757e5505f6bbc60c45a54a1390b.tar.gz
qemu-608bdebb6075b757e5505f6bbc60c45a54a1390b.tar.bz2
target/riscv/kvm: support KVM_GET_REG_LIST
KVM for RISC-V started supporting KVM_GET_REG_LIST in Linux 6.6. It consists of a KVM ioctl() that retrieves a list of all available regs for get_one_reg/set_one_reg. Regs that aren't present in the list aren't supported in the host. This simplifies our lives when initing the KVM regs since we don't have to always attempt a KVM_GET_ONE_REG for all regs QEMU knows. We'll only attempt a get_one_reg() if we're sure the reg is supported, i.e. it was retrieved by KVM_GET_REG_LIST. Any error in get_one_reg() will then always considered fatal, instead of having to handle special error codes that might indicate a non-fatal failure. Start by moving the current kvm_riscv_init_multiext_cfg() logic into a new kvm_riscv_read_multiext_legacy() helper. We'll prioritize using KVM_GET_REG_LIST, so check if we have it available and, in case we don't, use the legacy() logic. Otherwise, retrieve the available reg list and use it to check if the host supports our known KVM regs, doing the usual get_one_reg() for the supported regs and setting cpu->cfg accordingly. Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Andrew Jones <ajones@ventanamicro.com> Message-ID: <20231003132148.797921-3-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Diffstat (limited to 'LICENSE')
0 files changed, 0 insertions, 0 deletions