From: Igor Mammedov <imammedo@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, "Thomas Huth" <thuth@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Daniel P . Berrangé" <berrange@redhat.com>,
"Zhao Liu" <zhao1.liu@intel.com>
Subject: Re: [PATCH v5 13/23] hw/i386/pc: Remove PCMachineClass::enforce_aligned_dimm
Date: Wed, 29 May 2024 16:30:36 +0200 [thread overview]
Message-ID: <20240529163036.05dacea0@imammedo.users.ipa.redhat.com> (raw)
In-Reply-To: <20240529051539.71210-14-philmd@linaro.org>
On Wed, 29 May 2024 07:15:29 +0200
Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
> PCMachineClass::enforce_aligned_dimm was only used by the
> pc-i440fx-2.1 machine, which got removed. It is now always
> true. Remove it, simplifying pc_get_device_memory_range().
> Update the comment in Avocado test_phybits_low_pse36().
>
> Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
> ---
> include/hw/i386/pc.h | 3 ---
> hw/i386/pc.c | 14 +++-----------
> tests/avocado/mem-addr-space-check.py | 9 ++++-----
> 3 files changed, 7 insertions(+), 19 deletions(-)
>
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index bbbf58bd42..1351e73ee0 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -74,8 +74,6 @@ typedef struct PCMachineState {
> *
> * Compat fields:
> *
> - * @enforce_aligned_dimm: check that DIMM's address/size is aligned by
> - * backend's alignment value if provided
> * @acpi_data_size: Size of the chunk of memory at the top of RAM
> * for the BIOS ACPI tables and other BIOS
> * datastructures.
> @@ -114,7 +112,6 @@ struct PCMachineClass {
> /* RAM / address space compat: */
> bool gigabyte_align;
> bool has_reserved_memory;
> - bool enforce_aligned_dimm;
> bool broken_reserved_end;
> bool enforce_amd_1tb_hole;
> bool isa_bios_alias;
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 4b2a29bf08..9cb5083f8f 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -727,7 +727,6 @@ static void pc_get_device_memory_range(PCMachineState *pcms,
> hwaddr *base,
> ram_addr_t *device_mem_size)
> {
> - PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
> MachineState *machine = MACHINE(pcms);
> ram_addr_t size;
> hwaddr addr;
> @@ -735,10 +734,8 @@ static void pc_get_device_memory_range(PCMachineState *pcms,
> size = machine->maxram_size - machine->ram_size;
> addr = ROUND_UP(pc_above_4g_end(pcms), 1 * GiB);
>
> - if (pcmc->enforce_aligned_dimm) {
> - /* size device region assuming 1G page max alignment per slot */
> - size += (1 * GiB) * machine->ram_slots;
> - }
> + /* size device region assuming 1G page max alignment per slot */
> + size += (1 * GiB) * machine->ram_slots;
>
> *base = addr;
> *device_mem_size = size;
> @@ -1297,12 +1294,9 @@ void pc_i8259_create(ISABus *isa_bus, qemu_irq *i8259_irqs)
> static void pc_memory_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev,
> Error **errp)
> {
> - const PCMachineState *pcms = PC_MACHINE(hotplug_dev);
> const X86MachineState *x86ms = X86_MACHINE(hotplug_dev);
> - const PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
> const MachineState *ms = MACHINE(hotplug_dev);
> const bool is_nvdimm = object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM);
> - const uint64_t legacy_align = TARGET_PAGE_SIZE;
> Error *local_err = NULL;
>
> /*
> @@ -1327,8 +1321,7 @@ static void pc_memory_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev,
> return;
> }
>
> - pc_dimm_pre_plug(PC_DIMM(dev), MACHINE(hotplug_dev),
> - pcmc->enforce_aligned_dimm ? NULL : &legacy_align, errp);
> + pc_dimm_pre_plug(PC_DIMM(dev), MACHINE(hotplug_dev), NULL, errp);
> }
>
> static void pc_memory_plug(HotplugHandler *hotplug_dev,
> @@ -1792,7 +1785,6 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
> pcmc->smbios_defaults = true;
> pcmc->gigabyte_align = true;
> pcmc->has_reserved_memory = true;
> - pcmc->enforce_aligned_dimm = true;
> pcmc->enforce_amd_1tb_hole = true;
> pcmc->isa_bios_alias = true;
> /* BIOS ACPI tables: 128K. Other BIOS datastructures: less than 4K reported
> diff --git a/tests/avocado/mem-addr-space-check.py b/tests/avocado/mem-addr-space-check.py
> index af019969c0..85541ea051 100644
> --- a/tests/avocado/mem-addr-space-check.py
> +++ b/tests/avocado/mem-addr-space-check.py
> @@ -31,11 +31,10 @@ def test_phybits_low_pse36(self):
> at 4 GiB boundary when "above_4g_mem_size" is 0 (this would be true when
> we have 0.5 GiB of VM memory, see pc_q35_init()). This means total
> hotpluggable memory size is 60 GiB. Per slot, we reserve 1 GiB of memory
> - for dimm alignment for all newer machines (see enforce_aligned_dimm
> - property for pc machines and pc_get_device_memory_range()). That leaves
> - total hotpluggable actual memory size of 59 GiB. If the VM is started
> - with 0.5 GiB of memory, maxmem should be set to a maximum value of
> - 59.5 GiB to ensure that the processor can address all memory directly.
> + for dimm alignment for all machines. That leaves total hotpluggable
> + actual memory size of 59 GiB. If the VM is started with 0.5 GiB of
> + memory, maxmem should be set to a maximum value of 59.5 GiB to ensure
> + that the processor can address all memory directly.
> Note that 64-bit pci hole size is 0 in this case. If maxmem is set to
> 59.6G, QEMU should fail to start with a message "phy-bits are too low".
> If maxmem is set to 59.5G with all other QEMU parameters identical, QEMU
next prev parent reply other threads:[~2024-05-29 14:31 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-29 5:15 [PATCH v5 00/23] hw/i386: Remove deprecated pc-i440fx-2.0 -> 2.3 machines Philippe Mathieu-Daudé
2024-05-29 5:15 ` [PATCH v5 01/23] hw/i386/pc: Deprecate 2.4 to 2.12 pc-i440fx machines Philippe Mathieu-Daudé
2024-05-29 12:51 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 02/23] hw/i386/pc: Remove deprecated pc-i440fx-2.0 machine Philippe Mathieu-Daudé
2024-05-29 12:58 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 03/23] hw/usb/hcd-xhci: Remove XHCI_FLAG_FORCE_PCIE_ENDCAP flag Philippe Mathieu-Daudé
2024-05-29 13:15 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 04/23] hw/usb/hcd-xhci: Remove XHCI_FLAG_SS_FIRST flag Philippe Mathieu-Daudé
2024-05-29 13:16 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 05/23] hw/i386/acpi: Remove PCMachineClass::legacy_acpi_table_size Philippe Mathieu-Daudé
2024-05-29 13:48 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 06/23] hw/acpi/ich9: Remove 'memory-hotplug-support' property Philippe Mathieu-Daudé
2024-05-29 13:52 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 07/23] hw/acpi/ich9: Remove dead code related to 'acpi_memory_hotplug' Philippe Mathieu-Daudé
2024-05-29 13:54 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 08/23] hw/i386/pc: Remove deprecated pc-i440fx-2.1 machine Philippe Mathieu-Daudé
2024-05-29 14:00 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 09/23] target/i386/kvm: Remove x86_cpu_change_kvm_default() and 'kvm-cpu.h' Philippe Mathieu-Daudé
2024-05-29 14:18 ` Igor Mammedov
2024-05-29 14:23 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 10/23] hw/i386/pc: Remove PCMachineClass::smbios_uuid_encoded Philippe Mathieu-Daudé
2024-05-29 14:24 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 11/23] hw/smbios: Remove 'uuid_encoded' argument from smbios_set_defaults() Philippe Mathieu-Daudé
2024-05-29 14:25 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 12/23] hw/smbios: Remove 'smbios_uuid_encoded', simplify smbios_encode_uuid() Philippe Mathieu-Daudé
2024-05-29 14:26 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 13/23] hw/i386/pc: Remove PCMachineClass::enforce_aligned_dimm Philippe Mathieu-Daudé
2024-05-29 14:30 ` Igor Mammedov [this message]
2024-05-29 5:15 ` [PATCH v5 14/23] hw/mem/pc-dimm: Remove legacy_align argument from pc_dimm_pre_plug() Philippe Mathieu-Daudé
2024-05-29 14:31 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 15/23] hw/mem/memory-device: Remove legacy_align from memory_device_pre_plug() Philippe Mathieu-Daudé
2024-05-29 14:33 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 16/23] hw/i386/pc: Remove deprecated pc-i440fx-2.2 machine Philippe Mathieu-Daudé
2024-05-29 14:45 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 17/23] hw/i386/pc: Remove PCMachineClass::resizable_acpi_blob Philippe Mathieu-Daudé
2024-05-29 15:07 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 18/23] hw/i386/pc: Remove PCMachineClass::rsdp_in_ram Philippe Mathieu-Daudé
2024-05-29 14:49 ` Igor Mammedov
2024-05-29 15:08 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 19/23] hw/i386/acpi: Remove AcpiBuildState::rsdp field Philippe Mathieu-Daudé
2024-05-29 14:51 ` Igor Mammedov
2024-05-29 15:08 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 20/23] hw/i386/pc: Remove deprecated pc-i440fx-2.3 machine Philippe Mathieu-Daudé
2024-05-29 6:02 ` Thomas Huth
2024-05-29 6:38 ` Zhao Liu
2024-05-29 15:08 ` Igor Mammedov
2024-05-29 5:15 ` [PATCH v5 21/23] hw/i386/pc: Simplify DEFINE_I440FX_MACHINE() macro Philippe Mathieu-Daudé
2024-05-29 6:04 ` Thomas Huth
2024-05-29 6:33 ` Zhao Liu
2024-06-03 11:33 ` Daniel P. Berrangé
2024-05-29 5:15 ` [PATCH v5 22/23] target/i386: Remove X86CPU::kvm_no_smi_migration field Philippe Mathieu-Daudé
2024-05-29 6:07 ` Thomas Huth
2024-05-29 5:15 ` [PATCH v5 23/23] hw/i386/pc: Replace PCMachineClass::acpi_data_size by PC_ACPI_DATA_SIZE Philippe Mathieu-Daudé
2024-05-29 15:15 ` Igor Mammedov
2024-05-29 6:00 ` [PATCH v5 00/23] hw/i386: Remove deprecated pc-i440fx-2.0 -> 2.3 machines Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240529163036.05dacea0@imammedo.users.ipa.redhat.com \
--to=imammedo@redhat.com \
--cc=berrange@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
--cc=zhao1.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.