Received: by 10.223.185.116 with SMTP id b49csp2655195wrg; Mon, 5 Mar 2018 06:41:41 -0800 (PST) X-Google-Smtp-Source: AG47ELthXkKy82ir+y8ikFemy/JXa9lBHXrLVWE8g/jW62ueSsxBm5zmgfmpZuremadOp/K5JyCx X-Received: by 10.101.72.199 with SMTP id o7mr12367448pgs.303.1520260901289; Mon, 05 Mar 2018 06:41:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520260901; cv=none; d=google.com; s=arc-20160816; b=zL8qUpSytT0GtfMeIo8Mfvj20Qv0RBD40HRq4HqqKs7nKnfvhUNLEN3Vx9wZ1QpjZ8 SER0mfEqDWaYEYUWCXG4NSIOZLEh7RZcsn7QgVnuCtNrZxWNQZ2UouaommvAoOuOWhCf WzrsCyp+57SkHdES2pay5qOO6PZK00eXa+sMYP0UBaI0+5A6WiXZ67B1t3KBsRF0LFl5 xOcYoJ6ZNzwUqXm6rRxbq+L4hJ1wRW040YsgcbvWAzzcB++fVmGabEjzlu0bOWY1QQNf 7BC5cuHfP1lhYrTAf0ehJBJfVZrTdafeHZCzf+v1oSioCgEprMsfeY0H4voIyumZkXrf pxMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:cms-type :content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:cc:to:subject:dkim-signature :dkim-filter:arc-authentication-results; bh=uX6axu9oiG2CisFy5KG7DBk4ewHvSlGXERO7kv7iRnw=; b=Z4j80xt02ai5nY97+6Q5LFHySni7/Ge9CDh3ks9IIvKQ+XTb6Zn6U97JG5I5/+9Ufa uCZPjLODVQ60FxV5DCovFoQHCWmrtUD7ECfk7cSn8wySEqdcbRkZ80moohbf8LQcLqsm OC/OqOu3p7AEUr5hVac2uRLziSYgieWH4NJVKe8ayC7AUbAZ7JM4mLNuWNGyHy8v0P4i VEnLbHmTZJJnDuvuLfnPAiWeUknwm3uYPaVqIBHlImKkz9JDxZPAWjFkEJR1wDfc8Y3Y bYtX0JNsRI4eXy4RQM69SE6PWQAaTLfb4gCFMTMVpNo4gqRKOirRkNyISCKcTyydqYxX fOQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=ZOCVkXf/; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f13si8428155pgr.682.2018.03.05.06.41.26; Mon, 05 Mar 2018 06:41:41 -0800 (PST) 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; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=ZOCVkXf/; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932082AbeCEOkX (ORCPT + 99 others); Mon, 5 Mar 2018 09:40:23 -0500 Received: from mailout2.w1.samsung.com ([210.118.77.12]:33663 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932141AbeCEOkQ (ORCPT ); Mon, 5 Mar 2018 09:40:16 -0500 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20180305144013euoutp021ca66c8dd0fa02c0c1aeda283de3d5bb~ZDSfGZh9C1030110301euoutp02V; Mon, 5 Mar 2018 14:40:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20180305144013euoutp021ca66c8dd0fa02c0c1aeda283de3d5bb~ZDSfGZh9C1030110301euoutp02V DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1520260813; bh=uX6axu9oiG2CisFy5KG7DBk4ewHvSlGXERO7kv7iRnw=; h=Subject:To:Cc:From:Date:In-reply-to:References:From; b=ZOCVkXf/AZMAz6FL9zvcCDK1C8gHG3Usz3tZb63UhZC3C9aHB3zHj+/E1RIPJ/BrX k90pRV5E7CkbJS0NZ9hXMsYnOnNKGUV5BWZ7ESG4GKp58zfQu2XQk6IkdW8I32h+Vj cpbEw6xGUkLv4jJo4vfz/9tsxa2V2TlaC+Q7gieY= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20180305144012eucas1p1383d0875446bb17089b83c568ea105df~ZDSea0Ysr0519705197eucas1p1J; Mon, 5 Mar 2018 14:40:12 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id C9.10.05700.CC65D9A5; Mon, 5 Mar 2018 14:40:12 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20180305144012eucas1p1b83feabb41bb4d224308eaf226da29b3~ZDSduOEIA3065630656eucas1p1v; Mon, 5 Mar 2018 14:40:12 +0000 (GMT) X-AuditID: cbfec7f2-1dbff70000011644-f8-5a9d56cccef7 Received: from eusync4.samsung.com ( [203.254.199.214]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 1C.3C.04183.CC65D9A5; Mon, 5 Mar 2018 14:40:12 +0000 (GMT) Received: from [106.120.51.25] by eusync4.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0P54007PMGQWMUB0@eusync4.samsung.com>; Mon, 05 Mar 2018 14:40:12 +0000 (GMT) Subject: Re: [PATCH v5 0/5] Add coupled regulators mechanism To: Fabio Estevam , Mark Brown Cc: linux-kernel , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Liam Girdwood , Rob Herring , Mark Rutland , Marek Szyprowski , Doug Anderson , Bartlomiej Zolnierkiewicz From: Maciej Purski Message-id: <6fc780e4-3594-2ca5-dc4e-7e147dc4e40f@samsung.com> Date: Mon, 05 Mar 2018 15:40:07 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-version: 1.0 In-reply-to: Content-type: text/plain; charset="utf-8"; format="flowed" Content-language: en-US Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTURzAObt3d3fD1XEq/rUwGYgipQlWFzNJFFpkGkURfsiW3nykUzbf iihqPgubLGNLzQ9prZX5QHIU5PBBpTPzlYRvMy0rUoykstyuwr79zjm/cw6/w6EJSRPflY5X pLJKhTxRSonIjt6NwQP9F2ojD5o0XkzLnWY+o5ldoJj6bjOfGWjsopjZ0Qjm50gpjxk23qWY x92TAub++BCPKX7RLTgukhnqDEimyx8iZZ3aSYGsVV9GyW6265FsrdXtDBUpCoxhE+PTWaVv 0GVRnL6ykUoxh2RqpyaofLRxuBwJacD+8MqgQ+VIREvwAwQ9I0YeN1hDYBwzC3aseo2ab2EJ bkTQ9s+bkxYRFDUs8SwLDjgQVop+W9kRn4CW17OERSJwOQHf337aOommKewNhpIoiyPGQVBp Xrb6JPaApapRZGEnfBEaNB8R59jDr+op0sJCfA6+LaxYfQIHwOJmMZ9jZygsniA53gdthq/W ewHPU2CeM5NcQSj0l+kQxw7wua99u2wvDFdXbDs5MLRupDjOhYIPT7edo7Cmbie4C3aBuqOG sLQAFkPpdQmnyGB1zLS9NRiePxmguAeaQjD9Y5yqQm5amx6tTYPWpkFr03APkXrkzKapkmJZ lZ+CzfBRyZNUaYpYn+jkpFa09X3ebPatPkPr766YEKaR1E5Mn6qNlPDl6aqsJBMCmpA6il1d tqbEMfKsbFaZHKVMS2RVJrSHJqXO4kteeZESHCtPZa+xbAqr3Fnl0ULXfHQoWOCe5+TXczuA UefO31g4X6D4clVz7K/v3J9Cu4Dw3SEnPTNnTi83vuwsbE6fFfKHetkZ9zrHDZ+B1Vvx71uy woLNddme8We7dGRJb0JYtMN0uuxhhku3sG5NHZrwqGl/RXiTv8ajCkf0iUQFR7Q1+urByYic KkP7Zn7XnH2xlFTFyf28CaVK/h+cp7Z4OgMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJLMWRmVeSWpSXmKPExsVy+t/xa7pnwuZGGWxv57TYOGM9q8XUh0/Y LOYfOcdqcXbZQTaLh1f9Lb5d6WCyuLxrDpvF2iN32S2WXr/IZNG69wi7A5fHmnlrGD1mN1xk 8dg56y67x6ZVnWwefVtWMXp83iQXwBbFZZOSmpNZllqkb5fAlbGqZxlbwTnniln3brI1MP40 62Lk5JAQMJGYP3USaxcjF4eQwBJGiR3zZ7BBOM8YJf42zGIDqRIWsJF40/KbCcQWEXCX2Hjq ITOIzSzQwyzxYm4ARMMDRon9/14zdjFycLAJaEmsaY8HqeEVsJPoOfcSrJdFQFXixYSrjCC2 qECEROfK+SwQNYISPybfYwFp5RQIljg3MQtivJnEl5eHWSFscYnm1pssELa8xOY1b5knMArM QtI9C0nLLCQts5C0LGBkWcUoklpanJueW2ykV5yYW1yal66XnJ+7iREYIduO/dyyg7HrXfAh RgEORiUe3g0ec6OEWBPLiitzDzFKcDArifBKSQKFeFMSK6tSi/Lji0pzUosPMUpzsCiJ8543 qIwSEkhPLEnNTk0tSC2CyTJxcEo1MJoLpczcNLleN+LgdKW+o2slJwZwrHm+PMpWtdhyhvyu 47rfj2578kLZq8xx9jnrXYXcyi+Uis2P+VXskvlls3fTueePWrkj3v5kd3GYWXWvTrhS3iS4 9doVZp5VKTwf/12+m8m/Zau2QHDzhu3L6u5K3Tio9janOORQC6tpxew5KZYSPQZKEkosxRmJ hlrMRcWJAHzHTHCMAgAA X-CMS-MailID: 20180305144012eucas1p1b83feabb41bb4d224308eaf226da29b3 X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20180302085118eucas1p15a6a5ec5f7f47a6f67a45c5e9495b120 X-RootMTR: 20180302085118eucas1p15a6a5ec5f7f47a6f67a45c5e9495b120 References: <1519980169-8491-1-git-send-email-m.purski@samsung.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Fabio, thank you for your response. Could you tell me on which board precisely (on which DTS) has this issue occurred? Also, I don't understand, did you boot successfully and you got only a lockdep warning or you encountered an actual deadlock? Best regards, Maciej Purski On 03/05/2018 01:34 PM, Fabio Estevam wrote: > Hi Maciej, > > On Fri, Mar 2, 2018 at 5:42 AM, Maciej Purski wrote: >> Hi all, >> >> this patchset adds a new mechanism to the framework - regulators' coupling. >> >> On Odroid XU3/4 and other Exynos5422 based boards there is a case, that >> different devices on the board are supplied by different regulators >> with non-fixed voltages. If one of these devices temporarily requires >> higher voltage, there might occur a situation that the spread between >> devices' voltages is so high, that there is a risk of changing >> 'high' and 'low' states on the interconnection between devices powered >> by those regulators. >> >> Algorithmicaly the problem was solved by: >> Inderpal Singh >> Doug Anderson >> >> The discussion on that subject can be found here: >> https://lkml.org/lkml/2014/4/29/28 >> >> Therefore this patchset is an attempt to apply the idea to regulators core >> as concluded in the discussion by Mark Brown and Doug Anderson. >> >> This feature is required to enable support for generic CPUfreq >> and devfreq drivers for the mentioned boards. >> >> Note on the locking model: >> When balancing voltage of a group of coupled regulators, we lock all >> of them for the whole operation. When voltage of an individual regulator >> is about to change, its suppliers are additionally locked. >> >> The current assumption is that an uncoupled regulator is a special case >> of a coupled one, so they should share a common voltage setting path. > > This series breaks has reached linux-next 20180305 and it breaks > booting on imx6: > > [ 0.269646] imx-pgc-pd imx-pgc-power-domain.0: Linked as a consumer > to 20dc000.gpc > [ 0.270348] > [ 0.270363] ============================================ > [ 0.270373] WARNING: possible recursive locking detected > [ 0.270385] 4.16.0-rc3-next-20180305 #156 Not tainted > [ 0.270397] -------------------------------------------- > [ 0.270408] swapper/0/1 is trying to acquire lock: > [ 0.270419] (&rdev->mutex){+.+.}, at: [] > regulator_lock_supply+0x24/0x44 > [ 0.270460] > [ 0.270460] but task is already holding lock: > [ 0.270471] (&rdev->mutex){+.+.}, at: [] > regulator_enable+0x78/0x298 > [ 0.270502] > [ 0.270502] other info that might help us debug this: > [ 0.270513] Possible unsafe locking scenario: > [ 0.270513] > [ 0.270523] CPU0 > [ 0.270532] ---- > [ 0.270540] lock(&rdev->mutex); > [ 0.270555] lock(&rdev->mutex); > [ 0.270572] > [ 0.270572] *** DEADLOCK *** > [ 0.270572] > [ 0.270585] May be due to missing lock nesting notation > [ 0.270585] > [ 0.270598] 3 locks held by swapper/0/1: > [ 0.270606] #0: (&dev->mutex){....}, at: [] > __driver_attach+0x58/0xcc > [ 0.270642] #1: (&dev->mutex){....}, at: [] > __driver_attach+0x68/0xcc > [ 0.270672] #2: (&rdev->mutex){+.+.}, at: [] > regulator_enable+0x78/0x298 > [ 0.270701] > [ 0.270701] stack backtrace: > [ 0.270719] CPU: 0 PID: 1 Comm: swapper/0 Not tainted > 4.16.0-rc3-next-20180305 #156 > [ 0.270731] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) > [ 0.270741] Backtrace: > [ 0.270767] [] (dump_backtrace) from [] > (show_stack+0x18/0x1c) > [ 0.270783] r7:00000000 r6:60000093 r5:00000000 r4:c1078360 > [ 0.270805] [] (show_stack) from [] > (dump_stack+0xb4/0xe8) > [ 0.270830] [] (dump_stack) from [] > (__lock_acquire+0x13a4/0x199c) > [ 0.270848] r9:c17d75fc r8:c11ae35c r7:c17c73b0 r6:ec060000 > r5:ec060570 r4:c11ae35c > [ 0.270867] [] (__lock_acquire) from [] > (lock_acquire+0x70/0x90) > [ 0.270883] r10:00000000 r9:ec195800 r8:00000001 r7:00000001 > r6:60000013 r5:00000000 > [ 0.270893] r4:ffffe000 > [ 0.270914] [] (lock_acquire) from [] > (__mutex_lock+0x64/0x978) > [ 0.270929] r8:00000001 r7:00000001 r6:00000000 r5:00000000 r4:ec00b89c > [ 0.270947] [] (__mutex_lock) from [] > (mutex_lock_nested+0x24/0x2c) > [ 0.270963] r10:00000000 r9:ec195800 r8:00000001 r7:00000001 > r6:ec195800 r5:00000000 > [ 0.270975] r4:ec00b800 > [ 0.270992] [] (mutex_lock_nested) from [] > (regulator_lock_supply+0x24/0x44) > [ 0.271013] [] (regulator_lock_supply) from [] > (regulator_balance_voltage+0x298/0x584) > [ 0.271024] r5:000b1008 r4:ec195800 > [ 0.271042] [] (regulator_balance_voltage) from > [] (regulator_enable+0xdc/0x298) > [ 0.271059] r10:00000000 r9:00000000 r8:00000001 r7:00000001 > r6:ec195800 r5:ec195824 > [ 0.271069] r4:00000001 > [ 0.271086] [] (regulator_enable) from [] > (imx6_pm_domain_power_on+0x30/0x1b4) > [ 0.271102] r9:00000000 r8:c102d114 r7:c1008908 r6:c102d114 > r5:ec3d7a00 r4:ec3d7a00 > [ 0.271119] [] (imx6_pm_domain_power_on) from > [] (imx_pgc_power_domain_probe+0x64/0xf4) > [ 0.271135] r8:c102d114 r7:ec49c810 r6:c102d114 r5:ec49c800 r4:ec3d7a00 > [ 0.271153] [] (imx_pgc_power_domain_probe) from > [] (platform_drv_probe+0x54/0xb8) > [ 0.271168] r7:fffffdfb r6:c102d114 r5:ec49c810 r4:ec49c810 > [ 0.271189] [] (platform_drv_probe) from [] > (driver_probe_device+0x2b0/0x338) > [ 0.271204] r7:c17e234c r6:00000000 r5:c17e2348 r4:ec49c810 > [ 0.271222] [] (driver_probe_device) from [] > (__driver_attach+0xc8/0xcc) > [ 0.271237] r10:c0f00630 r9:00000000 r8:c1008908 r7:c1008908 > r6:ec49c844 r5:c102d114 > [ 0.271248] r4:ec49c810 r3:00000000 > [ 0.271267] [] (__driver_attach) from [] > (bus_for_each_dev+0x6c/0xbc) > [ 0.271280] r7:c1008908 r6:c057f310 r5:c102d114 r4:00000000 > [ 0.271298] [] (bus_for_each_dev) from [] > (driver_attach+0x20/0x28) > [ 0.271314] r7:00000000 r6:c103b0a8 r5:ec479b00 r4:c102d114 > [ 0.271332] [] (driver_attach) from [] > (bus_add_driver+0x18c/0x214) > [ 0.271351] [] (bus_add_driver) from [] > (driver_register+0x80/0x100) > [ 0.271366] r7:c0e125e4 r6:c0f63850 r5:c0f41c18 r4:c102d114 > [ 0.271383] [] (driver_register) from [] > (__platform_driver_register+0x38/0x4c) > [ 0.271396] r5:c0f41c18 r4:ffffe000 > [ 0.271418] [] (__platform_driver_register) from > [] (imx_pgc_power_domain_driver_init+0x18/0x20) > [ 0.271438] [] (imx_pgc_power_domain_driver_init) from > [] (do_one_initcall+0x50/0x1a0) > [ 0.271464] [] (do_one_initcall) from [] > (kernel_init_freeable+0x118/0x1d0) > [ 0.271481] r9:c0f63858 r8:000000f2 r7:c0e125e4 r6:c0f63850 > r5:c1079f80 r4:c0f77ab4 > [ 0.271508] [] (kernel_init_freeable) from [] > (kernel_init+0x10/0x118) > [ 0.271524] r10:00000000 r9:00000000 r8:00000000 r7:00000000 > r6:00000000 r5:c0a5c6e0 > [ 0.271533] r4:00000000 > [ 0.271552] [] (kernel_init) from [] > (ret_from_fork+0x14/0x20) > [ 0.271564] Exception stack(0xec069fb0 to 0xec069ff8) > [ 0.271579] 9fa0: 00000000 > 00000000 00000000 00000000 > [ 0.271594] 9fc0: 00000000 00000000 00000000 00000000 00000000 > 00000000 00000000 00000000 > [ 0.271609] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 > [ 0.271621] r5:c0a5c6e0 r4:00000000 > [ 0.271723] imx-pgc-pd imx-pgc-power-domain.1: Linked as a consumer > to 20dc000.gpc > [ 0.273566] 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 26, > base_baud = 5000000) is a IMX > [ 1.660948] console [ttymxc0] enabled > [ 1.666242] 21ec000.serial: ttymxc2 at MMIO 0x21ec000 (irq = 65, > base_baud = 5000000) is a IMX > [ 1.683484] etnaviv etnaviv: bound 130000.gpu (ops gpu_ops) > [ 1.689464] etnaviv etnaviv: bound 134000.gpu (ops gpu_ops) > > If I revert this series I am able to boot again. > > >