Received: by 2002:a25:ca44:0:0:0:0:0 with SMTP id a65csp2495834ybg; Fri, 31 Jul 2020 01:02:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyvOAA50uFIDZKNz2HlxR28W59juIo5A7T8Bo1tdWlQ/D7RaJVleqGjdO9HCiXsbrtIjND3 X-Received: by 2002:aa7:cb56:: with SMTP id w22mr2644573edt.96.1596182573470; Fri, 31 Jul 2020 01:02:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596182573; cv=none; d=google.com; s=arc-20160816; b=rMxar+CO0bRxmNmP0nUiqJSlpvJvw9wK0PYcXFu0mLagn/clg9o6lrmonocHP7T+HA QBkQjVzRvQ94+tjzaRxbxMoOUUi0ktglJQdnVVv910HVTd3kxHIeH1GTBCLmJOfJrlWi gyTRMiLOro5IDlTFl1Pu7keAB8gTy4ddWcfKLZzvXQhwRO9fc7IjYXBZrtOZKcpOWksF BmvWsBj8mv8MO3poUfDf/VoY1wiWTpPPrwzLyl18s/6wGdClDvZmYcoI5CWGXiNG42Xc GXooE9qz/5moqiFibZPJLqwxMXRFoMJ/6AClpGn4l0kehZ872TTfsuB+8A6U0o01H/Pc qPcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:dkim-signature; bh=bWpfM/NoyaJ+eKu8eBhc9fBiMKMaVtQFLMSy+PeuwrA=; b=kd/eU0Lk8Mi4bUdsbupNUmsoxZvIXkMb7Tj/bxJNPsfNHOtHMi91ZPSgsFGsL1RjT3 f/czcMzsKXKJ62mPldQUc54NV+Jt0Liwl03Ja283xCJKNPJzZVi0uEvvAOol0towe2DS fUkpap/a1k7LoteqmUpycQyapk0mPpJSBd2U7tP4a/V8X+W9mCr2PhDufmKDmbxPTOGw KxZt265nquqhEpSDnC9SJDZSs0DBcYfHBcEuylF+7IF1vEbSjp3T5MipPmSVt4QMG+FX vrwjI133L9YSyHu1mCgIpSkV7JR1YLLdXuasIqyrsfYR/wHYsDgQ4vHi5k9g2PT2IdKG JhMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ellerman.id.au header.s=201909 header.b="pPeyl5/N"; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e26si5353273edv.66.2020.07.31.01.02.31; Fri, 31 Jul 2020 01:02:53 -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=@ellerman.id.au header.s=201909 header.b="pPeyl5/N"; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731688AbgGaIC0 (ORCPT + 99 others); Fri, 31 Jul 2020 04:02:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47630 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731479AbgGaIC0 (ORCPT ); Fri, 31 Jul 2020 04:02:26 -0400 Received: from ozlabs.org (bilbo.ozlabs.org [IPv6:2401:3900:2:1::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E2C36C061574 for ; Fri, 31 Jul 2020 01:02:25 -0700 (PDT) Received: from authenticated.ozlabs.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.ozlabs.org (Postfix) with ESMTPSA id 4BJ0B64wr3z9sTM; Fri, 31 Jul 2020 18:02:22 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ellerman.id.au; s=201909; t=1596182544; bh=VIvlFmLeEbazI6X4NrR2A4yECMiZVAa1vCybgh1Mduk=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=pPeyl5/NlC4K+MRg9yrpan6haPOfQboM84UFywQ+27jiRB4Must46goJhWYfneqsu 1XXxWssioctiie7J4pqqq0j82L9DowqWmz/t5CPrb04JcnDIB8+MYnCSISCaX21r7k u0f8C5XhEMU79kJe5jmL2nHyQhxBumAeP01uS22XlMe6bvgDDHBgUidQhfXSV/KSPF 9Wy8MWamdDLnJ6rQ0ioFp+OyTSVYKlmmCtUaliXRwX4vX35GGhe904HqzGmXuYeTSZ LIsPpgbPzfc+9O6W5OdjiOM5lL8D++64sV6bPTGp3qeOYvcGW/o4f01d+qd4iZlNQw lA8SX9b6z+spw== From: Michael Ellerman To: Srikar Dronamraju Cc: linuxppc-dev , Srikar Dronamraju , LKML , Nicholas Piggin , Anton Blanchard , Oliver O'Halloran , Nathan Lynch , Michael Neuling , Gautham R Shenoy , Ingo Molnar , Peter Zijlstra , Valentin Schneider , Jordan Niethe Subject: Re: [PATCH v4 10/10] powerpc/smp: Implement cpu_to_coregroup_id In-Reply-To: <20200727053230.19753-11-srikar@linux.vnet.ibm.com> References: <20200727053230.19753-1-srikar@linux.vnet.ibm.com> <20200727053230.19753-11-srikar@linux.vnet.ibm.com> Date: Fri, 31 Jul 2020 18:02:21 +1000 Message-ID: <87wo2k3yeq.fsf@mpe.ellerman.id.au> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Srikar Dronamraju writes: > Lookup the coregroup id from the associativity array. It's slightly strange that this is called in patch 9, but only properly implemented here in patch 10. I'm not saying you have to squash them together, but it would be good if the change log for patch 9 mentioned that a subsequent commit will complete the implementation and how that affects the behaviour. cheers > If unable to detect the coregroup id, fallback on the core id. > This way, ensure sched_domain degenerates and an extra sched domain is > not created. > > Ideally this function should have been implemented in > arch/powerpc/kernel/smp.c. However if its implemented in mm/numa.c, we > don't need to find the primary domain again. > > If the device-tree mentions more than one coregroup, then kernel > implements only the last or the smallest coregroup, which currently > corresponds to the penultimate domain in the device-tree. > > Cc: linuxppc-dev > Cc: LKML > Cc: Michael Ellerman > Cc: Nicholas Piggin > Cc: Anton Blanchard > Cc: Oliver O'Halloran > Cc: Nathan Lynch > Cc: Michael Neuling > Cc: Gautham R Shenoy > Cc: Ingo Molnar > Cc: Peter Zijlstra > Cc: Valentin Schneider > Cc: Jordan Niethe > Reviewed-by : Gautham R. Shenoy > Signed-off-by: Srikar Dronamraju > --- > Changelog v1 -> v2: > Move coregroup_enabled before getting associativity (Gautham) > > arch/powerpc/mm/numa.c | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c > index 0d57779e7942..8b3b3ec7fcc4 100644 > --- a/arch/powerpc/mm/numa.c > +++ b/arch/powerpc/mm/numa.c > @@ -1218,6 +1218,26 @@ int find_and_online_cpu_nid(int cpu) > > int cpu_to_coregroup_id(int cpu) > { > + __be32 associativity[VPHN_ASSOC_BUFSIZE] = {0}; > + int index; > + > + if (cpu < 0 || cpu > nr_cpu_ids) > + return -1; > + > + if (!coregroup_enabled) > + goto out; > + > + if (!firmware_has_feature(FW_FEATURE_VPHN)) > + goto out; > + > + if (vphn_get_associativity(cpu, associativity)) > + goto out; > + > + index = of_read_number(associativity, 1); > + if (index > min_common_depth + 1) > + return of_read_number(&associativity[index - 1], 1); > + > +out: > return cpu_to_core_id(cpu); > } > > -- > 2.17.1