On Fri, Jul 17, 2026 at 4:59 PM Peter Maydell <[email protected]> wrote:
>
> On Thu, 16 Jul 2026 at 04:12, Jim Shu <[email protected]> wrote:
> >

> >
> > Thanks for mentioning it! I think re-use requester_id is better.
> > Then, I think we only need a boolean flag `src_is_cpu` and we can
> > rename it to `requester_is_cpu` to match the naming of `requester_id`.
>
> But, what do you now want it for? If we put the world ID in the
> MemTxAttrs, do you still need a CPU ID? (There are some situations
> where it might be useful, but if we don't need it right now we
> shouldn't put doing that rework in the path of implementing
> the worldguard work you want to do.)

Yes, Adding the world ID to MemTxAttrs is totally enough for me and
the worldguard patch series.
I just explain the idea if someone still wants to use CPU ID.
Sorry for the confusion.
I will try to add a field that combines ARM secure/space and RISC-V
World ID bits in the next series.

> > > > > The whole plan is to add the following 2 fields
> > > > > ::
> > > > >     unsigned int src_is_cpu:1;
> > > > >     uint16_t src_cpu_id;
> > > > >
> > > > > src_cpu_id is the CPU ID from 'CPUState->cpu_index'. src_is_cpu is a 
> > > > > boolean flag to check if the transaction is from CPU.
> > > > >
> > > > > Moreover, I think this idea is extensible. DMA device transactions 
> > > > > can also have security attributes like world_id. We can also add 
> > > > > src_device field to 'MemTxAttr' to store the 'DeviceState *', so we 
> > > > > can get the DeviceState from MemTxAttr to get security attributes. If 
> > > > > 'DeviceState *' is too large to add to 'MemTxAttr', re-use 
> > > > > requester_id as DMA device ID is another possible method to support 
> > > > > this.
> > > >
> > > > I don't think that having the thing that receives the memory
> > > > transaction get or get hold of a pointer to the source of the
> > > > transaction that it then uses to get the world ID is a good idea.
> > > > (Especially not putting a DeviceState* into MemTxAttrs: the
> > > > size of the type needs to be kept small so we can conveniently
> > > > pass it around by value: we currently assert that it is 8 bytes.)
> >
> > OK, I think store the DMA device ID in the `requester_id` is another
> > way to keep the small size.
> > However, IIUC, the current SysbusDevice doesn't have the concept of a
> > device ID. We need to add an additional device ID to the device to
> > support this idea.
>
> What exactly is it that you need a device ID for? Earlier you
> suggest that you would want it to get the world ID -- but we
> should just put the world ID directly in the MemTxAttrs.

Same as previous responce. Adding the world ID is enough for me.
Sorry for the confusion.


Thanks,
Jim

Reply via email to