Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp907086imj; Fri, 15 Feb 2019 08:45:04 -0800 (PST) X-Google-Smtp-Source: AHgI3IbEgh9Oj/KlwOPvvaAx+l0rzmrSSfsBlXeHya2r5nDoii2hVQfEnZwulBDUdr2U7w1Aguyl X-Received: by 2002:a65:628e:: with SMTP id f14mr6237335pgv.193.1550249104841; Fri, 15 Feb 2019 08:45:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550249104; cv=none; d=google.com; s=arc-20160816; b=0IxTqinJY5Y6tkGMyTzst14ATWUvw80oDqNNmwKWJov9Zzo/STGzl/KXzrTSTz41pW vuHJNsW/Q7QwgY5as5Gh7UfzE4MfxcThb/0ZtucJr+x7Ekh22/BEfhMHjIKHRihQtBqf WF+XUB+zdGcTXRs6CYPcIOQtnrT1/u9f+dRePCzRV4vj/TPoXDJKZy5nJ4xALgmkm7pj bEHygcS3diBX45l/VXa5RLr2+/3EKNUPsd/TRu8/iOLcO08rRuUnDzX+SwyVFgXfGOd9 zdeXpHE6Sgz7SJDf6TqQDPLwusleHi/GY559UQsrCF6k7VoOcmXlJdlTsE4xRHPjbdHO Ug6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject; bh=S81ZrKoJD4X29fNI4UoI0tXhnlEcWjPZLcycOT+Zwbg=; b=09dRplxWxy81MDL74HLIJJdY2DSJnlFQXtj7P/09sdcQv5wS81sG8VE/YXYiK4rCau qqs2fifTynF+A73AwX68+Sitkx0TX6LjV9NIXoIdGg+I0OxihM2T91gz2/EJd5Wh7AEU C2Xxe5Tfk9eaBgyhiP9UAIWOg+2Z3Vo5/oHyyTa8/1kcjFupm/h4cNcMMOgZVCXacRn1 TmZIdvHBuHAgjHya4Zm5TO+tD8+0SPSMlI8cVo/eTUurPYhTjfM4CcUJxBhqzb9FeAHI GUyDUi1xKXQpNo6XxY1XvkE/L/7zbh1/X+Oylw+QsTRK2dalRzcTsJd9w72Fo5VT9D7S kCmA== 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 g21si5743248pfg.49.2019.02.15.08.44.49; Fri, 15 Feb 2019 08:45:04 -0800 (PST) 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 S2391183AbfBOQE6 (ORCPT + 99 others); Fri, 15 Feb 2019 11:04:58 -0500 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:34476 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726303AbfBOQE6 (ORCPT ); Fri, 15 Feb 2019 11:04:58 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A70F3EBD; Fri, 15 Feb 2019 08:04:57 -0800 (PST) Received: from [192.168.100.241] (usa-sjc-mx-foss1.foss.arm.com [217.140.101.70]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 077F83F557; Fri, 15 Feb 2019 08:04:56 -0800 (PST) Subject: Re: [RFC 2/3] arm_pmu: acpi: spe: Add initial MADT/SPE probing To: Will Deacon Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, devel@acpica.org, catalin.marinas@arm.com, mark.rutland@arm.com, robert.moore@intel.com, erik.schmauss@intel.com, rafael.j.wysocki@intel.com, lenb@kernel.org References: <20190209004718.3292087-1-jeremy.linton@arm.com> <20190209004718.3292087-3-jeremy.linton@arm.com> <20190214171125.GG2475@fuggles.cambridge.arm.com> <20190215150015.GA6803@fuggles.cambridge.arm.com> From: Jeremy Linton Message-ID: <09cbaf45-d514-3cb3-4bab-744491462338@arm.com> Date: Fri, 15 Feb 2019 10:04:54 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: <20190215150015.GA6803@fuggles.cambridge.arm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 2/15/19 9:00 AM, Will Deacon wrote: > On Thu, Feb 14, 2019 at 12:03:57PM -0600, Jeremy Linton wrote: >> On 2/14/19 11:11 AM, Will Deacon wrote: >>> On Fri, Feb 08, 2019 at 06:47:17PM -0600, Jeremy Linton wrote: >>>> +/* >>>> + * For lack of a better place, hook the normal PMU MADT walk >>>> + * and create a SPE device if we detect a recent MADT with >>>> + * a homogeneous PPI mapping. >>>> + */ >>>> +static int arm_spe_acpi_parse_irqs(void) >>>> +{ >>>> + int cpu, ret, irq; >>>> + u16 gsi = 0; >>>> + bool first = true; >>>> + >>>> + struct acpi_madt_generic_interrupt *gicc; >>>> + >>>> + /* >>>> + * sanity check all the GICC tables for the same interrupt number >>>> + * for now we only support homogeneous ACPI/SPE machines. >>>> + */ >>>> + for_each_possible_cpu(cpu) { >>>> + gicc = acpi_cpu_get_madt_gicc(cpu); >>>> + >>>> + if (gicc->header.length < ACPI_MADT_GICC_SPE) >>>> + return -ENODEV; >>>> + >>>> + if (first) { >>>> + gsi = gicc->spe_overflow_interrupt; >>>> + if (!gsi) >>>> + return -ENODEV; >>>> + first = false; >>>> + } else if (gsi != gicc->spe_overflow_interrupt) { >>>> + pr_warn("ACPI: SPE must have homogeneous interrupts\n"); >>>> + return -EINVAL; >>>> + } >>> >>> Unfortunately, I don't think this is sufficient to detect a homogeneous >>> system: we'll have to check the MIDRs instead, which is nasty. I would >>> personally be in favour of enforcing homogeneity for ACPI systems when we >>> bring up secondary CPUs, but I suspect others would disagree. >> >> Given that all the SPE capable machines i'm aware of at the moment are >> homogeneous, are we ok with just doing an online CPU MIDR check for now, and >> cleaning that up if/when someone builds a machine and complains? > > Yeah, I think we added a new bit to the PPTT to tell you that the machine is > homogenous, so just check that first and bail if it's not set. Yes of course, 100% better plan. Although its probably going to have to be more of a case of walking all the possible cores and assuring they have the same flag level (similar to how the socket flag is handled). Of course that information is useful enough it should probably just be done as part of the normal cpu topology walk. Then the people who have to back port these patches end up with a big dependent set...