Re: [PATCH] exec: Add RISC-V WorldGuard WID field to MemTxAttrs

Peter Maydell <[email protected]>
Newsgroups org.nongnu.qemu-riscv,org.nongnu.qemu-devel
Message-ID <CAFEAcA_q7jtebfD0EFXUh6VOdqMjy0WGo7ZOfvpA3W8p4=tkMA@mail.gmail.com>
On Fri, 17 Jul 2026 at 11:08, Alex Bennée <[email protected]> wrote:
>
> Philippe Mathieu-Daudé <[email protected]> writes:
>
> > On 18/3/26 05:40, Jim Shu wrote:
> >> On Tue, Feb 10, 2026 at 8:25 AM Richard Henderson
> >> <[email protected]> wrote:
> >> ...
> >>> Hmm.  This really overlaps the secure and space fields from arm, and possibly some of the
> >>> others as well (e.g. user, requester_id, pid).
> >>>
> >>> I don't really have a good suggestion for that right now, but it would be nice to not keep
> >>> expanding the count of these sorts of fields that somehow specify the originator, but
> >>> clearly cannot overlap.
> >>>
> >>> I'm reasonably sure we've had this discussion before, but nothing has come of it.
> >>>
> >>> Time to paint the bikeshed again?
> >
> > Last discussion IIRC:
> > https://lore.kernel.org/qemu-devel/CAFEAcA8vKNkfKgp_Yymo9NA1=E2XJYXAMTgO3z6q6DHgqkAwRw@mail.gmail.com/
> >
> > (see also a suggestion in
> > https://lore.kernel.org/qemu-devel/[email protected]/)
>
> Also somewhat related:
>
>   Message-Id: <[email protected]>
>   Date: Fri, 11 Nov 2022 18:25:15 +0000
>   Subject: [PATCH for 8.0 v5 00/20] use MemTxAttrs to avoid current_cpu in hw/
>
> Another case that was mentioned in a Core Collective meeting was
> handling MMIO devices with IOMMUs (currently requester_id is tied to
> PCI). I guess the WorldGuard WID field is a similar thing.

The worldguard ID is more like the Arm security space field, as I
understand it -- it encodes what the request should or should
not be able to access, and multiple different transaction masters
might be able to send with the same worldguard ID. A requester_id
on the other hand is intended to identify a unique sender.
(In AXI these things turn up in different signals.)

I think the trick with requester_id is that we need to identify
what we need to encode here and make sure we don't confuse things.
(e.g. a CPU needs to not be able to emit something that looks like
a PCI request by accident, because some devices need to be able
to tell "this really did come from a PCI device" from "this is a
CPU doing a normal load/store insn"). So we probably want some
kind of "this is what the requester_id is" enum rather than just
a convention.

thanks
-- PMM
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.