[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <97d486e6-d940-5db0-eeff-077d694334a2@codeaurora.org>
Date: Fri, 7 Dec 2018 18:57:02 +0530
From: Vivek Gautam <vivek.gautam@...eaurora.org>
To: Stanimir Varbanov <stanimir.varbanov@...aro.org>,
mchehab@...nel.org
Cc: linux-media@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-msm@...r.kernel.org, vgarodia@...eaurora.org,
acourbot@...omium.org
Subject: Re: [PATCH 1/1] media: venus: core: Set dma maximum segment size
On 12/7/2018 3:38 PM, Stanimir Varbanov wrote:
> Hi Vivek,
>
> Thanks for the patch!
>
> On 12/5/18 10:31 AM, Vivek Gautam wrote:
>> Turning on CONFIG_DMA_API_DEBUG_SG results in the following error:
>>
>> [ 460.308650] ------------[ cut here ]------------
>> [ 460.313490] qcom-venus aa00000.video-codec: DMA-API: mapping sg segment longer than device claims to support [len=4194304] [max=65536]
>> [ 460.326017] WARNING: CPU: 3 PID: 3555 at src/kernel/dma/debug.c:1301 debug_dma_map_sg+0x174/0x254
>> [ 460.338888] Modules linked in: venus_dec venus_enc videobuf2_dma_sg videobuf2_memops hci_uart btqca bluetooth venus_core v4l2_mem2mem videobuf2_v4l2 videobuf2_common ath10k_snoc ath10k_core ath lzo lzo_compress zramjoydev
>> [ 460.375811] CPU: 3 PID: 3555 Comm: V4L2DecoderThre Tainted: G W 4.19.1 #82
>> [ 460.384223] Hardware name: Google Cheza (rev1) (DT)
>> [ 460.389251] pstate: 60400009 (nZCv daif +PAN -UAO)
>> [ 460.394191] pc : debug_dma_map_sg+0x174/0x254
>> [ 460.398680] lr : debug_dma_map_sg+0x174/0x254
>> [ 460.403162] sp : ffffff80200c37d0
>> [ 460.406583] x29: ffffff80200c3830 x28: 0000000000010000
>> [ 460.412056] x27: 00000000ffffffff x26: ffffffc0f785ea80
>> [ 460.417532] x25: 0000000000000000 x24: ffffffc0f4ea1290
>> [ 460.423001] x23: ffffffc09e700300 x22: ffffffc0f4ea1290
>> [ 460.428470] x21: ffffff8009037000 x20: 0000000000000001
>> [ 460.433936] x19: ffffff80091b0000 x18: 0000000000000000
>> [ 460.439411] x17: 0000000000000000 x16: 000000000000f251
>> [ 460.444885] x15: 0000000000000006 x14: 0720072007200720
>> [ 460.450354] x13: ffffff800af536e0 x12: 0000000000000000
>> [ 460.455822] x11: 0000000000000000 x10: 0000000000000000
>> [ 460.461288] x9 : 537944d9c6c48d00 x8 : 537944d9c6c48d00
>> [ 460.466758] x7 : 0000000000000000 x6 : ffffffc0f8d98f80
>> [ 460.472230] x5 : 0000000000000000 x4 : 0000000000000000
>> [ 460.477703] x3 : 000000000000008a x2 : ffffffc0fdb13948
>> [ 460.483170] x1 : ffffffc0fdb0b0b0 x0 : 000000000000007a
>> [ 460.488640] Call trace:
>> [ 460.491165] debug_dma_map_sg+0x174/0x254
>> [ 460.495307] vb2_dma_sg_alloc+0x260/0x2dc [videobuf2_dma_sg]
>> [ 460.501150] __vb2_queue_alloc+0x164/0x374 [videobuf2_common]
>> [ 460.507076] vb2_core_reqbufs+0xfc/0x23c [videobuf2_common]
>> [ 460.512815] vb2_reqbufs+0x44/0x5c [videobuf2_v4l2]
>> [ 460.517853] v4l2_m2m_reqbufs+0x44/0x78 [v4l2_mem2mem]
>> [ 460.523144] v4l2_m2m_ioctl_reqbufs+0x1c/0x28 [v4l2_mem2mem]
>> [ 460.528976] v4l_reqbufs+0x30/0x40
>> [ 460.532480] __video_do_ioctl+0x36c/0x454
>> [ 460.536610] video_usercopy+0x25c/0x51c
>> [ 460.540572] video_ioctl2+0x38/0x48
>> [ 460.544176] v4l2_ioctl+0x60/0x74
>> [ 460.547602] do_video_ioctl+0x948/0x3520
>> [ 460.551648] v4l2_compat_ioctl32+0x60/0x98
>> [ 460.555872] __arm64_compat_sys_ioctl+0x134/0x20c
>> [ 460.560718] el0_svc_common+0x9c/0xe4
>> [ 460.564498] el0_svc_compat_handler+0x2c/0x38
>> [ 460.568982] el0_svc_compat+0x8/0x18
>> [ 460.572672] ---[ end trace ce209b87b2f3af88 ]---
>>
>> From above warning one would deduce that the sg segment will overflow
>> the device's capacity. In reality, the hardware can accommodate larger
>> sg segments.
>> So, initialize the max segment size properly to weed out this warning.
>>
>> Based on a similar patch sent by Sean Paul for mdss:
>> https://patchwork.kernel.org/patch/10671457/
>>
>> Signed-off-by: Vivek Gautam <vivek.gautam@...eaurora.org>
>> ---
>> drivers/media/platform/qcom/venus/core.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
> Acked-by: Stanimir Varbanov <stanimir.varbanov@...aro.org>
Thanks Stan.
Best regards
Vivek
Powered by blists - more mailing lists