Received: by 2002:a25:5b86:0:0:0:0:0 with SMTP id p128csp1315358ybb; Fri, 29 Mar 2019 01:57:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqyjoKZGvpUC69V9ZKkC4X+8w962FZeme8bSlE5jwiv5fLhj5b5adw+F3CDTi29e6QN+htHw X-Received: by 2002:a17:902:a5c3:: with SMTP id t3mr7359786plq.293.1553849820701; Fri, 29 Mar 2019 01:57:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553849820; cv=none; d=google.com; s=arc-20160816; b=ZVgHOz6eYuycP5CUjuw6oGtp6+X5WPwcBQy5QwlTEQeafv+x+o4uWag10ZSOMrzpNU VE1z/asnoiGZjllgMuY24wmLTNbzWzhtkJuot5gMLEWZyMdOu/eU7tE7qI/13UQsEGf6 6KOPMnpICPfV1SPLU+Xjcrxp4k5UwdIv/LiRHpDgtkdNbJL4VUJnXigXlZH7J+1Gaf+1 EUG7WyfPwU/KjiA9yvM7A42Ydm3g7WR7mbNsY5y1wS0I5FFvJuUZVw6+FI6frMj/lhsI zRSXOZAuJKErwiYvQ5tUBHZJYh7lS1RzWHQdOkmUa2pIx+KN2Cjv2jN0t5C92itrweMf MGew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-disposition :content-transfer-encoding:mime-version:in-reply-to:references :subject:cc:to:from:date:message-id; bh=zADDoFO/GxF1xdM2V4iQ4g4nAfRpEMZEKO9ISDFk1xI=; b=ozKFDvydwPImlrxpi+T2AdZnUVdgkZp1t07sT0990IwekZPy53ljiADm68mgsrlIEU 1Faq+dHvGzLszavNk7RZwB/M/f6Dlj0RjiJNFqnpOaYfjC7RrsAk0R4oMnEdQzKsU1ad bUMaXQf2uS7Z0rgZMyo8fkafieXr0h1eZQVInIwNMhE1eH0QUIpu+9a5tWq4t6OvasuH vTEGoCeue9OPf1F6vyrTNVj7VqFt8bB4nNGQx0Kmt04YbHJ0QNiaVPsr22X+HzKSxa/8 WZv7XFIfWZGwL8bPWKz3dD1QQSzw82FDYYajKKxNEpY8JoQgD8FpqmxiiRgwH4Q5b/JK 95nw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h17si1378179pfj.38.2019.03.29.01.56.44; Fri, 29 Mar 2019 01:57:00 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729194AbfC2Iyn convert rfc822-to-8bit (ORCPT + 99 others); Fri, 29 Mar 2019 04:54:43 -0400 Received: from prv1-mh.provo.novell.com ([137.65.248.33]:54604 "EHLO prv1-mh.provo.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729102AbfC2Iyn (ORCPT ); Fri, 29 Mar 2019 04:54:43 -0400 Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Fri, 29 Mar 2019 02:54:42 -0600 Message-Id: <5C9DDD530200007800222B22@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.0 Date: Fri, 29 Mar 2019 02:54:43 -0600 From: "Jan Beulich" To: "Boris Ostrovsky" Cc: "Stefano Stabellini" , "xen-devel" , "Juergen Gross" , Subject: Re: [PATCH] x86/Xen: streamline (and fix) PV CPU enumeration References: <5C9B92EA020000780022227B@prv1-mh.provo.novell.com> <2f027b4b-dce2-3e90-dc1b-c824bc8eb355@oracle.com> <5C9C8DDC0200007800222606@prv1-mh.provo.novell.com> In-Reply-To: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8BIT Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >>> On 28.03.19 at 17:50, wrote: > On 3/28/19 5:03 AM, Jan Beulich wrote: >>>>> On 27.03.19 at 18:07, wrote: >>> On 3/27/19 11:12 AM, Jan Beulich wrote: >>>> - >>>> -static void __init xen_filter_cpu_maps(void) >>>> +static void __init _get_smp_config(unsigned int early) >>>> { >>>> int i, rc; >>>> unsigned int subtract = 0; >>>> >>>> - if (!xen_initial_domain()) >>>> + if (early) >>>> return; >>>> >>>> num_processors = 0; >>> >>> Is there a reason to set_cpu_possible() here (not in the diff, but in >>> this routine)? This will be called from setup_arch() before >>> prefill_possible_map(), which will clear and then re-initialize >>> __cpu_possible_mask. >> I don't think it's needed before my change either, so I'd call >> removing this an orthogonal change. As said in the commit >> message, the goal was to leave this function alone as far as >> possible. >> >> Before my patch, xen_filter_cpu_maps() gets called long after >> prefill_possible_map(), and by the purpose of the latter function >> the possible map shouldn't be altered anymore once that has >> run. Adding bits to it is surely not going to have the intended >> effect (setup_per_cpu_areas() has already run), while removing >> bits may have some effect, but comes too late at least for >> setup_per_cpu_areas(). > > OK. Then it looks like even though your patch changes behavior slightly > (so technically I guess it's not purely a cleanup) this shouldn't makes > any difference at least as far as possible cpu mask is concerned: if we > don't have percpu areas set up we can't do much for that vcpu since it > seems to me xen_vcpu_setup(), for example, won't do well. > >> And if we were to remove this, I think the CONFIG_HOTPLUG_CPU >> section should go away as well. After all prefill_possible_map() >> also sets nr_cpu_ids. To be honest, it was largely this code >> fragment which made me want not touch the function more than >> necessary: The comment there makes not clear to me at all why >> all of this needs to be in an #ifdef in the first place. > > This was introduced by cf405ae612b0 ("xen/smp: Fix crash when booting > with ACPI hotplug CPUs."). > > I am not sure this is still relevant. The ACPI hotplug code had changed, > not significantly but sufficiently enough to alter behavior. > acpi_processor_hotadd_init() now fails before it gets a chance to call > arch_register_cpu() for vcpu>dom0_max_vcpus. > >> Let me know whether you really want me to fold this extra >> cleanup into this patch. If so, I'd then wonder whether the >> set_cpu_present() from xen_pv_smp_prepare_cpus() shouldn't >> be moved here, too. And the fiddling with the possible map >> there looks bogus as well: Bring-up of CPUs past the command >> line option should be avoided at boot time, but they shouldn't >> be excluded from getting brought up later on. Note how >> native_smp_prepare_cpus() ignores its parameter altogether. > > Yes, that does look strange. > > Given especially xen_pv_smp_prepare_cpus(), I think re-working proper > setting of present/possible masks is well beyond the scope of your > original patch. Well, then the question is, what (if any) changes are you expecting me to make for this change to be acceptable? Or do you perhaps want me to add a 2nd patch on top addressing the other outlined anomalies? Jan