All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: Joao Martins <joao.m.martins@oracle.com>
Cc: qemu-devel@nongnu.org, Eduardo Habkost <eduardo@habkost.net>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	Alex Williamson <alex.williamson@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>, Ani Sinha <ani@anisinha.ca>,
	Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Subject: Re: [PATCH v6 04/10] i386/pc: factor out above-4g end to an helper
Date: Thu, 7 Jul 2022 14:42:02 +0200	[thread overview]
Message-ID: <20220707144202.6a7c3f9c@redhat.com> (raw)
In-Reply-To: <20220701161014.3850-5-joao.m.martins@oracle.com>

On Fri,  1 Jul 2022 17:10:08 +0100
Joao Martins <joao.m.martins@oracle.com> wrote:

> There's a couple of places that seem to duplicate this calculation
> of RAM size above the 4G boundary. Move all those to a helper function.
> 
> Signed-off-by: Joao Martins <joao.m.martins@oracle.com>

Reviewed-by: Igor Mammedov <imammedo@redhat.com>

> ---
>  hw/i386/pc.c | 29 ++++++++++++++---------------
>  1 file changed, 14 insertions(+), 15 deletions(-)
> 
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 1bb89a9c17ec..6c7c49ca5a32 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -814,6 +814,17 @@ void xen_load_linux(PCMachineState *pcms)
>  #define PC_ROM_ALIGN       0x800
>  #define PC_ROM_SIZE        (PC_ROM_MAX - PC_ROM_MIN_VGA)
>  
> +static hwaddr pc_above_4g_end(PCMachineState *pcms)
> +{
> +    X86MachineState *x86ms = X86_MACHINE(pcms);
> +
> +    if (pcms->sgx_epc.size != 0) {
> +        return sgx_epc_above_4g_end(&pcms->sgx_epc);
> +    }
> +
> +    return x86ms->above_4g_mem_start + x86ms->above_4g_mem_size;
> +}
> +
>  void pc_memory_init(PCMachineState *pcms,
>                      MemoryRegion *system_memory,
>                      MemoryRegion *rom_memory,
> @@ -891,15 +902,8 @@ void pc_memory_init(PCMachineState *pcms,
>              exit(EXIT_FAILURE);
>          }
>  
> -        if (pcms->sgx_epc.size != 0) {
> -            machine->device_memory->base = sgx_epc_above_4g_end(&pcms->sgx_epc);
> -        } else {
> -            machine->device_memory->base =
> -                x86ms->above_4g_mem_start + x86ms->above_4g_mem_size;
> -        }
> -
>          machine->device_memory->base =
> -            ROUND_UP(machine->device_memory->base, 1 * GiB);
> +            ROUND_UP(pc_above_4g_end(pcms), 1 * GiB);
>  
>          if (pcmc->enforce_aligned_dimm) {
>              /* size device region assuming 1G page max alignment per slot */
> @@ -928,10 +932,8 @@ void pc_memory_init(PCMachineState *pcms,
>              if (!pcmc->broken_reserved_end) {
>                  cxl_base += memory_region_size(&machine->device_memory->mr);
>              }
> -        } else if (pcms->sgx_epc.size != 0) {
> -            cxl_base = sgx_epc_above_4g_end(&pcms->sgx_epc);
>          } else {
> -            cxl_base = x86ms->above_4g_mem_start + x86ms->above_4g_mem_size;
> +            cxl_base = pc_above_4g_end(pcms);
>          }
>  
>          e820_add_entry(cxl_base, cxl_size, E820_RESERVED);
> @@ -1018,7 +1020,6 @@ uint64_t pc_pci_hole64_start(void)
>      PCMachineState *pcms = PC_MACHINE(qdev_get_machine());
>      PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
>      MachineState *ms = MACHINE(pcms);
> -    X86MachineState *x86ms = X86_MACHINE(pcms);
>      uint64_t hole64_start = 0;
>  
>      if (pcms->cxl_devices_state.host_mr.addr) {
> @@ -1036,10 +1037,8 @@ uint64_t pc_pci_hole64_start(void)
>          if (!pcmc->broken_reserved_end) {
>              hole64_start += memory_region_size(&ms->device_memory->mr);
>          }
> -    } else if (pcms->sgx_epc.size != 0) {
> -            hole64_start = sgx_epc_above_4g_end(&pcms->sgx_epc);
>      } else {
> -        hole64_start = x86ms->above_4g_mem_start + x86ms->above_4g_mem_size;
> +        hole64_start = pc_above_4g_end(pcms);
>      }
>  
>      return ROUND_UP(hole64_start, 1 * GiB);



  reply	other threads:[~2022-07-07 12:49 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-01 16:10 [PATCH v6 00/10] i386/pc: Fix creation of >= 1010G guests on AMD systems with IOMMU Joao Martins
2022-07-01 16:10 ` [PATCH v6 01/10] hw/i386: add 4g boundary start to X86MachineState Joao Martins
2022-07-01 16:10 ` [PATCH v6 02/10] i386/pc: create pci-host qdev prior to pc_memory_init() Joao Martins
2022-07-01 16:10 ` [PATCH v6 03/10] i386/pc: pass pci_hole64_size " Joao Martins
2022-07-09 20:51   ` B
2022-07-11 10:01     ` Joao Martins
2022-07-11 22:17       ` B
2022-07-12  9:27         ` Joao Martins
2022-07-01 16:10 ` [PATCH v6 04/10] i386/pc: factor out above-4g end to an helper Joao Martins
2022-07-07 12:42   ` Igor Mammedov [this message]
2022-07-07 15:14     ` Joao Martins
2022-07-01 16:10 ` [PATCH v6 05/10] i386/pc: factor out cxl range end to helper Joao Martins
2022-07-07 12:57   ` Igor Mammedov
2022-07-07 15:17     ` Joao Martins
2022-07-01 16:10 ` [PATCH v6 06/10] i386/pc: factor out cxl range start " Joao Martins
2022-07-07 13:00   ` Igor Mammedov
2022-07-07 15:18     ` Joao Martins
2022-07-11 12:47       ` Igor Mammedov
2022-07-11 14:28         ` Joao Martins
2022-07-01 16:10 ` [PATCH v6 07/10] i386/pc: handle unitialized mr in pc_get_cxl_range_end() Joao Martins
2022-07-07 13:05   ` Igor Mammedov
2022-07-07 15:21     ` Joao Martins
2022-07-11 12:58       ` Igor Mammedov
2022-07-11 14:32         ` Joao Martins
2022-07-01 16:10 ` [PATCH v6 08/10] i386/pc: factor out device_memory base/size to helper Joao Martins
2022-07-07 13:15   ` Igor Mammedov
2022-07-07 15:23     ` Joao Martins
2022-07-01 16:10 ` [PATCH v6 09/10] i386/pc: relocate 4g start to 1T where applicable Joao Martins
2022-07-07 15:53   ` Joao Martins
2022-07-11 12:56   ` Igor Mammedov
2022-07-11 14:52     ` Joao Martins
2022-07-11 15:31       ` Joao Martins
2022-07-11 20:03         ` Joao Martins
2022-07-12  9:06           ` Igor Mammedov
2022-07-12 10:01             ` Joao Martins
2022-07-12 10:21               ` Joao Martins
2022-07-12 11:35               ` Joao Martins
2022-07-14  9:28                 ` Igor Mammedov
2022-07-14  9:54                   ` Joao Martins
2022-07-14 10:47                     ` Joao Martins
2022-07-14 11:50                       ` Igor Mammedov
2022-07-14 15:39                         ` Joao Martins
2022-07-14  9:30               ` Igor Mammedov
2022-07-01 16:10 ` [PATCH v6 10/10] i386/pc: restrict AMD only enforcing of valid IOVAs to new machine type Joao Martins
2022-07-04 14:27   ` Dr. David Alan Gilbert
2022-07-05  8:48     ` Joao Martins
2022-07-11 13:03   ` Igor Mammedov
2022-07-11 14:56     ` Joao Martins

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=20220707144202.6a7c3f9c@redhat.com \
    --to=imammedo@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=ani@anisinha.ca \
    --cc=dgilbert@redhat.com \
    --cc=eduardo@habkost.net \
    --cc=joao.m.martins@oracle.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=suravee.suthikulpanit@amd.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.