Hi Dave, On Mon, 12 Sep 2022 14:41:56 -0700, Dave Hansen <dave.hansen@xxxxxxxxx> wrote: > On 9/12/22 13:39, Jacob Pan wrote: > >>> + if (pasid_valid(mm->pasid) && !forced) { > > I don't think this works since we have lazy pasid free. for example, > > after all the devices did sva_unbind, mm->pasid we'll remain valid > > until mmdrop(). LAM should be supported in this case. > > Nah, it works fine. > It just means that the rules are "you can't do LAM if your process > *EVER* got a PASID" instead of "you can't do LAM if you are actively > using your PASID". Sure it works if you change the rules, but this case need to documented. > > We knew that PASID use would be a one-way trip for a process when we > moved to the simplified implementation. This is just more fallout from > that. It's fine. > Is LAM also a one-way trip? > > Perhaps, we could introduce another prctl flag for SVA, PR_GET_SVA? > > Both iommu driver and LAM can set/query the flag. LAM applications may > > not be the only ones want to know if share virtual addressing is on. > > I don't think it's a good idea to add yet more UABI around this issue. > Won't the IOMMU folks eventually get their hardware in line with LAM? > Isn't this situation temporary? Thanks, Jacob