diff mbox series

[PATCH-for-9.1,v2,12/21] hw/i386/pc: Remove PCMachineClass::enforce_aligned_dimm

Message ID 20240327095124.73639-13-philmd@linaro.org
State Superseded
Headers show
Series [PATCH-for-9.1,v2,01/21] hw/i386/pc: Remove deprecated pc-i440fx-2.0 machine | expand

Commit Message

Philippe Mathieu-Daudé March 27, 2024, 9:51 a.m. UTC
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().

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 include/hw/i386/pc.h                  |  3 ---
 hw/i386/pc.c                          | 14 +++-----------
 tests/avocado/mem-addr-space-check.py |  3 +--
 3 files changed, 4 insertions(+), 16 deletions(-)

Comments

Zhao Liu March 28, 2024, 2:54 a.m. UTC | #1
On Wed, Mar 27, 2024 at 10:51:14AM +0100, Philippe Mathieu-Daudé wrote:
> Date: Wed, 27 Mar 2024 10:51:14 +0100
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
> Subject: [PATCH-for-9.1 v2 12/21] hw/i386/pc: Remove
>  PCMachineClass::enforce_aligned_dimm
> X-Mailer: git-send-email 2.41.0
> 
> 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().
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>  include/hw/i386/pc.h                  |  3 ---
>  hw/i386/pc.c                          | 14 +++-----------
>  tests/avocado/mem-addr-space-check.py |  3 +--
>  3 files changed, 4 insertions(+), 16 deletions(-)

[snip]

> diff --git a/tests/avocado/mem-addr-space-check.py b/tests/avocado/mem-addr-space-check.py
> index af019969c0..ad75170d52 100644
> --- a/tests/avocado/mem-addr-space-check.py
> +++ b/tests/avocado/mem-addr-space-check.py
> @@ -31,8 +31,7 @@ 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
> +        for dimm alignment for all machines. That leaves

Just nit, better align it here.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>

>          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.
> -- 
> 2.41.0
>
Philippe Mathieu-Daudé April 16, 2024, 1:31 p.m. UTC | #2
On 28/3/24 03:54, Zhao Liu wrote:
> On Wed, Mar 27, 2024 at 10:51:14AM +0100, Philippe Mathieu-Daudé wrote:
>> Date: Wed, 27 Mar 2024 10:51:14 +0100
>> From: Philippe Mathieu-Daudé <philmd@linaro.org>
>> Subject: [PATCH-for-9.1 v2 12/21] hw/i386/pc: Remove
>>   PCMachineClass::enforce_aligned_dimm
>> X-Mailer: git-send-email 2.41.0
>>
>> 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().
>>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>> ---
>>   include/hw/i386/pc.h                  |  3 ---
>>   hw/i386/pc.c                          | 14 +++-----------
>>   tests/avocado/mem-addr-space-check.py |  3 +--
>>   3 files changed, 4 insertions(+), 16 deletions(-)


>> --- a/tests/avocado/mem-addr-space-check.py
>> +++ b/tests/avocado/mem-addr-space-check.py
>> @@ -31,8 +31,7 @@ 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
>> +        for dimm alignment for all machines. That leaves
> 
> Just nit, better align it here.

Well, I wanted to avoid too much churn, but OK.

> Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
> 
>>           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.
>> -- 
>> 2.41.0
>>
diff mbox series

Patch

diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index c2d9af36b2..231aae92ed 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;
 
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index f9650a2821..adbc43ab90 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -716,7 +716,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;
@@ -724,10 +723,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;
@@ -1285,12 +1282,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;
 
     /*
@@ -1315,8 +1309,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,
@@ -1778,7 +1771,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;
     /* BIOS ACPI tables: 128K. Other BIOS datastructures: less than 4K reported
      * to be used at the moment, 32K should be enough for a while.  */
diff --git a/tests/avocado/mem-addr-space-check.py b/tests/avocado/mem-addr-space-check.py
index af019969c0..ad75170d52 100644
--- a/tests/avocado/mem-addr-space-check.py
+++ b/tests/avocado/mem-addr-space-check.py
@@ -31,8 +31,7 @@  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
+        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.