From patchwork Fri Sep 14 16:28:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeffrey Hugo X-Patchwork-Id: 10601075 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 425B414BD for ; Fri, 14 Sep 2018 16:28:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2BAFE2B9AE for ; Fri, 14 Sep 2018 16:28:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1FB3E2B9BE; Fri, 14 Sep 2018 16:28:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BEAD82B9AE for ; Fri, 14 Sep 2018 16:28:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728277AbeINVnm (ORCPT ); Fri, 14 Sep 2018 17:43:42 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:44670 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727628AbeINVnk (ORCPT ); Fri, 14 Sep 2018 17:43:40 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 74C5360BF5; Fri, 14 Sep 2018 16:28:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1536942506; bh=MQMuG2N4DikOuH0dItiny8T33P+I82Ha91KGmYYmQ3g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hXRCcKqcmYPlrn68uTV9eT8XLyhnezMb02m67Kj/8lQ8MX+qGOM4UaHNaNdoJpp6c re6xuzgYb65CjHuvmKYNHskozEhg2+Da+kKfO+MwCp8z2e/gRvH3NG8Nx0A7SQvmxb U2yie4WTHtUgCVidQGu8D9wnyorUKw0CglwUqwf8= 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 0F7C360BEE; Fri, 14 Sep 2018 16:28:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1536942505; bh=MQMuG2N4DikOuH0dItiny8T33P+I82Ha91KGmYYmQ3g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eBbofnLr2WG5s60SMJKWxfwvyKCfRnoCxEkxTX1/XJEbk5J7s2DPsyOx1wRiodZJn RLb+r3wJ802C9S7r69qNlpvgaXJ1fIhKpGkcs9o/p3Ht5xJ3Q393t1TAhpqdvgE3fD xBdoKSfWODJqpopDc8vR6ZC7VHsYg1gs4BEvqLUI= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 0F7C360BEE 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 v2 1/2] drivers: base: cacheinfo: Do not populate sysfs for unknown cache types Date: Fri, 14 Sep 2018 10:28:08 -0600 Message-Id: <1536942489-4018-2-git-send-email-jhugo@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1536942489-4018-1-git-send-email-jhugo@codeaurora.org> References: <1536942489-4018-1-git-send-email-jhugo@codeaurora.org> Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP If a cache has an unknown type because neither the hardware nor the firmware told us, an entry in the sysfs tree will be made, but the type file will not be present. lscpu depends on the type file being present for every entry, and will error out without printing system information if lscpu cannot open the type file. Presenting information about a cache without indicating its type is not useful, therefore if we hit a cache with an unknown type, stop populating sysfs so that userspace has the maximum amount of useful information. This addresses the following lscpu error, which prevents any output. lscpu: cannot open /sys/devices/system/cpu/cpu0/cache/index3/type: No such file or directory Suggested-by: Sudeep Holla Signed-off-by: Jeffrey Hugo Reviewed-by: Jeremy Linton --- drivers/base/cacheinfo.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/base/cacheinfo.c b/drivers/base/cacheinfo.c index 5d5b598..cf78fa6 100644 --- a/drivers/base/cacheinfo.c +++ b/drivers/base/cacheinfo.c @@ -615,6 +615,8 @@ static int cache_add_dev(unsigned int cpu) this_leaf = this_cpu_ci->info_list + i; if (this_leaf->disable_sysfs) continue; + if (this_leaf->type == CACHE_TYPE_NOCACHE) + break; cache_groups = cache_get_attribute_groups(this_leaf); ci_dev = cpu_device_create(parent, this_leaf, cache_groups, "index%1u", i); From patchwork Fri Sep 14 16:28:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeffrey Hugo X-Patchwork-Id: 10601077 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2C77014BD for ; Fri, 14 Sep 2018 16:28:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 16F522B9AE for ; Fri, 14 Sep 2018 16:28:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0B45A2B9C3; Fri, 14 Sep 2018 16:28:42 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8D32E2B9AE for ; Fri, 14 Sep 2018 16:28:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728370AbeINVnt (ORCPT ); Fri, 14 Sep 2018 17:43:49 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:44790 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728274AbeINVnm (ORCPT ); Fri, 14 Sep 2018 17:43:42 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id E67AE60BEE; Fri, 14 Sep 2018 16:28:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1536942507; bh=j8OVDhmcnh6KWtNd/PaNAFrweODC+KGgAcag7eUfWWU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cF5I2Gtu/m7QyqRqj2/EFJl9UNpxG2hk/BXjNkgAmZJDKeHS7O39UrHu3bdTa8mFw d/LUzM6C2FpUJwSnBvdd4Ds2upFgef2r3ALkSb+D3CYi+SD6Fb5BfEJZhPbnw8eDxA lT6ejSsaz96RpTu+ynzFCpWXR77ZgOmkGlSDNjRo= 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 9B1CD60C4C; Fri, 14 Sep 2018 16:28:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1536942507; bh=j8OVDhmcnh6KWtNd/PaNAFrweODC+KGgAcag7eUfWWU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cF5I2Gtu/m7QyqRqj2/EFJl9UNpxG2hk/BXjNkgAmZJDKeHS7O39UrHu3bdTa8mFw d/LUzM6C2FpUJwSnBvdd4Ds2upFgef2r3ALkSb+D3CYi+SD6Fb5BfEJZhPbnw8eDxA lT6ejSsaz96RpTu+ynzFCpWXR77ZgOmkGlSDNjRo= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 9B1CD60C4C 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 v2 2/2] ACPI/PPTT: Handle architecturally unknown cache types Date: Fri, 14 Sep 2018 10:28:09 -0600 Message-Id: <1536942489-4018-3-git-send-email-jhugo@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1536942489-4018-1-git-send-email-jhugo@codeaurora.org> References: <1536942489-4018-1-git-send-email-jhugo@codeaurora.org> Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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 | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c index d1e26cb..bb00ed9 100644 --- a/drivers/acpi/pptt.c +++ b/drivers/acpi/pptt.c @@ -402,11 +402,18 @@ 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 either the cache has + * been fully specified in PPTT, or 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) + 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; }