All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] qom: Allow object to be aligned
@ 2020-09-16  0:46 ` Richard Henderson
  0 siblings, 0 replies; 17+ messages in thread
From: Richard Henderson @ 2020-09-16  0:46 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Daniel P. Berrangé,
	Eduardo Habkost, qemu-riscv, David Hildenbrand, qemu-ppc,
	Cornelia Huck, qemu-s390x, qemu-arm, Alistair Francis,
	Paolo Bonzini, David Gibson

I've seen some failures on arm and s390x hosts after
enabling host vector support.  It turns out that the
malloc for these hosts does not provide 16-byte alignment.

We already have a function that can alloc with alignment,
but we need to pass this down from the structure.  We also
don't want to use this function unconditionally, because
the windows version does page allocation, which would be
overkill for the vast majority of the objects allocated.

Changes in v2:
  * Add _aligned_malloc patch for win32.  For what it's
    worth, this passes a gitlab cross-compile test.

  * Add and use qemu_max_align_t for choosing between
    g_malloc and qemu_memalign.

    I had been discussing extra checks for i386-linux with
    Eduardo, but then it occured to me that both linux libc
    posix_memalign is smart enough to not imply extra overhead.
    So qemu_memalign with alignment <= malloc alignment is
    handled easily by the system.


r~


Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: David Gibson <david@gibson.dropbear.id.au>
Cc: Alistair Francis <Alistair.Francis@wdc.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Cornelia Huck <cohuck@redhat.com>
Cc: qemu-arm@nongnu.org
Cc: qemu-ppc@nongnu.org
Cc: qemu-riscv@nongnu.org
Cc: qemu-s390x@nongnu.org


Richard Henderson (6):
  util/oslib-win32: Use _aligned_malloc for qemu_try_memalign
  qom: Allow objects to be allocated with increased alignment
  target/arm: Set instance_align on CPUARM TypeInfo
  target/ppc: Set instance_align on PowerPCCPU TypeInfo
  target/riscv: Set instance_align on RISCVCPU TypeInfo
  target/s390x: Set instance_align on S390CPU TypeInfo

 include/qom/object.h            |  5 +++++
 qom/object.c                    | 36 ++++++++++++++++++++++++++++++---
 target/arm/cpu.c                |  2 ++
 target/riscv/cpu.c              |  1 +
 target/s390x/cpu.c              |  1 +
 util/oslib-win32.c              | 10 +++------
 target/ppc/translate_init.c.inc |  1 +
 7 files changed, 46 insertions(+), 10 deletions(-)

-- 
2.25.1



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2020-09-18 18:02 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-16  0:46 [PATCH v2 0/6] qom: Allow object to be aligned Richard Henderson
2020-09-16  0:46 ` Richard Henderson
2020-09-16  0:46 ` [PATCH v2 1/6] util/oslib-win32: Use _aligned_malloc for qemu_try_memalign Richard Henderson
2020-09-16  3:39   ` Stefan Weil
2020-09-17 18:43   ` Eduardo Habkost
2020-09-17 20:34     ` Richard Henderson
2020-09-16  0:46 ` [PATCH v2 2/6] qom: Allow objects to be allocated with increased alignment Richard Henderson
2020-09-16  0:46 ` [PATCH v2 3/6] target/arm: Set instance_align on CPUARM TypeInfo Richard Henderson
2020-09-16  0:46 ` [PATCH v2 4/6] target/ppc: Set instance_align on PowerPCCPU TypeInfo Richard Henderson
2020-09-16  2:18   ` David Gibson
2020-09-16  0:46 ` [PATCH v2 5/6] target/riscv: Set instance_align on RISCVCPU TypeInfo Richard Henderson
2020-09-16  0:46   ` Richard Henderson
2020-09-16 14:58   ` Alistair Francis
2020-09-16 14:58     ` Alistair Francis
2020-09-16  0:46 ` [PATCH v2 6/6] target/s390x: Set instance_align on S390CPU TypeInfo Richard Henderson
2020-09-18 18:00 ` [PATCH v2 0/6] qom: Allow object to be aligned Eduardo Habkost
2020-09-18 18:00   ` Eduardo Habkost

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.