Received: by 10.192.165.148 with SMTP id m20csp3682628imm; Mon, 23 Apr 2018 10:29:54 -0700 (PDT) X-Google-Smtp-Source: AIpwx480lt0pBA3ZZr9hYyffbO6I7ODKHhyaL6EU5q5n0EuH8FHjKd7vGURG3YHDb6nNDnlbPfh0 X-Received: by 10.101.81.131 with SMTP id h3mr17646668pgq.110.1524504594755; Mon, 23 Apr 2018 10:29:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524504594; cv=none; d=google.com; s=arc-20160816; b=igk0Z3XnIywPNZ8ezK7lBaTbf4NRnmHpXFvOLGbRwdkbTxTZlJm5v2VPgGVS5L2fgn 3UzM7nk+xlkNtVhp/ASxJJvs0V0MjaETGUNz8occIJF7I99jl944i8F+elahImNtvT9A BZIEUJPTkEJ2vp3zN3Cwue6oExwaCzZ24YLO0JSZIYtp1kqYJ9eUtV3aAZTGuIhIv0qE 6+T/ECLixho/PVUkvwaY0Cjfyw7wBHswR8WueEPMPPiIhfRuqbCGAFYWP093MRdIfU75 X91Q1XK42QxR7NLJd/I4dYeVariz445O4IP7Q/xeDWqODGm1IG4aypta/6VW1FK3GZyv roEg== 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:dmarc-filter :dkim-signature:dkim-signature:arc-authentication-results; bh=tRsqVvkIhe8+8xqAVZInHN33HPfJNbH+1CiCB8pmkYc=; b=oGRVQDoQwhVz+1uoeB5bF0/KI4224olt+fbJPASTaSVNOKJ90/BE8oTHodWnXLXj+B cH3Gx2EedKWKVNJHsv8GI14sYXIcomam4Kqivj2r2UF8XsHXBDKGf3068NWpy2tPKh5R /72oov7U5DkVBpTmHN+Rvv7EFgS++Zke9kHM0LP0ZV5FVf0SS6Ur+GGljNXLJeuZkec3 4nYCsC4yjDiv8wXy+BnNgs0ufWmoZg8eEOKwm8+SrA/57UuPwwTVUxIsw3MXUYhvEV2c 9IzBXh9jCJGJlchVER42LSFOTqB3cZZg+lugAp6djU5m8YENdjDTmUGckB0ChJHuvNFd ddyw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=dGaA8w0p; dkim=pass header.i=@codeaurora.org header.s=default header.b=e8PwdnM2; 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 k72si9761829pfa.53.2018.04.23.10.29.40; Mon, 23 Apr 2018 10:29:54 -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; dkim=pass header.i=@codeaurora.org header.s=default header.b=dGaA8w0p; dkim=pass header.i=@codeaurora.org header.s=default header.b=e8PwdnM2; 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 S932136AbeDWR2a (ORCPT + 99 others); Mon, 23 Apr 2018 13:28:30 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:60062 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755286AbeDWR20 (ORCPT ); Mon, 23 Apr 2018 13:28:26 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 086BC60C65; Mon, 23 Apr 2018 17:28:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1524504506; bh=n/EN/yV25LlmErw+6SxHky7q6eBxT0LIPEGE5ZjSLPY=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=dGaA8w0pWqtnWoo3RayciNbvuV5VghS3aaJZHCO0vgS+7t+YGvIIQrLrSTKNeZqGW 82nTwJRx5wi6/e5B/GMa5Q8dBHI3EyEQpBHoTQTGGpn92I2x4sPvx77RfNfb4IVLeN MOStSM1tTMTmJPnSUWr45Dbd/W/40KFlTyK8chjo= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from [10.235.228.150] (global_nat1_iad_fw.qualcomm.com [129.46.232.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: okaya@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id AD9E0600E2; Mon, 23 Apr 2018 17:28:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1524504505; bh=n/EN/yV25LlmErw+6SxHky7q6eBxT0LIPEGE5ZjSLPY=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=e8PwdnM2lTpL/c+4NedOCR8hZC4lAag28noQ491QuUVGJ11i+rcnOz8sMyqXmemk3 oZR4Jc0+7RQussbeWfXwurABKnXnmrUBA5Tw8GFjuRbscnvaiSZnVBc40ZIfyuswjq jMf5eecC8lAGkgUj4YQojAzS3+vc+6s13/12K6kE= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org AD9E0600E2 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=okaya@codeaurora.org Subject: Re: [PATCH 1/2] IB/hfi1: Try slot reset before secondary bus reset To: Alex Williamson , Bjorn Helgaas Cc: Jason Gunthorpe , Bjorn Helgaas , linux-pci@vger.kernel.org, sulrich@codeaurora.org, timur@codeaurora.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Mike Marciniszyn , Dennis Dalessandro , Doug Ledford , "open list:HFI1 DRIVER" , open list , Alex Deucher , Rajat Jain References: <1524167784-5911-1-git-send-email-okaya@codeaurora.org> <20180419202632.GE14063@ziepe.ca> <20180419214722.GO28657@bhelgaas-glaptop.roam.corp.google.com> <290e9530-dcde-9c10-7ae0-59ac4c509db4@codeaurora.org> <20180420140049.GP28657@bhelgaas-glaptop.roam.corp.google.com> <20180420090420.03fb1e6c@w520.home> From: Sinan Kaya Message-ID: <10d9cf68-29ed-d205-a25f-b8dade53cdd8@codeaurora.org> Date: Mon, 23 Apr 2018 13:28:22 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180420090420.03fb1e6c@w520.home> Content-Type: text/plain; charset=utf-8 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 On 4/20/2018 11:04 AM, Alex Williamson wrote: > Is there a concern here about whether the endpoint device driver or the > PCI core really knows better about link retraining? This makes me > remember my unfinished (and need to revisit) Pericom quirk[1] where > errata in the PCIe switch requires that upstream and downstream links > are balanced (ie. same link rate) or else enabling ACS results in > packets not properly flowing through the switch. If an endpoint driver > starts deciding to retrain links, overriding quirks in the PCI core, > then such topology manipulation isn't possible. Why does the > driver .probe() function think it can retrain at a higher link rate > than PCI core? Thanks, The example given is for some serdes firmware load to happen in probe and then performing a retrain to reach to a better speed. It becomes a chicken and egg problem. 1. Endpoint HW trains to gen1 by default pre-boot. 2. PCI core enumerates the device. 3. Endpoint driver gets loaded 4. Driver does the firmware programming followed by a link retrain. I think it is the responsibility of the PCI core to provide reset APIs. However, expecting endpoint drivers to be knowledgeable about hotplug is too much. We can certainly contain AER change into pci directory by moving the slot reset function to drivers/pci.h file. But, we need to think about what to do about VFIO and other endpoint initiated reset cases. My suggestion was to move this into a single API and remove all other APIs from include/linux/pci.h. Coming back to this patch... Do we need a retrain API with the speed that driver wants to reach to? API can return what was actually accomplished. The quirk from Alex can run inside this API to make a decision on what speed do we actually want to reach to for a given PCI topology by reprogramming the target link speed field. -- Sinan Kaya Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.