#
ca31abf5 |
| 20-Jun-2024 |
Oliver Upton <oliver.upton@linux.dev> |
arm64: Allow the user to select the max SVE vector length
Add a new flag, --sve-max-vl, which allows the user to specify an SVE vector length for the VM. Just zero out unsupported VLs from what KVM
arm64: Allow the user to select the max SVE vector length
Add a new flag, --sve-max-vl, which allows the user to specify an SVE vector length for the VM. Just zero out unsupported VLs from what KVM supports rather than cooking up the bitmap from scratch.
Signed-off-by: Oliver Upton <oliver.upton@linux.dev> Link: https://lore.kernel.org/r/20240620165702.1134918-2-oliver.upton@linux.dev Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
c1eecc61 |
| 25-May-2023 |
Andre Przywara <andre.przywara@arm.com> |
option parsing: fix type of empty .argh parameter
The "force-pci" and "virtio-legacy" option definitions were using '\0' to initialise an unused ".argh" member, even though this is a string. This tr
option parsing: fix type of empty .argh parameter
The "force-pci" and "virtio-legacy" option definitions were using '\0' to initialise an unused ".argh" member, even though this is a string. This triggers warnings with some compilers like clang. Also, for some odd reason, the .argh member was not named explicitly in the option helper macros initialisation, which made this problem harder to locate.
Sanitise the option macros by always using designated initialisers for each member, and use the correct empty string for the "force-pci" and "virtio-legacy" options.
This fixes warnings (promoted to errors) when compiling with clang.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Link: https://lore.kernel.org/r/20230525144827.679651-2-andre.przywara@arm.com Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
9b46ebc5 |
| 20-Mar-2023 |
Rajnesh Kanwal <rkanwal@rivosinc.com> |
Add virtio-transport option and deprecate force-pci and virtio-legacy.
This is a follow-up patch for [0] which proposed the --force-pci option for riscv. As per the discussion it was concluded to ad
Add virtio-transport option and deprecate force-pci and virtio-legacy.
This is a follow-up patch for [0] which proposed the --force-pci option for riscv. As per the discussion it was concluded to add virtio-tranport option taking in four options (pci, pci-legacy, mmio, mmio-legacy).
With this change force-pci and virtio-legacy are both deprecated and arm's default transport changes from MMIO to PCI as agreed in [0]. This is also true for riscv.
Nothing changes for other architectures.
[0]: https://lore.kernel.org/all/20230118172007.408667-1-rkanwal@rivosinc.com/
Signed-off-by: Rajnesh Kanwal <rkanwal@rivosinc.com> Link: https://lore.kernel.org/r/20230320143344.404307-1-rkanwal@rivosinc.com Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
4639b72f |
| 12-Apr-2022 |
Alexandru Elisei <alexandru.elisei@arm.com> |
arm64: Add --vcpu-affinity command line argument
Add a new command line argument, --vcpu-affinity, to set the CPU affinity for the VCPUs. The affinity is expressed as a cpulist and will apply to all
arm64: Add --vcpu-affinity command line argument
Add a new command line argument, --vcpu-affinity, to set the CPU affinity for the VCPUs. The affinity is expressed as a cpulist and will apply to all VCPU threads.
This gives the user a second option for choosing the PMU on a heterogeneous system. The PMU setup code, when --vcpu-affinity is specified, will search for the PMU associated with the CPUs specified with this command line argument instead of the PMU associated with the CPU on which the main thread is executing.
Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Link: https://lore.kernel.org/r/20220412133231.35355-12-alexandru.elisei@arm.com Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
5657dd3e |
| 28-Mar-2022 |
Alexandru Elisei <alexandru.elisei@arm.com> |
aarch64: Add support for MTE
MTE has been supported in Linux since commit 673638f434ee ("KVM: arm64: Expose KVM_ARM_CAP_MTE"), add support for it in kvmtool. MTE is enabled by default.
Enabling the
aarch64: Add support for MTE
MTE has been supported in Linux since commit 673638f434ee ("KVM: arm64: Expose KVM_ARM_CAP_MTE"), add support for it in kvmtool. MTE is enabled by default.
Enabling the MTE capability incurs a cost, both in time (for each translation fault the tags need to be cleared), and in space (the tags need to be saved when a physical page is swapped out). This overhead is expected to be negligible for most users, but for those cases where it matters (like performance benchmarks), a --disable-mte option has been added.
Reviewed-by: Vladimir Murzin <vladimir.murzin@arm.com> Tested-by: Vladimir Murzin <vladimir.murzin@arm.com> Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> Link: https://lore.kernel.org/r/20220328103328.18768-3-alexandru.elisei@arm.com Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
ffa86546 |
| 24-Mar-2022 |
Sebastian Ene <sebastianene@google.com> |
Make --no-pvtime command argument arm specific
The stolen time option is available only for aarch64 and is enabled by default. Move the option that disables stolen time functionality in the arch spe
Make --no-pvtime command argument arm specific
The stolen time option is available only for aarch64 and is enabled by default. Move the option that disables stolen time functionality in the arch specific path.
Signed-off-by: Sebastian Ene <sebastianene@google.com> Link: https://lore.kernel.org/r/20220324154304.2572891-1-sebastianene@google.com Signed-off-by: Will Deacon <will@kernel.org>
show more ...
|
#
9afefd6c |
| 10-Jan-2019 |
Julien Thierry <julien.thierry@arm.com> |
arm: Support firmware loading
Implement firmware image loading for arm and set the boot start address to the firmware address.
Add an option for the user to specify where to map the firmware.
Sign
arm: Support firmware loading
Implement firmware image loading for arm and set the boot start address to the firmware address.
Add an option for the user to specify where to map the firmware.
Signed-off-by: Julien Thierry <julien.thierry@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
show more ...
|
#
f6108d72 |
| 03-Nov-2017 |
Jean-Philippe Brucker <jean-philippe.brucker@arm.com> |
Add GICv2m support
GICv2m is a small extension to the GICv2 architecture, specified in the Server Base System Architecture (SBSA). It adds a set of register to converts MSIs into SPIs, effectively e
Add GICv2m support
GICv2m is a small extension to the GICv2 architecture, specified in the Server Base System Architecture (SBSA). It adds a set of register to converts MSIs into SPIs, effectively enabling MSI support for pre-GICv3 platforms.
Implement a GICv2m emulation entirely in userspace. Add a thin translation layer in irq.c to catch the MSI->SPI routing setup of the guest, and then transform irqfd injection of MSI into the associated SPI. There shouldn't be any significant runtime overhead compared to gicv3-its.
The device can be enabled by passing "--irqchip gicv2m" to kvmtool.
Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
show more ...
|
#
84d77496 |
| 09-Oct-2017 |
Will Deacon <will.deacon@arm.com> |
arm64: Allow random seed to be specified for KASLR
Fully fledged bootloaders should really be populating this from within the guest using virtio-rng, but having a way to specify it on the cmdline is
arm64: Allow random seed to be specified for KASLR
Fully fledged bootloaders should really be populating this from within the guest using virtio-rng, but having a way to specify it on the cmdline is useful for developers or users without a bootloader.
Signed-off-by: Will Deacon <will.deacon@arm.com>
show more ...
|
#
76392d29 |
| 25-Apr-2017 |
Andre Przywara <andre.przywara@arm.com> |
arm64: enable GICv3-ITS emulation
With everything in place for the ITS emulation add a new option to the --irqchip parameter to allow the user to specify --irqchip=gicv3-its to enable the ITS emulat
arm64: enable GICv3-ITS emulation
With everything in place for the ITS emulation add a new option to the --irqchip parameter to allow the user to specify --irqchip=gicv3-its to enable the ITS emulation. This will trigger creating the FDT node and an ITS register frame to tell the kernel we want ITS emulation in the guest.
Acked-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
show more ...
|
#
52e326fb |
| 23-Feb-2016 |
Marc Zyngier <marc.zyngier@arm.com> |
arm64: Add PMUv3 support
In order to enable the in-kernel PMU emulation code, add a tiny bit of setup code that initializes the PMU on each CPU and populates the DT. The IRQ is harcoded to PPI7 (INT
arm64: Add PMUv3 support
In order to enable the in-kernel PMU emulation code, add a tiny bit of setup code that initializes the PMU on each CPU and populates the DT. The IRQ is harcoded to PPI7 (INTID23) in order to match what QEMU does.
The code is enabled when the --pmu option is passed to lkvm.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
show more ...
|
#
43d2781c |
| 03-Jul-2015 |
Andre Przywara <andre.przywara@arm.com> |
arm: use new irqchip parameter to create different vGIC types
Currently we unconditionally create a virtual GICv2 in the guest. Add a --irqchip= parameter to let the user specify a different GIC typ
arm: use new irqchip parameter to create different vGIC types
Currently we unconditionally create a virtual GICv2 in the guest. Add a --irqchip= parameter to let the user specify a different GIC type for the guest, when omitting this parameter it still defaults to --irqchip=gicv2. For now the only other supported type is --irqchip=gicv3
Signed-off-by: Andre Przywara <andre.przywara@arm.com> [will: use pr_err instead of fprintf] Signed-off-by: Will Deacon <will.deacon@arm.com>
show more ...
|
#
d97dadec |
| 04-Feb-2014 |
Will Deacon <will.deacon@arm.com> |
kvm tools: ARM: allow default virtio transport to be passed on cmdline
This patch changes VIRTIO_DEFAULT_TRANS to take a struct kvm parameter, allowing architectures to choose the default transport
kvm tools: ARM: allow default virtio transport to be passed on cmdline
This patch changes VIRTIO_DEFAULT_TRANS to take a struct kvm parameter, allowing architectures to choose the default transport dynamically.
For ARM, this is driven by an arch-specific cmdline option.
Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
f4c0490c |
| 06-Jan-2014 |
Robin Murphy <Robin.Murphy@arm.com> |
kvm tools: arm: add option to override generic timer frequency
Some platforms have secure firmware which does not correctly set the CNTFRQ register on boot, preventing the use of the Generic Timer.
kvm tools: arm: add option to override generic timer frequency
Some platforms have secure firmware which does not correctly set the CNTFRQ register on boot, preventing the use of the Generic Timer. This patch allows mirroring the necessary host workaround by specifying the clock-frequency property in the guest DT.
This should only be considered a means of KVM bring-up on such systems, such that vendors may be convinced to properly implement their firmware to support the virtualisation capabilities of their hardware.
Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
1e0c135a |
| 07-Jan-2013 |
Will Deacon <will.deacon@arm.com> |
kvm tools: add support for ARMv8 processors
This patch adds support for ARMv8 processors (more specifically, Cortex-A57) to kvmtool. Both AArch64 and AArch32 guests are supported, so the existing AA
kvm tools: add support for ARMv8 processors
This patch adds support for ARMv8 processors (more specifically, Cortex-A57) to kvmtool. Both AArch64 and AArch32 guests are supported, so the existing AArch32 code is slightly restructured to allow for re-use of much of the current code.
The implementation closely follows the ARMv7 code and reuses much of the work written there.
Tested-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
ba27ff46 |
| 07-Jan-2013 |
Will Deacon <will.deacon@arm.com> |
kvm tools: arm: make .dtb dumping a command-line option
It can sometimes be useful to dump the .dtb file generated by kvmtool when debugging a guest. Currently, this is achieved by rebuilding the to
kvm tools: arm: make .dtb dumping a command-line option
It can sometimes be useful to dump the .dtb file generated by kvmtool when debugging a guest. Currently, this is achieved by rebuilding the tool and changing some #defines, which is fairly clumsy to use.
This patch adds a new command-line option for ARM, allowing the dtb to be dumped to a named file at runtime.
Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
ff7ba6fa |
| 05-Dec-2012 |
Will Deacon <will.deacon@arm.com> |
kvm tools: allow arch's to provide their own command-line options
Currently, only x86 has architecture command-line options (for setting the BIOS video mode) however this is likely to become more co
kvm tools: allow arch's to provide their own command-line options
Currently, only x86 has architecture command-line options (for setting the BIOS video mode) however this is likely to become more common in the future.
This patch adds some simple macros and a struct definition to allow architectures to augment the command-line options with private definitions. The BIOS video mode option (--vidmode) is also migrated to the new framework.
Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|