Re: [PATCH kvmtool v3 8/9] arm: Add support for multi memory regions

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

 



Hi Will,

On 1/22/19 5:45 AM, Will Deacon wrote:
On Thu, Dec 20, 2018 at 03:21:25PM +0000, Julien Grall wrote:
Currently, the RAM will always be contiguous and start 2GB. This patch
is giving the possibility to the user to specificy multiple RAM region
and

Note that at the moment it is not possible to place any RAM region below
2GB as the MMIO region is still static.

The implementation for multi memory regions is fairly straight-forward,
althought it the following points are worth to be mention:
     - The banks are sorted by base address, so it is easier to fetch the
     lowest bank later on and do sanity checking
     - If the user does not specify the address of the first bank, the
     old behavior is kept.

Signed-off-by: Julien Grall <julien.grall@xxxxxxx>

---
     Changes in v2:
         - Check whether memory banks overlap with the MMIO area
---
  arm/aarch32/include/kvm/kvm-arch.h |   2 +-
  arm/aarch64/include/kvm/kvm-arch.h |   4 +-
  arm/fdt.c                          |  19 ++++--
  arm/include/arm-common/kvm-arch.h  |  24 +++++--
  arm/kvm.c                          | 129 +++++++++++++++++++++++++++++--------
  5 files changed, 133 insertions(+), 45 deletions(-)

diff --git a/arm/aarch32/include/kvm/kvm-arch.h b/arm/aarch32/include/kvm/kvm-arch.h
index cd31e72..2ee0cb1 100644
--- a/arm/aarch32/include/kvm/kvm-arch.h
+++ b/arm/aarch32/include/kvm/kvm-arch.h
@@ -3,7 +3,7 @@
#define ARM_KERN_OFFSET(...) 0x8000 -#define ARM_MAX_MEMORY(...) ARM_LOMAP_MAX_MEMORY
+#define ARM_MAX_PHYS_SHIFT(...)	32
#include "arm-common/kvm-arch.h" diff --git a/arm/aarch64/include/kvm/kvm-arch.h b/arm/aarch64/include/kvm/kvm-arch.h
index 1b3d0a5..53ac20f 100644
--- a/arm/aarch64/include/kvm/kvm-arch.h
+++ b/arm/aarch64/include/kvm/kvm-arch.h
@@ -5,9 +5,7 @@
  				0x8000				:	\
  				0x80000)
-#define ARM_MAX_MEMORY(cfg) ((cfg)->arch.aarch32_guest ? \
-				ARM_LOMAP_MAX_MEMORY		:	\
-				ARM_HIMAP_MAX_MEMORY)
+#define ARM_MAX_PHYS_SHIFT(cfg)	((cfg)->arch.aarch32_guest ? 32 : 40)

We should probably have some #defines instead of open-coding the '32' and
'40'.

I will.


#include "arm-common/kvm-arch.h" diff --git a/arm/fdt.c b/arm/fdt.c
index 6ac0b33..2a010c7 100644
--- a/arm/fdt.c
+++ b/arm/fdt.c
@@ -29,7 +29,7 @@ static void dump_fdt(const char *dtb_file, void *fdt)
  	int count, fd;
fd = open(dtb_file, O_CREAT | O_TRUNC | O_RDWR, 0666);
-	if (fd < 0)
+
  		die("Failed to write dtb to %s", dtb_file);

This looks dodgy.

Whoops, probably a left-over in debug. I will re-instate the if (fd < 0).

Cheers,

--
Julien Grall



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux