Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752729AbdF0QTp (ORCPT ); Tue, 27 Jun 2017 12:19:45 -0400 Received: from Galois.linutronix.de ([146.0.238.70]:47212 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751513AbdF0QTj (ORCPT ); Tue, 27 Jun 2017 12:19:39 -0400 Date: Tue, 27 Jun 2017 18:19:24 +0200 (CEST) From: Thomas Gleixner To: "Duran, Leo" cc: "Suthikulpanit, Suravee" , Borislav Petkov , "x86@kernel.org" , "linux-kernel@vger.kernel.org" , "Ghannam, Yazen" , Peter Zijlstra Subject: RE: [PATCH 1/2] x86/CPU/AMD: Present package as die instead of socket In-Reply-To: Message-ID: References: <1498545653-6755-1-git-send-email-suravee.suthikulpanit@amd.com> <1498545653-6755-2-git-send-email-suravee.suthikulpanit@amd.com> <20170627104803.wlhsqhaylbeqod37@pd.tnic> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2474 Lines: 65 On Tue, 27 Jun 2017, Duran, Leo wrote: > > From: Thomas Gleixner [mailto:tglx@linutronix.de] > > On Tue, 27 Jun 2017, Suravee Suthikulpanit wrote: > > > On 6/27/17 17:48, Borislav Petkov wrote: > > > > On Tue, Jun 27, 2017 at 01:40:52AM -0500, Suravee Suthikulpanit wrote: > > > > > However, this is not the case on AMD family17h multi-die processor > > > > > platforms, which can have up to 4 dies per socket as shown in the > > > > > following system topology. > > > > > > > > So what exactly does that mean? A die is a package on ZN and you can > > > > have up to 4 packages on a physical socket? > > > > > > Yes. 4 packages (or 4 dies, or 4 NUMA nodes) in a socket. > > > > And why is this relevant at all? > > > > The kernel does not care about sockets. Sockets are electromechanical > > components and completely irrelevant. > > > > The kernel cares about : > > > > Threads - Single scheduling unit > > > > Cores - Contains one or more threads > > > > Packages - Contains one or more cores. The cores share L3. > > > > NUMA Node - Contains one or more Packages which share a memory > > controller. > > > > I'm not aware of x86 systems which have several Packages > > sharing a memory controller, so Package == NUMA Node > > (but I might be wrong here). > > > > Platform - Contains one or more Numa Nodes > [Duran, Leo] > That is my understanding of intent as well... However, regarding the L3: Obviously is that not your understanding. > The sentence 'The cores share L3.' under 'Packages' may give the > impression that all cores in a package share an L3. > In our case, we define a Package a group of cores sharing a memory > controller, a 'Die' in hardware terms. > > Also, it turns out that within a Package we may have separate groups of > cores each having their own L3 (in hardware terms we refer to those as a > 'Core Complex'). > > Basically, in our case a Package may contain more than one L3 (i.e., in > hardware terms, there may more than one 'Core complex' in a 'Die'). > > The important point is that all logical processors (threads) that share > an L3 have a common "cpu_llc_id". I don't care at all what you call a package. Really. The only relevant view is what the kernel thinks a package is. And I made that entirely clear. If you think that's confusing, then feel free to submit patches which change the names we are using throughout x86 including the documentation. Thanks, tglx