On Mon, Oct 17, 2022 at 03:52:46PM +0800, Jason Wang wrote: [...]
> > > +struct vtd_iotlb_key { > > > + uint16_t sid; > > > + uint32_t pasid; > > > + uint64_t gfn; > > > + uint32_t level; > > > }; > > > > Nit: maybe re-arrange it a bit? > > > > struct vtd_iotlb_key { > > uint64_t gfn; > > uint32_t pasid; > > uint32_t level; > > uint16_t sid; > > } __attribute__((__packed__)); > > > > "packed" should save us 6 bytes for each in this case, maybe also > > worthwhile but not strongly as we have a limit of 1k objs. > > I think it should be fine to rearrange but for 'packed', would this > cause alignment issues that may cause troubles on some arches? Do you mean the gfn reading can be split into 2 * 4 bytes? Would that still work as long as we're protected with a lock when accessing iotlb (even though it may be slower than aligned access)? But at least I think you're right it's not always a benefit, so no strong opinion here to have it packed. > > > > > The name "gfn" seems a bit unfortunate - would "iova" be more suitable? I > > do see we used it elsewhere too, so we can also leave that for later. > > Right, it has been used for VTDIOTLBEntry before this patch. If > possible I would leave it to be done on top with a separate patch. Definitely. Thanks, -- Peter Xu