From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755368AbcKJLQj (ORCPT ); Thu, 10 Nov 2016 06:16:39 -0500 Received: from Galois.linutronix.de ([146.0.238.70]:32877 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754551AbcKJLQh (ORCPT ); Thu, 10 Nov 2016 06:16:37 -0500 Date: Thu, 10 Nov 2016 12:14:01 +0100 (CET) From: Thomas Gleixner To: "Charles (Chas) Williams" cc: "M. Vefa Bicakci" , Sebastian Andrzej Siewior , "x86@kernel.org" , LKML , Peter Zijlstra , Borislav Petkov Subject: Re: [PATCH] x86/cpuid: Deal with broken firmware once more In-Reply-To: Message-ID: References: <20161102122557.qs4rl6mb7n7l7j7p@linutronix.de> <24e69019-60d0-29e7-e31f-c6f00f9ed98a@brocade.com> <58e229e2-91f4-a97f-1b9f-089f48ef994a@brocade.com> <86609338-2b45-ed7e-fb07-99421e43a2f1@brocade.com> <49fe8cc5-0f0f-6cac-7a5c-803e81f5667d@runbox.com> 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 On Thu, 10 Nov 2016, Charles (Chas) Williams wrote: > On 11/09/2016 10:57 PM, M. Vefa Bicakci wrote: > > [ 0.002000] mvb: CPU: Physical Processor ID: 0 > > [ 0.002000] mvb: CPU: Processor Core ID: 0 > > [ 0.002000] mvb: identify_cpu:1112: c: ffff880013b0a040, > > c->logical_proc_id: 65535 > > [ 0.002000] mvb: __default_cpu_present_to_apicid:612: Returning 65535! > > mps_cpu: 1, nr_cpu_ids: 2, cpu_present(mps_cpu): 1 > > [ 0.002000] smpboot: mvb: topology_update_package_map:270: cpu: 1, pkg: > > 4095 > > [ 0.002000] smpboot: APIC(ffff) Converting physical 4095 to logical > > package 0 > > [ 0.002000] smpboot: mvb: topology_update_package_map:305: cpu: 1, > > cpu_data(cpu).logical_proc_id: 0 > > This seems strange. 0xffff is BAD_APICID. Why didn't this fail here: > > for_each_present_cpu(cpu) { > unsigned int apicid = apic->cpu_present_to_apicid(cpu); > > if (apicid == BAD_APICID || !apic->apic_id_valid(apicid)) > <<<<<<<<<< > continue; > if (!topology_update_package_map(apicid, cpu)) > continue; > > topology_update_package_map() should never have been called? That's right. Looking into it ....