Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1408869pxa; Thu, 20 Aug 2020 10:30:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJws2uB8JsCjsz0kUWYXKp1F4Rdcr3KKzd5qcGVEIIagsJFwV8KGqQPFLB4ORqtqQdZV8Yot X-Received: by 2002:a17:906:c7d2:: with SMTP id dc18mr4507602ejb.135.1597944601319; Thu, 20 Aug 2020 10:30:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597944601; cv=none; d=google.com; s=arc-20160816; b=yPrA5YXwJS+hZIC/MKb7KZZIkVpYgKN3j7JCePRgp7F+gTLVAFLk1wp6tDkw5Hy1pF EhKJylsPFU+ueE3Xyqb7upvmQfR0duEBpxV/e5cz+Rh1DHvy9Bexz2RJusaLwW3ZgFPf y5OetykIraGqHjy/gNfIl2yQpJ7ZJM+efKzGEkDlR5p20sKvi0Vzeglrbjh5TPn4PEHx 6TP+PpZbgWBeV5xukt2ecopuGAVzI7mUeSqKkIyOVLAWXcr1jerjJgqbHmuQleHk06u3 0+yvktViZm6vd7wSOA4GriFV34JCh8K97QGd4zj8lJ24wEE9NGt7ylJLFEsBsVhyEA+T 6b7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=Jzpp0h2762lzy2LsSOJPpY5x4sHqGflTpnFLklvr+R8=; b=RYls5HGFgVlcvPQZh6xEsoBGrwOkQrdvAN8xA46kjMfdYjn2o4e5QF2r086d/XhDLQ yYszZFujqE84yqVE6+oK88OQmWvyytGXPAAGcMO6s9Ihis4B8eCtmRDsMwaU8JDX1EYK PhhXmhnNXxIZYiioXxrUk1+kr5tBvPX0WRnYkgoR/wRRqu+WIiSQ3ShKN3k0S5JEvhPa KANwabHJfWOWL+8Zq6QeNGZJA2a7eVtViEJEBURl+aQwsEkntsIKQx4C1z/7orreHMNh ybWnqUo0LRIS1O1uFvE5YmrWbnqW0Dn5wcDJcF3wsJDf/iT0g7N15Jm+6PO8kQ5M30Z1 hrww== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id rl7si1535039ejb.264.2020.08.20.10.29.37; Thu, 20 Aug 2020 10:30:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730589AbgHTRZg (ORCPT + 99 others); Thu, 20 Aug 2020 13:25:36 -0400 Received: from foss.arm.com ([217.140.110.172]:43244 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728060AbgHTRZf (ORCPT ); Thu, 20 Aug 2020 13:25:35 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1012B30E; Thu, 20 Aug 2020 10:25:29 -0700 (PDT) Received: from [10.57.40.122] (unknown [10.57.40.122]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7D2D63F66B; Thu, 20 Aug 2020 10:25:21 -0700 (PDT) Subject: Re: [PATCH 17/18] media/omap3isp: Clean up IOMMU workaround To: Sakari Ailus Cc: hch@lst.de, joro@8bytes.org, linux@armlinux.org.uk, will@kernel.org, inki.dae@samsung.com, sw0312.kim@samsung.com, kyungmin.park@samsung.com, m.szyprowski@samsung.com, agross@kernel.org, bjorn.andersson@linaro.org, thierry.reding@gmail.com, jonathanh@nvidia.com, vdumpa@nvidia.com, digetx@gmail.com, matthias.bgg@gmail.com, yong.wu@mediatek.com, geert+renesas@glider.be, magnus.damm@gmail.com, t-kristo@ti.com, s-anna@ti.com, laurent.pinchart@ideasonboard.com, linux-arm-kernel@lists.infradead.org, iommu@lists.linux-foundation.org, linux-samsung-soc@vger.kernel.org, linux-tegra@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-mediatek@lists.infradead.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org References: <11d8419744e4e744a9448180801b0c4683328afd.1597931876.git.robin.murphy@arm.com> <20200820165339.GK7145@valkosipuli.retiisi.org.uk> From: Robin Murphy Message-ID: Date: Thu, 20 Aug 2020 18:25:19 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: <20200820165339.GK7145@valkosipuli.retiisi.org.uk> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2020-08-20 17:53, Sakari Ailus wrote: > Hi Robin, > > On Thu, Aug 20, 2020 at 04:08:36PM +0100, Robin Murphy wrote: >> Now that arch/arm is wired up for default domains and iommu-dma, devices >> behind IOMMUs will get mappings set up automatically as appropriate, so >> there is no need for drivers to do so manually. >> >> Signed-off-by: Robin Murphy > > Thanks for the patch. Many thanks for testing so quickly! > I haven't looked at the details but it seems that this causes the buffer > memory allocation to be physically contiguous, which causes a failure to > allocate video buffers of entirely normal size. I guess that was not > intentional? Hmm, it looks like the device ends up with the wrong DMA ops, which implies something didn't go as expected with the earlier IOMMU setup and default domain creation. Chances are that either I missed some subtlety in the omap_iommu change, or I've fundamentally misjudged how the ISP probing works and it never actually goes down the of_iommu_configure() path in the first place. Do you get any messages from the IOMMU layer earlier on during boot? Robin. > -----------------8<--------------------------- > [ 218.934448] WARNING: CPU: 0 PID: 1994 at mm/page_alloc.c:4859 __alloc_pages_nodemask+0x9c/0xb1c > [ 218.943847] Modules linked in: omap3_isp videobuf2_dma_contig videobuf2_memops videobuf2_v4l2 videobuf2_common leds_as3645a smiapp v4l2_flash_led_class led_class_flash v4l2_fwnode smiapp_pll videodev leds_gpio mc led_class > [ 218.964660] CPU: 0 PID: 1994 Comm: yavta Not tainted 5.9.0-rc1-dirty #1818 > [ 218.972442] Hardware name: Generic OMAP36xx (Flattened Device Tree) > [ 218.978973] Backtrace: > [ 218.981842] [] (dump_backtrace) from [] (show_stack+0x20/0x24) > [ 218.989715] r7:00000000 r6:00000009 r5:c08f03bc r4:c08f2fef > [ 218.995880] [] (show_stack) from [] (dump_stack+0x28/0x30) > [ 219.003631] [] (dump_stack) from [] (__warn+0x100/0x118) > [ 219.010955] r5:c08f03bc r4:00000000 > [ 219.014953] [] (__warn) from [] (warn_slowpath_fmt+0x84/0xa8) > [ 219.022949] r9:c0232090 r8:c08f03bc r7:c0b08a88 r6:00000009 r5:000012fb r4:00000000 > [ 219.031036] [] (warn_slowpath_fmt) from [] (__alloc_pages_nodemask+0x9c/0xb1c) > [ 219.040557] r9:c0185c3c r8:00000000 r7:010ec000 r6:00000000 r5:0000000d r4:00000000 > [ 219.048858] [] (__alloc_pages_nodemask) from [] (__dma_alloc_buffer.constprop.14+0x3c/0x90) > [ 219.059570] r10:00000cc0 r9:c0185c3c r8:00000000 r7:010ec000 r6:0000000d r5:c0b08a88 > [ 219.067901] r4:00000cc0 > [ 219.070587] [] (__dma_alloc_buffer.constprop.14) from [] (remap_allocator_alloc+0x34/0x7c) > [ 219.081207] r9:c0185c3c r8:00000247 r7:e6d7fb84 r6:010ec000 r5:c0b08a88 r4:00000001 > [ 219.089263] [] (remap_allocator_alloc) from [] (__dma_alloc+0x124/0x21c) > [ 219.098236] r9:ed99fc10 r8:e69aa890 r7:00000000 r6:ffffffff r5:c0b08a88 r4:e6fdd680 > [ 219.106536] [] (__dma_alloc) from [] (arm_dma_alloc+0x68/0x74) > [ 219.114654] r10:00000cc0 r9:c0185c3c r8:00000cc0 r7:e69aa890 r6:010ec000 r5:ed99fc10 > [ 219.122985] r4:00000000 > [ 219.125671] [] (arm_dma_alloc) from [] (dma_alloc_attrs+0xe4/0x120) > [ 219.134216] r9:00000000 r8:e69aa890 r7:010ec000 r6:c0b08a88 r5:ed99fc10 r4:c010f634 > [ 219.142517] [] (dma_alloc_attrs) from [] (vb2_dc_alloc+0xcc/0x108 [videobuf2_dma_contig]) > [ 219.153076] r10:e6885ca8 r9:e6abfc48 r8:00000002 r7:00000000 r6:010ec000 r5:ed99fc10 > [ 219.161407] r4:e69aa880 > [ 219.164184] [] (vb2_dc_alloc [videobuf2_dma_contig]) from [] (__vb2_queue_alloc+0x258/0x4a4 [videobuf2_common]) > [ 219.176696] r8:bf095b70 r7:010ec000 r6:00000000 r5:e6885ca8 r4:e6abfc00 > [ 219.183959] [] (__vb2_queue_alloc [videobuf2_common]) from [] (vb2_core_reqbufs+0x408/0x498 [videobuf2_common]) > [ 219.196533] r10:e6885ce8 r9:00000000 r8:e6d7fe24 r7:e6d7fcec r6:bf09ced4 r5:bf088580 > [ 219.204895] r4:e6885ca8 > [ 219.207672] [] (vb2_core_reqbufs [videobuf2_common]) from [] (vb2_reqbufs+0x64/0x70 [videobuf2_v4l2]) > [ 219.219268] r10:00000000 r9:bf032bc0 r8:c0145608 r7:bf0ad4a4 r6:e6885ca8 r5:00000000 > [ 219.227600] r4:e6d7fe24 > [ 219.230499] [] (vb2_reqbufs [videobuf2_v4l2]) from [] (isp_video_reqbufs+0x40/0x54 [omap3_isp]) > [ 219.241607] r7:bf0ad4a4 r6:e6d7fe24 r5:e6885c00 r4:e6cca928 > [ 219.247924] [] (isp_video_reqbufs [omap3_isp]) from [] (v4l_reqbufs+0x4c/0x50 [videodev]) > [ 219.258514] r7:bf0ad4a4 r6:e6885c00 r5:e6d7fe24 r4:e7efbec0 > [ 219.264984] [] (v4l_reqbufs [videodev]) from [] (__video_do_ioctl+0x2d8/0x414 [videodev]) > [ 219.275512] r7:bf01de00 r6:00000000 r5:00000000 r4:e6cca2e0 > [ 219.281982] [] (__video_do_ioctl [videodev]) from [] (video_usercopy+0x144/0x508 [videodev]) > [ 219.292816] r10:e7efbec0 r9:c0145608 r8:e6d7fe24 r7:00000000 r6:00000000 r5:bf01ebdc > [ 219.300933] r4:c0145608 > [ 219.304168] [] (video_usercopy [videodev]) from [] (video_ioctl2+0x1c/0x24 [videodev]) > [ 219.314453] r10:e7fbfda0 r9:e7efbec0 r8:00000003 r7:00000000 r6:bee658f4 r5:c0145608 > [ 219.322784] r4:e7efbec0 > [ 219.325775] [] (video_ioctl2 [videodev]) from [] (v4l2_ioctl+0x50/0x64 [videodev]) > [ 219.335845] [] (v4l2_ioctl [videodev]) from [] (vfs_ioctl+0x30/0x44) > [ 219.344482] r7:00000000 r6:e7efbec0 r5:bee658f4 r4:c0145608 > [ 219.350402] [] (vfs_ioctl) from [] (sys_ioctl+0xdc/0x7ec) > [ 219.358062] [] (sys_ioctl) from [] (ret_fast_syscall+0x0/0x28) > [ 219.366149] Exception stack(0xe6d7ffa8 to 0xe6d7fff0) > [ 219.371673] ffa0: 00000000 bee65c1a 00000003 c0145608 bee658f4 00000001 > [ 219.380157] ffc0: 00000000 bee65c1a 00000000 00000036 000009a0 00000000 0000ef30 010eb400 > [ 219.388885] ffe0: 0001716c bee65104 0000b588 b6e413ac > [ 219.394409] r10:00000036 r9:e6d7e000 r8:c0100244 r7:00000036 r6:00000000 r5:bee65c1a > [ 219.402740] r4:00000000 > [ 219.405426] irq event stamp: 5075 > [ 219.408905] hardirqs last enabled at (5083): [] console_unlock+0x4cc/0x524 > [ 219.417297] hardirqs last disabled at (5092): [] console_unlock+0x3c8/0x524 > [ 219.425628] softirqs last enabled at (4532): [] __do_softirq+0x1f0/0x490 > [ 219.433837] softirqs last disabled at (4493): [] irq_exit+0xe4/0x160 > [ 219.441558] ---[ end trace 8c56810633cf24db ]--- > [ 219.446502] omap3isp 480bc000.isp: dma_alloc_coherent of size 17743872 failed > -----------------8<--------------------------- >