Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S970842AbdDTPkt (ORCPT ); Thu, 20 Apr 2017 11:40:49 -0400 Received: from mx1.redhat.com ([209.132.183.28]:37782 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S970828AbdDTPkr (ORCPT ); Thu, 20 Apr 2017 11:40:47 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7853267EBB Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=vkuznets@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 7853267EBB From: Vitaly Kuznetsov To: Peter Zijlstra Cc: x86@kernel.org, Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Borislav Petkov , Prarit Bhargava , linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org Subject: Re: [PATCH RFC] x86/smpboot: Set safer __max_logical_packages limit References: <20170420132453.19652-1-vkuznets@redhat.com> <20170420150615.ns3343rokvmc3kjt@hirez.programming.kicks-ass.net> Date: Thu, 20 Apr 2017 17:40:37 +0200 In-Reply-To: <20170420150615.ns3343rokvmc3kjt@hirez.programming.kicks-ass.net> (Peter Zijlstra's message of "Thu, 20 Apr 2017 17:06:15 +0200") Message-ID: <87fuh3xf2i.fsf@vitty.brq.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Thu, 20 Apr 2017 15:40:46 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1489 Lines: 36 Peter Zijlstra writes: > On Thu, Apr 20, 2017 at 03:24:53PM +0200, Vitaly Kuznetsov wrote: >> In this patch I suggest we set __max_logical_packages based on the >> max_physical_pkg_id and total_cpus, > > So my 4 socket 144 CPU system will then get max_physical_pkg_id=144, > instead of 4. > > This wastes quite a bit of memory for the per-node arrays. Luckily most > are just pointer arrays, but still, wasting 140*8 bytes for each of > them. > >> this should be safe and cover all >> possible cases. Alternatively, we may think about eliminating the concept >> of __max_logical_packages completely and relying on max_physical_pkg_id/ >> total_cpus where we currently use topology_max_packages(). >> >> The issue could've been solved in Xen too I guess. CPUID returning >> x86_max_cores can be tweaked to be the lowerest(?) possible number of >> all logical packages of the guest. > > This is getting ludicrous. Xen is plain broken, and instead of fixing > it, you propose to somehow deal with its obviously crack induced > behaviour :-( Totally agree and I don't like the solution I propose (and that's why this is RFC)... The problem is that there are such Xen setups in the wild and with the recent changes some guests will BUG() :-( Alternatively, we can just remove the BUG() and do something with CPUs which have their pkg >= __max_logical_packages, e.g. assign them to the last package. Far from ideal but will help to avoid the regression. -- Vitaly