From: Peter Xu <peterx@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: CJ Chen <cjchen@igel.co.jp>,
qemu-devel@nongnu.org, qemu-block@nongnu.org,
qemu-riscv@nongnu.org, qemu-arm@nongnu.org,
Paolo Bonzini <pbonzini@redhat.com>,
Keith Busch <kbusch@kernel.org>, Klaus Jensen <its@irrelevant.dk>,
Jesper Devantier <foss@defmacro.it>,
Palmer Dabbelt <palmer@dabbelt.com>,
Alistair Francis <alistair.francis@wdc.com>,
Weiwei Li <liwei1518@gmail.com>,
Daniel Henrique Barboza <dbarboza@ventanamicro.com>,
Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
Tyrone Ting <kfting@nuvoton.com>, Hao Wu <wuhaotsh@google.com>,
Max Filippov <jcmvbkbc@gmail.com>,
David Hildenbrand <david@redhat.com>,
Fabiano Rosas <farosas@suse.de>,
Laurent Vivier <lvivier@redhat.com>,
Tomoyuki Hirose <hrstmyk811m@gmail.com>,
Peter Maydell <peter.maydell@linaro.org>
Subject: Re: [RFC PATCH v2 3/9] hw: npcm7xx_fiu and mx_pic change .impl.unaligned = true
Date: Tue, 2 Sep 2025 15:09:22 -0400 [thread overview]
Message-ID: <aLdA4uH5CGbfz9Gd@x1.local> (raw)
In-Reply-To: <3a80c5e5-9889-4830-9a00-5d4d92141a3a@linaro.org>
On Mon, Aug 25, 2025 at 01:00:21PM +0200, Philippe Mathieu-Daudé wrote:
> Hi,
>
> On 22/8/25 11:24, CJ Chen wrote:
> > By setting .impl.unaligned = true, we allow QEMU to pass along
> > unaligned requests directly as-is, rather than splitting them into
> > multiple aligned sub-requests that might cause repeated device
> > callbacks or unintended side effects.
> >
> > Signed-off-by: CJ Chen <cjchen@igel.co.jp>
> > Tested-by: CJ Chen <cjchen@igel.co.jp>
> > Acked-by: Tomoyuki Hirose <hrstmyk811m@gmail.com>
> > Reported-by: Tomoyuki Hirose <hrstmyk811m@gmail.com>
> > ---
> > hw/ssi/npcm7xx_fiu.c | 3 +++
> > hw/xtensa/mx_pic.c | 3 +++
> > 2 files changed, 6 insertions(+)
>
>
> > diff --git a/hw/xtensa/mx_pic.c b/hw/xtensa/mx_pic.c
> > index 8211c993eb..6bf524a918 100644
> > --- a/hw/xtensa/mx_pic.c
> > +++ b/hw/xtensa/mx_pic.c
> > @@ -270,6 +270,9 @@ static const MemoryRegionOps xtensa_mx_pic_ops = {
> > .valid = {
> > .unaligned = true,
> > },
> > + .impl = {
> > + .unaligned = true,
> > + },
> > };
>
> Surely a distinct patch.
Besides that, I also don't understand how it used to work even before this
change..
E.g., both of the xtensa mx_pic read/write ignores size, that doesn't look
right already when there's totally no limitation of impl.*_access_size.
Meanwhile, taking xtensa_mx_pic_ext_reg_read() as example, it'll return a
u32 by offset smaller than MX_MAX_IRQ (where MIROUT==0):
if (offset < MIROUT + MX_MAX_IRQ) {
return mx->mirout[offset - MIROUT];
}
But it returns different u32 for different offsets.. so reading 0x0 returns
the 1st u32, then 0x1 returns the 2nd (rather than reading 0x4 returns
that).
Even if there might be a driver that works with it, it still doesn't look
like the traditional way of doing MMIOs.. irrelevant of setting unaligned
or not in its .impl.
--
Peter Xu
next prev parent reply other threads:[~2025-09-02 19:10 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-22 9:24 [RFC PATCH v2 0/9] support unaligned access to xHCI Capability CJ Chen
2025-08-22 9:24 ` [RFC PATCH v2 1/9] doc/devel/memory.rst: additional explanation for unaligned access CJ Chen
2025-09-01 17:09 ` Peter Maydell
2025-09-02 16:09 ` Peter Xu
2025-08-22 9:24 ` [RFC PATCH v2 2/9] hw/riscv: iommu-trap: remove .impl.unaligned = true CJ Chen
2025-08-24 9:22 ` Daniel Henrique Barboza
2025-08-22 9:24 ` [RFC PATCH v2 3/9] hw: npcm7xx_fiu and mx_pic change " CJ Chen
2025-08-25 11:00 ` Philippe Mathieu-Daudé
2025-09-02 19:09 ` Peter Xu [this message]
2026-04-24 9:09 ` Peter Maydell
2026-04-24 9:37 ` Max Filippov
2025-08-22 9:24 ` [RFC PATCH v2 4/9] hw/nvme/ctrl: specify the 'valid' field in MemoryRegionOps CJ Chen
2025-08-22 9:24 ` [RFC PATCH v2 5/9] system/memory: support unaligned access CJ Chen
2025-09-01 17:21 ` Peter Maydell
2025-08-22 9:24 ` [RFC PATCH v2 6/9] hw/usb/hcd-xhci: allow unaligned access to Capability Registers CJ Chen
2025-08-22 9:24 ` [RFC PATCH v2 7/9] system/memory: assert on invalid unaligned combo CJ Chen
2025-08-25 11:06 ` Philippe Mathieu-Daudé
2025-08-22 9:24 ` [RFC PATCH v2 8/9] hw/misc: add test device for memory access CJ Chen
2025-09-01 17:03 ` Peter Maydell
2025-09-04 14:01 ` Peter Xu
2025-08-22 9:24 ` [PATCH RFC v2 9/9] tests/qtest: add test for memory region access CJ Chen
2025-08-25 11:16 ` Philippe Mathieu-Daudé
2025-08-26 2:04 ` chen CJ
2025-09-01 16:57 ` Peter Maydell
2025-09-05 14:21 ` Peter Xu
2025-09-01 17:22 ` [RFC PATCH v2 0/9] support unaligned access to xHCI Capability Peter Maydell
2025-09-03 5:03 ` [Withdrawn] " chen CJ
2025-09-03 9:47 ` Peter Maydell
2025-09-05 14:32 ` Peter Xu
2026-04-24 18:01 ` Peter Maydell
2026-04-28 9:07 ` Peter Maydell
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=aLdA4uH5CGbfz9Gd@x1.local \
--to=peterx@redhat.com \
--cc=alistair.francis@wdc.com \
--cc=cjchen@igel.co.jp \
--cc=david@redhat.com \
--cc=dbarboza@ventanamicro.com \
--cc=farosas@suse.de \
--cc=foss@defmacro.it \
--cc=hrstmyk811m@gmail.com \
--cc=its@irrelevant.dk \
--cc=jcmvbkbc@gmail.com \
--cc=kbusch@kernel.org \
--cc=kfting@nuvoton.com \
--cc=liwei1518@gmail.com \
--cc=lvivier@redhat.com \
--cc=palmer@dabbelt.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=wuhaotsh@google.com \
--cc=zhiwei_liu@linux.alibaba.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.