Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp5202972imm; Tue, 31 Jul 2018 07:11:09 -0700 (PDT) X-Google-Smtp-Source: AAOMgpf/vwfGcCbMs2EtNbhzZxLNwxg3KAehdk7JA2biMCrBnI4TmAtZg75E5xGS0QRUpXi3aNOH X-Received: by 2002:a63:8c0b:: with SMTP id m11-v6mr20748890pgd.372.1533046269026; Tue, 31 Jul 2018 07:11:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533046268; cv=none; d=google.com; s=arc-20160816; b=0aDf0mVQA/P7YptIEt1JMYliKLPh0FqI5kP+dLUSuPJybWALlBBhQm/msZNJEERukv icW7q/n58oyW7CMtDqB0+Kcq4WnVFSA8ecEkpR+sXHHysnFoGRZCenJamGhRNGZHLQTM JRI/IHo4O84pJECwVfNQdh4Dkg9q29E9HTJC0ZH/kzKpdXfj5NNO4rEkkYmrfxQmtLst 9qjQNDx3hzYkG3DUhdUzsuLv3sao55qDz8tpkfte2eZYX+UX4LgqY9h5cPxu8Tb3Yrks RNvdJSPhEPSRPcMGIO+m0jrieYVCK8YBPAR/YM5hi0+nNh/CjZdiZhQ/Huc1hkhUYpGP L/LQ== 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:arc-authentication-results; bh=fkqt08dHZ10CXWAJ0AkHpIuFhzdvq6Mwamb8o5ShbDk=; b=vljYshGGJN8+K1rmgV80Fwa4BsmJzFmSiTFDn0J01OhGwUPqvRX/r+VfGPk472kTMW 9x/eMBgVbjN04h+o5/3lxPtvAIFSSD2KhBnKZAjd3LmMWgwBqAL4B5DiiagJoUGqN1Ys wIqLGvOhj9s8yS86n+Afga9CptEPmw5EaH4mDI5k4LY1eNoeWI1SWs72nAn1Kh5UxfnW NOVd3qREIiaPFq+f4k0XBf913nuFuNu1h8QjmI5NswnYFf41EwmXBVuRjmwV47yNF0S5 6/9X1ug0a+MXe8il7zjGz6WNvhtBF0GEwyLq+yhm+4jPm0x3uOPJErGmZv+FMpvsubtF rx3Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n184-v6si13788853pga.98.2018.07.31.07.10.54; Tue, 31 Jul 2018 07:11:08 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732266AbeGaPuI (ORCPT + 99 others); Tue, 31 Jul 2018 11:50:08 -0400 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:54760 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729632AbeGaPuI (ORCPT ); Tue, 31 Jul 2018 11:50:08 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 172287A9; Tue, 31 Jul 2018 07:09:38 -0700 (PDT) Received: from [10.4.12.131] (e110467-lin.Emea.Arm.com [10.4.12.131]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 684A43F5B3; Tue, 31 Jul 2018 07:09:36 -0700 (PDT) Subject: Re: [BUG BISECT] Ethernet fail on VF50 (OF: Don't set default coherent DMA mask) To: Guenter Roeck , Stefan Agner Cc: Christoph Hellwig , Krzysztof Kozlowski , Ard Biesheuvel , Rob Herring , Frank Rowand , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Fugang Duan References: <20180727140448.GA29001@lst.de> <20180728165820.GA5731@roeck-us.net> <45f7fc82-fb9c-e666-4ada-c5338d2c1c96@arm.com> <39fa11ce4b7dd151d98868f375baf818@agner.ch> <0e893142-a5db-d119-6eb3-f849db6b5d04@arm.com> From: Robin Murphy Message-ID: <4ce17098-850f-3bb0-b977-8d7932e74e06@arm.com> Date: Tue, 31 Jul 2018 15:09:34 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 31/07/18 14:26, Guenter Roeck wrote: > On 07/31/2018 05:32 AM, Robin Murphy wrote: >> On 31/07/18 09:19, Stefan Agner wrote: >>> On 30.07.2018 16:38, Robin Murphy wrote: >>>> On 28/07/18 17:58, Guenter Roeck wrote: >>>>> On Fri, Jul 27, 2018 at 04:04:48PM +0200, Christoph Hellwig wrote: >>>>>> On Fri, Jul 27, 2018 at 03:18:14PM +0200, Krzysztof Kozlowski wrote: >>>>>>> On 27 July 2018 at 15:11, Krzysztof Kozlowski >>>>>>> wrote: >>>>>>>> Hi, >>>>>>>> >>>>>>>> On today's next, the bisect pointed commit >>>>>>>> ff33d1030a6ca87cea9a41e1a2ea7750a781ab3d as fault for my boot >>>>>>>> failures >>>>>>>> with NFSv4 root on Toradex Colibri VF50 (Iris carrier board). >>>>>>>> >>>>>>>> Author: Robin Murphy >>>>>>>> Date:   Mon Jul 23 23:16:12 2018 +0100 >>>>>>>>       OF: Don't set default coherent DMA mask >>>>>>>> >>>>>>>> Board: Toradex Colibri VF50 (NXP VF500, Cortex A5, serial >>>>>>>> configured >>>>>>>> with DMA) on Iris Carrier. >>>>>>>> >>>>>>>> It looks like problem with Freescale Ethernet driver: >>>>>>>> [   15.458477] fsl-edma 40018000.dma-controller: coherent DMA >>>>>>>> mask is unset >>>>>>>> [   15.465284] fsl-lpuart 40027000.serial: Cannot prepare cyclic >>>>>>>> DMA >>>>>>>> [   15.472086] Root-NFS: no NFS server address >>>>>>>> [   15.476359] VFS: Unable to mount root fs via NFS, trying floppy. >>>>>>>> [   15.484228] VFS: Cannot open root device "nfs" or >>>>>>>> unknown-block(2,0): error -6 >>>>>>>> [   15.491664] Please append a correct "root=" boot option; here >>>>>>>> are >>>>>>>> the available partitions: >>>>>>>> [   15.500188] 0100           16384 ram0 >>>>>>>> [   15.500200]  (driver?) >>>>>>>> [   15.506406] Kernel panic - not syncing: VFS: Unable to mount >>>>>>>> root >>>>>>>> fs on unknown-block(2,0) >>>>>>>> [   15.514747] ---[ end Kernel panic - not syncing: VFS: Unable to >>>>>>>> mount root fs on unknown-block(2,0) ]--- >>>>>>>> >>>>>>>> Attached - defconfig and full boot log. >>>>>>>> >>>>>>>> Any hints? >>>>>>>> Let me know if you need any more information. >>>>>>> >>>>>>> My Exynos boards also fail to boot on missing network: >>>>>>> https://krzk.eu/#/builders/21/builds/799/steps/10/logs/serial0 >>>>>>> >>>>>>> As expected there are plenty of "DMA mask not set" warnings... and >>>>>>> later dwc3 driver fails with: >>>>>>>       dwc3: probe of 12400000.dwc3 failed with error -12 >>>>>>> which is probably the answer why LAN attached to USB is not present. >>>>>> >>>>>> Looks like all the drivers failed to set a dma mask and were lucky. >>>>> >>>>> I would call it a serious regression. Also, no longer setting a >>>>> default >>>>> coherent DMA mask is a quite substantial behavioral change, especially >>>>> if and since the code worked just fine up to now. >>>> >>>> To reiterate, that particular side-effect was an unintentional >>>> oversight, and I was simply (un)lucky enough that none of the drivers >>>> I did test depended on that default mask. Sorry for the blip; please >>>> check whether it's now fixed in next-20180730 as it should be. >>>> >>> >>> Just for my understanding: >>> >>> Your first patch ("OF: Don't set default coherent DMA mask") sounded >>> like that *not* setting default coherent DMA mask was intentionally. >>> Since the commit message reads: "...the bus code has not initialised any >>> default value" that was assuming that all bus code sets a default DMA >>> mask which wasn't the case for "simple-bus". >> >> Yes, reading the patches in the order they were written is perhaps a >> little unclear, but hopefully the order in which they are now applied >> makes more sense. >> >>> So I guess that is what ("of/platform: Initialise default DMA masks") >>> makes up for in the typical device tree case ("simple-bus")? >> >> Indeed, I'd missed the fact that the now-out-of-place-looking >> initialisation in of_dma_configure() still actually belonged to >> of_platform_device_create_pdata() - that patch should make the >> assumptions of "OF: Don't set default coherent DMA mask" true again, >> even for OF-platform devices. >> >>> Now, since almost all drivers are inside a soc "simple-bus" and DMA mask >>> is set again, can/should we rely on the coherent DMA mask set? >>> >>> Or is the expectation still that this is set on driver level too? >> >> Ideally, we'd like all drivers to explicitly request their masks as >> the documentation in DMA-API-HOWTO.txt recommends, if only to ensure >> DMA is actually possible - there can be systems where even the default >> 32-bit mask is no good - but clearly we're a little way off trying to >> enforce that just yet. >> >> Robin. >> > > Please note that sparc images still generate the warning (next-20180731). Ugh, OK, any ideas what sparc does to create these platform devices that isn't of_platform_device_create_pdata() and has somehow grown an implicit dependency on of_dma_configure() since 4.12? I'm looking, but nothing jumps out... Robin. > sunlance ffd35110: DMA mask not set > sunlance.c:v2.02 8/24/03 Miguel de Icaza (miguel@nuclecu.unam.mx) > ioremap: done with statics, switching to malloc > ------------[ cut here ]------------ > WARNING: CPU: 0 PID: 1 at ./include/linux/dma-mapping.h:516 > sparc_lance_probe_one+0x428/0x4f4 > > esp ffd38e90: DMA mask not set > ------------[ cut here ]------------ > WARNING: CPU: 0 PID: 1 at ./include/linux/dma-mapping.h:516 > esp_sbus_probe+0x408/0x6e8 > > Guenter >