qemu-devel
[Top][All Lists]
Advanced

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

[PATCH v3 00/19] target/riscv, KVM: fixes and enhancements


From: Daniel Henrique Barboza
Subject: [PATCH v3 00/19] target/riscv, KVM: fixes and enhancements
Date: Thu, 22 Jun 2023 10:56:41 -0300

Hi,

In this new version the highlight is the changes in how we're making
riscv_isa_string_ext() work with KVM CPUs. A new patch (patch 15) was
added where we eliminate an unneeded priv_check from the function,
sparing us from having to assign an env->priv_ver for the 'host' CPU
type.

Then, in patch 16, instead of making changes with tcg/kvm extensions
lists and so on, we're avoiding the problem altogether with mock/no-op
properties. We go through all the extension flags (boolean values only)
from riscv_cpu_extensions[] and, if the option wasn't already created by
the KVM driver, we assign a no-op set() callback to it. This allows the
user to use any property, kvm-only or otherwise, and the KVM guest can
safely ignore it. 

Last but not the least, patch 11 was changed as requested by Andrew in
v2.

Series is rebased on top of Alistair's riscv-to-apply.next.

Patches missing review: 11, 15, 16.

Changes from v2:
- patch 11:
  - renamed misa_ext_infos[] to misa_ext_info_arr[]
  - mention that misa_ext_cfgs[] also needs update in cpu.h
  - misa_ext_info_arr[] moved to cpu.c to be used as extern
- patch 13:
  - amended commit msg to clarify that all extensions, MISA Or multi-letter,
    should be enabled and advertised by KVM
  - fixed comment in kvm_riscv_update_cpu_misa_ext()
- patch 15 (new):
  - remove priv_ver check from riscv_isa_string_ext()
- patch 16 (former 15):
  - reworked: instead of reworking riscv_isa_string_ext(), add mock KVM
    properties
- v2 link: https://lists.gnu.org/archive/html/qemu-devel/2023-06/msg02790.html

Daniel Henrique Barboza (19):
  target/riscv: skip features setup for KVM CPUs
  hw/riscv/virt.c: skip 'mmu-type' FDT if satp mode not set
  target/riscv/cpu.c: restrict 'mvendorid' value
  target/riscv/cpu.c: restrict 'mimpid' value
  target/riscv/cpu.c: restrict 'marchid' value
  target/riscv: use KVM scratch CPUs to init KVM properties
  target/riscv: read marchid/mimpid in kvm_riscv_init_machine_ids()
  target/riscv: handle mvendorid/marchid/mimpid for KVM CPUs
  linux-headers: Update to v6.4-rc1
  target/riscv/kvm.c: init 'misa_ext_mask' with scratch CPU
  target/riscv/cpu: add misa_ext_info_arr[]
  target/riscv: add KVM specific MISA properties
  target/riscv/kvm.c: update KVM MISA bits
  target/riscv/kvm.c: add multi-letter extension KVM properties
  target/riscv/cpu.c: remove priv_ver check from riscv_isa_string_ext()
  target/riscv/cpu.c: create KVM mock properties
  target/riscv: update multi-letter extension KVM properties
  target/riscv/kvm.c: add kvmconfig_get_cfg_addr() helper
  target/riscv/kvm.c: read/write (cbom|cboz)_blocksize in KVM

 hw/riscv/virt.c                               |  14 +-
 include/standard-headers/linux/const.h        |   2 +-
 include/standard-headers/linux/virtio_blk.h   |  18 +-
 .../standard-headers/linux/virtio_config.h    |   6 +
 include/standard-headers/linux/virtio_net.h   |   1 +
 linux-headers/asm-arm64/kvm.h                 |  33 ++
 linux-headers/asm-riscv/kvm.h                 |  53 +-
 linux-headers/asm-riscv/unistd.h              |   9 +
 linux-headers/asm-s390/unistd_32.h            |   1 +
 linux-headers/asm-s390/unistd_64.h            |   1 +
 linux-headers/asm-x86/kvm.h                   |   3 +
 linux-headers/linux/const.h                   |   2 +-
 linux-headers/linux/kvm.h                     |  12 +-
 linux-headers/linux/psp-sev.h                 |   7 +
 linux-headers/linux/userfaultfd.h             |  17 +-
 target/riscv/cpu.c                            | 282 ++++++++--
 target/riscv/cpu.h                            |  11 +-
 target/riscv/kvm.c                            | 499 +++++++++++++++++-
 target/riscv/kvm_riscv.h                      |   1 +
 19 files changed, 891 insertions(+), 81 deletions(-)

-- 
2.41.0




reply via email to

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