drm/amdkfd: Change pasid's type to unsigned int

Felix Kuehling felix.kuehling at amd.com
Fri May 22 19:40:06 UTC 2020


Hi Fenghua,

The PASID width in KFD is currently limited to 16 bits. I believe this
reflects what our hardware can handle. KFD will never allocate a PASID
bigger than 16 bits. That said, I'm OK with changing this field in the
kfd_process structure to unsigned int. Generally, I find uint16_t in
structures not very useful except in tightly packed structures such as
packet formats or ioctl arguments.

Regards,
  Felix

Am 2020-05-22 um 3:25 p.m. schrieb Fenghua Yu:
> Hi, Yong,
>
> In commit: 6027b1bf6071fc61a5aa11b9922a2e0e91bff1ea
>     drm/amdkfd: Use hex print format for pasid
>
> pasid's type was change to "uint16_t" from "unsigned int" in
> struct kfd_process.
>
> But, pasid is a 20-bit value according to PCIe spec and other places
> in amdkfd (plus other iommu code) define pasid as "unsigned int".
> If defined as uint16_t, pasid will overflow if its value is bigger than 16-bit.
>
> Did I miss anything? Should we change pasid's type back to "unsigned int"?
>
> [a little background: pasid is defined as various types including "int",
> "unsigned int", "u32" in iommu. I'm changing pasid's types to "unsigned int"
> so that the types are consistent in iommu]
>
> Thanks.
>
> -Fenghua


More information about the amd-gfx mailing list