Messages in this thread | | | Date | Thu, 8 Sep 2011 21:51:57 +0900 | Subject | Re: [RFC 7/7] iommu/core: split mapping to page sizes as supported by the hardware | From | KyongHo Cho <> |
| |
Hi Ohad,
On Wed, Sep 7, 2011 at 6:16 PM, Ohad Ben-Cohen <ohad@wizery.com> wrote: > Hmm this sounds a bit like a red herring to me; optimization of the :) I agree. sorry.
> map function is not the main subject here. Especially not when we're > discussing mapping of large physically contiguous memory regions which > do not happen too often. > I've got your point but I thought that it is really needed.
> Another advantage for migrating s5p_iommu_map() over to the subject > patch, is that s5p_iommu_map() doesn't support super sections yet. To > support it, you'd need to add more code (duplicate another while > loop). But if you migrated to the subject patch, then you would only > need to flip the 16MB bit when you advertise page size capabilities > and then that's it; you're done.
I did not implement that. 16MB page is less practical in Linux because Linux kernel is unable to allocated larger physically contiguous memory than 4MB by default. But I also think that it is needed to support 16MB mapping for IO virtualization someday and it is just trivial job.
And you pointed correctly that s5p_iommu_map() has duplicate similar codes.
Actually, I think your idea is good and does not cause performance degradation. But I wondered if it is really useful.
> > The caller of iommu_map() doesn't say anything about alignments. It > just gives it a memory region to map, and expect things to just work. > The caller of iommu_map() gives gfp_order that is the size of the physical memory to map. I thought that it also means alignment of the physical memory. Isn't it?
Regards, KyongHo
| |