Date: Thu, 15 Jul 2010 13:58:19 +0200 (CEST) From: Oliver Fromme <olli@lurza.secnetix.de> To: avg@icyb.net.ua (Andriy Gapon) Cc: freebsd-stable@FreeBSD.ORG Subject: Re: 8.1-PRERELEASE: CPU packages not detected correctly Message-ID: <201007151158.o6FBwJI8066822@lurza.secnetix.de> In-Reply-To: <4C3DF48E.1070502@icyb.net.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
Andriy Gapon wrote: > Could you please try to do the following? > 1. Fetch topo-12212009.tar from the top of this page: > http://software.intel.com/en-us/articles/intel-64-architecture-processor-topology-enumeration/ > 2. Untar it and apply this patch to the code: > http://people.freebsd.org/~avg/cpu-topology.diff > 3. Compile it by running sh mk_64.sh (supposing you have amd64 system installed) > 4. Run cpu_topology64.out and report back its output. Ok, did that. This tool seems to get it right, i.e. it detects 2 packages with 4 cores each. Here's the output: Software visible enumeration in the system: Number of logical processors visible to the OS: 8 Number of logical processors visible to this process: 8 Number of processor cores visible to this process: 8 Number of physical packages visible to this process: 2 Hierarchical counts by levels of processor topology: # of cores in package 0 visible to this process: 4 . # of cores in package 1 visible to this process: 4 . Affinity masks per SMT thread, per core, per package: Individual: P:0, C:0, T:0 --> 1 Core-aggregated: P:0, C:0 --> 1 Individual: P:0, C:1, T:0 --> 2 Core-aggregated: P:0, C:1 --> 2 Individual: P:0, C:2, T:0 --> 4 Core-aggregated: P:0, C:2 --> 4 Individual: P:0, C:3, T:0 --> 8 Core-aggregated: P:0, C:3 --> 8 Pkg-aggregated: P:0 --> f Individual: P:1, C:0, T:0 --> 10 Core-aggregated: P:1, C:0 --> 10 Individual: P:1, C:1, T:0 --> 20 Core-aggregated: P:1, C:1 --> 20 Individual: P:1, C:2, T:0 --> 40 Core-aggregated: P:1, C:2 --> 40 Individual: P:1, C:3, T:0 --> 80 Core-aggregated: P:1, C:3 --> 80 Pkg-aggregated: P:1 --> f0 APIC ID listings from affinity masks OS cpu 0, Affinity mask 0001 - apic id 0 OS cpu 1, Affinity mask 0002 - apic id 1 OS cpu 2, Affinity mask 0004 - apic id 2 OS cpu 3, Affinity mask 0008 - apic id 3 OS cpu 4, Affinity mask 0010 - apic id 4 OS cpu 5, Affinity mask 0020 - apic id 5 OS cpu 6, Affinity mask 0040 - apic id 6 OS cpu 7, Affinity mask 0080 - apic id 7 Package 0 Cache and Thread details Box Description: Cache is cache level designator Size is cache size OScpu# is cpu # as seen by OS Core is core#[_thread# if > 1 thread/core] inside socket AffMsk is AffinityMask(extended hex) for core and thread CmbMsk is Combined AffinityMask(extended hex) for hw threads sharing cache CmbMsk will differ from AffMsk if > 1 hw_thread/cache Extended Hex replaces trailing zeroes with 'z#' where # is number of zeroes (so '8z5' is '0x800000') L1D is Level 1 Data cache, size(KBytes)= 32, Cores/cache= 1, Caches/package= 4 L1I is Level 1 Instruction cache, size(KBytes)= 32, Cores/cache= 1, Caches/package= 4 L2 is Level 2 Unified cache, size(KBytes)= 6144, Cores/cache= 2, Caches/package= 2 +----+----+----+----+ Cache | L1D| L1D| L1D| L1D| Size | 32K| 32K| 32K| 32K| OScpu#| 0| 1| 2| 3| Core | c0| c1| c2| c3| AffMsk| 1| 2| 4| 8| +----+----+----+----+ Cache | L1I| L1I| L1I| L1I| Size | 32K| 32K| 32K| 32K| +----+----+----+----+ Cache | L2 | L2 | Size | 6M | 6M | CmbMsk| 3 | c | +---------+---------+ Combined socket AffinityMask= 0xf Package 1 Cache and Thread details Box Description: Cache is cache level designator Size is cache size OScpu# is cpu # as seen by OS Core is core#[_thread# if > 1 thread/core] inside socket AffMsk is AffinityMask(extended hex) for core and thread CmbMsk is Combined AffinityMask(extended hex) for hw threads sharing cache CmbMsk will differ from AffMsk if > 1 hw_thread/cache Extended Hex replaces trailing zeroes with 'z#' where # is number of zeroes (so '8z5' is '0x800000') +----+----+----+----+ Cache | L1D| L1D| L1D| L1D| Size | 32K| 32K| 32K| 32K| OScpu#| 4| 5| 6| 7| Core | c0| c1| c2| c3| AffMsk| 10| 20| 40| 80| +----+----+----+----+ Cache | L1I| L1I| L1I| L1I| Size | 32K| 32K| 32K| 32K| +----+----+----+----+ Cache | L2 | L2 | Size | 6M | 6M | CmbMsk| 30 | c0 | +---------+---------+ Combined socket AffinityMask= 0xf0 -- Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M. Handelsregister: Registergericht Muenchen, HRA 74606, Geschäftsfuehrung: secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün- chen, HRB 125758, Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart FreeBSD-Dienstleistungen, -Produkte und mehr: http://www.secnetix.de/bsd "Clear perl code is better than unclear awk code; but NOTHING comes close to unclear perl code" (taken from comp.lang.awk FAQ)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201007151158.o6FBwJI8066822>