Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp311377iob; Wed, 18 May 2022 02:45:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwjYZbcF25AqaeB00OQ1nMpvT9M10Z0EU6p3rkO/uR617QW1vFCZyWR7YLOp2++Vy+trhHI X-Received: by 2002:a17:90b:4a0f:b0:1dc:b062:da20 with SMTP id kk15-20020a17090b4a0f00b001dcb062da20mr29254377pjb.51.1652867106810; Wed, 18 May 2022 02:45:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652867106; cv=none; d=google.com; s=arc-20160816; b=llhy2P/K0lZsCWkYhJRdTrR11wZtVjr1shaEbXqnGlXceAMy1zSYcVli8JzsiA2Ksd 6cr2n4QKqqdJVN55rUQ7F0CUsJj6k2ZTKdbmcsO7Biyep/vN5z4taPn6QxlANmXdXy1X HPXyqXcAx3I2MIm9ZYwGr8MCWxrqqhztfZrJrHmt/dttKw9alc0+bHCnslZwIdTyHT9w Pt9kPpoVye35LBR6jw6/D/3FRDm357jVvpBUoM250CuFDy/v6T3k/0cQ2jn1omMsuiVL 5poiNMWiXTQm0R9ICVRZqfgnsBbIXzYGuQiMUwlMfJod1kLxNNES87dVWxLtpeuqKKEZ p8+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=PwhFRReroE2ScxQgvjMlTTXAKzI6xJZfNBjbiB4oyAI=; b=CqvNIKhWPXstyRaTbRdjfQgJkdaQRZgUJwb2ZL2uojO04z88XT4nDFxc3HmEG0g9Jk uVx/X6PxX94xHqOnRu0n3MddGmuiojyHNKQA+OkaeiDsYBM1VtfNiXJ9Gh69NVT0OKZb 5vNn3c5cdRPLn8GuX3VMgwh7RsUDftKWtOR4rrE8Qf0EmJ6bOmHbMwl8G5jeX1Ke6vIa +icwkDiVl11JcOvvlSzFrlCTQiIFImWvA0Ix6OooVpGewSAamENdohWBnCUJpAuPtC4Y +9sCPebNbr/KkFnKJbbgbRM86vLEzfpg7zWZVcilqqwrQcQrLO5ukDrMex7bZh7QaECw eaYQ== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id k5-20020a170902c40500b0016170d18392si2525175plk.289.2022.05.18.02.45.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 May 2022 02:45:06 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id DFC4DB0A6B; Wed, 18 May 2022 02:34:15 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234344AbiERJeB (ORCPT + 99 others); Wed, 18 May 2022 05:34:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50816 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234337AbiERJdz (ORCPT ); Wed, 18 May 2022 05:33:55 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 6023EAFAF4 for ; Wed, 18 May 2022 02:33:53 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 210931042; Wed, 18 May 2022 02:33:53 -0700 (PDT) Received: from usa.arm.com (e103737-lin.cambridge.arm.com [10.1.197.49]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 9DD953F66F; Wed, 18 May 2022 02:33:51 -0700 (PDT) From: Sudeep Holla To: Atish Patra , linux-kernel@vger.kernel.org Cc: Sudeep Holla , Atish Patra , Vincent Guittot , Morten Rasmussen , Dietmar Eggemann , Qing Wang , linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, Rob Herring Subject: [PATCH v2 0/8] arch_topology: Updates to add socket support and fix cluster ids Date: Wed, 18 May 2022 10:33:17 +0100 Message-Id: <20220518093325.2070336-1-sudeep.holla@arm.com> X-Mailer: git-send-email 2.36.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi All, This series intends to fix some discrepancies we have in the CPU topology parsing from the device tree /cpu-map node. Also this diverges from the behaviour on a ACPI enabled platform. The expectation is that both DT and ACPI enabled systems must present consistent view of the CPU topology. Currently we assign generated cluster count as the physical package identifier for each CPU which is wrong. The device tree bindings for CPU topology supports sockets to infer the socket or physical package identifier for a given CPU. Also we don't check if all the cores/threads belong to the same cluster before updating their sibling masks which is fine as we don't set the cluster id yet. These changes also assigns the cluster identifier as parsed from the device tree cluster nodes within /cpu-map without support for nesting of the clusters. Finally, it also add support for socket nodes in /cpu-map. With this the parsing of exact same information from ACPI PPTT and /cpu-map DT node aligns well. The only exception is that the last level cache id information can be inferred from the same ACPI PPTT while we need to parse CPU cache nodes in the device tree. P.S: I have not cc-ed Greg and Rafael so that all the users of arch_topology agree with the changes first before we include them. v1[1]->v2: - Updated ID validity check include all non-negative value - Added support to get the device node for the CPU's last level cache - Added support to build llc_sibling on DT platforms [1] https://lore.kernel.org/lkml/20220513095559.1034633-1-sudeep.holla@arm.com Sudeep Holla (8): arch_topology: Don't set cluster identifier as physical package identifier arch_topology: Set thread sibling cpumask only within the cluster arch_topology: Set cluster identifier in each core/thread from /cpu-map arch_topology: Add support for parsing sockets in /cpu-map arch_topology: Check for non-negative value rather than -1 for IDs validity arch_topology: Avoid parsing through all the CPUs once a outlier CPU is found of: base: add support to get the device node for the CPU's last level cache arch_topology: Add support to build llc_sibling on DT platforms drivers/base/arch_topology.c | 75 +++++++++++++++++++++++++++-------- drivers/of/base.c | 33 +++++++++++---- include/linux/arch_topology.h | 1 + include/linux/of.h | 1 + 4 files changed, 85 insertions(+), 25 deletions(-) -- 2.36.1