Messages in this thread | | | From | "Guzman Lugo, Fernando" <> | Date | Fri, 2 Jul 2010 11:27:09 -0500 | Subject | RE: [PATCH 8/9] dspbridge: add map support for big buffers |
| |
Hi Hari,
> -----Original Message----- > From: Kanigeri, Hari > Sent: Thursday, July 01, 2010 6:36 PM > To: Guzman Lugo, Fernando; linux-omap@vger.kernel.org; linux- > kernel@vger.kernel.org > Cc: ohad@wizery.com; hiroshi.doyu@nokia.com; ameya.palande@nokia.com; > felipe.contreras@nokia.com; Guzman Lugo, Fernando > Subject: RE: [PATCH 8/9] dspbridge: add map support for big buffers > > Fernando, > > > - for_each_sg(sgt->sgl, sg, sgt->nents, i) > > - sg_set_page(sg, usr_pgs[i], PAGE_SIZE, 0); > > + da = iommu_vmap(mmu, da, sgt, IOVMF_ENDIAN_LITTLE | > > + IOVMF_ELSZ_32); > > -- iommu_vmap does the Kernel mapping to the buffers you are mapping to > DSP MMU. Why do you need Kernel mappings ? > > If there is no benefit in maintaining Kernel mapping I would rather call > iopgtable_store_entry directly to map the entries.
Where inside iommu_vmap is the mapping done? I thought the kernel can access to that buffer after get_user_pages() where the user pages are pin and we can get a kernel address. The intention using iommu_vmap was to use api's proved by the iovmmu module. iommu_vmap() it is also tracking the mapped areas, so maybe the next step could be: remove dmm.c/h files and also proc_reserve/unreserved functions. If you think the function is unneeded steps and could affect the performance I can do the change to use only iopgtable_store_entry().
I think a kernel mapping is needed for flush/invalidate api's, please correct me if I am wrong.
Regards, Fernando.
> > Thank you, > Best regards, Hari
| |