All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH kvmtool 0/2] Fixes for arm64 and MIPS
@ 2022-05-25 16:57 ` Alexandru Elisei
  0 siblings, 0 replies; 8+ messages in thread
From: Alexandru Elisei @ 2022-05-25 16:57 UTC (permalink / raw)
  To: will, julien.thierry.kdev, linux-arm-kernel, kvmarm, andre.przywara

The first fix is for arm64, where the VCPUs weren't pinned correctly with
--vcpu-affinity when creating an aarch32 guest. Hopefully the patch is
straightforward.

The last patch is a fix for MIPS not compiling for a year now, ever since
hw/serial.c was changed to use a different address for arm/arm64 in commit
45b4968e0de1 ("hw/serial: ARM/arm64: Use MMIO at higher addresses"). Did
some digging and it turns out that the serial never worked on MIPS since
RAM starts at 0 for the architecture. So I just removed hw/serial.o from the
list of compilation objects, which revelead that kvm-ipc assumes that all
architectures use the 16550/8250 UART. Added a stub for
serial8250__inject_sysreg() to MIPS to fix that.

Note that as far as I can tell powerpc is in the same situation as MIPS:
RAM starts at 0 and ends at 64TB (that's terabytes), so the UART was never
working. It looks like powerpc uses hypercalls to emulate a console with
the name "hvterm" (devicetree node created in kvm.c and emulation
implemented in spapr_hvcons.{c,h}). I don't know enough about the powerpc
architecture and I don't have a machine to test it on, and since powerpc
still compiles, I opted not to do any changes to the architecture.

Tested by cross-compiling both patches for all architectures (arm, arm64, mips,
powerpc, riscv, x86), running a kernel on x86, and running kvm-unit-tests for
both arm and arm64 on a rockpro64 (has two PMUs).

Alexandru Elisei (2):
  arm64: Honor --vcpu-affinity for aarch32 guests
  mips: Do not emulate a serial device

 Makefile              |  7 +++++--
 arm/aarch64/kvm-cpu.c | 22 ++++++++++++----------
 mips/kvm.c            |  5 +++++
 3 files changed, 22 insertions(+), 12 deletions(-)

-- 
2.36.1

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH kvmtool 0/2] Fixes for arm64 and MIPS
@ 2022-05-25 16:57 ` Alexandru Elisei
  0 siblings, 0 replies; 8+ messages in thread
From: Alexandru Elisei @ 2022-05-25 16:57 UTC (permalink / raw)
  To: will, julien.thierry.kdev, linux-arm-kernel, kvmarm, andre.przywara

The first fix is for arm64, where the VCPUs weren't pinned correctly with
--vcpu-affinity when creating an aarch32 guest. Hopefully the patch is
straightforward.

The last patch is a fix for MIPS not compiling for a year now, ever since
hw/serial.c was changed to use a different address for arm/arm64 in commit
45b4968e0de1 ("hw/serial: ARM/arm64: Use MMIO at higher addresses"). Did
some digging and it turns out that the serial never worked on MIPS since
RAM starts at 0 for the architecture. So I just removed hw/serial.o from the
list of compilation objects, which revelead that kvm-ipc assumes that all
architectures use the 16550/8250 UART. Added a stub for
serial8250__inject_sysreg() to MIPS to fix that.

Note that as far as I can tell powerpc is in the same situation as MIPS:
RAM starts at 0 and ends at 64TB (that's terabytes), so the UART was never
working. It looks like powerpc uses hypercalls to emulate a console with
the name "hvterm" (devicetree node created in kvm.c and emulation
implemented in spapr_hvcons.{c,h}). I don't know enough about the powerpc
architecture and I don't have a machine to test it on, and since powerpc
still compiles, I opted not to do any changes to the architecture.

Tested by cross-compiling both patches for all architectures (arm, arm64, mips,
powerpc, riscv, x86), running a kernel on x86, and running kvm-unit-tests for
both arm and arm64 on a rockpro64 (has two PMUs).

Alexandru Elisei (2):
  arm64: Honor --vcpu-affinity for aarch32 guests
  mips: Do not emulate a serial device

 Makefile              |  7 +++++--
 arm/aarch64/kvm-cpu.c | 22 ++++++++++++----------
 mips/kvm.c            |  5 +++++
 3 files changed, 22 insertions(+), 12 deletions(-)

-- 
2.36.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH kvmtool 1/2] arm64: Honor --vcpu-affinity for aarch32 guests
  2022-05-25 16:57 ` Alexandru Elisei
@ 2022-05-25 16:57   ` Alexandru Elisei
  -1 siblings, 0 replies; 8+ messages in thread
