slow memcpy

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
1,268件の閲覧回数
OlivierG
Contributor III

HI

i tried this code

https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/imx-processors/173737/1/v4lcap.c

unfortunately the call to memcpy from
buffers[buf.index].start[0]
is very slow about 10 ms with an image size 640*480

i thing it is due to the VB2_MEMORY_MMAP mode

i tried with V4L2_MEMORY_DMABUF but ioctl failed

Is the slow memcpy due to the memory mode ?
Is there a working exemple with V4L2_MEMORY_DMABUF and V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE ?

 

Greeting

 

Olivier

0 件の賞賛
返信
1 解決策
1,245件の閲覧回数
OlivierG
Contributor III

Hi 

i use this code to use DMA instead of MMAP

https://github.com/emfend/dmabuf-v4l2-demo

I also verified that this patch is applied

https://github.com/torvalds/linux/commit/de27891f675ed1e46e8821d2e05e036e5f97586b

It works, memcpy time is less than 1 ms

Olivier

 

 

元の投稿で解決策を見る

0 件の賞賛
返信
1 返信
1,246件の閲覧回数
OlivierG
Contributor III

Hi 

i use this code to use DMA instead of MMAP

https://github.com/emfend/dmabuf-v4l2-demo

I also verified that this patch is applied

https://github.com/torvalds/linux/commit/de27891f675ed1e46e8821d2e05e036e5f97586b

It works, memcpy time is less than 1 ms

Olivier

 

 

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2059409%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E9%81%85%E3%81%84memcpy%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2059409%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHI%3C%2FP%3E%3CP%3E%E7%A7%81%E3%81%AF%E3%81%93%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Fpwmxy87654%2Fattachments%2Fpwmxy87654%2Fimx-processors%2F173737%2F1%2Fv4lcap.c%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Fpwmxy87654%2Fattachments%2Fpwmxy87654%2Fimx-processors%2F173737%2F1%2Fv4lcap.c%3C%2FA%3E%3C%2FP%3E%3CP%3E%E6%AE%8B%E5%BF%B5%E3%81%AA%E3%81%8C%E3%82%89%E3%80%81%20memcpy%20%E3%81%B8%E3%81%AE%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%AF%3CBR%20%2F%3Ebuffers%5Bbuf.index%5D.start%5B0%5D%3CBR%20%2F%3E%E7%94%BB%E5%83%8F%E3%82%B5%E3%82%A4%E3%82%BA640%20*%20480%E3%81%A7%E7%B4%8410%E3%83%9F%E3%83%AA%E7%A7%92%E3%81%A8%E9%9D%9E%E5%B8%B8%E3%81%AB%E9%81%85%E3%81%84%E3%81%A7%E3%81%99%3C%2FP%3E%3CP%3EVB2_MEMORY_MMAP%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AB%E3%82%88%E3%82%8B%E3%82%82%E3%81%AE%E3%81%AA%E3%82%93%E3%81%A7%E3%81%99%E3%81%AD%3C%2FP%3E%3CP%3EV4L2_MEMORY_DMABUF%E3%81%A7%E8%A9%A6%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8C%E3%80%81ioctl%E3%81%AF%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%3C%2FP%3E%3CP%3Ememcpy%E3%81%8C%E9%81%85%E3%81%84%E3%81%AE%E3%81%AF%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AB%E3%82%88%E3%82%8B%E3%82%82%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B%3F%3CBR%20%2F%3EV4L2_MEMORY_DMABUF%E3%81%A8V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%AE%9F%E7%94%A8%E7%9A%84%E3%81%AA%E4%BE%8B%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E6%8C%A8%E6%8B%B6%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EOlivier%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2061369%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%E9%81%85%E3%81%84memcpy%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2061369%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3C%2FP%3E%3CP%3E%E3%81%93%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81MMAP%E3%81%AE%E4%BB%A3%E3%82%8F%E3%82%8A%E3%81%ABDMA%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%BE%E3%81%99%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Femfend%2Fdmabuf-v4l2-demo%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Femfend%2Fdmabuf-v4l2-demo%3C%2FA%3E%3C%2FP%3E%3CP%3E%E3%81%BE%E3%81%9F%E3%80%81%E3%81%93%E3%81%AE%E3%83%91%E3%83%83%E3%83%81%E3%81%8C%E9%81%A9%E7%94%A8%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%82%82%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Ftorvalds%2Flinux%2Fcommit%2Fde27891f675ed1e46e8821d2e05e036e5f97586b%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Ftorvalds%2Flinux%2Fcommit%2Fde27891f675ed1e46e8821d2e05e036e5f97586b%3C%2FA%3E%3C%2FP%3E%3CP%3E%E3%81%9D%E3%82%8C%E3%81%AF%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%99%E3%80%81memcpy%E6%99%82%E9%96%93%E3%81%AF1%E3%83%9F%E3%83%AA%E7%A7%92%E6%9C%AA%E6%BA%80%E3%81%A7%E3%81%99%3C%2FP%3E%3CP%3EOlivier%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E