From: Richard Henderson <richard.henderson@linaro.org> To: qemu-devel@nongnu.org Cc: "Peter Maydell" <peter.maydell@linaro.org>, "Daniel P. Berrangé" <berrange@redhat.com>, "Eduardo Habkost" <ehabkost@redhat.com>, qemu-riscv@nongnu.org, "David Hildenbrand" <david@redhat.com>, qemu-ppc@nongnu.org, "Cornelia Huck" <cohuck@redhat.com>, qemu-s390x@nongnu.org, qemu-arm@nongnu.org, "Alistair Francis" <Alistair.Francis@wdc.com>, "Paolo Bonzini" <pbonzini@redhat.com>, "David Gibson" <david@gibson.dropbear.id.au> Subject: [PATCH v2 0/6] qom: Allow object to be aligned Date: Tue, 15 Sep 2020 17:46:32 -0700 [thread overview] Message-ID: <20200916004638.2444147-1-richard.henderson@linaro.org> (raw) 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
WARNING: multiple messages have this Message-ID (diff)
From: Richard Henderson <richard.henderson@linaro.org> To: qemu-devel@nongnu.org Cc: "Paolo Bonzini" <pbonzini@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, "Eduardo Habkost" <ehabkost@redhat.com>, "Peter Maydell" <peter.maydell@linaro.org>, "David Gibson" <david@gibson.dropbear.id.au>, "Alistair Francis" <Alistair.Francis@wdc.com>, "David Hildenbrand" <david@redhat.com>, "Cornelia Huck" <cohuck@redhat.com>, qemu-arm@nongnu.org, qemu-ppc@nongnu.org, qemu-riscv@nongnu.org, qemu-s390x@nongnu.org Subject: [PATCH v2 0/6] qom: Allow object to be aligned Date: Tue, 15 Sep 2020 17:46:32 -0700 [thread overview] Message-ID: <20200916004638.2444147-1-richard.henderson@linaro.org> (raw) 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
next reply other threads:[~2020-09-16 0:48 UTC|newest] Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-09-16 0:46 Richard Henderson [this message] 2020-09-16 0:46 ` [PATCH v2 0/6] qom: Allow object to be aligned 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
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=20200916004638.2444147-1-richard.henderson@linaro.org \ --to=richard.henderson@linaro.org \ --cc=Alistair.Francis@wdc.com \ --cc=berrange@redhat.com \ --cc=cohuck@redhat.com \ --cc=david@gibson.dropbear.id.au \ --cc=david@redhat.com \ --cc=ehabkost@redhat.com \ --cc=pbonzini@redhat.com \ --cc=peter.maydell@linaro.org \ --cc=qemu-arm@nongnu.org \ --cc=qemu-devel@nongnu.org \ --cc=qemu-ppc@nongnu.org \ --cc=qemu-riscv@nongnu.org \ --cc=qemu-s390x@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: linkBe 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.