All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, "Ani Sinha" <anisinha@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Pierrick Bouvier" <pierrick.bouvier@linaro.org>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"David Hildenbrand" <david@redhat.com>,
	"Igor Mammedov" <imammedo@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>
Subject: Re: [PATCH 5/7] hw/virtio/virtio-mem: Convert VIRTIO_MEM_USABLE_EXTENT to runtime
Date: Fri, 07 Mar 2025 16:38:57 +0000	[thread overview]
Message-ID: <877c503ie6.fsf@draig.linaro.org> (raw)
In-Reply-To: <20250307151543.8156-6-philmd@linaro.org> ("Philippe Mathieu-Daudé"'s message of "Fri, 7 Mar 2025 16:15:41 +0100")

Philippe Mathieu-Daudé <philmd@linaro.org> writes:

> Use qemu_arch_available() to check at runtime if a target
> architecture is built in.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>  hw/virtio/virtio-mem.c | 20 ++++++++++++--------
>  1 file changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/hw/virtio/virtio-mem.c b/hw/virtio/virtio-mem.c
> index 5f57eccbb66..8c40042108c 100644
> --- a/hw/virtio/virtio-mem.c
> +++ b/hw/virtio/virtio-mem.c
> @@ -15,6 +15,7 @@
>  #include "qemu/cutils.h"
>  #include "qemu/error-report.h"
>  #include "qemu/units.h"
> +#include "system/arch_init.h"
>  #include "system/numa.h"
>  #include "system/system.h"
>  #include "system/reset.h"
> @@ -170,13 +171,16 @@ static bool virtio_mem_has_shared_zeropage(RAMBlock *rb)
>   * necessary (as the section size can change). But it's more likely that the
>   * section size will rather get smaller and not bigger over time.
>   */
> -#if defined(TARGET_X86_64) || defined(TARGET_I386) || defined(TARGET_S390X)
> -#define VIRTIO_MEM_USABLE_EXTENT (2 * (128 * MiB))
> -#elif defined(TARGET_ARM)
> -#define VIRTIO_MEM_USABLE_EXTENT (2 * (512 * MiB))
> -#else
> -#error VIRTIO_MEM_USABLE_EXTENT not defined
> -#endif
> +static uint64_t virtio_mem_usable_extent_size(void)
> +{
> +    if (qemu_arch_available(QEMU_ARCH_I386 | QEMU_ARCH_S390X)) {
> +        return 2 * 128 * MiB;
> +    } else if (qemu_arch_available(QEMU_ARCH_ARM)) {
> +        return 2 * 512 * MiB;
> +    } else {
> +        g_assert_not_reached();
> +    }
> +}

What happens if/when we have multiple arches available? Won't we want to
know which CPU the virtio-mem device is attached to or do we take the
minimal value over the whole system?

>  
>  static bool virtio_mem_is_busy(void)
>  {
> @@ -721,7 +725,7 @@ static void virtio_mem_resize_usable_region(VirtIOMEM *vmem,
>                                              bool can_shrink)
>  {
>      uint64_t newsize = MIN(memory_region_size(&vmem->memdev->mr),
> -                           requested_size + VIRTIO_MEM_USABLE_EXTENT);
> +                           requested_size + virtio_mem_usable_extent_size());
>  
>      /* The usable region size always has to be multiples of the block size. */
>      newsize = QEMU_ALIGN_UP(newsize, vmem->block_size);

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro


  reply	other threads:[~2025-03-07 16:39 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-07 15:15 [PATCH 0/7] hw/virtio: Build virtio-mem.c once Philippe Mathieu-Daudé
2025-03-07 15:15 ` [PATCH 1/7] system: Replace arch_type global by qemu_arch_available() helper Philippe Mathieu-Daudé
2025-03-07 15:15 ` [PATCH 2/7] hw/acpi: Introduce acpi_builtin() helper Philippe Mathieu-Daudé
2025-03-07 15:42   ` Ani Sinha
2025-03-07 15:15 ` [PATCH 3/7] hw/i386/fw_cfg: Check ACPI availability with acpi_builtin() Philippe Mathieu-Daudé
2025-03-07 15:44   ` Ani Sinha
2025-03-07 15:15 ` [PATCH 4/7] hw/virtio/virtio-mem: Remove CONFIG_DEVICES include Philippe Mathieu-Daudé
2025-03-07 17:48   ` David Hildenbrand
2025-03-07 19:21   ` Pierrick Bouvier
2025-03-07 15:15 ` [PATCH 5/7] hw/virtio/virtio-mem: Convert VIRTIO_MEM_USABLE_EXTENT to runtime Philippe Mathieu-Daudé
2025-03-07 16:38   ` Alex Bennée [this message]
2025-03-07 16:49     ` Philippe Mathieu-Daudé
2025-03-07 17:52       ` David Hildenbrand
2025-03-07 19:08       ` Richard Henderson
2025-03-07 19:28       ` Pierrick Bouvier
2025-03-07 21:00         ` Philippe Mathieu-Daudé
2025-03-07 15:15 ` [PATCH 6/7] hw/virtio/virtio-mem: Convert VIRTIO_MEM_HAS_LEGACY_GUESTS " Philippe Mathieu-Daudé
2025-03-07 17:54   ` David Hildenbrand
2025-03-07 15:15 ` [PATCH 7/7] hw/virtio: Compile virtio-mem.c once Philippe Mathieu-Daudé
2025-03-07 17:55   ` David Hildenbrand

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=877c503ie6.fsf@draig.linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=anisinha@redhat.com \
    --cc=berrange@redhat.com \
    --cc=david@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=pierrick.bouvier@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=thuth@redhat.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.