Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp228568imm; Thu, 27 Sep 2018 19:58:41 -0700 (PDT) X-Google-Smtp-Source: ACcGV63noZjcr3GLPJje4ny1YEa4YBCrquFeHF3AoliqB5bOtHZU8QABBvrBEw9GwwWY8tOVQxwa X-Received: by 2002:a65:5a89:: with SMTP id c9-v6mr12609268pgt.216.1538103521452; Thu, 27 Sep 2018 19:58:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538103521; cv=none; d=google.com; s=arc-20160816; b=XO/IX3PAsw7oo+QS7T0Sf7Jr4F0fRgbCTwoledSUg973yafJH7gv/qgebzWbBrSFnX kf6BJF0FLOPxOdsNYi6gxmux8wJVdydDMc7B8esjx78AccXt1Jr0s4YXIIUjvGnAZe2e 3JnbF+s6eOnsfwSU/YDFxIWhRvTd0xinnFMub3Ggv+kxD3fHrBd/wmAM6G9jmwuqhrnm +o4ou4azwnQGveY/RsjD4reC9I8quZw8Ev15A2+leU9jz8wjzihxW4o/Gj89/82O+5CF d+mB2oR5e9BX+X9ds4OiofWw3QGh99+MdjhyczRTU4HLo2pA43JYXlf7/51DPv7pBiFu DWwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dmarc-filter:dkim-signature:dkim-signature; bh=ZAT/APPfoqWFw0rh594oYiraLPt8piKRUdOlDzYyWYU=; b=yyXsy0mpXbVa+pFo8Z1fhUnUVHRuk4EYhHnxhxpbU3v5GFcpMTcG6tMKw4cH5ucmhi HDNth5EczJ+Ry7YRb2hapZscyHotqw2Csxe2nDjWqn7QnixfwOB5qsh7tC9NmCjC5SeA /DUnWr89vo+neBpU9qZR8SxPNnkV2kwYvDDsKET2wWfM6B/W4E8hNHnymXL9kOVILeDQ BEXn02nqz0KsfFNBOvBI6HSG6K2h6lk3YfSyExtjgdDW2R6ZmpdeecAKpFf0T3VV5Sis PY65ABeD6KuaRkeENn+HYGSzfWabeSBLZOWRvQzUubDks4mtTMZCAeHdwBxtH+KVOpEh enLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=acyxjIba; dkim=pass header.i=@codeaurora.org header.s=default header.b="XZW6gi9/"; 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 a3-v6si3657304plp.199.2018.09.27.19.58.25; Thu, 27 Sep 2018 19:58:41 -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; dkim=pass header.i=@codeaurora.org header.s=default header.b=acyxjIba; dkim=pass header.i=@codeaurora.org header.s=default header.b="XZW6gi9/"; 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 S1728734AbeI1JTr (ORCPT + 99 others); Fri, 28 Sep 2018 05:19:47 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:41888 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726091AbeI1JTr (ORCPT ); Fri, 28 Sep 2018 05:19:47 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 65ACC60BE8; Fri, 28 Sep 2018 02:58:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1538103497; bh=hP1qUUeT6ueLdRJHYwlGAVCUR8pemBhrJswHoplZcQA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=acyxjIbaFNLiTMB0zgK4Q8xGjMSyylxRtPwWfg9TDeL5BsQlFltQKNTQr766jvjWR hzRqkHfyq9Mdhv7TqyN7RO0l4tma8B4qICKU0KY2zEe4OuoNCjSGDjI2KK66ciljNV GgOUMUm7DAND0sQdfN27UGOS79UYb94q4rJnTHls= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_INVALID,DKIM_SIGNED autolearn=no autolearn_force=no version=3.4.0 Received: from jhugo-perf-lnx.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: jhugo@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id E218060BE8; Fri, 28 Sep 2018 02:58:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1538103496; bh=hP1qUUeT6ueLdRJHYwlGAVCUR8pemBhrJswHoplZcQA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XZW6gi9/8Mpp7kEUFF+o44uOt7XxfZ0H+6qobz/8YvO4XtS2W3nagA/v/9lHKHD4x qWyL+qb/UxY3j4Q0Iobf+pv8Rx7brtfF/q3Ta7JuwALogtLl0gxUPFz1yuHPTK56CA DMXm/R63vkzR8fQZDfkI5cMxOEkJ4nJz7kX0Cqyo= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org E218060BE8 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=jhugo@codeaurora.org From: Jeffrey Hugo To: sudeep.holla@arm.com, gregkh@linuxfoundation.org, rjw@rjwysocki.net, linux-acpi@vger.kernel.org, jeremy.linton@arm.com Cc: linux-kernel@vger.kernel.org, vkilari@codeaurora.org, Jeffrey Hugo Subject: [PATCH v3 2/2] ACPI/PPTT: Handle architecturally unknown cache types Date: Thu, 27 Sep 2018 20:57:57 -0600 Message-Id: <1538103477-15513-3-git-send-email-jhugo@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1538103477-15513-1-git-send-email-jhugo@codeaurora.org> References: <1538103477-15513-1-git-send-email-jhugo@codeaurora.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The type of a cache might not be specified by architectural mechanisms (ie system registers), but its type might be specified in the PPTT. In this case, we should populate the type of the cache, rather than leave it undefined. This fixes the issue where the cacheinfo driver will not populate sysfs for such caches, resulting in the information missing from utilities like lstopo and lscpu, thus degrading the user experience. Fixes: 2bd00bcd73e5 (ACPI/PPTT: Add Processor Properties Topology Table parsing) Reported-by: Vijaya Kumar K Signed-off-by: Jeffrey Hugo --- drivers/acpi/pptt.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c index d1e26cb..38ac30e 100644 --- a/drivers/acpi/pptt.c +++ b/drivers/acpi/pptt.c @@ -357,25 +357,15 @@ static void update_cache_properties(struct cacheinfo *this_leaf, struct acpi_pptt_cache *found_cache, struct acpi_pptt_processor *cpu_node) { - int valid_flags = 0; - this_leaf->fw_token = cpu_node; - if (found_cache->flags & ACPI_PPTT_SIZE_PROPERTY_VALID) { + if (found_cache->flags & ACPI_PPTT_SIZE_PROPERTY_VALID) this_leaf->size = found_cache->size; - valid_flags++; - } - if (found_cache->flags & ACPI_PPTT_LINE_SIZE_VALID) { + if (found_cache->flags & ACPI_PPTT_LINE_SIZE_VALID) this_leaf->coherency_line_size = found_cache->line_size; - valid_flags++; - } - if (found_cache->flags & ACPI_PPTT_NUMBER_OF_SETS_VALID) { + if (found_cache->flags & ACPI_PPTT_NUMBER_OF_SETS_VALID) this_leaf->number_of_sets = found_cache->number_of_sets; - valid_flags++; - } - if (found_cache->flags & ACPI_PPTT_ASSOCIATIVITY_VALID) { + if (found_cache->flags & ACPI_PPTT_ASSOCIATIVITY_VALID) this_leaf->ways_of_associativity = found_cache->associativity; - valid_flags++; - } if (found_cache->flags & ACPI_PPTT_WRITE_POLICY_VALID) { switch (found_cache->attributes & ACPI_PPTT_MASK_WRITE_POLICY) { case ACPI_PPTT_CACHE_POLICY_WT: @@ -402,11 +392,17 @@ static void update_cache_properties(struct cacheinfo *this_leaf, } } /* - * If the above flags are valid, and the cache type is NOCACHE - * update the cache type as well. + * If cache type is NOCACHE, then the cache hasn't been specified + * via other mechanisms. Update the type if a cache type has been + * provided. + * + * Note, we assume such caches are unified based on conventional system + * design and known examples. Significant work is required elsewhere to + * fully support data/instruction only type caches which are only + * specified in PPTT. */ if (this_leaf->type == CACHE_TYPE_NOCACHE && - valid_flags == PPTT_CHECKED_ATTRIBUTES) + found_cache->flags & ACPI_PPTT_CACHE_TYPE_VALID) this_leaf->type = CACHE_TYPE_UNIFIED; } -- Qualcomm Datacenter Technologies as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.