Messages in this thread | | | From | Nick Piggin <> | Subject | Re: kmap_atomic_pfn for PCI BAR access? | Date | Mon, 7 Jul 2008 16:53:54 +1000 |
| |
On Thursday 26 June 2008 13:11, Jeremy Fitzhardinge wrote: > Dave Airlie wrote:
> > doing tlb flush for iounmap is slow as all hell if you do it a lot, > > and we can't afford to mmap the whole aperture it can 1GB. > > Maybe Nick's vmap reimplementation would help here. It effectively > allows you to map stuff into the vmalloc space, and do lazy tlb flushes > to mitigate the cost of map/unmap. He posted the patches week or so ago.
Yeah, it can _really_ help. I'd posted some performance numbers with the patch which might prompt you to take another look at ioremap.
One thing I still haven't implemented in that patch are CPU-local mappings (which only require a local flush to flush)... I found that after the improvements I did implement, they didn't help much for my workloads, so I suspect you might find the same thing... But anyway if you really need the per-CPU mappings, it should be possible to implement rather generically in vmap layer.
I would be very interested to know what sort of results you see with it (compared to kmap_atomic and compared to vanilla ioremap)
Thanks, Nick
| |