Messages in this thread | | | Subject | Re: [PATCH] iommu/iova: Update cached node pointer when current node fails to get any free IOVA | From | Robin Murphy <> | Date | Fri, 27 Jul 2018 17:18:54 +0100 |
| |
On 27/07/18 13:56, Ganapatrao Kulkarni wrote: [...] >>> did you get any chance to look in to this issue? >>> i am waiting for your suggestion/patch for this issue! >> >> >> I got as far as [1], but I wasn't sure how much I liked it, since it still >> seems a little invasive for such a specific case (plus I can't remember if >> it's actually been debugged or not). I think in the end I started wondering >> whether it's even worth bothering with the 32-bit optimisation for PCIe >> devices - 4 extra bytes worth of TLP is surely a lot less significant than >> every transaction taking up to 50% more bus cycles was for legacy PCI. > > how about tracking previous attempt to get 32bit range iova and avoid > further attempts, if it was failed. Later Resume attempts once > replenish happens. > Created patch for the same [2]
Ooh, that's a much neater implementation of essentially the same concept - now why couldn't I think of that? :)
Looks like it should be possible to make it entirely self-contained too, since alloc_iova() is in a position to both test and update the flag based on the limit_pfn passed in.
Robin.
> > [2] https://github.com/gpkulkarni/linux/commit/e2343a3e1f55cdeb5694103dd354bcb881dc65c3 > note, the testing of this patch is in progress. > >> >> Robin. >> >> [1] >> http://www.linux-arm.org/git?p=linux-rm.git;a=commitdiff;h=a8e0e4af10ebebb3669750e05bf0028e5bd6afe8 > > thanks > Ganapat >
| |