From: Alexandru Elisei @ 2022-05-25 16:57 UTC (permalink / raw)
  To: will, julien.thierry.kdev, linux-arm-kernel, kvmarm, andre.przywara

Commit 4639b72f61a3 ("arm64: Add --vcpu-affinity command line argument")
introduced the --vcpu-affinity command line argument to pin the VCPUs to a
given list of physical CPUs. Unfortunately, the affinity is set only for an
arm64 guest, leading to the following error when running a 32-bit guest on
a system with two or more PMUs:

KVM exit reason: 9 ("KVM_EXIT_FAIL_ENTRY")

 Registers:
 PC:    0x8000c608
 PSTATE:    0x200000d3
 SP_EL1:    0x0
 LR:    0x0

*pc:
 0x8000c608: 25 3f a0 e1  83 61 a0 e1
 0x8000c610: 83 31 98 e7  04 10 82 e1
 0x8000c618: 07 2c 81 e3  28 10 1b e5
 0x8000c620: 03 20 82 e3  03 00 a0 e1

*lr:
  Warning: unable to translate guest address 0x0 to host
 0x00000000: <unknown>
 0x00000008: <unknown>
 0x00000010: <unknown>
 0x00000018: <unknown>

  # KVM compatibility warning.
	virtio-net device was not detected.
	While you have requested a virtio-net device, the guest kernel did not initialize it.
	Please make sure that the guest kernel was compiled with CONFIG_VIRTIO_NET=y enabled in .config.

  # KVM session ended normally.

Make the error go away by setting the affinity of the VCPUs for both 32-bit
and 64-bit guests.

Fixes: 4639b72f61a3 ("arm64: Add --vcpu-affinity command line argument")
Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
---
 arm/aarch64/kvm-cpu.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/arm/aarch64/kvm-cpu.c b/arm/aarch64/kvm-cpu.c
