On Fre, 2011-01-07 at 11:17 +0900, InKi Dae wrote: > thank you for your comments. > > your second comment has no any problem as I said before, user virtual > addess could be translated in page unit. but the problem, as you said, > is that when cpu access to the memory in user mode, the memory > allocated by malloc, page fault occurs so we can't find pfn to user > virtual address. I missed that. but I think we could resolve this one. > > as before, user application allocates memory through malloc function > and then send it to device driver(using userptr feature). if the pfn > is null when device driver translated user virtual address in page > unit then it allocates phsical memory in page unit using some > interface such as alloc_page() and then mapping them. when pfn is > null, to check it and allocate physical memory in page unit could be > processed by videobuf2. > > of course, videobuf2 has no any duty considered for system mmu. so > videobuf2 just provides callback for 3rd party and any platform with > system mmu such as Samsung SoC C210 implements the function(allocating > physical memory and mapping it) and registers it to callback of > videobuf2. by doing so, I think your first comment could be cleared.
FWIW, TTM (drivers/gpu/drm/ttm, include/drm/ttm) is designed and used for managing memory between CPU/GPU and kernel/userspace access. I haven't looked at your requirements in detail, but if you haven't looked at TTM yet, it sounds like it might be worth a look. -- Earthling Michel Dänzer | http://www.vmware.com Libre software enthusiast | Debian, X and DRI developer -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html