Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1010690ybh; Mon, 13 Jul 2020 07:12:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwR241N0gJw2xAzFrI44ct46VqCK0FWBjDwveIvpHaW12kyzskvu9GHB1lv1ymzIZ5U8p50 X-Received: by 2002:a05:6402:2350:: with SMTP id r16mr61756452eda.62.1594649521129; Mon, 13 Jul 2020 07:12:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594649521; cv=none; d=google.com; s=arc-20160816; b=M3sSa6Ao4tw3DB0pc1Ul285c1DDrQ7fVbns/HeZG1j2Xzg/yBNsebgbdLzn17ZzwK2 6FE/Sz2qmqUZNHnJIL5yDwuIgmVnavJqcaO7SO+9U6fLIG3WmVqhFrkgLIdIj1WGjVZk 9gLA2Bz585FhyOVMx6dooBD0wzpVV8debvcxMo1MD5GH0OE8bAa7HEy3IxiS089+y7hp 7PBHGj4Occ80NUWVPOf+z5VUue9xuzpv8qLWQC1Xg8/nDtEkjp3T5XAi0m9WaHD2rRxC dQ1HSFa5l05funXOE/jZjcpQbp/3k90dOIZ8q7HN1j3f6S5RnhZ5J+M3fBi/7eGvFFzx h1Hg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=TrrWHkGnOGsj8G2D+yDGa4F5U2Cmas31q4ApkmvPx78=; b=jhbT/yJ4Im88hGk4iq14cE7W55rUu70ZXNQEITq9fCo5arT/rViSrSWtt/x9m9vfRJ QAE7Xm7TiYdfqZpnQWXFzdW/E5N/F/+kSscjh5gXt8JS0Rdhx4BkSqh4nZxi0V8bTZ9N YtiJ5oAfHrKA/jCCeVPFNDJxhqUuN2TIMtH0M22W9ukoftLcACvuGXBZV5vPjLXK1m/t WZsLucrp4YaZneKnT/K33J3lBDPAnODlXMw/mPaj1nQYSEWG+3U1Ad5YgcKPacXf5JGP C2FU8fR7Ld4zQmreu1zcwC7/A2/1EtzVOZK/bdGbf2ja3y+tcOcW6dNHneGYXTjnI0O0 nDXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=X7FqkZip; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r6si8719464ejd.213.2020.07.13.07.11.37; Mon, 13 Jul 2020 07:12: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; dkim=pass header.i=@kernel.org header.s=default header.b=X7FqkZip; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729976AbgGMOLU (ORCPT + 99 others); Mon, 13 Jul 2020 10:11:20 -0400 Received: from mail.kernel.org ([198.145.29.99]:38368 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729523AbgGMOLU (ORCPT ); Mon, 13 Jul 2020 10:11:20 -0400 Received: from mail-oo1-f51.google.com (mail-oo1-f51.google.com [209.85.161.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 7EE892075B; Mon, 13 Jul 2020 14:11:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1594649479; bh=T7QvK7R+StJM4r1IQ7c0n9HcB+fbfozHwcxG3TVZxo4=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=X7FqkZipmIBmyCZGB2I50FJei86C7jKNyhfscfKTgxvANpKpPjPQ+2Oe2TEv+EiB7 affUXOkPREJoFFD6k8g7b7Z4mpB0bFJ/1T92vUM55PbW8XX5Tt0XNsw4Sk0jdKO3ZR L3jlsUUKQorGXQalVIGSFuIaVfRfeIfGk032djzI= Received: by mail-oo1-f51.google.com with SMTP id k47so2369577ool.2; Mon, 13 Jul 2020 07:11:19 -0700 (PDT) X-Gm-Message-State: AOAM5304+p8J0UxcTfZ0bL079z9SDU+73ToBZ8zFU8Y3CgrkHwRuHO3a XacMWU4tJJWEDD/WwF2drE0asEE5cPzL+lx08g== X-Received: by 2002:a4a:7459:: with SMTP id t25mr64494ooe.25.1594649478792; Mon, 13 Jul 2020 07:11:18 -0700 (PDT) MIME-Version: 1.0 References: <20200710230224.2265647-1-dianders@chromium.org> In-Reply-To: <20200710230224.2265647-1-dianders@chromium.org> From: Rob Herring Date: Mon, 13 Jul 2020 08:11:07 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 0/9] drm/msm: Avoid possible infinite probe deferral and speed booting To: Douglas Anderson Cc: Rob Clark , Sean Paul , Andy Gross , Bjorn Andersson , dri-devel , linux-arm-msm , freedreno , devicetree@vger.kernel.org, Daniel Vetter , David Airlie , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 10, 2020 at 5:02 PM Douglas Anderson wrote: > > I found that if I ever had a little mistake in my kernel config, > or device tree, or graphics driver that my system would sit in a loop > at bootup trying again and again and again. An example log was: Why do we care about optimizing the error case? > msm ae00000.mdss: bound ae01000.mdp (ops 0xffffffe596e951f8) > msm_dsi ae94000.dsi: ae94000.dsi supply gdsc not found, using dummy regulator > msm_dsi_manager_register: failed to register mipi dsi host for DSI 0 > [drm:ti_sn_bridge_probe] *ERROR* could not find any panel node > ... > > I finally tracked it down where this was happening: > - msm_pdev_probe() is called. > - msm_pdev_probe() registers drivers. Registering drivers kicks > off processing of probe deferrals. > - component_master_add_with_match() could return -EPROBE_DEFER. > making msm_pdev_probe() return -EPROBE_DEFER. > - When msm_pdev_probe() returned the processing of probe deferrals > happens. > - Loop back to the start. > > It looks like we can fix this by marking "mdss" as a "simple-bus". > I have no idea if people consider this the right thing to do or a > hack. Hopefully it's the right thing to do. :-) It's a simple test. Do the child devices have any dependency on the parent to probe and/or function? If so, not a simple-bus. > Once I do this I notice that my boot gets marginally faster (you > don't need to probe the sub devices over and over) and also if I Can you quantify that? Have you run with devlinks enabled. You need a command line option to enable. That too should reduce deferred probes. > have a problem it doesn't loop forever (on my system it still > gets upset about some stuck clocks in that case, but at least I > can boot up). Deferred probe only runs when a device is added, so it's not like it is continually running. Rob