index 4ac0fafae06b..c8be10b3ca94 100644
--- a/arm/aarch64/kvm-cpu.c
+++ b/arm/aarch64/kvm-cpu.c
@@ -88,16 +88,7 @@ static void reset_vcpu_aarch64(struct kvm_cpu *vcpu)
 {
 	struct kvm *kvm = vcpu->kvm;
 	struct kvm_one_reg reg;
-	cpu_set_t *affinity;
 	u64 data;
-	int ret;
-
-	affinity = kvm->arch.vcpu_affinity_cpuset;
-	if (affinity) {
-		ret = sched_setaffinity(0, sizeof(cpu_set_t), affinity);
-		if (ret == -1)
-			die_perror("sched_setaffinity");
-	}
 
 	reg.addr = (u64)&data;
 
@@ -179,7 +170,18 @@ int kvm_cpu__configure_features(struct kvm_cpu *vcpu)
 
 void kvm_cpu__reset_vcpu(struct kvm_cpu *vcpu)
 {
-	if (vcpu->kvm->cfg.arch.aarch32_guest)
+	struct kvm *kvm = vcpu->kvm;
+	cpu_set_t *affinity;
+	int ret;
+
+	affinity = kvm->arch.vcpu_affinity_cpuset;
+	if (affinity) {
+		ret = sched_setaffinity(0, sizeof(cpu_set_t), affinity);
+		if (ret == -1)
+			die_perror("sched_setaffinity");
+	}
+
+	if (kvm->cfg.arch.aarch32_guest)
 		return reset_vcpu_aarch32(vcpu);
 	else
 		return reset_vcpu_aarch64(vcpu);
-- 
2.36.1

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH kvmtool 1/2] arm64: Honor --vcpu-affinity for aarch32 guests
@ 2022-05-25 16:57   ` Alexandru Elisei
  0 siblings, 0 replies; 8+ messages in thread
From: Alexandru Elisei @ 2022-05-25 16:57 UTC (permalink / raw)
  To: will, julien.thierry.kdev, linux-arm-kernel, kvmarm, andre.przywara

Commit 4639b72f61a3 ("arm64: Add --vcpu-affinity command line argument")
introduced the --vcpu-affinity command line argument to pin the VCPUs to a
given list of physical CPUs. Unfortunately, the affinity is set only for an
arm64 guest, leading to the following error when running a 32-bit guest on
a system with two or more PMUs:

KVM exit reason: 9 ("KVM_EXIT_FAIL_ENTRY")

 Registers:
 PC:    0x8000c608
 PSTATE:    0x200000d3
 SP_EL1:    0x0
 LR:    0x0

*pc:
 0x8000c608: 25 3f a0 e1  83 61 a0 e1
 0x8000c610: 83 31 98 e7  04 10 82 e1
 0x8000c618: 07 2c 81 e3  28 10 1b e5
 0x8000c620: 03 20 82 e3  03 00 a0 e1

*lr:
  Warning: unable to translate guest address 0x0 to host
 0x00000000: <unknown>
 0x00000008: <unknown>
 0x00000010: <unknown>
 0x00000018: <unknown>

  # KVM compatibility warning.
	virtio-net device was not detected.
	While you have requested a virtio-net device, the guest kernel did not initialize it.
	Please make sure that the guest kernel was compiled with CONFIG_VIRTIO_NET=y enabled in .config.

  # KVM session ended normally.

Make the error go away by setting the affinity of the VCPUs for both 32-bit
and 64-bit guests.

Fixes: 4639b72f61a3 ("arm64: Add --vcpu-affinity command line argument")
Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
---
 arm/aarch64/kvm-cpu.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/arm/aarch64/kvm-cpu.c b/arm/aarch64/kvm-cpu.c
index 4ac0fafae06b..c8be10b3ca94 100644
--- a/arm/aarch64/kvm-cpu.c
+++ b/arm/aarch64/kvm-cpu.c
@@ -88,16 +88,7 @@ static void reset_vcpu_aarch64(struct kvm_cpu *vcpu)
 {
 	struct kvm *kvm = vcpu->kvm;
 	struct kvm_one_reg reg;
-	cpu_set_t *affinity;
 	u64 data;
-	int ret;
-
-	affinity = kvm->arch.vcpu_affinity_cpuset;
-	if (affinity) {
-		ret = sched_setaffinity(0, sizeof(cpu_set_t), affinity);
-		if (ret == -1)
-			die_perror("sched_setaffinity");
-	}
 
 	reg.addr = (u64)&data;
 
@@ -179,7 +170,18 @@ int kvm_cpu__configure_features(struct kvm_cpu *vcpu)
 
 void kvm_cpu__reset_vcpu(struct kvm_cpu *vcpu)
 {
-	if (vcpu->kvm->cfg.arch.aarch32_guest)
+	struct kvm *kvm = vcpu->kvm;
+	cpu_set_t *affinity;
+	int ret;
+
+	affinity = kvm->arch.vcpu_affinity_cpuset;
+	if (affinity) {
+		ret = sched_setaffinity(0, sizeof(cpu_set_t), affinity);
+		if (ret == -1)
+			die_perror("sched_setaffinity");
+	}
+
+	if (kvm->cfg.arch.aarch32_guest)
 		return reset_vcpu_aarch32(vcpu);
 	else
 		return reset_vcpu_aarch64(vcpu);
-- 
2.36.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH kvmtool 2/2] mips: Do not emulate a serial device
  2022-05-25 16:57 ` Alexandru Elisei
@ 2022-05-25 16:57   ` Alexandru Elisei
  -1 siblings, 0 replies; 8+ messages in thread
From: Alexandru Elisei @ 2022-05-25 16:57 UTC (permalink / raw)
  To: will, julien.thierry.kdev, linux-arm-kernel, kvmarm, andre.przywara

Commit 45b4968e0de1 ("hw/serial: ARM/arm64: Use MMIO at higher addresses")
changed how the address for the UART is computed by using KVM_IOPORT_AREA.
The symbol is not defined for MIPS, which results in the following
compilation error:

hw/serial.c:21:27: error: ‘KVM_IOPORT_AREA’ undeclared here (not in a function); did you mean ‘KVM_MIPS_IOPORT_AREA’?
   21 | #define serial_iobase_0  (KVM_IOPORT_AREA + 0x3f8)
      |                           ^~~~~~~~~~~~~~~
hw/serial.c:29:27: note: in expansion of macro ‘serial_iobase_0’
   29 | #define serial_iobase(nr) serial_iobase_##nr
      |                           ^~~~~~~~~~~~~~
hw/serial.c:92:15: note: in expansion of macro ‘serial_iobase’
   92 |   .iobase   = serial_iobase(0),
      |               ^~~~~~~~~~~~~

Before the commit, the serial was placed at addresses 0x3f8, 0x2f8,
0x3e8 and 0x2e8. However, MIPS puts the RAM at those addresses, up to
KVM_MMIO_START, which is 0x10000000. Meaning that serial device
emulation never worked, as those addresses were part of a valid memslot
representing memory. This has been the case since commit 7281a8db199b
("kvm tools, mips: Add MIPS support") from 2014.

A quick examination of the MIPS code reveals that the architecture relies
on hypercalls from the guest and the virtio console for input and output.
Since nobody complained about the missing serial device, assume that it is
indeed not needed and do not compile it for MIPS.

Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
---
 Makefile   | 7 +++++--
 mips/kvm.c | 5 +++++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 9e67c7637b1e..6464446a9f24 100644
--- a/Makefile
+++ b/Makefile
@@ -56,7 +56,6 @@ OBJS	+= disk/core.o
 OBJS	+= framebuffer.o
 OBJS	+= guest_compat.o
 OBJS	+= hw/rtc.o
-OBJS	+= hw/serial.o
 OBJS	+= irq.o
 OBJS	+= kvm-cpu.o
 OBJS	+= kvm.o
@@ -127,6 +126,7 @@ endif
 ifeq ($(ARCH),x86)
 	DEFINES += -DCONFIG_X86
 	OBJS	+= hw/i8042.o
+	OBJS	+= hw/serial.o
 	OBJS	+= x86/boot.o
 	OBJS	+= x86/cpuid.o
 	OBJS	+= x86/interrupt.o
@@ -144,6 +144,7 @@ endif
 # POWER/ppc:  Actually only support ppc64 currently.
 ifeq ($(ARCH), powerpc)
 	DEFINES += -DCONFIG_PPC
+	OBJS	+= hw/serial.o
 	OBJS	+= powerpc/boot.o
 	OBJS	+= powerpc/ioport.o
 	OBJS	+= powerpc/kvm.o
@@ -161,7 +162,8 @@ endif
 
 # ARM
 OBJS_ARM_COMMON		:= arm/fdt.o arm/gic.o arm/gicv2m.o arm/ioport.o \
-			   arm/kvm.o arm/kvm-cpu.o arm/pci.o arm/timer.o
+			   arm/kvm.o arm/kvm-cpu.o arm/pci.o arm/timer.o \
+			   hw/serial.o
 HDRS_ARM_COMMON		:= arm/include
 ifeq ($(ARCH), arm)
 	DEFINES		+= -DCONFIG_ARM
@@ -203,6 +205,7 @@ endif
 ifeq ($(ARCH),riscv)
 	DEFINES		+= -DCONFIG_RISCV
 	ARCH_INCLUDE	:= riscv/include
+	OBJS		+= hw/serial.o
 	OBJS		+= riscv/fdt.o
 	OBJS		+= riscv/ioport.o
 	OBJS		+= riscv/irq.o
diff --git a/mips/kvm.c b/mips/kvm.c
index 3470dbb2e433..e668cbbefb25 100644
--- a/mips/kvm.c
+++ b/mips/kvm.c
@@ -1,3 +1,4 @@
+#include "kvm/8250-serial.h"
 #include "kvm/kvm.h"
 #include "kvm/ioport.h"
 #include "kvm/virtio-console.h"
@@ -359,3 +360,7 @@ bool kvm__arch_load_kernel_image(struct kvm *kvm, int fd_kernel, int fd_initrd,
 void ioport__map_irq(u8 *irq)
 {
 }
+
+void serial8250__inject_sysrq(struct kvm *kvm, char sysrq)
+{
+}
-- 
2.36.1

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH kvmtool 2/2] mips: Do not emulate a serial device
@ 2022-05-25 16:57   ` Alexandru Elisei
  0 siblings, 0 replies; 8+ messages in thread
From: Alexandru Elisei @ 2022-05-25 16:57 UTC (permalink / raw)
  To: will, julien.thierry.kdev, linux-arm-kernel, kvmarm, andre.przywara

Commit 45b4968e0de1 ("hw/serial: ARM/arm64: Use MMIO at higher addresses")
changed how the address for the UART is computed by using KVM_IOPORT_AREA.
The symbol is not defined for MIPS, which results in the following
compilation error:

hw/serial.c:21:27: error: ‘KVM_IOPORT_AREA’ undeclared here (not in a function); did you mean ‘KVM_MIPS_IOPORT_AREA’?
   21 | #define serial_iobase_0  (KVM_IOPORT_AREA + 0x3f8)
      |                           ^~~~~~~~~~~~~~~
hw/serial.c:29:27: note: in expansion of macro ‘serial_iobase_0’
   29 | #define serial_iobase(nr) serial_iobase_##nr
      |                           ^~~~~~~~~~~~~~
hw/serial.c:92:15: note: in expansion of macro ‘serial_iobase’
   92 |   .iobase   = serial_iobase(0),
      |               ^~~~~~~~~~~~~

Before the commit, the serial was placed at addresses 0x3f8, 0x2f8,
0x3e8 and 0x2e8. However, MIPS puts the RAM at those addresses, up to
KVM_MMIO_START, which is 0x10000000. Meaning that serial device
emulation never worked, as those addresses were part of a valid memslot
representing memory. This has been the case since commit 7281a8db199b
("kvm tools, mips: Add MIPS support") from 2014.

A quick examination of the MIPS code reveals that the architecture relies
on hypercalls from the guest and the virtio console for input and output.
Since nobody complained about the missing serial device, assume that it is
indeed not needed and do not compile it for MIPS.

Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
---
 Makefile   | 7 +++++--
 mips/kvm.c | 5 +++++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 9e67c7637b1e..6464446a9f24 100644
--- a/Makefile
+++ b/Makefile
@@ -56,7 +56,6 @@ OBJS	+= disk/core.o
 OBJS	+= framebuffer.o
 OBJS	+= guest_compat.o
 OBJS	+= hw/rtc.o
-OBJS	+= hw/serial.o
 OBJS	+= irq.o
 OBJS	+= kvm-cpu.o
 OBJS	+= kvm.o
@@ -127,6 +126,7 @@ endif
 ifeq ($(ARCH),x86)
 	DEFINES += -DCONFIG_X86
 	OBJS	+= hw/i8042.o
+	OBJS	+= hw/serial.o
 	OBJS	+= x86/boot.o
 	OBJS	+= x86/cpuid.o
 	OBJS	+= x86/interrupt.o
@@ -144,6 +144,7 @@ endif
 # POWER/ppc:  Actually only support ppc64 currently.
 ifeq ($(ARCH), powerpc)
 	DEFINES += -DCONFIG_PPC
+	OBJS	+= hw/serial.o
 	OBJS	+= powerpc/boot.o
 	OBJS	+= powerpc/ioport.o
 	OBJS	+= powerpc/kvm.o
@@ -161,7 +162,8 @@ endif
 
 # ARM
 OBJS_ARM_COMMON		:= arm/fdt.o arm/gic.o arm/gicv2m.o arm/ioport.o \
-			   arm/kvm.o arm/kvm-cpu.o arm/pci.o arm/timer.o
+			   arm/kvm.o arm/kvm-cpu.o arm/pci.o arm/timer.o \
+			   hw/serial.o
 HDRS_ARM_COMMON		:= arm/include
 ifeq ($(ARCH), arm)
 	DEFINES		+= -DCONFIG_ARM
@@ -203,6 +205,7 @@ endif
 ifeq ($(ARCH),riscv)
 	DEFINES		+= -DCONFIG_RISCV
 	ARCH_INCLUDE	:= riscv/include
+	OBJS		+= hw/serial.o
 	OBJS		+= riscv/fdt.o
 	OBJS		+= riscv/ioport.o
 	OBJS		+= riscv/irq.o
diff --git a/mips/kvm.c b/mips/kvm.c
index 3470dbb2e433..e668cbbefb25 100644
--- a/mips/kvm.c
+++ b/mips/kvm.c
@@ -1,3 +1,4 @@
+#include "kvm/8250-serial.h"
 #include "kvm/kvm.h"
 #include "kvm/ioport.h"
 #include "kvm/virtio-console.h"
@@ -359,3 +360,7 @@ bool kvm__arch_load_kernel_image(struct kvm *kvm, int fd_kernel, int fd_initrd,
 void ioport__map_irq(u8 *irq)
 {
 }
+
+void serial8250__inject_sysrq(struct kvm *kvm, char sysrq)
+{
+}
-- 
2.36.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH kvmtool 0/2] Fixes for arm64 and MIPS
  2022-05-25 16:57 ` Alexandru Elisei
@ 2022-05-26  9:17   ` Will Deacon
  -1 siblings, 0 replies; 8+ messages in thread
From: Will Deacon @ 2022-05-26  9:17 UTC (permalink / raw)
  To: julien.thierry.kdev, kvmarm, linux-arm-kernel, andre.przywara,
	Alexandru Elisei
  Cc: catalin.marinas, kernel-team, Will Deacon

On Wed, 25 May 2022 17:57:02 +0100, Alexandru Elisei wrote:
> The first fix is for arm64, where the VCPUs weren't pinned correctly with
> --vcpu-affinity when creating an aarch32 guest. Hopefully the patch is
> straightforward.
> 
> The last patch is a fix for MIPS not compiling for a year now, ever since
> hw/serial.c was changed to use a different address for arm/arm64 in commit
> 45b4968e0de1 ("hw/serial: ARM/arm64: Use MMIO at higher addresses"). Did
> some digging and it turns out that the serial never worked on MIPS since
> RAM starts at 0 for the architecture. So I just removed hw/serial.o from the
> list of compilation objects, which revelead that kvm-ipc assumes that all
> architectures use the 16550/8250 UART. Added a stub for
> serial8250__inject_sysreg() to MIPS to fix that.
> 
> [...]

Applied to kvmtool (master), thanks!

[1/2] arm64: Honor --vcpu-affinity for aarch32 guests
      https://git.kernel.org/will/kvmtool/c/8ec1e8bf3bc2
[2/2] mips: Do not emulate a serial device
      https://git.kernel.org/will/kvmtool/c/6f6f384cef27

Cheers,
-- 
Will

https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH kvmtool 0/2] Fixes for arm64 and MIPS
@ 2022-05-26  9:17   ` Will Deacon
  0 siblings, 0 replies; 8+ messages in thread
From: Will Deacon @ 2022-05-26  9:17 UTC (permalink / raw)
  To: julien.thierry.kdev, kvmarm, linux-arm-kernel, andre.przywara,
	Alexandru Elisei
  Cc: catalin.marinas, kernel-team, Will Deacon

On Wed, 25 May 2022 17:57:02 +0100, Alexandru Elisei wrote:
> The first fix is for arm64, where the VCPUs weren't pinned correctly with
> --vcpu-affinity when creating an aarch32 guest. Hopefully the patch is
> straightforward.
> 
> The last patch is a fix for MIPS not compiling for a year now, ever since
> hw/serial.c was changed to use a different address for arm/arm64 in commit
> 45b4968e0de1 ("hw/serial: ARM/arm64: Use MMIO at higher addresses"). Did
> some digging and it turns out that the serial never worked on MIPS since
> RAM starts at 0 for the architecture. So I just removed hw/serial.o from the
> list of compilation objects, which revelead that kvm-ipc assumes that all
> architectures use the 16550/8250 UART. Added a stub for
> serial8250__inject_sysreg() to MIPS to fix that.
> 
> [...]

Applied to kvmtool (master), thanks!

[1/2] arm64: Honor --vcpu-affinity for aarch32 guests
      https://git.kernel.org/will/kvmtool/c/8ec1e8bf3bc2
[2/2] mips: Do not emulate a serial device
      https://git.kernel.org/will/kvmtool/c/6f6f384cef27

Cheers,
-- 
Will

https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-05-26  9:19 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-25 16:57 [PATCH kvmtool 0/2] Fixes for arm64 and MIPS Alexandru Elisei
2022-05-25 16:57 ` Alexandru Elisei
2022-05-25 16:57 ` [PATCH kvmtool 1/2] arm64: Honor --vcpu-affinity for aarch32 guests Alexandru Elisei
2022-05-25 16:57   ` Alexandru Elisei
2022-05-25 16:57 ` [PATCH kvmtool 2/2] mips: Do not emulate a serial device Alexandru Elisei
2022-05-25 16:57   ` Alexandru Elisei
2022-05-26  9:17 ` [PATCH kvmtool 0/2] Fixes for arm64 and MIPS Will Deacon
2022-05-26  9:17   ` Will Deacon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.