All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lucas Amaral <lucaaamaral@gmail.com>
To: qemu-devel@nongnu.org
Cc: qemu-arm@nongnu.org, Lucas Amaral <lucaaamaral@gmail.com>
Subject: [PATCH v3 0/3] hvf: map granule abstraction, configurable IPA, and MAP_FIXED alignment fix
Date: Sun, 15 Mar 2026 00:41:51 -0300	[thread overview]
Message-ID: <20260315034154.41986-1-lucaaamaral@gmail.com> (raw)
In-Reply-To: <20260311022732.64141-1-lucaaamaral@gmail.com>

Fix a bug in the MAP_FIXED blob mapping path (introduced by 4eb0aace)
where non-host-page-aligned offsets cause mmap(MAP_FIXED) to fail with
EINVAL.  This affects any host where the page size exceeds the guest's
(ARM64 with 16KB/64KB pages, macOS ARM64).

This series introduces:

1. MAP_FIXED alignment validation in virtio-gpu: check that both
   offset and blob size are aligned to the host page size before
   calling virgl_renderer_resource_map_fixed().  When not aligned,
   fall through to the subregion method (which works at any
   alignment).

2. A map granule abstraction (hvf_set/get_map_granule) replacing
   hardcoded qemu_real_host_page_size() calls in HVF memory mapping.
   Non-aligned regions return early instead of proceeding with
   add=false (which attempted an unnecessary unmap).
   An 'ipa-granule' property (auto, 4k, 16k) on the HVF accelerator
   object allows opt-in configuration:

     -accel hvf,ipa-granule=4k

   The property follows the kvm_arch_accel_class_init() pattern:
   ARM registers the property in hvf_arch_accel_class_init(), x86
   provides an empty stub.

3. macOS 26 IPA granule support via hv_vm_config_set_ipa_granule(),
   reading the ipa-granule property to select HV_IPA_GRANULE_4KB or
   HV_IPA_GRANULE_16KB.  Falls back with a warning on macOS < 26.

Dependencies: none.

Changes v2 → v3:
  - Rebased on current master
  - Add MAP_FIXED alignment validation (new patch 1)
  - Move #ifdef __aarch64__ property code into hvf_arch_accel_class_init
    following kvm_arch_accel_class_init() pattern (x86 empty stub)
  - Use MAC_OS_VERSION_26_0 named constant
  - Remove Venus blob mapping warning

Changes v1 → v2 (Mohamed Mosaad review):
  - Replace hardcoded 4KB with configurable ipa-granule property
    (auto, 4k, 16k) on the HVF accelerator object.
  - 'auto' defaults to host page size; explicit values opt in.
  - Add fallback warning when macOS < 26 can't honor the request.
  - Add Venus blob mapping safety warning.
  - Use KiB constants instead of magic numbers.

Lucas Amaral (3):
  virtio-gpu: validate host page alignment for MAP_FIXED blobs
  accel/hvf: introduce map granule abstraction and IPA property
  target/arm/hvf: configure IPA granule on macOS 26

 accel/hvf/hvf-all.c           | 30 +++++++++++++--
 hw/display/virtio-gpu-virgl.c | 45 +++++++++++++---------
 include/system/hvf.h          | 15 ++++++++
 include/system/hvf_int.h      |  2 +
 target/arm/hvf/hvf.c          | 72 +++++++++++++++++++++++++++++++++++
 target/i386/hvf/hvf.c         |  4 ++
 6 files changed, 147 insertions(+), 21 deletions(-)

--
2.52.0



  parent reply	other threads:[~2026-03-15  3:43 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-09 21:49 [PATCH 0/2] hvf: map granule abstraction and macOS 26 4KB IPA Lucas Amaral
2026-03-09 21:49 ` [PATCH 1/2] accel/hvf: introduce map granule abstraction Lucas Amaral
2026-03-09 21:49 ` [PATCH 2/2] target/arm/hvf: set 4KB IPA granule on macOS 26 Lucas Amaral
2026-03-10  1:25   ` Mohamed Mediouni
2026-03-11  2:27 ` [PATCH v2 0/2] hvf: map granule abstraction and configurable IPA Lucas Amaral
2026-03-11  2:27   ` [PATCH v2 1/2] accel/hvf: introduce map granule abstraction and IPA property Lucas Amaral
2026-03-11  4:38     ` Mohamed Mediouni
2026-03-11  2:27   ` [PATCH v2 2/2] target/arm/hvf: configure IPA granule on macOS 26 Lucas Amaral
2026-03-11  4:41     ` Mohamed Mediouni
2026-03-15  3:41   ` Lucas Amaral [this message]
2026-03-15  3:41     ` [PATCH 1/3] virtio-gpu: validate host page alignment for MAP_FIXED blobs Lucas Amaral
2026-03-15  3:41     ` [PATCH 2/3] accel/hvf: introduce map granule abstraction and IPA property Lucas Amaral
2026-03-15  3:41     ` [PATCH 3/3] target/arm/hvf: configure IPA granule on macOS 26 Lucas Amaral

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=20260315034154.41986-1-lucaaamaral@gmail.com \
    --to=lucaaamaral@gmail.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /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.