Messages in this thread | | | Date | Sat, 6 Oct 2012 19:57:51 +0200 | From | Andi Kleen <> | Subject | Re: [RFC PATCH 0/7] Improve swiotlb performance by using physical addresses |
| |
> Inlining everything did speed things up a bit, but I still didn't reach > the same speed I achieved using the patch set. However I did notice the > resulting swiotlb code was considerably larger.
Thanks. So your patch makes sense, but imho should pursue the inlining in parallel for other call sites.
> assembly, is replaced with 8 lines of assembly and becomes inline. In > addition we drop the number of calls to __phys_addr from 9 to 2 by > dropping them all from swiotlb. By my math I am probably saving about > 120 instructions per packet. I suspect all of that would probably be > cutting the number of instructions per packet enough to probably account > for a 5% difference when you consider I am running at about 1.5Mpps per > core on a 2.7Ghz processor.
Maybe it's just me, but that's somehow sad for one if() and a su btraction
BTW __pa used to be a simple subtraction, the if () was just added to handle the few call sites for x86-64 that do __pa(&text_symbol). Maybe we should just go back to the old __pa_symbol() for those cases, then __pa could be the simple subtraction it used to was again and it could be inlined and everyone would be happy.
-Andi -- ak@linux.intel.com -- Speaking for myself only.
| |