Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1032986AbdDTQC5 (ORCPT ); Thu, 20 Apr 2017 12:02:57 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:43976 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S946635AbdDTQCw (ORCPT ); Thu, 20 Apr 2017 12:02:52 -0400 Subject: Re: [Xen-devel] [PATCH RFC] x86/smpboot: Set safer __max_logical_packages limit To: Vitaly Kuznetsov , Peter Zijlstra References: <20170420132453.19652-1-vkuznets@redhat.com> <20170420150615.ns3343rokvmc3kjt@hirez.programming.kicks-ass.net> <87fuh3xf2i.fsf@vitty.brq.redhat.com> Cc: Prarit Bhargava , x86@kernel.org, linux-kernel@vger.kernel.org, Ingo Molnar , "H. Peter Anvin" , xen-devel@lists.xenproject.org, Thomas Gleixner , Borislav Petkov , Juergen Gross From: Boris Ostrovsky Message-ID: Date: Thu, 20 Apr 2017 12:01:54 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <87fuh3xf2i.fsf@vitty.brq.redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Source-IP: userv0021.oracle.com [156.151.31.71] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1864 Lines: 40 On 04/20/2017 11:40 AM, Vitaly Kuznetsov wrote: > 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. Do you observe this failure on PV or HVM guest? We've had a number of issues with topology discovery for PV guests but AFAIK they have been addressed (so far). I wonder though whether it would make sense to have some sort of a callback (or an smp_ops.op) to override native topology info, if needed. -boris