Received: by 10.223.148.5 with SMTP id 5csp7206732wrq; Thu, 18 Jan 2018 02:20:37 -0800 (PST) X-Google-Smtp-Source: ACJfBovaA/yktD+PZLk4DMQCB8xe59A/k2cJUFX2/+HqCxTO1+iwGnitXuu+khV14qHoiM7/P2ZR X-Received: by 10.98.6.130 with SMTP id 124mr41199121pfg.8.1516270837310; Thu, 18 Jan 2018 02:20:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516270837; cv=none; d=google.com; s=arc-20160816; b=jIhyP5RwgZc657POs25G/IyWq9U/9xtOxJ8QIJNDtbDdrr8TjOoY8dpIVrYqz+Mm/P WyiAT7pmqbGt642lAysklfNIVDHCvvDyyhZrmKB68TmZVLkWLGmyzRQy0Daqnaje4Tcj JvQl/n9koxeNW4qw3nVl9y2scI7dq2aJpWpy+C4O/P9SHl2GZ6Igzsrcd1pZXOPwsH7+ hw/9a6i9vxLYSXtjTFg5/lW6n3p2L5mxcjJfRQz9YZdQy6l1gCEIWr0B2As0MVpBAxW5 J10cyqFDcAI+Oi2bPeZZRcK3Td/no9fX74j3jrbwMx+GsBtfW7hkEsUCK7iNoJqKbsed Hn7g== 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:organization:from:references:to:subject:cc :arc-authentication-results; bh=ZQqY3WkHwBtPTAJMM3THpa2ZiD3oVHSkyW4LGO3jC8k=; b=hX54uHPrgAunVh6Vs3opahAwwGOf2q0dbjmfF06M2WQpgvKpTzrEejHzzWuDMrHpjH yo+yI3268wo2oNnaeHjBHTEcxp9KQLE3IL0ySU/Aq/+MuNgBdHMZy1ZTvTEvzKfq1Wm1 lLjxSi8FySY8aeJnSEPz5Vc8wAVDJKJVPssGpqZgUtKGkf03+RoxzV+5CFy8azPaHM66 phRIs/Sbm3HkhASliP02ivKL4fltrnEXzz3vFeWC07Sggk0pxjNU5DEFbSUshRn/VSbl iXyskQCqjypbD19qrU6JtynoFIZpJkQpLCNhhHh0lycLRNw56GWbIqPrwd6enKS8lVPn swUg== 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 n184si5655818pga.162.2018.01.18.02.20.22; Thu, 18 Jan 2018 02:20:37 -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; 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 S1755336AbeARKOR (ORCPT + 99 others); Thu, 18 Jan 2018 05:14:17 -0500 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:52782 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753505AbeARKOO (ORCPT ); Thu, 18 Jan 2018 05:14:14 -0500 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 417FD1529; Thu, 18 Jan 2018 02:14:14 -0800 (PST) Received: from [10.1.210.28] (e107155-lin.cambridge.arm.com [10.1.210.28]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7644F3F557; Thu, 18 Jan 2018 02:14:09 -0800 (PST) Cc: Sudeep Holla , linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, hanjun.guo@linaro.org, lorenzo.pieralisi@arm.com, rjw@rjwysocki.net, will.deacon@arm.com, catalin.marinas@arm.com, gregkh@linuxfoundation.org, viresh.kumar@linaro.org, mark.rutland@arm.com, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, jhugo@codeaurora.org, wangxiongfeng2@huawei.com, Jonathan.Zhang@cavium.com, ahs3@redhat.com, Jayachandran.Nair@cavium.com, austinwc@codeaurora.org, lenb@kernel.org, vkilari@codeaurora.org, morten.rasmussen@arm.com, Palmer Dabbelt , Albert Ou Subject: Re: [PATCH v6 02/12] drivers: base: cacheinfo: setup DT cache properties early To: Jeremy Linton References: <20180113005920.28658-1-jeremy.linton@arm.com> <20180113005920.28658-3-jeremy.linton@arm.com> <20180115123338.GB5473@e107155-lin> <65f78c99-8b86-0098-7ced-899840a4bf16@arm.com> <15884ccc-2cfb-da91-5844-369d8237175d@arm.com> From: Sudeep Holla Organization: ARM Message-ID: <05a8b375-70c4-34d4-6cde-8dd4cd62c10b@arm.com> Date: Thu, 18 Jan 2018 10:14:06 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <15884ccc-2cfb-da91-5844-369d8237175d@arm.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 17/01/18 18:51, Jeremy Linton wrote: > Hi, > > On 01/17/2018 12:20 PM, Sudeep Holla wrote: >> >> >> On 16/01/18 21:07, Jeremy Linton wrote: >>> Hi, >>> >>> On 01/15/2018 06:33 AM, Sudeep Holla wrote: >>>> On Fri, Jan 12, 2018 at 06:59:10PM -0600, Jeremy Linton wrote: >>>>> The original intent in cacheinfo was that an architecture >>>>> specific populate_cache_leaves() would probe the hardware >>>>> and then cache_shared_cpu_map_setup() and >>>>> cache_override_properties() would provide firmware help to >>>>> extend/expand upon what was probed. Arm64 was really >>>>> the only architecture that was working this way, and >>>>> with the removal of most of the hardware probing logic it >>>>> became clear that it was possible to simplify the logic a bit. >>>>> >>>>> This patch combines the walk of the DT nodes with the >>>>> code updating the cache size/line_size and nr_sets. >>>>> cache_override_properties() (which was DT specific) is >>>>> then removed. The result is that cacheinfo.of_node is >>>>> no longer used as a temporary place to hold DT references >>>>> for future calls that update cache properties. That change >>>>> helps to clarify its one remaining use (matching >>>>> cacheinfo nodes that represent shared caches) which >>>>> will be used by the ACPI/PPTT code in the following patches. >>>>> >>>>> Cc: Palmer Dabbelt >>>>> Cc: Albert Ou >>>>> Signed-off-by: Jeremy Linton >>>>> --- >>>>>    arch/riscv/kernel/cacheinfo.c |  1 + >>>>>    drivers/base/cacheinfo.c      | 65 >>>>> +++++++++++++++++++------------------------ >>>>>    include/linux/cacheinfo.h     |  1 + >>>>>    3 files changed, 31 insertions(+), 36 deletions(-) >>>>> >>>>> diff --git a/arch/riscv/kernel/cacheinfo.c >>>>> b/arch/riscv/kernel/cacheinfo.c >>>>> index 10ed2749e246..6f4500233cf8 100644 >>>>> --- a/arch/riscv/kernel/cacheinfo.c >>>>> +++ b/arch/riscv/kernel/cacheinfo.c >>>>> @@ -30,6 +30,7 @@ static void ci_leaf_init(struct cacheinfo >>>>> *this_leaf, >>>>>            CACHE_WRITE_BACK >>>>>            | CACHE_READ_ALLOCATE >>>>>            | CACHE_WRITE_ALLOCATE; >>>>> +    cache_of_set_props(this_leaf, node); >>>> >>>> This may be necessary but can it be done as later patch ? So far >>>> nothing >>>> is added that may break riscv IIUC. >>> >>> Well I think you have a bisection issue where the additional information >>> will disappear between this patch and wherever we put this code back in. >>> >> >> Hmm, I am sorry but I fail to see the issue. Before this change, >> populate_cache_leaves just populated the info as per ci_leaf_init in >> arch/riscv/kernel/cacheinfo.c and cache_override_properties used to fill >> the remaining. >> >> After this patch, the same is achieved in cache_shared_cpu_map_setup. >> >> In both case, it was by the end of detect_cache_attributes, so I see no >> issue. >> > > > Hi, > > I must be misunderstanding something. > Looks like I was missing to understand something :) > AFAIK, The code in cache_setup_of_node() won't call cache_of_set_props() > because it returns when there is an existing of_node (fw_unique) created > by the riscv populate_cache_leaves(). That's why I'm making the direct > call here. If we fail to get that change in place before > cache_override_properties() is removed then the fields not set by the > riscv code (size/etc) will be missing. Indeed. I am trying to avoid use of cache_of_set_props outside. How about skipping setting up of fw_unique in ci_leaf_init instead ? -- Regards, Sudeep