[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [Qemu-devel] [PATCH v6 14/18] hw/arm/virt: Allocate devic
From: |
David Hildenbrand |
Subject: |
Re: [Qemu-arm] [Qemu-devel] [PATCH v6 14/18] hw/arm/virt: Allocate device_memory |
Date: |
Tue, 19 Feb 2019 16:56:58 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 |
On 19.02.19 16:53, Auger Eric wrote:
> Hi Igor,
>
> On 2/18/19 10:31 AM, Igor Mammedov wrote:
>> On Tue, 5 Feb 2019 18:33:02 +0100
>> Eric Auger <address@hidden> wrote:
>>
>>> The device memory region is located after the initial RAM.
>>> its start/size are 1GB aligned.
>>>
>>> Signed-off-by: Eric Auger <address@hidden>
>>> Signed-off-by: Kwangwoo Lee <address@hidden>
>>>
>>> ---
>>> v4 -> v5:
>>> - device memory set after the initial RAM
>>>
>>> v3 -> v4:
>>> - remove bootinfo.device_memory_start/device_memory_size
>>> - rename VIRT_HOTPLUG_MEM into VIRT_DEVICE_MEM
>>> ---
>>> hw/arm/virt.c | 36 ++++++++++++++++++++++++++++++++++++
>>> 1 file changed, 36 insertions(+)
>>>
>>> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
>>> index 783468ba77..b683902991 100644
>>> --- a/hw/arm/virt.c
>>> +++ b/hw/arm/virt.c
>>> @@ -61,6 +61,7 @@
>>> #include "hw/arm/smmuv3.h"
>>> #include "hw/mem/pc-dimm.h"
>>> #include "hw/mem/nvdimm.h"
>>> +#include "hw/acpi/acpi.h"
>>>
>>> #define DEFINE_VIRT_MACHINE_LATEST(major, minor, latest) \
>>> static void virt_##major##_##minor##_class_init(ObjectClass *oc, \
>>> @@ -1260,6 +1261,37 @@ static void create_secure_ram(VirtMachineState *vms,
>>> g_free(nodename);
>>> }
>>>
>>> +static void create_device_memory(VirtMachineState *vms, MemoryRegion
>>> *sysmem)
>>> +{
>>> + MachineState *ms = MACHINE(vms);
>>> + uint64_t device_memory_size = ms->maxram_size - ms->ram_size;
>> should size it with 1Gb alignment per slot from the start (to avoid x86
>> mistakes),
>> see enforce_aligned_dimm usage and associated commit for more details
> I don't understand the computation done in pc machine. eventually we are
> likely to have more device memory than requested by the user. Why don't
> we check (machine->maxram_size - machine->ram_size) >=
> machine->ram_slots * GiB
> instead of adding 1GiB/slot to the initial user requirements?
This is to be able to potentially align each slot as far as I know, so
the "memory device address space" cannot that easily be fragmented.
E.g. Linux requires a certain alignment to make full use of a DIMM.
>
> Also machine->maxram_size - machine->ram_size is checked to be aligned
> with TARGET_PAGE_SIZE. Is TARGET_PAGE_SIZE representative of the guest
> PAGE in accelerated mode? Is it valid ro require an alignment on 1GB
> boundary as I do in this patch?
I guess the alignment check is only done because for that target,
anything having sub-page granularity cannot be used either way.
--
Thanks,
David / dhildenb
- Re: [Qemu-arm] [PATCH v6 11/18] hw/arm/virt: Add memory hotplug framework, (continued)
- [Qemu-arm] [PATCH v6 13/18] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT, Eric Auger, 2019/02/05
- [Qemu-arm] [PATCH v6 14/18] hw/arm/virt: Allocate device_memory, Eric Auger, 2019/02/05
- Re: [Qemu-arm] [Qemu-devel] [PATCH v6 14/18] hw/arm/virt: Allocate device_memory, Igor Mammedov, 2019/02/18
- Re: [Qemu-arm] [Qemu-devel] [PATCH v6 14/18] hw/arm/virt: Allocate device_memory, Auger Eric, 2019/02/19
- Re: [Qemu-arm] [Qemu-devel] [PATCH v6 14/18] hw/arm/virt: Allocate device_memory,
David Hildenbrand <=
- Re: [Qemu-arm] [Qemu-devel] [PATCH v6 14/18] hw/arm/virt: Allocate device_memory, Igor Mammedov, 2019/02/21
- Re: [Qemu-arm] [Qemu-devel] [PATCH v6 14/18] hw/arm/virt: Allocate device_memory, Auger Eric, 2019/02/21
- Re: [Qemu-arm] [Qemu-devel] [PATCH v6 14/18] hw/arm/virt: Allocate device_memory, David Hildenbrand, 2019/02/21
- Re: [Qemu-arm] [Qemu-devel] [PATCH v6 14/18] hw/arm/virt: Allocate device_memory, Auger Eric, 2019/02/21
[Qemu-arm] [PATCH v6 15/18] nvdimm: use configurable ACPI IO base and size, Eric Auger, 2019/02/05
[Qemu-arm] [PATCH v6 18/18] hw/arm/virt: Add nvdimm and nvdimm-persistence options, Eric Auger, 2019/02/05
[Qemu-arm] [PATCH v6 17/18] hw/arm/boot: Expose the pmem nodes in the DT, Eric Auger, 2019/02/05
[Qemu-arm] [PATCH v6 16/18] hw/arm/virt: Add nvdimm hot-plug infrastructure, Eric Auger, 2019/02/05