Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3037406imu; Mon, 19 Nov 2018 09:41:12 -0800 (PST) X-Google-Smtp-Source: AJdET5ffQEtofNRNo3nx5ckZC1gvTwdbeGexlG5FVRzZV9oBctWU4FOQTC6UWjWBuKm8qpqfkO1c X-Received: by 2002:a62:1912:: with SMTP id 18-v6mr24751810pfz.194.1542649272903; Mon, 19 Nov 2018 09:41:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542649272; cv=none; d=google.com; s=arc-20160816; b=Pe3ZsZ1sPcjnHCGBtc+cNas/ehwp1HmkhPAV7ZFdkr8Ga2JXbEMFeZIiXqpaNu7Fax X52ix5T1b23u40YUiKEgK8jXbWpu/gAiFl6iH5n/Avpl+QHL+pcelRA+PwYuW+s+f5Tw vi8WtKDIPJJ9FrgGXTMBRltgf+G1rco7HYSaTqCB3IwmuFR+5mac5kOt5gWpuulPx0dt uPifbRSCwX1g3HMAd9qmmNwsm80vsGDya09FLqLwVMNwoOLd16ZPpw2yquF9occbIQD3 GHjdNENJh6lRvl9UwWSesCtprVGSPtKrutlOY08D/P/zvUnxvP+mTrTyU9oPVRX2YCT0 sgaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=48pLHOgJ1vxodrUtXMuXKK35U4GL8dIjUP1V81YRCC8=; b=AmWzOooXtI6g070qnrklexZj6kKyBk057GAiMRw0+MPE/aE7vEdejECbOzNeQAT5WV pRsIPKyaWHV8c3JLKxMAVbOsvUYO1p8hw3GRifyWnJEcruQxaY1RqZit7Ndc7qP8O4Qo fZbVH2ibJikZlnacTtIeJQ2kEJK66D6GE0L8LqM/mUZhwAtSCGNgQGrvNDMDJIwH8+Mu y/mPO0Vt0oDRpSDH88ncIhQ1P1Ax1DtlFWjHkeCkEHRC+cPG46bHZzguY4qQIr61zEnj ckviQB6X7NWf4GR/8jOb1rQrzFry2GKqh5gOO4eEDdZ58YbF6CAN/tP8d2zWzoulJ0br ZMkA== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r2si38429969pgo.483.2018.11.19.09.40.56; Mon, 19 Nov 2018 09:41:12 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390052AbeKTEEa (ORCPT + 99 others); Mon, 19 Nov 2018 23:04:30 -0500 Received: from mga14.intel.com ([192.55.52.115]:11092 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389570AbeKTEE3 (ORCPT ); Mon, 19 Nov 2018 23:04:29 -0500 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Nov 2018 09:39:52 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,253,1539673200"; d="scan'208";a="107575587" Received: from unknown (HELO localhost.localdomain) ([10.232.112.69]) by fmsmga004.fm.intel.com with ESMTP; 19 Nov 2018 09:39:51 -0800 Date: Mon, 19 Nov 2018 10:36:35 -0700 From: Keith Busch To: Sinan Kaya Cc: Tyler Baicar , mr.nuke.me@gmail.com, helgaas@google.com, austin_bolen@dell.com, alex_gagniuc@dellteam.com, Shyam_Iyer@dell.com, lukas@wunner.de, bhelgaas@google.com, rjw@rjwysocki.net, lenb@kernel.org, ruscur@russell.cc, sbobroff@linux.ibm.com, oohall@gmail.com, linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, Linux Kernel Mailing List , linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH 0/2] PCI/AER: Consistently use _OSC to determine who owns AER Message-ID: <20181119173635.GD26595@localhost.localdomain> References: <20181115231605.24352-1-mr.nuke.me@gmail.com> <20181119165318.GB26595@localhost.localdomain> <74f2c527-0890-5e14-5e2d-48934a42dae6@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <74f2c527-0890-5e14-5e2d-48934a42dae6@kernel.org> User-Agent: Mutt/1.9.1 (2017-09-22) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 19, 2018 at 12:32:42PM -0500, Sinan Kaya wrote: > On 11/19/2018 11:53 AM, Keith Busch wrote: > > On Mon, Nov 19, 2018 at 11:53:05AM -0500, Tyler Baicar wrote: > > > On Thu, Nov 15, 2018 at 8:49 PM Sinan Kaya wrote: > > > > > > > > On 11/15/2018 3:16 PM, Alexandru Gagniuc wrote: > > > > > I've asked around a few people at Dell and they unanimously agree that > > > > > _OSC is the correct way to determine ownership of AER. In linux, we > > > > > use the result of _OSC to enable AER services, but we use HEST to > > > > > determine AER ownership. That's inconsistent. This series drops the > > > > > use of HEST in favor of _OSC. > > > > > > > > > > [1]https://lkml.org/lkml/2018/11/15/62 > > > > > > > > This change breaks the existing systems that rely on the HEST table > > > > telling the operating system about firmware first presence. > > > > > > > > Besides, HEST table has much more granularity about which PCI component > > > > needs firmware such as global/device/switch. > > > > > > > > You should probably circulate these ideas for wider consumption in UEFI > > > > forum as UEFI owns the HEST table definition. > > > > > > I agree with Sinan, this will break existing systems, and the granularity of the > > > HEST definition is more useful than the single bit in _OSC. > > > > But we're not using HEST as a fine grain control. We disable native AER > > handling if *any* device has FF set in HEST, and that just forces people > > to use pcie_ports=native to get around that. > > > > I don't see *any* in the code. aer_hest_parse() does the HEST table parsing. > It switches to firmware first mode if global flag in HEST is set. Otherwise > for each BDF in device, hest_match_pci() is used to do a cross-matching against > HEST table contents. > > Am I missing something? You might be. :) static int aer_hest_parse(struct acpi_hest_header *hest_hdr, void *data) { /* * If no specific device is supplied, determine whether * FIRMWARE_FIRST is set for *any* PCIe device. */ if (!info->pci_dev) { info->firmware_first |= ff; return 0; }